<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>[163744] trunk/Source/WebCore</title>
</head>
<body>
<style type="text/css"><!--
#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; }
#msg dl a { font-weight: bold}
#msg dl a:link { color:#fc3; }
#msg dl a:active { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
#msg pre { overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; }
#logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; }
#logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; }
#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; }
#logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; }
#logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; }
#logmsg pre { background: #eee; padding: 1em; }
#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;}
#logmsg dl { margin: 0; }
#logmsg dt { font-weight: bold; }
#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
#logmsg dd:before { content:'\00bb';}
#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; }
#logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; }
#logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; }
#logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; }
#logmsg table th.Corner { text-align: left; }
#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
#patch { width: 100%; }
#patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
#patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;}
#patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;}
#patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;}
#patch .lines, .info {color:#888;background:#fff;}
--></style>
<div id="msg">
<dl class="meta">
<dt>Revision</dt> <dd><a href="http://trac.webkit.org/projects/webkit/changeset/163744">163744</a></dd>
<dt>Author</dt> <dd>zandobersek@gmail.com</dd>
<dt>Date</dt> <dd>2014-02-09 00:18:11 -0800 (Sun, 09 Feb 2014)</dd>
</dl>
<h3>Log Message</h3>
<pre>Manage MessagePort, MessagePortChannel and friends through std::unique_ptr
https://bugs.webkit.org/show_bug.cgi?id=128467
Reviewed by Andreas Kling.
Use std::unique_ptr instead of OwnPtr to manage MessagePort, MessagePortArray, MessagePortChannel
and MessagePortChannelArray objects.
* bindings/js/JSMessageEventCustom.cpp:
(WebCore::handleInitMessageEvent):
* dom/MessageEvent.cpp:
(WebCore::MessageEvent::MessageEvent):
(WebCore::MessageEvent::initMessageEvent):
* dom/MessageEvent.h:
(WebCore::MessageEvent::create):
* dom/MessagePort.cpp:
(WebCore::MessagePort::postMessage):
(WebCore::MessagePort::disentangle):
(WebCore::MessagePort::entangle):
(WebCore::MessagePort::dispatchMessages):
(WebCore::MessagePort::disentanglePorts):
(WebCore::MessagePort::entanglePorts):
* dom/MessagePort.h:
* dom/MessagePortChannel.h:
* dom/default/PlatformMessagePortChannel.cpp:
(WebCore::PlatformMessagePortChannel::EventData::EventData):
(WebCore::MessagePortChannel::createChannel):
(WebCore::MessagePortChannel::postMessageToRemote):
(WebCore::MessagePortChannel::tryGetMessageFromRemote):
* dom/default/PlatformMessagePortChannel.h:
(WebCore::PlatformMessagePortChannel::EventData::channels):
* page/DOMWindow.cpp:
(WebCore::PostMessageTimer::PostMessageTimer):
(WebCore::PostMessageTimer::event):
(WebCore::DOMWindow::postMessage):
* workers/DedicatedWorkerGlobalScope.cpp:
(WebCore::DedicatedWorkerGlobalScope::postMessage):
* workers/DefaultSharedWorkerRepository.cpp:
(WebCore::SharedWorkerConnectTask::create):
(WebCore::SharedWorkerConnectTask::SharedWorkerConnectTask):
(WebCore::SharedWorkerConnectTask::performTask):
(WebCore::SharedWorkerScriptLoader::SharedWorkerScriptLoader):
(WebCore::SharedWorkerScriptLoader::notifyFinished):
(WebCore::DefaultSharedWorkerRepository::workerScriptLoaded):
(WebCore::DefaultSharedWorkerRepository::connectToWorker):
* workers/DefaultSharedWorkerRepository.h:
* workers/SharedWorker.cpp:
(WebCore::SharedWorker::create):
* workers/SharedWorkerGlobalScope.cpp:
(WebCore::createConnectEvent):
* workers/SharedWorkerRepository.cpp:
(WebCore::SharedWorkerRepository::connect):
* workers/SharedWorkerRepository.h:
* workers/Worker.cpp:
(WebCore::Worker::postMessage):
* workers/WorkerGlobalScopeProxy.h:
* workers/WorkerMessagingProxy.cpp:
(WebCore::MessageWorkerGlobalScopeTask::create):
(WebCore::MessageWorkerGlobalScopeTask::MessageWorkerGlobalScopeTask):
(WebCore::MessageWorkerGlobalScopeTask::performTask):
(WebCore::MessageWorkerTask::create):
(WebCore::MessageWorkerTask::MessageWorkerTask):
(WebCore::MessageWorkerTask::performTask):
(WebCore::WorkerMessagingProxy::postMessageToWorkerObject):
(WebCore::WorkerMessagingProxy::postMessageToWorkerGlobalScope):
* workers/WorkerMessagingProxy.h:
* workers/WorkerObjectProxy.h:</pre>
<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkSourceWebCoreChangeLog">trunk/Source/WebCore/ChangeLog</a></li>
<li><a href="#trunkSourceWebCorebindingsjsJSMessageEventCustomcpp">trunk/Source/WebCore/bindings/js/JSMessageEventCustom.cpp</a></li>
<li><a href="#trunkSourceWebCoredomMessageEventcpp">trunk/Source/WebCore/dom/MessageEvent.cpp</a></li>
<li><a href="#trunkSourceWebCoredomMessageEventh">trunk/Source/WebCore/dom/MessageEvent.h</a></li>
<li><a href="#trunkSourceWebCoredomMessagePortcpp">trunk/Source/WebCore/dom/MessagePort.cpp</a></li>
<li><a href="#trunkSourceWebCoredomMessagePorth">trunk/Source/WebCore/dom/MessagePort.h</a></li>
<li><a href="#trunkSourceWebCoredomMessagePortChannelh">trunk/Source/WebCore/dom/MessagePortChannel.h</a></li>
<li><a href="#trunkSourceWebCoredomdefaultPlatformMessagePortChannelcpp">trunk/Source/WebCore/dom/default/PlatformMessagePortChannel.cpp</a></li>
<li><a href="#trunkSourceWebCoredomdefaultPlatformMessagePortChannelh">trunk/Source/WebCore/dom/default/PlatformMessagePortChannel.h</a></li>
<li><a href="#trunkSourceWebCorepageDOMWindowcpp">trunk/Source/WebCore/page/DOMWindow.cpp</a></li>
<li><a href="#trunkSourceWebCoreworkersDedicatedWorkerGlobalScopecpp">trunk/Source/WebCore/workers/DedicatedWorkerGlobalScope.cpp</a></li>
<li><a href="#trunkSourceWebCoreworkersDefaultSharedWorkerRepositorycpp">trunk/Source/WebCore/workers/DefaultSharedWorkerRepository.cpp</a></li>
<li><a href="#trunkSourceWebCoreworkersDefaultSharedWorkerRepositoryh">trunk/Source/WebCore/workers/DefaultSharedWorkerRepository.h</a></li>
<li><a href="#trunkSourceWebCoreworkersSharedWorkercpp">trunk/Source/WebCore/workers/SharedWorker.cpp</a></li>
<li><a href="#trunkSourceWebCoreworkersSharedWorkerGlobalScopecpp">trunk/Source/WebCore/workers/SharedWorkerGlobalScope.cpp</a></li>
<li><a href="#trunkSourceWebCoreworkersSharedWorkerRepositorycpp">trunk/Source/WebCore/workers/SharedWorkerRepository.cpp</a></li>
<li><a href="#trunkSourceWebCoreworkersSharedWorkerRepositoryh">trunk/Source/WebCore/workers/SharedWorkerRepository.h</a></li>
<li><a href="#trunkSourceWebCoreworkersWorkercpp">trunk/Source/WebCore/workers/Worker.cpp</a></li>
<li><a href="#trunkSourceWebCoreworkersWorkerGlobalScopeProxyh">trunk/Source/WebCore/workers/WorkerGlobalScopeProxy.h</a></li>
<li><a href="#trunkSourceWebCoreworkersWorkerMessagingProxycpp">trunk/Source/WebCore/workers/WorkerMessagingProxy.cpp</a></li>
<li><a href="#trunkSourceWebCoreworkersWorkerMessagingProxyh">trunk/Source/WebCore/workers/WorkerMessagingProxy.h</a></li>
<li><a href="#trunkSourceWebCoreworkersWorkerObjectProxyh">trunk/Source/WebCore/workers/WorkerObjectProxy.h</a></li>
</ul>
</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkSourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/ChangeLog (163743 => 163744)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/ChangeLog        2014-02-09 07:29:10 UTC (rev 163743)
+++ trunk/Source/WebCore/ChangeLog        2014-02-09 08:18:11 UTC (rev 163744)
</span><span class="lines">@@ -1,3 +1,73 @@
</span><ins>+2014-02-09 Zan Dobersek <zdobersek@igalia.com>
+
+ Manage MessagePort, MessagePortChannel and friends through std::unique_ptr
+ https://bugs.webkit.org/show_bug.cgi?id=128467
+
+ Reviewed by Andreas Kling.
+
+ Use std::unique_ptr instead of OwnPtr to manage MessagePort, MessagePortArray, MessagePortChannel
+ and MessagePortChannelArray objects.
+
+ * bindings/js/JSMessageEventCustom.cpp:
+ (WebCore::handleInitMessageEvent):
+ * dom/MessageEvent.cpp:
+ (WebCore::MessageEvent::MessageEvent):
+ (WebCore::MessageEvent::initMessageEvent):
+ * dom/MessageEvent.h:
+ (WebCore::MessageEvent::create):
+ * dom/MessagePort.cpp:
+ (WebCore::MessagePort::postMessage):
+ (WebCore::MessagePort::disentangle):
+ (WebCore::MessagePort::entangle):
+ (WebCore::MessagePort::dispatchMessages):
+ (WebCore::MessagePort::disentanglePorts):
+ (WebCore::MessagePort::entanglePorts):
+ * dom/MessagePort.h:
+ * dom/MessagePortChannel.h:
+ * dom/default/PlatformMessagePortChannel.cpp:
+ (WebCore::PlatformMessagePortChannel::EventData::EventData):
+ (WebCore::MessagePortChannel::createChannel):
+ (WebCore::MessagePortChannel::postMessageToRemote):
+ (WebCore::MessagePortChannel::tryGetMessageFromRemote):
+ * dom/default/PlatformMessagePortChannel.h:
+ (WebCore::PlatformMessagePortChannel::EventData::channels):
+ * page/DOMWindow.cpp:
+ (WebCore::PostMessageTimer::PostMessageTimer):
+ (WebCore::PostMessageTimer::event):
+ (WebCore::DOMWindow::postMessage):
+ * workers/DedicatedWorkerGlobalScope.cpp:
+ (WebCore::DedicatedWorkerGlobalScope::postMessage):
+ * workers/DefaultSharedWorkerRepository.cpp:
+ (WebCore::SharedWorkerConnectTask::create):
+ (WebCore::SharedWorkerConnectTask::SharedWorkerConnectTask):
+ (WebCore::SharedWorkerConnectTask::performTask):
+ (WebCore::SharedWorkerScriptLoader::SharedWorkerScriptLoader):
+ (WebCore::SharedWorkerScriptLoader::notifyFinished):
+ (WebCore::DefaultSharedWorkerRepository::workerScriptLoaded):
+ (WebCore::DefaultSharedWorkerRepository::connectToWorker):
+ * workers/DefaultSharedWorkerRepository.h:
+ * workers/SharedWorker.cpp:
+ (WebCore::SharedWorker::create):
+ * workers/SharedWorkerGlobalScope.cpp:
+ (WebCore::createConnectEvent):
+ * workers/SharedWorkerRepository.cpp:
+ (WebCore::SharedWorkerRepository::connect):
+ * workers/SharedWorkerRepository.h:
+ * workers/Worker.cpp:
+ (WebCore::Worker::postMessage):
+ * workers/WorkerGlobalScopeProxy.h:
+ * workers/WorkerMessagingProxy.cpp:
+ (WebCore::MessageWorkerGlobalScopeTask::create):
+ (WebCore::MessageWorkerGlobalScopeTask::MessageWorkerGlobalScopeTask):
+ (WebCore::MessageWorkerGlobalScopeTask::performTask):
+ (WebCore::MessageWorkerTask::create):
+ (WebCore::MessageWorkerTask::MessageWorkerTask):
+ (WebCore::MessageWorkerTask::performTask):
+ (WebCore::WorkerMessagingProxy::postMessageToWorkerObject):
+ (WebCore::WorkerMessagingProxy::postMessageToWorkerGlobalScope):
+ * workers/WorkerMessagingProxy.h:
+ * workers/WorkerObjectProxy.h:
+
</ins><span class="cx"> 2014-02-08 Ryosuke Niwa <rniwa@webkit.org>
</span><span class="cx">
</span><span class="cx"> Cleanup the interface of FrameSelection
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsjsJSMessageEventCustomcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/js/JSMessageEventCustom.cpp (163743 => 163744)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/js/JSMessageEventCustom.cpp        2014-02-09 07:29:10 UTC (rev 163743)
+++ trunk/Source/WebCore/bindings/js/JSMessageEventCustom.cpp        2014-02-09 08:18:11 UTC (rev 163744)
</span><span class="lines">@@ -96,10 +96,10 @@
</span><span class="cx"> const String originArg = exec->argument(4).toString(exec)->value(exec);
</span><span class="cx"> const String lastEventIdArg = exec->argument(5).toString(exec)->value(exec);
</span><span class="cx"> DOMWindow* sourceArg = toDOMWindow(exec->argument(6));
</span><del>- OwnPtr<MessagePortArray> messagePorts;
</del><ins>+ std::unique_ptr<MessagePortArray> messagePorts;
</ins><span class="cx"> OwnPtr<ArrayBufferArray> arrayBuffers;
</span><span class="cx"> if (!exec->argument(7).isUndefinedOrNull()) {
</span><del>- messagePorts = adoptPtr(new MessagePortArray);
</del><ins>+ messagePorts = std::make_unique<MessagePortArray>();
</ins><span class="cx"> arrayBuffers = adoptPtr(new ArrayBufferArray);
</span><span class="cx"> fillMessagePortArray(exec, exec->argument(7), *messagePorts, *arrayBuffers);
</span><span class="cx"> if (exec->hadException())
</span><span class="lines">@@ -110,7 +110,7 @@
</span><span class="cx"> return jsUndefined();
</span><span class="cx">
</span><span class="cx"> MessageEvent& event = jsEvent->impl();
</span><del>- event.initMessageEvent(typeArg, canBubbleArg, cancelableArg, dataArg, originArg, lastEventIdArg, sourceArg, messagePorts.release());
</del><ins>+ event.initMessageEvent(typeArg, canBubbleArg, cancelableArg, dataArg, originArg, lastEventIdArg, sourceArg, std::move(messagePorts));
</ins><span class="cx"> jsEvent->m_data.set(exec->vm(), jsEvent, dataArg.jsValue());
</span><span class="cx"> return jsUndefined();
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCoredomMessageEventcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/MessageEvent.cpp (163743 => 163744)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/MessageEvent.cpp        2014-02-09 07:29:10 UTC (rev 163743)
+++ trunk/Source/WebCore/dom/MessageEvent.cpp        2014-02-09 08:18:11 UTC (rev 163744)
</span><span class="lines">@@ -51,30 +51,30 @@
</span><span class="cx"> , m_origin(initializer.origin)
</span><span class="cx"> , m_lastEventId(initializer.lastEventId)
</span><span class="cx"> , m_source(isValidSource(initializer.source.get()) ? initializer.source : 0)
</span><del>- , m_ports(adoptPtr(new MessagePortArray(initializer.ports)))
</del><ins>+ , m_ports(std::make_unique<MessagePortArray>(initializer.ports))
</ins><span class="cx"> {
</span><span class="cx"> }
</span><span class="cx">
</span><del>-MessageEvent::MessageEvent(const Deprecated::ScriptValue& data, const String& origin, const String& lastEventId, PassRefPtr<EventTarget> source, PassOwnPtr<MessagePortArray> ports)
</del><ins>+MessageEvent::MessageEvent(const Deprecated::ScriptValue& data, const String& origin, const String& lastEventId, PassRefPtr<EventTarget> source, std::unique_ptr<MessagePortArray> ports)
</ins><span class="cx"> : Event(eventNames().messageEvent, false, false)
</span><span class="cx"> , m_dataType(DataTypeScriptValue)
</span><span class="cx"> , m_dataAsScriptValue(data)
</span><span class="cx"> , m_origin(origin)
</span><span class="cx"> , m_lastEventId(lastEventId)
</span><span class="cx"> , m_source(source)
</span><del>- , m_ports(ports)
</del><ins>+ , m_ports(std::move(ports))
</ins><span class="cx"> {
</span><span class="cx"> ASSERT(isValidSource(m_source.get()));
</span><span class="cx"> }
</span><span class="cx">
</span><del>-MessageEvent::MessageEvent(PassRefPtr<SerializedScriptValue> data, const String& origin, const String& lastEventId, PassRefPtr<EventTarget> source, PassOwnPtr<MessagePortArray> ports)
</del><ins>+MessageEvent::MessageEvent(PassRefPtr<SerializedScriptValue> data, const String& origin, const String& lastEventId, PassRefPtr<EventTarget> source, std::unique_ptr<MessagePortArray> ports)
</ins><span class="cx"> : Event(eventNames().messageEvent, false, false)
</span><span class="cx"> , m_dataType(DataTypeSerializedScriptValue)
</span><span class="cx"> , m_dataAsSerializedScriptValue(data)
</span><span class="cx"> , m_origin(origin)
</span><span class="cx"> , m_lastEventId(lastEventId)
</span><span class="cx"> , m_source(source)
</span><del>- , m_ports(ports)
</del><ins>+ , m_ports(std::move(ports))
</ins><span class="cx"> {
</span><span class="cx"> ASSERT(isValidSource(m_source.get()));
</span><span class="cx"> }
</span><span class="lines">@@ -107,7 +107,7 @@
</span><span class="cx"> {
</span><span class="cx"> }
</span><span class="cx">
</span><del>-void MessageEvent::initMessageEvent(const AtomicString& type, bool canBubble, bool cancelable, const Deprecated::ScriptValue& data, const String& origin, const String& lastEventId, DOMWindow* source, PassOwnPtr<MessagePortArray> ports)
</del><ins>+void MessageEvent::initMessageEvent(const AtomicString& type, bool canBubble, bool cancelable, const Deprecated::ScriptValue& data, const String& origin, const String& lastEventId, DOMWindow* source, std::unique_ptr<MessagePortArray> ports)
</ins><span class="cx"> {
</span><span class="cx"> if (dispatched())
</span><span class="cx"> return;
</span><span class="lines">@@ -119,10 +119,10 @@
</span><span class="cx"> m_origin = origin;
</span><span class="cx"> m_lastEventId = lastEventId;
</span><span class="cx"> m_source = source;
</span><del>- m_ports = ports;
</del><ins>+ m_ports = std::move(ports);
</ins><span class="cx"> }
</span><span class="cx">
</span><del>-void MessageEvent::initMessageEvent(const AtomicString& type, bool canBubble, bool cancelable, PassRefPtr<SerializedScriptValue> data, const String& origin, const String& lastEventId, DOMWindow* source, PassOwnPtr<MessagePortArray> ports)
</del><ins>+void MessageEvent::initMessageEvent(const AtomicString& type, bool canBubble, bool cancelable, PassRefPtr<SerializedScriptValue> data, const String& origin, const String& lastEventId, DOMWindow* source, std::unique_ptr<MessagePortArray> ports)
</ins><span class="cx"> {
</span><span class="cx"> if (dispatched())
</span><span class="cx"> return;
</span><span class="lines">@@ -134,7 +134,7 @@
</span><span class="cx"> m_origin = origin;
</span><span class="cx"> m_lastEventId = lastEventId;
</span><span class="cx"> m_source = source;
</span><del>- m_ports = ports;
</del><ins>+ m_ports = std::move(ports);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> // FIXME: Remove this when we have custom ObjC binding support.
</span><span class="lines">@@ -155,12 +155,12 @@
</span><span class="cx">
</span><span class="cx"> void MessageEvent::initMessageEvent(const AtomicString& type, bool canBubble, bool cancelable, PassRefPtr<SerializedScriptValue> data, const String& origin, const String& lastEventId, DOMWindow* source, MessagePort* port)
</span><span class="cx"> {
</span><del>- OwnPtr<MessagePortArray> ports;
</del><ins>+ std::unique_ptr<MessagePortArray> ports;
</ins><span class="cx"> if (port) {
</span><del>- ports = adoptPtr(new MessagePortArray);
</del><ins>+ ports = std::make_unique<MessagePortArray>();
</ins><span class="cx"> ports->append(port);
</span><span class="cx"> }
</span><del>- initMessageEvent(type, canBubble, cancelable, data, origin, lastEventId, source, ports.release());
</del><ins>+ initMessageEvent(type, canBubble, cancelable, data, origin, lastEventId, source, std::move(ports));
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> EventInterface MessageEvent::eventInterface() const
</span></span></pre></div>
<a id="trunkSourceWebCoredomMessageEventh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/MessageEvent.h (163743 => 163744)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/MessageEvent.h        2014-02-09 07:29:10 UTC (rev 163743)
+++ trunk/Source/WebCore/dom/MessageEvent.h        2014-02-09 08:18:11 UTC (rev 163744)
</span><span class="lines">@@ -34,6 +34,7 @@
</span><span class="cx"> #include "MessagePort.h"
</span><span class="cx"> #include "SerializedScriptValue.h"
</span><span class="cx"> #include <bindings/ScriptValue.h>
</span><ins>+#include <memory>
</ins><span class="cx"> #include <runtime/ArrayBuffer.h>
</span><span class="cx">
</span><span class="cx"> namespace WebCore {
</span><span class="lines">@@ -56,13 +57,13 @@
</span><span class="cx"> {
</span><span class="cx"> return adoptRef(new MessageEvent);
</span><span class="cx"> }
</span><del>- static PassRefPtr<MessageEvent> create(PassOwnPtr<MessagePortArray> ports, const Deprecated::ScriptValue& data = Deprecated::ScriptValue(), const String& origin = String(), const String& lastEventId = String(), PassRefPtr<EventTarget> source = 0)
</del><ins>+ static PassRefPtr<MessageEvent> create(std::unique_ptr<MessagePortArray> ports, const Deprecated::ScriptValue& data = Deprecated::ScriptValue(), const String& origin = String(), const String& lastEventId = String(), PassRefPtr<EventTarget> source = 0)
</ins><span class="cx"> {
</span><del>- return adoptRef(new MessageEvent(data, origin, lastEventId, source, ports));
</del><ins>+ return adoptRef(new MessageEvent(data, origin, lastEventId, source, std::move(ports)));
</ins><span class="cx"> }
</span><del>- static PassRefPtr<MessageEvent> create(PassOwnPtr<MessagePortArray> ports, PassRefPtr<SerializedScriptValue> data, const String& origin = String(), const String& lastEventId = String(), PassRefPtr<EventTarget> source = 0)
</del><ins>+ static PassRefPtr<MessageEvent> create(std::unique_ptr<MessagePortArray> ports, PassRefPtr<SerializedScriptValue> data, const String& origin = String(), const String& lastEventId = String(), PassRefPtr<EventTarget> source = 0)
</ins><span class="cx"> {
</span><del>- return adoptRef(new MessageEvent(data, origin, lastEventId, source, ports));
</del><ins>+ return adoptRef(new MessageEvent(data, origin, lastEventId, source, std::move(ports)));
</ins><span class="cx"> }
</span><span class="cx"> static PassRefPtr<MessageEvent> create(const String& data, const String& origin = String())
</span><span class="cx"> {
</span><span class="lines">@@ -82,8 +83,8 @@
</span><span class="cx"> }
</span><span class="cx"> virtual ~MessageEvent();
</span><span class="cx">
</span><del>- void initMessageEvent(const AtomicString& type, bool canBubble, bool cancelable, const Deprecated::ScriptValue& data, const String& origin, const String& lastEventId, DOMWindow* source, PassOwnPtr<MessagePortArray>);
- void initMessageEvent(const AtomicString& type, bool canBubble, bool cancelable, PassRefPtr<SerializedScriptValue> data, const String& origin, const String& lastEventId, DOMWindow* source, PassOwnPtr<MessagePortArray>);
</del><ins>+ void initMessageEvent(const AtomicString& type, bool canBubble, bool cancelable, const Deprecated::ScriptValue& data, const String& origin, const String& lastEventId, DOMWindow* source, std::unique_ptr<MessagePortArray>);
+ void initMessageEvent(const AtomicString& type, bool canBubble, bool cancelable, PassRefPtr<SerializedScriptValue> data, const String& origin, const String& lastEventId, DOMWindow* source, std::unique_ptr<MessagePortArray>);
</ins><span class="cx">
</span><span class="cx"> const String& origin() const { return m_origin; }
</span><span class="cx"> const String& lastEventId() const { return m_lastEventId; }
</span><span class="lines">@@ -116,8 +117,8 @@
</span><span class="cx"> private:
</span><span class="cx"> MessageEvent();
</span><span class="cx"> MessageEvent(const AtomicString&, const MessageEventInit&);
</span><del>- MessageEvent(const Deprecated::ScriptValue& data, const String& origin, const String& lastEventId, PassRefPtr<EventTarget> source, PassOwnPtr<MessagePortArray>);
- MessageEvent(PassRefPtr<SerializedScriptValue> data, const String& origin, const String& lastEventId, PassRefPtr<EventTarget> source, PassOwnPtr<MessagePortArray>);
</del><ins>+ MessageEvent(const Deprecated::ScriptValue& data, const String& origin, const String& lastEventId, PassRefPtr<EventTarget> source, std::unique_ptr<MessagePortArray>);
+ MessageEvent(PassRefPtr<SerializedScriptValue> data, const String& origin, const String& lastEventId, PassRefPtr<EventTarget> source, std::unique_ptr<MessagePortArray>);
</ins><span class="cx">
</span><span class="cx"> explicit MessageEvent(const String& data, const String& origin);
</span><span class="cx"> explicit MessageEvent(PassRefPtr<Blob> data, const String& origin);
</span><span class="lines">@@ -132,7 +133,7 @@
</span><span class="cx"> String m_origin;
</span><span class="cx"> String m_lastEventId;
</span><span class="cx"> RefPtr<EventTarget> m_source;
</span><del>- OwnPtr<MessagePortArray> m_ports;
</del><ins>+ std::unique_ptr<MessagePortArray> m_ports;
</ins><span class="cx"> };
</span><span class="cx">
</span><span class="cx"> } // namespace WebCore
</span></span></pre></div>
<a id="trunkSourceWebCoredomMessagePortcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/MessagePort.cpp (163743 => 163744)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/MessagePort.cpp        2014-02-09 07:29:10 UTC (rev 163743)
+++ trunk/Source/WebCore/dom/MessagePort.cpp        2014-02-09 08:18:11 UTC (rev 163744)
</span><span class="lines">@@ -66,7 +66,7 @@
</span><span class="cx"> return;
</span><span class="cx"> ASSERT(m_scriptExecutionContext);
</span><span class="cx">
</span><del>- OwnPtr<MessagePortChannelArray> channels;
</del><ins>+ std::unique_ptr<MessagePortChannelArray> channels;
</ins><span class="cx"> // Make sure we aren't connected to any of the passed-in ports.
</span><span class="cx"> if (ports) {
</span><span class="cx"> for (unsigned int i = 0; i < ports->size(); ++i) {
</span><span class="lines">@@ -80,10 +80,10 @@
</span><span class="cx"> if (ec)
</span><span class="cx"> return;
</span><span class="cx"> }
</span><del>- m_entangledChannel->postMessageToRemote(message, channels.release());
</del><ins>+ m_entangledChannel->postMessageToRemote(message, std::move(channels));
</ins><span class="cx"> }
</span><span class="cx">
</span><del>-PassOwnPtr<MessagePortChannel> MessagePort::disentangle()
</del><ins>+std::unique_ptr<MessagePortChannel> MessagePort::disentangle()
</ins><span class="cx"> {
</span><span class="cx"> ASSERT(m_entangledChannel);
</span><span class="cx">
</span><span class="lines">@@ -94,7 +94,7 @@
</span><span class="cx"> m_scriptExecutionContext->destroyedMessagePort(this);
</span><span class="cx"> m_scriptExecutionContext = 0;
</span><span class="cx">
</span><del>- return m_entangledChannel.release();
</del><ins>+ return std::move(m_entangledChannel);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> // Invoked to notify us that there are messages available for this port.
</span><span class="lines">@@ -126,7 +126,7 @@
</span><span class="cx"> m_closed = true;
</span><span class="cx"> }
</span><span class="cx">
</span><del>-void MessagePort::entangle(PassOwnPtr<MessagePortChannel> remote)
</del><ins>+void MessagePort::entangle(std::unique_ptr<MessagePortChannel> remote)
</ins><span class="cx"> {
</span><span class="cx"> // Only invoked to set our initial entanglement.
</span><span class="cx"> ASSERT(!m_entangledChannel);
</span><span class="lines">@@ -134,7 +134,7 @@
</span><span class="cx">
</span><span class="cx"> // Don't entangle the ports if the channel is closed.
</span><span class="cx"> if (remote->entangleIfOpen(this))
</span><del>- m_entangledChannel = remote;
</del><ins>+ m_entangledChannel = std::move(remote);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void MessagePort::contextDestroyed()
</span><span class="lines">@@ -153,15 +153,15 @@
</span><span class="cx"> ASSERT(started());
</span><span class="cx">
</span><span class="cx"> RefPtr<SerializedScriptValue> message;
</span><del>- OwnPtr<MessagePortChannelArray> channels;
</del><ins>+ std::unique_ptr<MessagePortChannelArray> channels;
</ins><span class="cx"> while (m_entangledChannel && m_entangledChannel->tryGetMessageFromRemote(message, channels)) {
</span><span class="cx">
</span><span class="cx"> // close() in Worker onmessage handler should prevent next message from dispatching.
</span><span class="cx"> if (m_scriptExecutionContext->isWorkerGlobalScope() && static_cast<WorkerGlobalScope*>(m_scriptExecutionContext)->isClosing())
</span><span class="cx"> return;
</span><span class="cx">
</span><del>- OwnPtr<MessagePortArray> ports = MessagePort::entanglePorts(*m_scriptExecutionContext, channels.release());
- RefPtr<Event> evt = MessageEvent::create(ports.release(), message.release());
</del><ins>+ std::unique_ptr<MessagePortArray> ports = MessagePort::entanglePorts(*m_scriptExecutionContext, std::move(channels));
+ RefPtr<Event> evt = MessageEvent::create(std::move(ports), message.release());
</ins><span class="cx">
</span><span class="cx"> dispatchEvent(evt.release(), ASSERT_NO_EXCEPTION);
</span><span class="cx"> }
</span><span class="lines">@@ -183,7 +183,7 @@
</span><span class="cx"> return m_entangledChannel ? m_entangledChannel->locallyEntangledPort(m_scriptExecutionContext) : 0;
</span><span class="cx"> }
</span><span class="cx">
</span><del>-PassOwnPtr<MessagePortChannelArray> MessagePort::disentanglePorts(const MessagePortArray* ports, ExceptionCode& ec)
</del><ins>+std::unique_ptr<MessagePortChannelArray> MessagePort::disentanglePorts(const MessagePortArray* ports, ExceptionCode& ec)
</ins><span class="cx"> {
</span><span class="cx"> if (!ports || !ports->size())
</span><span class="cx"> return nullptr;
</span><span class="lines">@@ -202,26 +202,26 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> // Passed-in ports passed validity checks, so we can disentangle them.
</span><del>- OwnPtr<MessagePortChannelArray> portArray = adoptPtr(new MessagePortChannelArray(ports->size()));
</del><ins>+ auto portArray = std::make_unique<MessagePortChannelArray>(ports->size());
</ins><span class="cx"> for (unsigned int i = 0 ; i < ports->size() ; ++i) {
</span><del>- OwnPtr<MessagePortChannel> channel = (*ports)[i]->disentangle();
- (*portArray)[i] = channel.release();
</del><ins>+ std::unique_ptr<MessagePortChannel> channel = (*ports)[i]->disentangle();
+ (*portArray)[i] = std::move(channel);
</ins><span class="cx"> }
</span><del>- return portArray.release();
</del><ins>+ return portArray;
</ins><span class="cx"> }
</span><span class="cx">
</span><del>-PassOwnPtr<MessagePortArray> MessagePort::entanglePorts(ScriptExecutionContext& context, PassOwnPtr<MessagePortChannelArray> channels)
</del><ins>+std::unique_ptr<MessagePortArray> MessagePort::entanglePorts(ScriptExecutionContext& context, std::unique_ptr<MessagePortChannelArray> channels)
</ins><span class="cx"> {
</span><span class="cx"> if (!channels || !channels->size())
</span><span class="cx"> return nullptr;
</span><span class="cx">
</span><del>- OwnPtr<MessagePortArray> portArray = adoptPtr(new MessagePortArray(channels->size()));
</del><ins>+ auto portArray = std::make_unique<MessagePortArray>(channels->size());
</ins><span class="cx"> for (unsigned int i = 0; i < channels->size(); ++i) {
</span><span class="cx"> RefPtr<MessagePort> port = MessagePort::create(context);
</span><del>- port->entangle((*channels)[i].release());
</del><ins>+ port->entangle(std::move((*channels)[i]));
</ins><span class="cx"> (*portArray)[i] = port.release();
</span><span class="cx"> }
</span><del>- return portArray.release();
</del><ins>+ return portArray;
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> } // namespace WebCore
</span></span></pre></div>
<a id="trunkSourceWebCoredomMessagePorth"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/MessagePort.h (163743 => 163744)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/MessagePort.h        2014-02-09 07:29:10 UTC (rev 163743)
+++ trunk/Source/WebCore/dom/MessagePort.h        2014-02-09 08:18:11 UTC (rev 163744)
</span><span class="lines">@@ -30,9 +30,8 @@
</span><span class="cx"> #include "EventListener.h"
</span><span class="cx"> #include "EventTarget.h"
</span><span class="cx"> #include "MessagePortChannel.h"
</span><ins>+#include <memory>
</ins><span class="cx"> #include <wtf/Forward.h>
</span><del>-#include <wtf/OwnPtr.h>
-#include <wtf/PassOwnPtr.h>
</del><span class="cx"> #include <wtf/PassRefPtr.h>
</span><span class="cx"> #include <wtf/RefPtr.h>
</span><span class="cx"> #include <wtf/Vector.h>
</span><span class="lines">@@ -59,14 +58,14 @@
</span><span class="cx"> void start();
</span><span class="cx"> void close();
</span><span class="cx">
</span><del>- void entangle(PassOwnPtr<MessagePortChannel>);
- PassOwnPtr<MessagePortChannel> disentangle();
</del><ins>+ void entangle(std::unique_ptr<MessagePortChannel>);
+ std::unique_ptr<MessagePortChannel> disentangle();
</ins><span class="cx">
</span><span class="cx"> // Returns 0 if there is an exception, or if the passed-in array is 0/empty.
</span><del>- static PassOwnPtr<MessagePortChannelArray> disentanglePorts(const MessagePortArray*, ExceptionCode&);
</del><ins>+ static std::unique_ptr<MessagePortChannelArray> disentanglePorts(const MessagePortArray*, ExceptionCode&);
</ins><span class="cx">
</span><span class="cx"> // Returns 0 if the passed array is 0/empty.
</span><del>- static PassOwnPtr<MessagePortArray> entanglePorts(ScriptExecutionContext&, PassOwnPtr<MessagePortChannelArray>);
</del><ins>+ static std::unique_ptr<MessagePortArray> entanglePorts(ScriptExecutionContext&, std::unique_ptr<MessagePortChannelArray>);
</ins><span class="cx">
</span><span class="cx"> void messageAvailable();
</span><span class="cx"> bool started() const { return m_started; }
</span><span class="lines">@@ -108,7 +107,7 @@
</span><span class="cx"> virtual void refEventTarget() override { ref(); }
</span><span class="cx"> virtual void derefEventTarget() override { deref(); }
</span><span class="cx">
</span><del>- OwnPtr<MessagePortChannel> m_entangledChannel;
</del><ins>+ std::unique_ptr<MessagePortChannel> m_entangledChannel;
</ins><span class="cx">
</span><span class="cx"> bool m_started;
</span><span class="cx"> bool m_closed;
</span></span></pre></div>
<a id="trunkSourceWebCoredomMessagePortChannelh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/MessagePortChannel.h (163743 => 163744)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/MessagePortChannel.h        2014-02-09 07:29:10 UTC (rev 163743)
+++ trunk/Source/WebCore/dom/MessagePortChannel.h        2014-02-09 08:18:11 UTC (rev 163744)
</span><span class="lines">@@ -32,9 +32,8 @@
</span><span class="cx"> #define MessagePortChannel_h
</span><span class="cx">
</span><span class="cx"> #include "SerializedScriptValue.h"
</span><del>-#include <wtf/OwnPtr.h>
</del><ins>+#include <memory>
</ins><span class="cx"> #include <wtf/Forward.h>
</span><del>-#include <wtf/PassOwnPtr.h>
</del><span class="cx"> #include <wtf/PassRefPtr.h>
</span><span class="cx"> #include <wtf/RefCounted.h>
</span><span class="cx"> #include <wtf/RefPtr.h>
</span><span class="lines">@@ -49,13 +48,14 @@
</span><span class="cx"> class SerializedScriptValue;
</span><span class="cx">
</span><span class="cx"> // The overwhelmingly common case is sending a single port, so handle that efficiently with an inline buffer of size 1.
</span><del>- typedef Vector<OwnPtr<MessagePortChannel>, 1> MessagePortChannelArray;
</del><ins>+ typedef Vector<std::unique_ptr<MessagePortChannel>, 1> MessagePortChannelArray;
</ins><span class="cx">
</span><span class="cx"> // MessagePortChannel is a platform-independent interface to the remote side of a message channel.
</span><span class="cx"> // It acts as a wrapper around the platform-dependent PlatformMessagePortChannel implementation which ensures that the platform-dependent close() method is invoked before destruction.
</span><span class="cx"> class MessagePortChannel {
</span><span class="cx"> WTF_MAKE_NONCOPYABLE(MessagePortChannel); WTF_MAKE_FAST_ALLOCATED;
</span><span class="cx"> public:
</span><ins>+ explicit MessagePortChannel(PassRefPtr<PlatformMessagePortChannel>);
</ins><span class="cx"> static void createChannel(PassRefPtr<MessagePort>, PassRefPtr<MessagePort>);
</span><span class="cx">
</span><span class="cx"> // Entangles the channel with a port (called when a port has been cloned, after the clone has been marshaled to its new owning thread and is ready to receive messages).
</span><span class="lines">@@ -75,10 +75,10 @@
</span><span class="cx"> bool hasPendingActivity();
</span><span class="cx">
</span><span class="cx"> // Sends a message and optional cloned port to the remote port.
</span><del>- void postMessageToRemote(PassRefPtr<SerializedScriptValue>, PassOwnPtr<MessagePortChannelArray>);
</del><ins>+ void postMessageToRemote(PassRefPtr<SerializedScriptValue>, std::unique_ptr<MessagePortChannelArray>);
</ins><span class="cx">
</span><span class="cx"> // Extracts a message from the message queue for this port.
</span><del>- bool tryGetMessageFromRemote(RefPtr<SerializedScriptValue>&, OwnPtr<MessagePortChannelArray>&);
</del><ins>+ bool tryGetMessageFromRemote(RefPtr<SerializedScriptValue>&, std::unique_ptr<MessagePortChannelArray>&);
</ins><span class="cx">
</span><span class="cx"> // Returns the entangled port if run by the same thread (see MessagePort::locallyEntangledPort() for more details).
</span><span class="cx"> MessagePort* locallyEntangledPort(const ScriptExecutionContext*);
</span><span class="lines">@@ -86,7 +86,6 @@
</span><span class="cx"> ~MessagePortChannel();
</span><span class="cx">
</span><span class="cx"> private:
</span><del>- explicit MessagePortChannel(PassRefPtr<PlatformMessagePortChannel>);
</del><span class="cx"> RefPtr<PlatformMessagePortChannel> m_channel;
</span><span class="cx"> };
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebCoredomdefaultPlatformMessagePortChannelcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/default/PlatformMessagePortChannel.cpp (163743 => 163744)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/default/PlatformMessagePortChannel.cpp        2014-02-09 07:29:10 UTC (rev 163743)
+++ trunk/Source/WebCore/dom/default/PlatformMessagePortChannel.cpp        2014-02-09 08:18:11 UTC (rev 163744)
</span><span class="lines">@@ -37,14 +37,9 @@
</span><span class="cx">
</span><span class="cx"> namespace WebCore {
</span><span class="cx">
</span><del>-std::unique_ptr<PlatformMessagePortChannel::EventData> PlatformMessagePortChannel::EventData::create(PassRefPtr<SerializedScriptValue> message, PassOwnPtr<MessagePortChannelArray> channels)
-{
- return std::unique_ptr<EventData>(new EventData(message, channels));
-}
-
-PlatformMessagePortChannel::EventData::EventData(PassRefPtr<SerializedScriptValue> message, PassOwnPtr<MessagePortChannelArray> channels)
</del><ins>+PlatformMessagePortChannel::EventData::EventData(PassRefPtr<SerializedScriptValue> message, std::unique_ptr<MessagePortChannelArray> channels)
</ins><span class="cx"> : m_message(message)
</span><del>- , m_channels(channels)
</del><ins>+ , m_channels(std::move(channels))
</ins><span class="cx"> {
</span><span class="cx"> }
</span><span class="cx">
</span><span class="lines">@@ -53,14 +48,14 @@
</span><span class="cx"> RefPtr<PlatformMessagePortChannel::MessagePortQueue> queue1 = PlatformMessagePortChannel::MessagePortQueue::create();
</span><span class="cx"> RefPtr<PlatformMessagePortChannel::MessagePortQueue> queue2 = PlatformMessagePortChannel::MessagePortQueue::create();
</span><span class="cx">
</span><del>- OwnPtr<MessagePortChannel> channel1 = adoptPtr(new MessagePortChannel(PlatformMessagePortChannel::create(queue1, queue2)));
- OwnPtr<MessagePortChannel> channel2 = adoptPtr(new MessagePortChannel(PlatformMessagePortChannel::create(queue2, queue1)));
</del><ins>+ auto channel1 = std::make_unique<MessagePortChannel>(PlatformMessagePortChannel::create(queue1, queue2));
+ auto channel2 = std::make_unique<MessagePortChannel>(PlatformMessagePortChannel::create(queue2, queue1));
</ins><span class="cx">
</span><span class="cx"> channel1->m_channel->m_entangledChannel = channel2->m_channel;
</span><span class="cx"> channel2->m_channel->m_entangledChannel = channel1->m_channel;
</span><span class="cx">
</span><del>- port1->entangle(channel2.release());
- port2->entangle(channel1.release());
</del><ins>+ port1->entangle(std::move(channel2));
+ port2->entangle(std::move(channel1));
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> MessagePortChannel::MessagePortChannel(PassRefPtr<PlatformMessagePortChannel> channel)
</span><span class="lines">@@ -91,17 +86,17 @@
</span><span class="cx"> remote->setRemotePort(0);
</span><span class="cx"> }
</span><span class="cx">
</span><del>-void MessagePortChannel::postMessageToRemote(PassRefPtr<SerializedScriptValue> message, PassOwnPtr<MessagePortChannelArray> channels)
</del><ins>+void MessagePortChannel::postMessageToRemote(PassRefPtr<SerializedScriptValue> message, std::unique_ptr<MessagePortChannelArray> channels)
</ins><span class="cx"> {
</span><span class="cx"> MutexLocker lock(m_channel->m_mutex);
</span><span class="cx"> if (!m_channel->m_outgoingQueue)
</span><span class="cx"> return;
</span><del>- bool wasEmpty = m_channel->m_outgoingQueue->appendAndCheckEmpty(PlatformMessagePortChannel::EventData::create(message, channels));
</del><ins>+ bool wasEmpty = m_channel->m_outgoingQueue->appendAndCheckEmpty(std::make_unique<PlatformMessagePortChannel::EventData>(message, std::move(channels)));
</ins><span class="cx"> if (wasEmpty && m_channel->m_remotePort)
</span><span class="cx"> m_channel->m_remotePort->messageAvailable();
</span><span class="cx"> }
</span><span class="cx">
</span><del>-bool MessagePortChannel::tryGetMessageFromRemote(RefPtr<SerializedScriptValue>& message, OwnPtr<MessagePortChannelArray>& channels)
</del><ins>+bool MessagePortChannel::tryGetMessageFromRemote(RefPtr<SerializedScriptValue>& message, std::unique_ptr<MessagePortChannelArray>& channels)
</ins><span class="cx"> {
</span><span class="cx"> MutexLocker lock(m_channel->m_mutex);
</span><span class="cx"> auto result = m_channel->m_incomingQueue->tryGetMessage();
</span></span></pre></div>
<a id="trunkSourceWebCoredomdefaultPlatformMessagePortChannelh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/default/PlatformMessagePortChannel.h (163743 => 163744)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/default/PlatformMessagePortChannel.h        2014-02-09 07:29:10 UTC (rev 163743)
+++ trunk/Source/WebCore/dom/default/PlatformMessagePortChannel.h        2014-02-09 08:18:11 UTC (rev 163744)
</span><span class="lines">@@ -49,15 +49,14 @@
</span><span class="cx"> class EventData {
</span><span class="cx"> WTF_MAKE_NONCOPYABLE(EventData); WTF_MAKE_FAST_ALLOCATED;
</span><span class="cx"> public:
</span><del>- static std::unique_ptr<EventData> create(PassRefPtr<SerializedScriptValue>, PassOwnPtr<MessagePortChannelArray>);
</del><ins>+ EventData(PassRefPtr<SerializedScriptValue> message, std::unique_ptr<MessagePortChannelArray>);
</ins><span class="cx">
</span><span class="cx"> PassRefPtr<SerializedScriptValue> message() { return m_message; }
</span><del>- PassOwnPtr<MessagePortChannelArray> channels() { return m_channels.release(); }
</del><ins>+ std::unique_ptr<MessagePortChannelArray> channels() { return std::move(m_channels); }
</ins><span class="cx">
</span><span class="cx"> private:
</span><del>- EventData(PassRefPtr<SerializedScriptValue> message, PassOwnPtr<MessagePortChannelArray>);
</del><span class="cx"> RefPtr<SerializedScriptValue> m_message;
</span><del>- OwnPtr<MessagePortChannelArray> m_channels;
</del><ins>+ std::unique_ptr<MessagePortChannelArray> m_channels;
</ins><span class="cx"> };
</span><span class="cx">
</span><span class="cx"> // Wrapper for MessageQueue that allows us to do thread safe sharing by two proxies.
</span></span></pre></div>
<a id="trunkSourceWebCorepageDOMWindowcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/DOMWindow.cpp (163743 => 163744)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/DOMWindow.cpp        2014-02-09 07:29:10 UTC (rev 163743)
+++ trunk/Source/WebCore/page/DOMWindow.cpp        2014-02-09 08:18:11 UTC (rev 163744)
</span><span class="lines">@@ -131,12 +131,12 @@
</span><span class="cx">
</span><span class="cx"> class PostMessageTimer : public TimerBase {
</span><span class="cx"> public:
</span><del>- PostMessageTimer(DOMWindow* window, PassRefPtr<SerializedScriptValue> message, const String& sourceOrigin, PassRefPtr<DOMWindow> source, PassOwnPtr<MessagePortChannelArray> channels, SecurityOrigin* targetOrigin, PassRefPtr<ScriptCallStack> stackTrace)
</del><ins>+ PostMessageTimer(DOMWindow* window, PassRefPtr<SerializedScriptValue> message, const String& sourceOrigin, PassRefPtr<DOMWindow> source, std::unique_ptr<MessagePortChannelArray> channels, SecurityOrigin* targetOrigin, PassRefPtr<ScriptCallStack> stackTrace)
</ins><span class="cx"> : m_window(window)
</span><span class="cx"> , m_message(message)
</span><span class="cx"> , m_origin(sourceOrigin)
</span><span class="cx"> , m_source(source)
</span><del>- , m_channels(channels)
</del><ins>+ , m_channels(std::move(channels))
</ins><span class="cx"> , m_targetOrigin(targetOrigin)
</span><span class="cx"> , m_stackTrace(stackTrace)
</span><span class="cx"> {
</span><span class="lines">@@ -144,8 +144,8 @@
</span><span class="cx">
</span><span class="cx"> PassRefPtr<MessageEvent> event(ScriptExecutionContext* context)
</span><span class="cx"> {
</span><del>- OwnPtr<MessagePortArray> messagePorts = MessagePort::entanglePorts(*context, m_channels.release());
- return MessageEvent::create(messagePorts.release(), m_message, m_origin, String(), m_source);
</del><ins>+ std::unique_ptr<MessagePortArray> messagePorts = MessagePort::entanglePorts(*context, std::move(m_channels));
+ return MessageEvent::create(std::move(messagePorts), m_message, m_origin, String(), m_source);
</ins><span class="cx"> }
</span><span class="cx"> SecurityOrigin* targetOrigin() const { return m_targetOrigin.get(); }
</span><span class="cx"> ScriptCallStack* stackTrace() const { return m_stackTrace.get(); }
</span><span class="lines">@@ -161,7 +161,7 @@
</span><span class="cx"> RefPtr<SerializedScriptValue> m_message;
</span><span class="cx"> String m_origin;
</span><span class="cx"> RefPtr<DOMWindow> m_source;
</span><del>- OwnPtr<MessagePortChannelArray> m_channels;
</del><ins>+ std::unique_ptr<MessagePortChannelArray> m_channels;
</ins><span class="cx"> RefPtr<SecurityOrigin> m_targetOrigin;
</span><span class="cx"> RefPtr<ScriptCallStack> m_stackTrace;
</span><span class="cx"> };
</span><span class="lines">@@ -833,7 +833,7 @@
</span><span class="cx"> }
</span><span class="cx"> }
</span><span class="cx">
</span><del>- OwnPtr<MessagePortChannelArray> channels = MessagePort::disentanglePorts(ports, ec);
</del><ins>+ std::unique_ptr<MessagePortChannelArray> channels = MessagePort::disentanglePorts(ports, ec);
</ins><span class="cx"> if (ec)
</span><span class="cx"> return;
</span><span class="cx">
</span><span class="lines">@@ -849,7 +849,7 @@
</span><span class="cx"> stackTrace = createScriptCallStack(JSMainThreadExecState::currentState(), ScriptCallStack::maxCallStackSizeToCapture, true);
</span><span class="cx">
</span><span class="cx"> // Schedule the message.
</span><del>- PostMessageTimer* timer = new PostMessageTimer(this, message, sourceOrigin, &source, channels.release(), target.get(), stackTrace.release());
</del><ins>+ PostMessageTimer* timer = new PostMessageTimer(this, message, sourceOrigin, &source, std::move(channels), target.get(), stackTrace.release());
</ins><span class="cx"> timer->startOneShot(0);
</span><span class="cx"> }
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebCoreworkersDedicatedWorkerGlobalScopecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/workers/DedicatedWorkerGlobalScope.cpp (163743 => 163744)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/workers/DedicatedWorkerGlobalScope.cpp        2014-02-09 07:29:10 UTC (rev 163743)
+++ trunk/Source/WebCore/workers/DedicatedWorkerGlobalScope.cpp        2014-02-09 08:18:11 UTC (rev 163744)
</span><span class="lines">@@ -71,10 +71,10 @@
</span><span class="cx"> void DedicatedWorkerGlobalScope::postMessage(PassRefPtr<SerializedScriptValue> message, const MessagePortArray* ports, ExceptionCode& ec)
</span><span class="cx"> {
</span><span class="cx"> // Disentangle the port in preparation for sending it to the remote context.
</span><del>- OwnPtr<MessagePortChannelArray> channels = MessagePort::disentanglePorts(ports, ec);
</del><ins>+ std::unique_ptr<MessagePortChannelArray> channels = MessagePort::disentanglePorts(ports, ec);
</ins><span class="cx"> if (ec)
</span><span class="cx"> return;
</span><del>- thread()->workerObjectProxy().postMessageToWorkerObject(message, channels.release());
</del><ins>+ thread()->workerObjectProxy().postMessageToWorkerObject(message, std::move(channels));
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void DedicatedWorkerGlobalScope::importScripts(const Vector<String>& urls, ExceptionCode& ec)
</span></span></pre></div>
<a id="trunkSourceWebCoreworkersDefaultSharedWorkerRepositorycpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/workers/DefaultSharedWorkerRepository.cpp (163743 => 163744)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/workers/DefaultSharedWorkerRepository.cpp        2014-02-09 07:29:10 UTC (rev 163743)
+++ trunk/Source/WebCore/workers/DefaultSharedWorkerRepository.cpp        2014-02-09 08:18:11 UTC (rev 163744)
</span><span class="lines">@@ -254,21 +254,21 @@
</span><span class="cx">
</span><span class="cx"> class SharedWorkerConnectTask : public ScriptExecutionContext::Task {
</span><span class="cx"> public:
</span><del>- static PassOwnPtr<SharedWorkerConnectTask> create(PassOwnPtr<MessagePortChannel> channel)
</del><ins>+ static PassOwnPtr<SharedWorkerConnectTask> create(std::unique_ptr<MessagePortChannel> channel)
</ins><span class="cx"> {
</span><del>- return adoptPtr(new SharedWorkerConnectTask(channel));
</del><ins>+ return adoptPtr(new SharedWorkerConnectTask(std::move(channel)));
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> private:
</span><del>- SharedWorkerConnectTask(PassOwnPtr<MessagePortChannel> channel)
- : m_channel(channel)
</del><ins>+ SharedWorkerConnectTask(std::unique_ptr<MessagePortChannel> channel)
+ : m_channel(std::move(channel))
</ins><span class="cx"> {
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> virtual void performTask(ScriptExecutionContext* scriptContext)
</span><span class="cx"> {
</span><span class="cx"> RefPtr<MessagePort> port = MessagePort::create(*scriptContext);
</span><del>- port->entangle(m_channel.release());
</del><ins>+ port->entangle(std::move(m_channel));
</ins><span class="cx"> ASSERT_WITH_SECURITY_IMPLICATION(scriptContext->isWorkerGlobalScope());
</span><span class="cx"> WorkerGlobalScope* workerGlobalScope = static_cast<WorkerGlobalScope*>(scriptContext);
</span><span class="cx"> // Since close() stops the thread event loop, this should not ever get called while closing.
</span><span class="lines">@@ -277,13 +277,13 @@
</span><span class="cx"> workerGlobalScope->dispatchEvent(createConnectEvent(port));
</span><span class="cx"> }
</span><span class="cx">
</span><del>- OwnPtr<MessagePortChannel> m_channel;
</del><ins>+ std::unique_ptr<MessagePortChannel> m_channel;
</ins><span class="cx"> };
</span><span class="cx">
</span><span class="cx"> // Loads the script on behalf of a worker.
</span><span class="cx"> class SharedWorkerScriptLoader : public RefCounted<SharedWorkerScriptLoader>, private WorkerScriptLoaderClient {
</span><span class="cx"> public:
</span><del>- SharedWorkerScriptLoader(PassRefPtr<SharedWorker>, PassOwnPtr<MessagePortChannel>, PassRefPtr<SharedWorkerProxy>);
</del><ins>+ SharedWorkerScriptLoader(PassRefPtr<SharedWorker>, std::unique_ptr<MessagePortChannel>, PassRefPtr<SharedWorkerProxy>);
</ins><span class="cx"> void load(const URL&);
</span><span class="cx">
</span><span class="cx"> private:
</span><span class="lines">@@ -292,14 +292,14 @@
</span><span class="cx"> virtual void notifyFinished();
</span><span class="cx">
</span><span class="cx"> RefPtr<SharedWorker> m_worker;
</span><del>- OwnPtr<MessagePortChannel> m_port;
</del><ins>+ std::unique_ptr<MessagePortChannel> m_port;
</ins><span class="cx"> RefPtr<SharedWorkerProxy> m_proxy;
</span><span class="cx"> RefPtr<WorkerScriptLoader> m_scriptLoader;
</span><span class="cx"> };
</span><span class="cx">
</span><del>-SharedWorkerScriptLoader::SharedWorkerScriptLoader(PassRefPtr<SharedWorker> worker, PassOwnPtr<MessagePortChannel> port, PassRefPtr<SharedWorkerProxy> proxy)
</del><ins>+SharedWorkerScriptLoader::SharedWorkerScriptLoader(PassRefPtr<SharedWorker> worker, std::unique_ptr<MessagePortChannel> port, PassRefPtr<SharedWorkerProxy> proxy)
</ins><span class="cx"> : m_worker(worker)
</span><del>- , m_port(port)
</del><ins>+ , m_port(std::move(port))
</ins><span class="cx"> , m_proxy(proxy)
</span><span class="cx"> {
</span><span class="cx"> }
</span><span class="lines">@@ -331,9 +331,9 @@
</span><span class="cx"> else {
</span><span class="cx"> InspectorInstrumentation::scriptImported(m_worker->scriptExecutionContext(), m_scriptLoader->identifier(), m_scriptLoader->script());
</span><span class="cx"> DefaultSharedWorkerRepository::instance().workerScriptLoaded(*m_proxy, m_worker->scriptExecutionContext()->userAgent(m_scriptLoader->url()),
</span><del>- m_scriptLoader->script(), m_port.release(),
- m_worker->scriptExecutionContext()->contentSecurityPolicy()->deprecatedHeader(),
- m_worker->scriptExecutionContext()->contentSecurityPolicy()->deprecatedHeaderType());
</del><ins>+ m_scriptLoader->script(), std::move(m_port),
+ m_worker->scriptExecutionContext()->contentSecurityPolicy()->deprecatedHeader(),
+ m_worker->scriptExecutionContext()->contentSecurityPolicy()->deprecatedHeaderType());
</ins><span class="cx"> }
</span><span class="cx"> m_worker->unsetPendingActivity(m_worker.get());
</span><span class="cx"> this->deref(); // This frees this object - must be the last action in this function.
</span><span class="lines">@@ -355,7 +355,7 @@
</span><span class="cx"> return platformStrategies()->sharedWorkerStrategy()->isAvailable();
</span><span class="cx"> }
</span><span class="cx">
</span><del>-void DefaultSharedWorkerRepository::workerScriptLoaded(SharedWorkerProxy& proxy, const String& userAgent, const String& workerScript, PassOwnPtr<MessagePortChannel> port, const String& contentSecurityPolicy, ContentSecurityPolicy::HeaderType contentSecurityPolicyType)
</del><ins>+void DefaultSharedWorkerRepository::workerScriptLoaded(SharedWorkerProxy& proxy, const String& userAgent, const String& workerScript, std::unique_ptr<MessagePortChannel> port, const String& contentSecurityPolicy, ContentSecurityPolicy::HeaderType contentSecurityPolicyType)
</ins><span class="cx"> {
</span><span class="cx"> MutexLocker lock(m_lock);
</span><span class="cx"> if (proxy.isClosing())
</span><span class="lines">@@ -367,7 +367,7 @@
</span><span class="cx"> proxy.setThread(thread);
</span><span class="cx"> thread->start();
</span><span class="cx"> }
</span><del>- proxy.thread()->runLoop().postTask(SharedWorkerConnectTask::create(port));
</del><ins>+ proxy.thread()->runLoop().postTask(SharedWorkerConnectTask::create(std::move(port)));
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> bool DefaultSharedWorkerRepository::hasSharedWorkers(Document* document)
</span><span class="lines">@@ -398,7 +398,7 @@
</span><span class="cx"> m_proxies[i]->documentDetached(document);
</span><span class="cx"> }
</span><span class="cx">
</span><del>-void DefaultSharedWorkerRepository::connectToWorker(PassRefPtr<SharedWorker> worker, PassOwnPtr<MessagePortChannel> port, const URL& url, const String& name, ExceptionCode& ec)
</del><ins>+void DefaultSharedWorkerRepository::connectToWorker(PassRefPtr<SharedWorker> worker, std::unique_ptr<MessagePortChannel> port, const URL& url, const String& name, ExceptionCode& ec)
</ins><span class="cx"> {
</span><span class="cx"> MutexLocker lock(m_lock);
</span><span class="cx"> ASSERT(worker->scriptExecutionContext()->securityOrigin()->canAccess(SecurityOrigin::create(url).get()));
</span><span class="lines">@@ -415,9 +415,9 @@
</span><span class="cx"> }
</span><span class="cx"> // If proxy is already running, just connect to it - otherwise, kick off a loader to load the script.
</span><span class="cx"> if (proxy->thread())
</span><del>- proxy->thread()->runLoop().postTask(SharedWorkerConnectTask::create(port));
</del><ins>+ proxy->thread()->runLoop().postTask(SharedWorkerConnectTask::create(std::move(port)));
</ins><span class="cx"> else {
</span><del>- RefPtr<SharedWorkerScriptLoader> loader = adoptRef(new SharedWorkerScriptLoader(worker, port, proxy.release()));
</del><ins>+ RefPtr<SharedWorkerScriptLoader> loader = adoptRef(new SharedWorkerScriptLoader(worker, std::move(port), proxy.release()));
</ins><span class="cx"> loader->load(url);
</span><span class="cx"> }
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCoreworkersDefaultSharedWorkerRepositoryh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/workers/DefaultSharedWorkerRepository.h (163743 => 163744)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/workers/DefaultSharedWorkerRepository.h        2014-02-09 07:29:10 UTC (rev 163743)
+++ trunk/Source/WebCore/workers/DefaultSharedWorkerRepository.h        2014-02-09 08:18:11 UTC (rev 163744)
</span><span class="lines">@@ -34,10 +34,10 @@
</span><span class="cx"> #if ENABLE(SHARED_WORKERS)
</span><span class="cx">
</span><span class="cx"> #include "ContentSecurityPolicy.h"
</span><ins>+#include <memory>
</ins><span class="cx"> #include <wtf/Forward.h>
</span><span class="cx"> #include <wtf/HashMap.h>
</span><span class="cx"> #include <wtf/Noncopyable.h>
</span><del>-#include <wtf/PassOwnPtr.h>
</del><span class="cx"> #include <wtf/PassRefPtr.h>
</span><span class="cx"> #include <wtf/RefPtr.h>
</span><span class="cx"> #include <wtf/Threading.h>
</span><span class="lines">@@ -62,10 +62,10 @@
</span><span class="cx"> static bool isAvailable();
</span><span class="cx">
</span><span class="cx"> // Invoked once the worker script has been loaded to fire up the worker thread.
</span><del>- void workerScriptLoaded(SharedWorkerProxy&, const String& userAgent, const String& workerScript, PassOwnPtr<MessagePortChannel>, const String& contentSecurityPolicy, ContentSecurityPolicy::HeaderType);
</del><ins>+ void workerScriptLoaded(SharedWorkerProxy&, const String& userAgent, const String& workerScript, std::unique_ptr<MessagePortChannel>, const String& contentSecurityPolicy, ContentSecurityPolicy::HeaderType);
</ins><span class="cx">
</span><span class="cx"> // Internal implementation of SharedWorkerRepository::connect()
</span><del>- void connectToWorker(PassRefPtr<SharedWorker>, PassOwnPtr<MessagePortChannel>, const URL&, const String& name, ExceptionCode&);
</del><ins>+ void connectToWorker(PassRefPtr<SharedWorker>, std::unique_ptr<MessagePortChannel>, const URL&, const String& name, ExceptionCode&);
</ins><span class="cx">
</span><span class="cx"> // Notification that a document has been detached.
</span><span class="cx"> void documentDetached(Document*);
</span></span></pre></div>
<a id="trunkSourceWebCoreworkersSharedWorkercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/workers/SharedWorker.cpp (163743 => 163744)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/workers/SharedWorker.cpp        2014-02-09 07:29:10 UTC (rev 163743)
+++ trunk/Source/WebCore/workers/SharedWorker.cpp        2014-02-09 08:18:11 UTC (rev 163744)
</span><span class="lines">@@ -66,7 +66,7 @@
</span><span class="cx">
</span><span class="cx"> RefPtr<MessageChannel> channel = MessageChannel::create(context);
</span><span class="cx"> worker->m_port = channel->port1();
</span><del>- OwnPtr<MessagePortChannel> remotePort = channel->port2()->disentangle();
</del><ins>+ std::unique_ptr<MessagePortChannel> remotePort = channel->port2()->disentangle();
</ins><span class="cx"> ASSERT(remotePort);
</span><span class="cx">
</span><span class="cx"> worker->suspendIfNeeded();
</span><span class="lines">@@ -80,7 +80,7 @@
</span><span class="cx"> return 0;
</span><span class="cx"> }
</span><span class="cx">
</span><del>- SharedWorkerRepository::connect(worker.get(), remotePort.release(), scriptURL, name, ec);
</del><ins>+ SharedWorkerRepository::connect(worker.get(), std::move(remotePort), scriptURL, name, ec);
</ins><span class="cx">
</span><span class="cx"> return worker.release();
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCoreworkersSharedWorkerGlobalScopecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/workers/SharedWorkerGlobalScope.cpp (163743 => 163744)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/workers/SharedWorkerGlobalScope.cpp        2014-02-09 07:29:10 UTC (rev 163743)
+++ trunk/Source/WebCore/workers/SharedWorkerGlobalScope.cpp        2014-02-09 08:18:11 UTC (rev 163744)
</span><span class="lines">@@ -47,7 +47,7 @@
</span><span class="cx"> PassRefPtr<MessageEvent> createConnectEvent(PassRefPtr<MessagePort> prpPort)
</span><span class="cx"> {
</span><span class="cx"> RefPtr<MessagePort> port = prpPort;
</span><del>- RefPtr<MessageEvent> event = MessageEvent::create(adoptPtr(new MessagePortArray(1, port)), Deprecated::ScriptValue(), String(), String(), port);
</del><ins>+ RefPtr<MessageEvent> event = MessageEvent::create(std::make_unique<MessagePortArray>(1, port), Deprecated::ScriptValue(), String(), String(), port);
</ins><span class="cx"> event->initEvent(eventNames().connectEvent, false, false);
</span><span class="cx"> return event.release();
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCoreworkersSharedWorkerRepositorycpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/workers/SharedWorkerRepository.cpp (163743 => 163744)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/workers/SharedWorkerRepository.cpp        2014-02-09 07:29:10 UTC (rev 163743)
+++ trunk/Source/WebCore/workers/SharedWorkerRepository.cpp        2014-02-09 08:18:11 UTC (rev 163744)
</span><span class="lines">@@ -41,9 +41,9 @@
</span><span class="cx"> return DefaultSharedWorkerRepository::instance().isAvailable();
</span><span class="cx"> }
</span><span class="cx">
</span><del>-void SharedWorkerRepository::connect(PassRefPtr<SharedWorker> worker, PassOwnPtr<MessagePortChannel> port, const URL& url, const String& name, ExceptionCode& ec)
</del><ins>+void SharedWorkerRepository::connect(PassRefPtr<SharedWorker> worker, std::unique_ptr<MessagePortChannel> port, const URL& url, const String& name, ExceptionCode& ec)
</ins><span class="cx"> {
</span><del>- DefaultSharedWorkerRepository::instance().connectToWorker(worker, port, url, name, ec);
</del><ins>+ DefaultSharedWorkerRepository::instance().connectToWorker(worker, std::move(port), url, name, ec);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void SharedWorkerRepository::documentDetached(Document* document)
</span></span></pre></div>
<a id="trunkSourceWebCoreworkersSharedWorkerRepositoryh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/workers/SharedWorkerRepository.h (163743 => 163744)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/workers/SharedWorkerRepository.h        2014-02-09 07:29:10 UTC (rev 163743)
+++ trunk/Source/WebCore/workers/SharedWorkerRepository.h        2014-02-09 08:18:11 UTC (rev 163744)
</span><span class="lines">@@ -33,8 +33,8 @@
</span><span class="cx">
</span><span class="cx"> #if ENABLE(SHARED_WORKERS)
</span><span class="cx">
</span><ins>+#include <memory>
</ins><span class="cx"> #include <wtf/Forward.h>
</span><del>-#include <wtf/PassOwnPtr.h>
</del><span class="cx"> #include <wtf/PassRefPtr.h>
</span><span class="cx">
</span><span class="cx"> namespace WebCore {
</span><span class="lines">@@ -53,7 +53,7 @@
</span><span class="cx"> static bool isAvailable();
</span><span class="cx">
</span><span class="cx"> // Connects the passed SharedWorker object with the specified worker thread, creating a new thread if necessary.
</span><del>- static void connect(PassRefPtr<SharedWorker>, PassOwnPtr<MessagePortChannel>, const URL&, const String& name, ExceptionCode&);
</del><ins>+ static void connect(PassRefPtr<SharedWorker>, std::unique_ptr<MessagePortChannel>, const URL&, const String& name, ExceptionCode&);
</ins><span class="cx">
</span><span class="cx"> // Invoked when a document has been detached.
</span><span class="cx"> static void documentDetached(Document*);
</span></span></pre></div>
<a id="trunkSourceWebCoreworkersWorkercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/workers/Worker.cpp (163743 => 163744)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/workers/Worker.cpp        2014-02-09 07:29:10 UTC (rev 163743)
+++ trunk/Source/WebCore/workers/Worker.cpp        2014-02-09 08:18:11 UTC (rev 163744)
</span><span class="lines">@@ -119,10 +119,10 @@
</span><span class="cx"> void Worker::postMessage(PassRefPtr<SerializedScriptValue> message, const MessagePortArray* ports, ExceptionCode& ec)
</span><span class="cx"> {
</span><span class="cx"> // Disentangle the port in preparation for sending it to the remote context.
</span><del>- OwnPtr<MessagePortChannelArray> channels = MessagePort::disentanglePorts(ports, ec);
</del><ins>+ std::unique_ptr<MessagePortChannelArray> channels = MessagePort::disentanglePorts(ports, ec);
</ins><span class="cx"> if (ec)
</span><span class="cx"> return;
</span><del>- m_contextProxy->postMessageToWorkerGlobalScope(message, channels.release());
</del><ins>+ m_contextProxy->postMessageToWorkerGlobalScope(message, std::move(channels));
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void Worker::terminate()
</span></span></pre></div>
<a id="trunkSourceWebCoreworkersWorkerGlobalScopeProxyh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/workers/WorkerGlobalScopeProxy.h (163743 => 163744)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/workers/WorkerGlobalScopeProxy.h        2014-02-09 07:29:10 UTC (rev 163743)
+++ trunk/Source/WebCore/workers/WorkerGlobalScopeProxy.h        2014-02-09 08:18:11 UTC (rev 163744)
</span><span class="lines">@@ -33,8 +33,8 @@
</span><span class="cx">
</span><span class="cx"> #include "MessagePort.h"
</span><span class="cx"> #include "WorkerThread.h"
</span><ins>+#include <memory>
</ins><span class="cx"> #include <wtf/Forward.h>
</span><del>-#include <wtf/PassOwnPtr.h>
</del><span class="cx">
</span><span class="cx"> namespace WebCore {
</span><span class="cx">
</span><span class="lines">@@ -52,7 +52,7 @@
</span><span class="cx">
</span><span class="cx"> virtual void terminateWorkerGlobalScope() = 0;
</span><span class="cx">
</span><del>- virtual void postMessageToWorkerGlobalScope(PassRefPtr<SerializedScriptValue>, PassOwnPtr<MessagePortChannelArray>) = 0;
</del><ins>+ virtual void postMessageToWorkerGlobalScope(PassRefPtr<SerializedScriptValue>, std::unique_ptr<MessagePortChannelArray>) = 0;
</ins><span class="cx">
</span><span class="cx"> virtual bool hasPendingActivity() const = 0;
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebCoreworkersWorkerMessagingProxycpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/workers/WorkerMessagingProxy.cpp (163743 => 163744)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/workers/WorkerMessagingProxy.cpp        2014-02-09 07:29:10 UTC (rev 163743)
+++ trunk/Source/WebCore/workers/WorkerMessagingProxy.cpp        2014-02-09 08:18:11 UTC (rev 163744)
</span><span class="lines">@@ -55,15 +55,15 @@
</span><span class="cx">
</span><span class="cx"> class MessageWorkerGlobalScopeTask : public ScriptExecutionContext::Task {
</span><span class="cx"> public:
</span><del>- static PassOwnPtr<MessageWorkerGlobalScopeTask> create(PassRefPtr<SerializedScriptValue> message, PassOwnPtr<MessagePortChannelArray> channels)
</del><ins>+ static PassOwnPtr<MessageWorkerGlobalScopeTask> create(PassRefPtr<SerializedScriptValue> message, std::unique_ptr<MessagePortChannelArray> channels)
</ins><span class="cx"> {
</span><del>- return adoptPtr(new MessageWorkerGlobalScopeTask(message, channels));
</del><ins>+ return adoptPtr(new MessageWorkerGlobalScopeTask(message, std::move(channels)));
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> private:
</span><del>- MessageWorkerGlobalScopeTask(PassRefPtr<SerializedScriptValue> message, PassOwnPtr<MessagePortChannelArray> channels)
</del><ins>+ MessageWorkerGlobalScopeTask(PassRefPtr<SerializedScriptValue> message, std::unique_ptr<MessagePortChannelArray> channels)
</ins><span class="cx"> : m_message(message)
</span><del>- , m_channels(channels)
</del><ins>+ , m_channels(std::move(channels))
</ins><span class="cx"> {
</span><span class="cx"> }
</span><span class="cx">
</span><span class="lines">@@ -71,27 +71,27 @@
</span><span class="cx"> {
</span><span class="cx"> ASSERT_WITH_SECURITY_IMPLICATION(scriptContext->isWorkerGlobalScope());
</span><span class="cx"> DedicatedWorkerGlobalScope* context = static_cast<DedicatedWorkerGlobalScope*>(scriptContext);
</span><del>- OwnPtr<MessagePortArray> ports = MessagePort::entanglePorts(*scriptContext, m_channels.release());
- context->dispatchEvent(MessageEvent::create(ports.release(), m_message));
</del><ins>+ std::unique_ptr<MessagePortArray> ports = MessagePort::entanglePorts(*scriptContext, std::move(m_channels));
+ context->dispatchEvent(MessageEvent::create(std::move(ports), m_message));
</ins><span class="cx"> context->thread()->workerObjectProxy().confirmMessageFromWorkerObject(context->hasPendingActivity());
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> private:
</span><span class="cx"> RefPtr<SerializedScriptValue> m_message;
</span><del>- OwnPtr<MessagePortChannelArray> m_channels;
</del><ins>+ std::unique_ptr<MessagePortChannelArray> m_channels;
</ins><span class="cx"> };
</span><span class="cx">
</span><span class="cx"> class MessageWorkerTask : public ScriptExecutionContext::Task {
</span><span class="cx"> public:
</span><del>- static PassOwnPtr<MessageWorkerTask> create(PassRefPtr<SerializedScriptValue> message, PassOwnPtr<MessagePortChannelArray> channels, WorkerMessagingProxy* messagingProxy)
</del><ins>+ static PassOwnPtr<MessageWorkerTask> create(PassRefPtr<SerializedScriptValue> message, std::unique_ptr<MessagePortChannelArray> channels, WorkerMessagingProxy* messagingProxy)
</ins><span class="cx"> {
</span><del>- return adoptPtr(new MessageWorkerTask(message, channels, messagingProxy));
</del><ins>+ return adoptPtr(new MessageWorkerTask(message, std::move(channels), messagingProxy));
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> private:
</span><del>- MessageWorkerTask(PassRefPtr<SerializedScriptValue> message, PassOwnPtr<MessagePortChannelArray> channels, WorkerMessagingProxy* messagingProxy)
</del><ins>+ MessageWorkerTask(PassRefPtr<SerializedScriptValue> message, std::unique_ptr<MessagePortChannelArray> channels, WorkerMessagingProxy* messagingProxy)
</ins><span class="cx"> : m_message(message)
</span><del>- , m_channels(channels)
</del><ins>+ , m_channels(std::move(channels))
</ins><span class="cx"> , m_messagingProxy(messagingProxy)
</span><span class="cx"> {
</span><span class="cx"> }
</span><span class="lines">@@ -102,13 +102,13 @@
</span><span class="cx"> if (!workerObject || m_messagingProxy->askedToTerminate())
</span><span class="cx"> return;
</span><span class="cx">
</span><del>- OwnPtr<MessagePortArray> ports = MessagePort::entanglePorts(*scriptContext, m_channels.release());
- workerObject->dispatchEvent(MessageEvent::create(ports.release(), m_message));
</del><ins>+ std::unique_ptr<MessagePortArray> ports = MessagePort::entanglePorts(*scriptContext, std::move(m_channels));
+ workerObject->dispatchEvent(MessageEvent::create(std::move(ports), m_message));
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> private:
</span><span class="cx"> RefPtr<SerializedScriptValue> m_message;
</span><del>- OwnPtr<MessagePortChannelArray> m_channels;
</del><ins>+ std::unique_ptr<MessagePortChannelArray> m_channels;
</ins><span class="cx"> WorkerMessagingProxy* m_messagingProxy;
</span><span class="cx"> };
</span><span class="cx">
</span><span class="lines">@@ -309,21 +309,21 @@
</span><span class="cx"> InspectorInstrumentation::didStartWorkerGlobalScope(m_scriptExecutionContext.get(), this, scriptURL);
</span><span class="cx"> }
</span><span class="cx">
</span><del>-void WorkerMessagingProxy::postMessageToWorkerObject(PassRefPtr<SerializedScriptValue> message, PassOwnPtr<MessagePortChannelArray> channels)
</del><ins>+void WorkerMessagingProxy::postMessageToWorkerObject(PassRefPtr<SerializedScriptValue> message, std::unique_ptr<MessagePortChannelArray> channels)
</ins><span class="cx"> {
</span><del>- m_scriptExecutionContext->postTask(MessageWorkerTask::create(message, channels, this));
</del><ins>+ m_scriptExecutionContext->postTask(MessageWorkerTask::create(message, std::move(channels), this));
</ins><span class="cx"> }
</span><span class="cx">
</span><del>-void WorkerMessagingProxy::postMessageToWorkerGlobalScope(PassRefPtr<SerializedScriptValue> message, PassOwnPtr<MessagePortChannelArray> channels)
</del><ins>+void WorkerMessagingProxy::postMessageToWorkerGlobalScope(PassRefPtr<SerializedScriptValue> message, std::unique_ptr<MessagePortChannelArray> channels)
</ins><span class="cx"> {
</span><span class="cx"> if (m_askedToTerminate)
</span><span class="cx"> return;
</span><span class="cx">
</span><span class="cx"> if (m_workerThread) {
</span><span class="cx"> ++m_unconfirmedMessageCount;
</span><del>- m_workerThread->runLoop().postTask(MessageWorkerGlobalScopeTask::create(message, channels));
</del><ins>+ m_workerThread->runLoop().postTask(MessageWorkerGlobalScopeTask::create(message, std::move(channels)));
</ins><span class="cx"> } else
</span><del>- m_queuedEarlyTasks.append(MessageWorkerGlobalScopeTask::create(message, channels));
</del><ins>+ m_queuedEarlyTasks.append(MessageWorkerGlobalScopeTask::create(message, std::move(channels)));
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> bool WorkerMessagingProxy::postTaskForModeToWorkerGlobalScope(PassOwnPtr<ScriptExecutionContext::Task> task, const String& mode)
</span></span></pre></div>
<a id="trunkSourceWebCoreworkersWorkerMessagingProxyh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/workers/WorkerMessagingProxy.h (163743 => 163744)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/workers/WorkerMessagingProxy.h        2014-02-09 07:29:10 UTC (rev 163743)
+++ trunk/Source/WebCore/workers/WorkerMessagingProxy.h        2014-02-09 08:18:11 UTC (rev 163744)
</span><span class="lines">@@ -31,6 +31,7 @@
</span><span class="cx"> #include "WorkerGlobalScopeProxy.h"
</span><span class="cx"> #include "WorkerLoaderProxy.h"
</span><span class="cx"> #include "WorkerObjectProxy.h"
</span><ins>+#include <memory>
</ins><span class="cx"> #include <wtf/Forward.h>
</span><span class="cx"> #include <wtf/Noncopyable.h>
</span><span class="cx"> #include <wtf/PassOwnPtr.h>
</span><span class="lines">@@ -53,7 +54,7 @@
</span><span class="cx"> // (Only use these methods in the worker object thread.)
</span><span class="cx"> virtual void startWorkerGlobalScope(const URL& scriptURL, const String& userAgent, const String& sourceCode, WorkerThreadStartMode) override;
</span><span class="cx"> virtual void terminateWorkerGlobalScope() override;
</span><del>- virtual void postMessageToWorkerGlobalScope(PassRefPtr<SerializedScriptValue>, PassOwnPtr<MessagePortChannelArray>) override;
</del><ins>+ virtual void postMessageToWorkerGlobalScope(PassRefPtr<SerializedScriptValue>, std::unique_ptr<MessagePortChannelArray>) override;
</ins><span class="cx"> virtual bool hasPendingActivity() const override;
</span><span class="cx"> virtual void workerObjectDestroyed() override;
</span><span class="cx"> virtual void notifyNetworkStateChange(bool isOnline) override;
</span><span class="lines">@@ -65,7 +66,7 @@
</span><span class="cx">
</span><span class="cx"> // Implementations of WorkerObjectProxy.
</span><span class="cx"> // (Only use these methods in the worker context thread.)
</span><del>- virtual void postMessageToWorkerObject(PassRefPtr<SerializedScriptValue>, PassOwnPtr<MessagePortChannelArray>) override;
</del><ins>+ virtual void postMessageToWorkerObject(PassRefPtr<SerializedScriptValue>, std::unique_ptr<MessagePortChannelArray>) override;
</ins><span class="cx"> virtual void postExceptionToWorkerObject(const String& errorMessage, int lineNumber, int columnNumber, const String& sourceURL) override;
</span><span class="cx"> virtual void postConsoleMessageToWorkerObject(MessageSource, MessageLevel, const String& message, int lineNumber, int columnNumber, const String& sourceURL) override;
</span><span class="cx"> #if ENABLE(INSPECTOR)
</span></span></pre></div>
<a id="trunkSourceWebCoreworkersWorkerObjectProxyh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/workers/WorkerObjectProxy.h (163743 => 163744)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/workers/WorkerObjectProxy.h        2014-02-09 07:29:10 UTC (rev 163743)
+++ trunk/Source/WebCore/workers/WorkerObjectProxy.h        2014-02-09 08:18:11 UTC (rev 163744)
</span><span class="lines">@@ -33,7 +33,7 @@
</span><span class="cx">
</span><span class="cx"> #include "WorkerReportingProxy.h"
</span><span class="cx"> #include "MessagePort.h"
</span><del>-#include <wtf/PassOwnPtr.h>
</del><ins>+#include <memory>
</ins><span class="cx">
</span><span class="cx"> namespace WebCore {
</span><span class="cx">
</span><span class="lines">@@ -42,7 +42,7 @@
</span><span class="cx"> // A proxy to talk to the worker object.
</span><span class="cx"> class WorkerObjectProxy : public WorkerReportingProxy {
</span><span class="cx"> public:
</span><del>- virtual void postMessageToWorkerObject(PassRefPtr<SerializedScriptValue>, PassOwnPtr<MessagePortChannelArray>) = 0;
</del><ins>+ virtual void postMessageToWorkerObject(PassRefPtr<SerializedScriptValue>, std::unique_ptr<MessagePortChannelArray>) = 0;
</ins><span class="cx">
</span><span class="cx"> virtual void confirmMessageFromWorkerObject(bool hasPendingActivity) = 0;
</span><span class="cx"> virtual void reportPendingActivity(bool hasPendingActivity) = 0;
</span></span></pre>
</div>
</div>
</body>
</html>