<!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>[164158] 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/164158">164158</a></dd>
<dt>Author</dt> <dd>akling@apple.com</dd>
<dt>Date</dt> <dd>2014-02-14 23:41:12 -0800 (Fri, 14 Feb 2014)</dd>
</dl>
<h3>Log Message</h3>
<pre>CTTE: WorkerGlobalScope is always owned by a WorkerThread.
<https://webkit.org/b/128834>
Codify this by storing the owner thread as a WorkerThread& and making
thread() return a reference.
This exposed a couple of unnecessary assertions.
Reviewed by Anders Carlsson.
* Modules/notifications/WorkerGlobalScopeNotifications.cpp:
(WebCore::WorkerGlobalScopeNotifications::webkitNotifications):
* Modules/websockets/ThreadableWebSocketChannel.cpp:
(WebCore::ThreadableWebSocketChannel::create):
* Modules/websockets/WorkerThreadableWebSocketChannel.cpp:
(WebCore::WorkerThreadableWebSocketChannel::Bridge::Bridge):
(WebCore::WorkerThreadableWebSocketChannel::Bridge::waitForMethodCompletion):
* bindings/js/ScheduledAction.cpp:
(WebCore::ScheduledAction::execute):
* bindings/js/WorkerScriptDebugServer.cpp:
(WebCore::WorkerScriptDebugServer::runEventLoopWhilePaused):
* dom/ScriptExecutionContext.cpp:
(WebCore::ScriptExecutionContext::createdMessagePort):
(WebCore::ScriptExecutionContext::destroyedMessagePort):
* inspector/WorkerDebuggerAgent.cpp:
(WebCore::WorkerDebuggerAgent::WorkerDebuggerAgent):
(WebCore::WorkerDebuggerAgent::~WorkerDebuggerAgent):
* inspector/WorkerInspectorController.cpp:
* inspector/WorkerRuntimeAgent.cpp:
(WebCore::WorkerRuntimeAgent::pauseWorkerGlobalScope):
* loader/WorkerThreadableLoader.cpp:
(WebCore::WorkerThreadableLoader::WorkerThreadableLoader):
(WebCore::WorkerThreadableLoader::loadResourceSynchronously):
* loader/cache/MemoryCache.cpp:
(WebCore::MemoryCache::removeRequestFromCache):
* workers/DedicatedWorkerGlobalScope.cpp:
(WebCore::DedicatedWorkerGlobalScope::create):
(WebCore::DedicatedWorkerGlobalScope::DedicatedWorkerGlobalScope):
(WebCore::DedicatedWorkerGlobalScope::postMessage):
(WebCore::DedicatedWorkerGlobalScope::importScripts):
(WebCore::DedicatedWorkerGlobalScope::thread):
* workers/DedicatedWorkerGlobalScope.h:
* workers/DedicatedWorkerThread.cpp:
(WebCore::DedicatedWorkerThread::createWorkerGlobalScope):
* workers/SharedWorkerGlobalScope.cpp:
(WebCore::SharedWorkerGlobalScope::create):
(WebCore::SharedWorkerGlobalScope::SharedWorkerGlobalScope):
(WebCore::SharedWorkerGlobalScope::thread):
* workers/SharedWorkerGlobalScope.h:
* workers/SharedWorkerThread.cpp:
(WebCore::SharedWorkerThread::createWorkerGlobalScope):
* workers/WorkerGlobalScope.cpp:
(WebCore::CloseWorkerGlobalScopeTask::performTask):
(WebCore::WorkerGlobalScope::WorkerGlobalScope):
(WebCore::WorkerGlobalScope::~WorkerGlobalScope):
(WebCore::WorkerGlobalScope::postTask):
(WebCore::WorkerGlobalScope::logExceptionToConsole):
(WebCore::WorkerGlobalScope::addConsoleMessage):
(WebCore::WorkerGlobalScope::addMessage):
(WebCore::WorkerGlobalScope::isContextThread):
* workers/WorkerGlobalScope.h:
(WebCore::WorkerGlobalScope::thread):
* workers/WorkerMessagingProxy.cpp:
(WebCore::MessageWorkerGlobalScopeTask::performTask):
(WebCore::WorkerMessagingProxy::WorkerMessagingProxy):
(WebCore::WorkerMessagingProxy::~WorkerMessagingProxy):
* workers/WorkerRunLoop.cpp:
(WebCore::WorkerRunLoop::runInMode):
(WebCore::WorkerRunLoop::runCleanupTasks):</pre>
<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkSourceWebCoreChangeLog">trunk/Source/WebCore/ChangeLog</a></li>
<li><a href="#trunkSourceWebCoreModulesnotificationsWorkerGlobalScopeNotificationscpp">trunk/Source/WebCore/Modules/notifications/WorkerGlobalScopeNotifications.cpp</a></li>
<li><a href="#trunkSourceWebCoreModuleswebsocketsThreadableWebSocketChannelcpp">trunk/Source/WebCore/Modules/websockets/ThreadableWebSocketChannel.cpp</a></li>
<li><a href="#trunkSourceWebCoreModuleswebsocketsWorkerThreadableWebSocketChannelcpp">trunk/Source/WebCore/Modules/websockets/WorkerThreadableWebSocketChannel.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsjsScheduledActioncpp">trunk/Source/WebCore/bindings/js/ScheduledAction.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsjsWorkerScriptDebugServercpp">trunk/Source/WebCore/bindings/js/WorkerScriptDebugServer.cpp</a></li>
<li><a href="#trunkSourceWebCoredomScriptExecutionContextcpp">trunk/Source/WebCore/dom/ScriptExecutionContext.cpp</a></li>
<li><a href="#trunkSourceWebCoreinspectorWorkerDebuggerAgentcpp">trunk/Source/WebCore/inspector/WorkerDebuggerAgent.cpp</a></li>
<li><a href="#trunkSourceWebCoreinspectorWorkerInspectorControllercpp">trunk/Source/WebCore/inspector/WorkerInspectorController.cpp</a></li>
<li><a href="#trunkSourceWebCoreinspectorWorkerRuntimeAgentcpp">trunk/Source/WebCore/inspector/WorkerRuntimeAgent.cpp</a></li>
<li><a href="#trunkSourceWebCoreloaderWorkerThreadableLoadercpp">trunk/Source/WebCore/loader/WorkerThreadableLoader.cpp</a></li>
<li><a href="#trunkSourceWebCoreloadercacheMemoryCachecpp">trunk/Source/WebCore/loader/cache/MemoryCache.cpp</a></li>
<li><a href="#trunkSourceWebCoreworkersDedicatedWorkerGlobalScopecpp">trunk/Source/WebCore/workers/DedicatedWorkerGlobalScope.cpp</a></li>
<li><a href="#trunkSourceWebCoreworkersDedicatedWorkerGlobalScopeh">trunk/Source/WebCore/workers/DedicatedWorkerGlobalScope.h</a></li>
<li><a href="#trunkSourceWebCoreworkersDedicatedWorkerThreadcpp">trunk/Source/WebCore/workers/DedicatedWorkerThread.cpp</a></li>
<li><a href="#trunkSourceWebCoreworkersSharedWorkerGlobalScopecpp">trunk/Source/WebCore/workers/SharedWorkerGlobalScope.cpp</a></li>
<li><a href="#trunkSourceWebCoreworkersSharedWorkerGlobalScopeh">trunk/Source/WebCore/workers/SharedWorkerGlobalScope.h</a></li>
<li><a href="#trunkSourceWebCoreworkersSharedWorkerThreadcpp">trunk/Source/WebCore/workers/SharedWorkerThread.cpp</a></li>
<li><a href="#trunkSourceWebCoreworkersWorkerGlobalScopecpp">trunk/Source/WebCore/workers/WorkerGlobalScope.cpp</a></li>
<li><a href="#trunkSourceWebCoreworkersWorkerGlobalScopeh">trunk/Source/WebCore/workers/WorkerGlobalScope.h</a></li>
<li><a href="#trunkSourceWebCoreworkersWorkerMessagingProxycpp">trunk/Source/WebCore/workers/WorkerMessagingProxy.cpp</a></li>
<li><a href="#trunkSourceWebCoreworkersWorkerRunLoopcpp">trunk/Source/WebCore/workers/WorkerRunLoop.cpp</a></li>
</ul>
</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkSourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/ChangeLog (164157 => 164158)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/ChangeLog        2014-02-15 05:45:26 UTC (rev 164157)
+++ trunk/Source/WebCore/ChangeLog        2014-02-15 07:41:12 UTC (rev 164158)
</span><span class="lines">@@ -1,3 +1,75 @@
</span><ins>+2014-02-14 Andreas Kling <akling@apple.com>
+
+ CTTE: WorkerGlobalScope is always owned by a WorkerThread.
+ <https://webkit.org/b/128834>
+
+ Codify this by storing the owner thread as a WorkerThread& and making
+ thread() return a reference.
+
+ This exposed a couple of unnecessary assertions.
+
+ Reviewed by Anders Carlsson.
+
+ * Modules/notifications/WorkerGlobalScopeNotifications.cpp:
+ (WebCore::WorkerGlobalScopeNotifications::webkitNotifications):
+ * Modules/websockets/ThreadableWebSocketChannel.cpp:
+ (WebCore::ThreadableWebSocketChannel::create):
+ * Modules/websockets/WorkerThreadableWebSocketChannel.cpp:
+ (WebCore::WorkerThreadableWebSocketChannel::Bridge::Bridge):
+ (WebCore::WorkerThreadableWebSocketChannel::Bridge::waitForMethodCompletion):
+ * bindings/js/ScheduledAction.cpp:
+ (WebCore::ScheduledAction::execute):
+ * bindings/js/WorkerScriptDebugServer.cpp:
+ (WebCore::WorkerScriptDebugServer::runEventLoopWhilePaused):
+ * dom/ScriptExecutionContext.cpp:
+ (WebCore::ScriptExecutionContext::createdMessagePort):
+ (WebCore::ScriptExecutionContext::destroyedMessagePort):
+ * inspector/WorkerDebuggerAgent.cpp:
+ (WebCore::WorkerDebuggerAgent::WorkerDebuggerAgent):
+ (WebCore::WorkerDebuggerAgent::~WorkerDebuggerAgent):
+ * inspector/WorkerInspectorController.cpp:
+ * inspector/WorkerRuntimeAgent.cpp:
+ (WebCore::WorkerRuntimeAgent::pauseWorkerGlobalScope):
+ * loader/WorkerThreadableLoader.cpp:
+ (WebCore::WorkerThreadableLoader::WorkerThreadableLoader):
+ (WebCore::WorkerThreadableLoader::loadResourceSynchronously):
+ * loader/cache/MemoryCache.cpp:
+ (WebCore::MemoryCache::removeRequestFromCache):
+ * workers/DedicatedWorkerGlobalScope.cpp:
+ (WebCore::DedicatedWorkerGlobalScope::create):
+ (WebCore::DedicatedWorkerGlobalScope::DedicatedWorkerGlobalScope):
+ (WebCore::DedicatedWorkerGlobalScope::postMessage):
+ (WebCore::DedicatedWorkerGlobalScope::importScripts):
+ (WebCore::DedicatedWorkerGlobalScope::thread):
+ * workers/DedicatedWorkerGlobalScope.h:
+ * workers/DedicatedWorkerThread.cpp:
+ (WebCore::DedicatedWorkerThread::createWorkerGlobalScope):
+ * workers/SharedWorkerGlobalScope.cpp:
+ (WebCore::SharedWorkerGlobalScope::create):
+ (WebCore::SharedWorkerGlobalScope::SharedWorkerGlobalScope):
+ (WebCore::SharedWorkerGlobalScope::thread):
+ * workers/SharedWorkerGlobalScope.h:
+ * workers/SharedWorkerThread.cpp:
+ (WebCore::SharedWorkerThread::createWorkerGlobalScope):
+ * workers/WorkerGlobalScope.cpp:
+ (WebCore::CloseWorkerGlobalScopeTask::performTask):
+ (WebCore::WorkerGlobalScope::WorkerGlobalScope):
+ (WebCore::WorkerGlobalScope::~WorkerGlobalScope):
+ (WebCore::WorkerGlobalScope::postTask):
+ (WebCore::WorkerGlobalScope::logExceptionToConsole):
+ (WebCore::WorkerGlobalScope::addConsoleMessage):
+ (WebCore::WorkerGlobalScope::addMessage):
+ (WebCore::WorkerGlobalScope::isContextThread):
+ * workers/WorkerGlobalScope.h:
+ (WebCore::WorkerGlobalScope::thread):
+ * workers/WorkerMessagingProxy.cpp:
+ (WebCore::MessageWorkerGlobalScopeTask::performTask):
+ (WebCore::WorkerMessagingProxy::WorkerMessagingProxy):
+ (WebCore::WorkerMessagingProxy::~WorkerMessagingProxy):
+ * workers/WorkerRunLoop.cpp:
+ (WebCore::WorkerRunLoop::runInMode):
+ (WebCore::WorkerRunLoop::runCleanupTasks):
+
</ins><span class="cx"> 2014-02-14 Ryosuke Niwa <rniwa@webkit.org>
</span><span class="cx">
</span><span class="cx"> setSelectionRange shouldn't trigger a synchronous layout to check focusability when text field is already focused
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesnotificationsWorkerGlobalScopeNotificationscpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/notifications/WorkerGlobalScopeNotifications.cpp (164157 => 164158)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/notifications/WorkerGlobalScopeNotifications.cpp        2014-02-15 05:45:26 UTC (rev 164157)
+++ trunk/Source/WebCore/Modules/notifications/WorkerGlobalScopeNotifications.cpp        2014-02-15 07:41:12 UTC (rev 164158)
</span><span class="lines">@@ -68,7 +68,7 @@
</span><span class="cx"> NotificationCenter* WorkerGlobalScopeNotifications::webkitNotifications()
</span><span class="cx"> {
</span><span class="cx"> if (!m_notificationCenter)
</span><del>- m_notificationCenter = NotificationCenter::create(m_context, m_context->thread()->getNotificationClient());
</del><ins>+ m_notificationCenter = NotificationCenter::create(m_context, m_context->thread().getNotificationClient());
</ins><span class="cx"> return m_notificationCenter.get();
</span><span class="cx"> }
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebCoreModuleswebsocketsThreadableWebSocketChannelcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/websockets/ThreadableWebSocketChannel.cpp (164157 => 164158)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/websockets/ThreadableWebSocketChannel.cpp        2014-02-15 05:45:26 UTC (rev 164157)
+++ trunk/Source/WebCore/Modules/websockets/ThreadableWebSocketChannel.cpp        2014-02-15 07:41:12 UTC (rev 164158)
</span><span class="lines">@@ -57,7 +57,7 @@
</span><span class="cx">
</span><span class="cx"> if (context->isWorkerGlobalScope()) {
</span><span class="cx"> WorkerGlobalScope* workerGlobalScope = static_cast<WorkerGlobalScope*>(context);
</span><del>- WorkerRunLoop& runLoop = workerGlobalScope->thread()->runLoop();
</del><ins>+ WorkerRunLoop& runLoop = workerGlobalScope->thread().runLoop();
</ins><span class="cx"> String mode = webSocketChannelMode;
</span><span class="cx"> mode.append(String::number(runLoop.createUniqueId()));
</span><span class="cx"> return WorkerThreadableWebSocketChannel::create(workerGlobalScope, client, mode);
</span></span></pre></div>
<a id="trunkSourceWebCoreModuleswebsocketsWorkerThreadableWebSocketChannelcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/websockets/WorkerThreadableWebSocketChannel.cpp (164157 => 164158)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/websockets/WorkerThreadableWebSocketChannel.cpp        2014-02-15 05:45:26 UTC (rev 164157)
+++ trunk/Source/WebCore/Modules/websockets/WorkerThreadableWebSocketChannel.cpp        2014-02-15 07:41:12 UTC (rev 164158)
</span><span class="lines">@@ -347,7 +347,7 @@
</span><span class="cx"> WorkerThreadableWebSocketChannel::Bridge::Bridge(PassRefPtr<ThreadableWebSocketChannelClientWrapper> workerClientWrapper, PassRefPtr<WorkerGlobalScope> workerGlobalScope, const String& taskMode)
</span><span class="cx"> : m_workerClientWrapper(workerClientWrapper)
</span><span class="cx"> , m_workerGlobalScope(workerGlobalScope)
</span><del>- , m_loaderProxy(m_workerGlobalScope->thread()->workerLoaderProxy())
</del><ins>+ , m_loaderProxy(m_workerGlobalScope->thread().workerLoaderProxy())
</ins><span class="cx"> , m_taskMode(taskMode)
</span><span class="cx"> , m_peer(0)
</span><span class="cx"> {
</span><span class="lines">@@ -645,7 +645,7 @@
</span><span class="cx"> {
</span><span class="cx"> if (!m_workerGlobalScope)
</span><span class="cx"> return;
</span><del>- WorkerRunLoop& runLoop = m_workerGlobalScope->thread()->runLoop();
</del><ins>+ WorkerRunLoop& runLoop = m_workerGlobalScope->thread().runLoop();
</ins><span class="cx"> MessageQueueWaitResult result = MessageQueueMessageReceived;
</span><span class="cx"> ThreadableWebSocketChannelClientWrapper* clientWrapper = m_workerClientWrapper.get();
</span><span class="cx"> while (m_workerGlobalScope && clientWrapper && !clientWrapper->syncMethodDone() && result != MessageQueueTerminated) {
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsjsScheduledActioncpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/js/ScheduledAction.cpp (164157 => 164158)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/js/ScheduledAction.cpp        2014-02-15 05:45:26 UTC (rev 164157)
+++ trunk/Source/WebCore/bindings/js/ScheduledAction.cpp        2014-02-15 07:41:12 UTC (rev 164158)
</span><span class="lines">@@ -131,7 +131,7 @@
</span><span class="cx"> void ScheduledAction::execute(WorkerGlobalScope* workerGlobalScope)
</span><span class="cx"> {
</span><span class="cx"> // In a Worker, the execution should always happen on a worker thread.
</span><del>- ASSERT(workerGlobalScope->thread()->threadID() == currentThread());
</del><ins>+ ASSERT(workerGlobalScope->thread().threadID() == currentThread());
</ins><span class="cx">
</span><span class="cx"> WorkerScriptController* scriptController = workerGlobalScope->script();
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsjsWorkerScriptDebugServercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/js/WorkerScriptDebugServer.cpp (164157 => 164158)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/js/WorkerScriptDebugServer.cpp        2014-02-15 05:45:26 UTC (rev 164157)
+++ trunk/Source/WebCore/bindings/js/WorkerScriptDebugServer.cpp        2014-02-15 07:41:12 UTC (rev 164158)
</span><span class="lines">@@ -96,7 +96,7 @@
</span><span class="cx">
</span><span class="cx"> MessageQueueWaitResult result;
</span><span class="cx"> do {
</span><del>- result = m_workerGlobalScope->thread()->runLoop().runInMode(m_workerGlobalScope, m_debuggerTaskMode);
</del><ins>+ result = m_workerGlobalScope->thread().runLoop().runInMode(m_workerGlobalScope, m_debuggerTaskMode);
</ins><span class="cx"> // Keep waiting until execution is resumed.
</span><span class="cx"> } while (result != MessageQueueTerminated && !m_doneProcessingDebuggerEvents);
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCoredomScriptExecutionContextcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/ScriptExecutionContext.cpp (164157 => 164158)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/ScriptExecutionContext.cpp        2014-02-15 05:45:26 UTC (rev 164157)
+++ trunk/Source/WebCore/dom/ScriptExecutionContext.cpp        2014-02-15 07:41:12 UTC (rev 164158)
</span><span class="lines">@@ -146,7 +146,7 @@
</span><span class="cx"> {
</span><span class="cx"> ASSERT(port);
</span><span class="cx"> ASSERT((isDocument() && isMainThread())
</span><del>- || (isWorkerGlobalScope() && currentThread() == static_cast<WorkerGlobalScope*>(this)->thread()->threadID()));
</del><ins>+ || (isWorkerGlobalScope() && currentThread() == static_cast<WorkerGlobalScope*>(this)->thread().threadID()));
</ins><span class="cx">
</span><span class="cx"> m_messagePorts.add(port);
</span><span class="cx"> }
</span><span class="lines">@@ -155,7 +155,7 @@
</span><span class="cx"> {
</span><span class="cx"> ASSERT(port);
</span><span class="cx"> ASSERT((isDocument() && isMainThread())
</span><del>- || (isWorkerGlobalScope() && currentThread() == static_cast<WorkerGlobalScope*>(this)->thread()->threadID()));
</del><ins>+ || (isWorkerGlobalScope() && currentThread() == static_cast<WorkerGlobalScope*>(this)->thread().threadID()));
</ins><span class="cx">
</span><span class="cx"> m_messagePorts.remove(port);
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCoreinspectorWorkerDebuggerAgentcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/inspector/WorkerDebuggerAgent.cpp (164157 => 164158)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/inspector/WorkerDebuggerAgent.cpp        2014-02-15 05:45:26 UTC (rev 164157)
+++ trunk/Source/WebCore/inspector/WorkerDebuggerAgent.cpp        2014-02-15 07:41:12 UTC (rev 164158)
</span><span class="lines">@@ -98,15 +98,15 @@
</span><span class="cx"> , m_inspectedWorkerGlobalScope(inspectedWorkerGlobalScope)
</span><span class="cx"> {
</span><span class="cx"> std::lock_guard<std::mutex> lock(workerDebuggerAgentsMutex());
</span><del>- workerDebuggerAgents().set(inspectedWorkerGlobalScope->thread(), this);
</del><ins>+ workerDebuggerAgents().set(&inspectedWorkerGlobalScope->thread(), this);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> WorkerDebuggerAgent::~WorkerDebuggerAgent()
</span><span class="cx"> {
</span><span class="cx"> std::lock_guard<std::mutex> lock(workerDebuggerAgentsMutex());
</span><span class="cx">
</span><del>- ASSERT(workerDebuggerAgents().contains(m_inspectedWorkerGlobalScope->thread()));
- workerDebuggerAgents().remove(m_inspectedWorkerGlobalScope->thread());
</del><ins>+ ASSERT(workerDebuggerAgents().contains(&m_inspectedWorkerGlobalScope->thread()));
+ workerDebuggerAgents().remove(&m_inspectedWorkerGlobalScope->thread());
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void WorkerDebuggerAgent::interruptAndDispatchInspectorCommands(WorkerThread* thread)
</span></span></pre></div>
<a id="trunkSourceWebCoreinspectorWorkerInspectorControllercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/inspector/WorkerInspectorController.cpp (164157 => 164158)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/inspector/WorkerInspectorController.cpp        2014-02-15 05:45:26 UTC (rev 164157)
+++ trunk/Source/WebCore/inspector/WorkerInspectorController.cpp        2014-02-15 07:41:12 UTC (rev 164158)
</span><span class="lines">@@ -70,7 +70,7 @@
</span><span class="cx"> private:
</span><span class="cx"> virtual bool sendMessageToFrontend(const String& message) override
</span><span class="cx"> {
</span><del>- m_workerGlobalScope.thread()->workerReportingProxy().postMessageToPageInspector(message);
</del><ins>+ m_workerGlobalScope.thread().workerReportingProxy().postMessageToPageInspector(message);
</ins><span class="cx"> return true;
</span><span class="cx"> }
</span><span class="cx"> WorkerGlobalScope& m_workerGlobalScope;
</span></span></pre></div>
<a id="trunkSourceWebCoreinspectorWorkerRuntimeAgentcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/inspector/WorkerRuntimeAgent.cpp (164157 => 164158)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/inspector/WorkerRuntimeAgent.cpp        2014-02-15 05:45:26 UTC (rev 164157)
+++ trunk/Source/WebCore/inspector/WorkerRuntimeAgent.cpp        2014-02-15 07:41:12 UTC (rev 164158)
</span><span class="lines">@@ -100,7 +100,7 @@
</span><span class="cx"> m_paused = true;
</span><span class="cx"> MessageQueueWaitResult result;
</span><span class="cx"> do {
</span><del>- result = context->thread()->runLoop().runInMode(context, WorkerDebuggerAgent::debuggerTaskMode);
</del><ins>+ result = context->thread().runLoop().runInMode(context, WorkerDebuggerAgent::debuggerTaskMode);
</ins><span class="cx"> // Keep waiting until execution is resumed.
</span><span class="cx"> } while (result == MessageQueueMessageReceived && m_paused);
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCoreloaderWorkerThreadableLoadercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/loader/WorkerThreadableLoader.cpp (164157 => 164158)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/loader/WorkerThreadableLoader.cpp        2014-02-15 05:45:26 UTC (rev 164157)
+++ trunk/Source/WebCore/loader/WorkerThreadableLoader.cpp        2014-02-15 07:41:12 UTC (rev 164158)
</span><span class="lines">@@ -53,7 +53,7 @@
</span><span class="cx"> WorkerThreadableLoader::WorkerThreadableLoader(WorkerGlobalScope* workerGlobalScope, ThreadableLoaderClient* client, const String& taskMode, const ResourceRequest& request, const ThreadableLoaderOptions& options)
</span><span class="cx"> : m_workerGlobalScope(workerGlobalScope)
</span><span class="cx"> , m_workerClientWrapper(ThreadableLoaderClientWrapper::create(client))
</span><del>- , m_bridge(*(new MainThreadBridge(m_workerClientWrapper, m_workerGlobalScope->thread()->workerLoaderProxy(), taskMode, request, options, workerGlobalScope->url().strippedForUseAsReferrer())))
</del><ins>+ , m_bridge(*(new MainThreadBridge(m_workerClientWrapper, m_workerGlobalScope->thread().workerLoaderProxy(), taskMode, request, options, workerGlobalScope->url().strippedForUseAsReferrer())))
</ins><span class="cx"> {
</span><span class="cx"> }
</span><span class="cx">
</span><span class="lines">@@ -64,7 +64,7 @@
</span><span class="cx">
</span><span class="cx"> void WorkerThreadableLoader::loadResourceSynchronously(WorkerGlobalScope* workerGlobalScope, const ResourceRequest& request, ThreadableLoaderClient& client, const ThreadableLoaderOptions& options)
</span><span class="cx"> {
</span><del>- WorkerRunLoop& runLoop = workerGlobalScope->thread()->runLoop();
</del><ins>+ WorkerRunLoop& runLoop = workerGlobalScope->thread().runLoop();
</ins><span class="cx">
</span><span class="cx"> // Create a unique mode just for this synchronous resource load.
</span><span class="cx"> String mode = loadResourceSynchronouslyMode;
</span></span></pre></div>
<a id="trunkSourceWebCoreloadercacheMemoryCachecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/loader/cache/MemoryCache.cpp (164157 => 164158)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/loader/cache/MemoryCache.cpp        2014-02-15 05:45:26 UTC (rev 164157)
+++ trunk/Source/WebCore/loader/cache/MemoryCache.cpp        2014-02-15 07:41:12 UTC (rev 164158)
</span><span class="lines">@@ -817,7 +817,7 @@
</span><span class="cx"> {
</span><span class="cx"> if (context->isWorkerGlobalScope()) {
</span><span class="cx"> WorkerGlobalScope* workerGlobalScope = static_cast<WorkerGlobalScope*>(context);
</span><del>- workerGlobalScope->thread()->workerLoaderProxy().postTaskToLoader(createCallbackTask(&crossThreadRemoveRequestFromCache, request));
</del><ins>+ workerGlobalScope->thread().workerLoaderProxy().postTaskToLoader(createCallbackTask(&crossThreadRemoveRequestFromCache, request));
</ins><span class="cx"> return;
</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 (164157 => 164158)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/workers/DedicatedWorkerGlobalScope.cpp        2014-02-15 05:45:26 UTC (rev 164157)
+++ trunk/Source/WebCore/workers/DedicatedWorkerGlobalScope.cpp        2014-02-15 07:41:12 UTC (rev 164158)
</span><span class="lines">@@ -39,14 +39,14 @@
</span><span class="cx">
</span><span class="cx"> namespace WebCore {
</span><span class="cx">
</span><del>-PassRefPtr<DedicatedWorkerGlobalScope> DedicatedWorkerGlobalScope::create(const URL& url, const String& userAgent, std::unique_ptr<GroupSettings> settings, DedicatedWorkerThread* thread, const String& contentSecurityPolicy, ContentSecurityPolicy::HeaderType contentSecurityPolicyType, PassRefPtr<SecurityOrigin> topOrigin)
</del><ins>+PassRefPtr<DedicatedWorkerGlobalScope> DedicatedWorkerGlobalScope::create(const URL& url, const String& userAgent, std::unique_ptr<GroupSettings> settings, DedicatedWorkerThread& thread, const String& contentSecurityPolicy, ContentSecurityPolicy::HeaderType contentSecurityPolicyType, PassRefPtr<SecurityOrigin> topOrigin)
</ins><span class="cx"> {
</span><span class="cx"> RefPtr<DedicatedWorkerGlobalScope> context = adoptRef(new DedicatedWorkerGlobalScope(url, userAgent, std::move(settings), thread, topOrigin));
</span><span class="cx"> context->applyContentSecurityPolicyFromString(contentSecurityPolicy, contentSecurityPolicyType);
</span><span class="cx"> return context.release();
</span><span class="cx"> }
</span><span class="cx">
</span><del>-DedicatedWorkerGlobalScope::DedicatedWorkerGlobalScope(const URL& url, const String& userAgent, std::unique_ptr<GroupSettings> settings, DedicatedWorkerThread* thread, PassRefPtr<SecurityOrigin> topOrigin)
</del><ins>+DedicatedWorkerGlobalScope::DedicatedWorkerGlobalScope(const URL& url, const String& userAgent, std::unique_ptr<GroupSettings> settings, DedicatedWorkerThread& thread, PassRefPtr<SecurityOrigin> topOrigin)
</ins><span class="cx"> : WorkerGlobalScope(url, userAgent, std::move(settings), thread, topOrigin)
</span><span class="cx"> {
</span><span class="cx"> }
</span><span class="lines">@@ -74,18 +74,18 @@
</span><span class="cx"> std::unique_ptr<MessagePortChannelArray> channels = MessagePort::disentanglePorts(ports, ec);
</span><span class="cx"> if (ec)
</span><span class="cx"> return;
</span><del>- thread()->workerObjectProxy().postMessageToWorkerObject(message, std::move(channels));
</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 class="cx"> {
</span><span class="cx"> Base::importScripts(urls, ec);
</span><del>- thread()->workerObjectProxy().reportPendingActivity(hasPendingActivity());
</del><ins>+ thread().workerObjectProxy().reportPendingActivity(hasPendingActivity());
</ins><span class="cx"> }
</span><span class="cx">
</span><del>-DedicatedWorkerThread* DedicatedWorkerGlobalScope::thread()
</del><ins>+DedicatedWorkerThread& DedicatedWorkerGlobalScope::thread()
</ins><span class="cx"> {
</span><del>- return static_cast<DedicatedWorkerThread*>(Base::thread());
</del><ins>+ return static_cast<DedicatedWorkerThread&>(Base::thread());
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> } // namespace WebCore
</span></span></pre></div>
<a id="trunkSourceWebCoreworkersDedicatedWorkerGlobalScopeh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/workers/DedicatedWorkerGlobalScope.h (164157 => 164158)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/workers/DedicatedWorkerGlobalScope.h        2014-02-15 05:45:26 UTC (rev 164157)
+++ trunk/Source/WebCore/workers/DedicatedWorkerGlobalScope.h        2014-02-15 07:41:12 UTC (rev 164158)
</span><span class="lines">@@ -42,7 +42,7 @@
</span><span class="cx"> class DedicatedWorkerGlobalScope : public WorkerGlobalScope {
</span><span class="cx"> public:
</span><span class="cx"> typedef WorkerGlobalScope Base;
</span><del>- static PassRefPtr<DedicatedWorkerGlobalScope> create(const URL&, const String& userAgent, std::unique_ptr<GroupSettings>, DedicatedWorkerThread*, const String& contentSecurityPolicy, ContentSecurityPolicy::HeaderType contentSecurityPolicyType, PassRefPtr<SecurityOrigin> topOrigin);
</del><ins>+ static PassRefPtr<DedicatedWorkerGlobalScope> create(const URL&, const String& userAgent, std::unique_ptr<GroupSettings>, DedicatedWorkerThread&, const String& contentSecurityPolicy, ContentSecurityPolicy::HeaderType contentSecurityPolicyType, PassRefPtr<SecurityOrigin> topOrigin);
</ins><span class="cx"> virtual ~DedicatedWorkerGlobalScope();
</span><span class="cx">
</span><span class="cx"> virtual bool isDedicatedWorkerGlobalScope() const override { return true; }
</span><span class="lines">@@ -59,10 +59,10 @@
</span><span class="cx">
</span><span class="cx"> DEFINE_ATTRIBUTE_EVENT_LISTENER(message);
</span><span class="cx">
</span><del>- DedicatedWorkerThread* thread();
</del><ins>+ DedicatedWorkerThread& thread();
</ins><span class="cx">
</span><span class="cx"> private:
</span><del>- DedicatedWorkerGlobalScope(const URL&, const String& userAgent, std::unique_ptr<GroupSettings>, DedicatedWorkerThread*, PassRefPtr<SecurityOrigin> topOrigin);
</del><ins>+ DedicatedWorkerGlobalScope(const URL&, const String& userAgent, std::unique_ptr<GroupSettings>, DedicatedWorkerThread&, PassRefPtr<SecurityOrigin> topOrigin);
</ins><span class="cx"> };
</span><span class="cx">
</span><span class="cx"> } // namespace WebCore
</span></span></pre></div>
<a id="trunkSourceWebCoreworkersDedicatedWorkerThreadcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/workers/DedicatedWorkerThread.cpp (164157 => 164158)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/workers/DedicatedWorkerThread.cpp        2014-02-15 05:45:26 UTC (rev 164157)
+++ trunk/Source/WebCore/workers/DedicatedWorkerThread.cpp        2014-02-15 07:41:12 UTC (rev 164158)
</span><span class="lines">@@ -55,7 +55,7 @@
</span><span class="cx">
</span><span class="cx"> PassRefPtr<WorkerGlobalScope> DedicatedWorkerThread::createWorkerGlobalScope(const URL& url, const String& userAgent, std::unique_ptr<GroupSettings> settings, const String& contentSecurityPolicy, ContentSecurityPolicy::HeaderType contentSecurityPolicyType, PassRefPtr<SecurityOrigin> topOrigin)
</span><span class="cx"> {
</span><del>- return DedicatedWorkerGlobalScope::create(url, userAgent, std::move(settings), this, contentSecurityPolicy, contentSecurityPolicyType, topOrigin);
</del><ins>+ return DedicatedWorkerGlobalScope::create(url, userAgent, std::move(settings), *this, contentSecurityPolicy, contentSecurityPolicyType, topOrigin);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void DedicatedWorkerThread::runEventLoop()
</span></span></pre></div>
<a id="trunkSourceWebCoreworkersSharedWorkerGlobalScopecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/workers/SharedWorkerGlobalScope.cpp (164157 => 164158)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/workers/SharedWorkerGlobalScope.cpp        2014-02-15 05:45:26 UTC (rev 164157)
+++ trunk/Source/WebCore/workers/SharedWorkerGlobalScope.cpp        2014-02-15 07:41:12 UTC (rev 164158)
</span><span class="lines">@@ -53,14 +53,14 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> // static
</span><del>-PassRefPtr<SharedWorkerGlobalScope> SharedWorkerGlobalScope::create(const String& name, const URL& url, const String& userAgent, std::unique_ptr<GroupSettings> settings, SharedWorkerThread* thread, const String& contentSecurityPolicy, ContentSecurityPolicy::HeaderType contentSecurityPolicyType)
</del><ins>+PassRefPtr<SharedWorkerGlobalScope> SharedWorkerGlobalScope::create(const String& name, const URL& url, const String& userAgent, std::unique_ptr<GroupSettings> settings, SharedWorkerThread& thread, const String& contentSecurityPolicy, ContentSecurityPolicy::HeaderType contentSecurityPolicyType)
</ins><span class="cx"> {
</span><span class="cx"> RefPtr<SharedWorkerGlobalScope> context = adoptRef(new SharedWorkerGlobalScope(name, url, userAgent, std::move(settings), thread));
</span><span class="cx"> context->applyContentSecurityPolicyFromString(contentSecurityPolicy, contentSecurityPolicyType);
</span><span class="cx"> return context.release();
</span><span class="cx"> }
</span><span class="cx">
</span><del>-SharedWorkerGlobalScope::SharedWorkerGlobalScope(const String& name, const URL& url, const String& userAgent, std::unique_ptr<GroupSettings> settings, SharedWorkerThread* thread)
</del><ins>+SharedWorkerGlobalScope::SharedWorkerGlobalScope(const String& name, const URL& url, const String& userAgent, std::unique_ptr<GroupSettings> settings, SharedWorkerThread& thread)
</ins><span class="cx"> : WorkerGlobalScope(url, userAgent, std::move(settings), thread, 0)
</span><span class="cx"> , m_name(name)
</span><span class="cx"> {
</span><span class="lines">@@ -75,9 +75,9 @@
</span><span class="cx"> return SharedWorkerGlobalScopeEventTargetInterfaceType;
</span><span class="cx"> }
</span><span class="cx">
</span><del>-SharedWorkerThread* SharedWorkerGlobalScope::thread()
</del><ins>+SharedWorkerThread& SharedWorkerGlobalScope::thread()
</ins><span class="cx"> {
</span><del>- return static_cast<SharedWorkerThread*>(Base::thread());
</del><ins>+ return static_cast<SharedWorkerThread&>(Base::thread());
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void SharedWorkerGlobalScope::logExceptionToConsole(const String& errorMessage, const String& sourceURL, int lineNumber, int columnNumber, PassRefPtr<Inspector::ScriptCallStack> callStack)
</span></span></pre></div>
<a id="trunkSourceWebCoreworkersSharedWorkerGlobalScopeh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/workers/SharedWorkerGlobalScope.h (164157 => 164158)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/workers/SharedWorkerGlobalScope.h        2014-02-15 05:45:26 UTC (rev 164157)
+++ trunk/Source/WebCore/workers/SharedWorkerGlobalScope.h        2014-02-15 07:41:12 UTC (rev 164158)
</span><span class="lines">@@ -44,7 +44,7 @@
</span><span class="cx"> class SharedWorkerGlobalScope : public WorkerGlobalScope {
</span><span class="cx"> public:
</span><span class="cx"> typedef WorkerGlobalScope Base;
</span><del>- static PassRefPtr<SharedWorkerGlobalScope> create(const String& name, const URL&, const String& userAgent, std::unique_ptr<GroupSettings>, SharedWorkerThread*, const String& contentSecurityPolicy, ContentSecurityPolicy::HeaderType contentSecurityPolicyType);
</del><ins>+ static PassRefPtr<SharedWorkerGlobalScope> create(const String& name, const URL&, const String& userAgent, std::unique_ptr<GroupSettings>, SharedWorkerThread&, const String& contentSecurityPolicy, ContentSecurityPolicy::HeaderType contentSecurityPolicyType);
</ins><span class="cx"> virtual ~SharedWorkerGlobalScope();
</span><span class="cx">
</span><span class="cx"> virtual bool isSharedWorkerGlobalScope() const override { return true; }
</span><span class="lines">@@ -56,10 +56,10 @@
</span><span class="cx"> DEFINE_ATTRIBUTE_EVENT_LISTENER(connect);
</span><span class="cx"> String name() const { return m_name; }
</span><span class="cx">
</span><del>- SharedWorkerThread* thread();
</del><ins>+ SharedWorkerThread& thread();
</ins><span class="cx">
</span><span class="cx"> private:
</span><del>- SharedWorkerGlobalScope(const String& name, const URL&, const String& userAgent, std::unique_ptr<GroupSettings>, SharedWorkerThread*);
</del><ins>+ SharedWorkerGlobalScope(const String& name, const URL&, const String& userAgent, std::unique_ptr<GroupSettings>, SharedWorkerThread&);
</ins><span class="cx"> virtual void logExceptionToConsole(const String& errorMessage, const String& sourceURL, int lineNumber, int columnNumber, PassRefPtr<Inspector::ScriptCallStack>) override;
</span><span class="cx">
</span><span class="cx"> String m_name;
</span></span></pre></div>
<a id="trunkSourceWebCoreworkersSharedWorkerThreadcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/workers/SharedWorkerThread.cpp (164157 => 164158)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/workers/SharedWorkerThread.cpp        2014-02-15 05:45:26 UTC (rev 164157)
+++ trunk/Source/WebCore/workers/SharedWorkerThread.cpp        2014-02-15 07:41:12 UTC (rev 164158)
</span><span class="lines">@@ -55,7 +55,7 @@
</span><span class="cx">
</span><span class="cx"> PassRefPtr<WorkerGlobalScope> SharedWorkerThread::createWorkerGlobalScope(const URL& url, const String& userAgent, std::unique_ptr<GroupSettings> settings, const String& contentSecurityPolicy, ContentSecurityPolicy::HeaderType contentSecurityPolicyType, PassRefPtr<SecurityOrigin>)
</span><span class="cx"> {
</span><del>- return SharedWorkerGlobalScope::create(m_name, url, userAgent, std::move(settings), this, contentSecurityPolicy, contentSecurityPolicyType);
</del><ins>+ return SharedWorkerGlobalScope::create(m_name, url, userAgent, std::move(settings), *this, contentSecurityPolicy, contentSecurityPolicyType);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> } // namespace WebCore
</span></span></pre></div>
<a id="trunkSourceWebCoreworkersWorkerGlobalScopecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/workers/WorkerGlobalScope.cpp (164157 => 164158)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/workers/WorkerGlobalScope.cpp        2014-02-15 05:45:26 UTC (rev 164157)
+++ trunk/Source/WebCore/workers/WorkerGlobalScope.cpp        2014-02-15 07:41:12 UTC (rev 164158)
</span><span class="lines">@@ -76,13 +76,13 @@
</span><span class="cx"> ASSERT_WITH_SECURITY_IMPLICATION(context->isWorkerGlobalScope());
</span><span class="cx"> WorkerGlobalScope* workerGlobalScope = static_cast<WorkerGlobalScope*>(context);
</span><span class="cx"> // Notify parent that this context is closed. Parent is responsible for calling WorkerThread::stop().
</span><del>- workerGlobalScope->thread()->workerReportingProxy().workerGlobalScopeClosed();
</del><ins>+ workerGlobalScope->thread().workerReportingProxy().workerGlobalScopeClosed();
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> virtual bool isCleanupTask() const { return true; }
</span><span class="cx"> };
</span><span class="cx">
</span><del>-WorkerGlobalScope::WorkerGlobalScope(const URL& url, const String& userAgent, std::unique_ptr<GroupSettings> settings, WorkerThread* thread, PassRefPtr<SecurityOrigin> topOrigin)
</del><ins>+WorkerGlobalScope::WorkerGlobalScope(const URL& url, const String& userAgent, std::unique_ptr<GroupSettings> settings, WorkerThread& thread, PassRefPtr<SecurityOrigin> topOrigin)
</ins><span class="cx"> : m_url(url)
</span><span class="cx"> , m_userAgent(userAgent)
</span><span class="cx"> , m_groupSettings(std::move(settings))
</span><span class="lines">@@ -100,13 +100,13 @@
</span><span class="cx">
</span><span class="cx"> WorkerGlobalScope::~WorkerGlobalScope()
</span><span class="cx"> {
</span><del>- ASSERT(currentThread() == thread()->threadID());
</del><ins>+ ASSERT(currentThread() == thread().threadID());
</ins><span class="cx">
</span><span class="cx"> // Make sure we have no observers.
</span><span class="cx"> notifyObserversOfStop();
</span><span class="cx">
</span><span class="cx"> // Notify proxy that we are going away. This can free the WorkerThread object, so do not access it after this.
</span><del>- thread()->workerReportingProxy().workerGlobalScopeDestroyed();
</del><ins>+ thread().workerReportingProxy().workerGlobalScopeDestroyed();
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void WorkerGlobalScope::applyContentSecurityPolicyFromString(const String& policy, ContentSecurityPolicy::HeaderType contentSecurityPolicyType)
</span><span class="lines">@@ -180,7 +180,7 @@
</span><span class="cx">
</span><span class="cx"> void WorkerGlobalScope::postTask(PassOwnPtr<Task> task)
</span><span class="cx"> {
</span><del>- thread()->runLoop().postTask(task);
</del><ins>+ thread().runLoop().postTask(task);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> int WorkerGlobalScope::setTimeout(PassOwnPtr<ScheduledAction> action, int timeout)
</span><span class="lines">@@ -247,7 +247,7 @@
</span><span class="cx">
</span><span class="cx"> void WorkerGlobalScope::logExceptionToConsole(const String& errorMessage, const String& sourceURL, int lineNumber, int columnNumber, PassRefPtr<ScriptCallStack>)
</span><span class="cx"> {
</span><del>- thread()->workerReportingProxy().postExceptionToWorkerObject(errorMessage, lineNumber, columnNumber, sourceURL);
</del><ins>+ thread().workerReportingProxy().postExceptionToWorkerObject(errorMessage, lineNumber, columnNumber, sourceURL);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void WorkerGlobalScope::addConsoleMessage(MessageSource source, MessageLevel level, const String& message, unsigned long requestIdentifier)
</span><span class="lines">@@ -257,7 +257,7 @@
</span><span class="cx"> return;
</span><span class="cx"> }
</span><span class="cx">
</span><del>- thread()->workerReportingProxy().postConsoleMessageToWorkerObject(source, level, message, 0, 0, String());
</del><ins>+ thread().workerReportingProxy().postConsoleMessageToWorkerObject(source, level, message, 0, 0, String());
</ins><span class="cx"> addMessageToWorkerConsole(source, level, message, String(), 0, 0, 0, 0, requestIdentifier);
</span><span class="cx"> }
</span><span class="cx">
</span><span class="lines">@@ -268,7 +268,7 @@
</span><span class="cx"> return;
</span><span class="cx"> }
</span><span class="cx">
</span><del>- thread()->workerReportingProxy().postConsoleMessageToWorkerObject(source, level, message, lineNumber, columnNumber, sourceURL);
</del><ins>+ thread().workerReportingProxy().postConsoleMessageToWorkerObject(source, level, message, lineNumber, columnNumber, sourceURL);
</ins><span class="cx"> addMessageToWorkerConsole(source, level, message, sourceURL, lineNumber, columnNumber, callStack, state, requestIdentifier);
</span><span class="cx"> }
</span><span class="cx">
</span><span class="lines">@@ -283,7 +283,7 @@
</span><span class="cx">
</span><span class="cx"> bool WorkerGlobalScope::isContextThread() const
</span><span class="cx"> {
</span><del>- return currentThread() == thread()->threadID();
</del><ins>+ return currentThread() == thread().threadID();
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> bool WorkerGlobalScope::isJSExecutionForbidden() const
</span></span></pre></div>
<a id="trunkSourceWebCoreworkersWorkerGlobalScopeh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/workers/WorkerGlobalScope.h (164157 => 164158)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/workers/WorkerGlobalScope.h        2014-02-15 05:45:26 UTC (rev 164157)
+++ trunk/Source/WebCore/workers/WorkerGlobalScope.h        2014-02-15 07:41:12 UTC (rev 164158)
</span><span class="lines">@@ -74,7 +74,7 @@
</span><span class="cx"> WorkerScriptController* script() { return m_script.get(); }
</span><span class="cx"> void clearScript() { m_script.clear(); }
</span><span class="cx">
</span><del>- WorkerThread* thread() const { return m_thread; }
</del><ins>+ WorkerThread& thread() const { return m_thread; }
</ins><span class="cx">
</span><span class="cx"> bool hasPendingActivity() const;
</span><span class="cx">
</span><span class="lines">@@ -141,7 +141,7 @@
</span><span class="cx"> #endif
</span><span class="cx">
</span><span class="cx"> protected:
</span><del>- WorkerGlobalScope(const URL&, const String& userAgent, std::unique_ptr<GroupSettings>, WorkerThread*, PassRefPtr<SecurityOrigin> topOrigin);
</del><ins>+ WorkerGlobalScope(const URL&, const String& userAgent, std::unique_ptr<GroupSettings>, WorkerThread&, PassRefPtr<SecurityOrigin> topOrigin);
</ins><span class="cx"> void applyContentSecurityPolicyFromString(const String& contentSecurityPolicy, ContentSecurityPolicy::HeaderType);
</span><span class="cx">
</span><span class="cx"> virtual void logExceptionToConsole(const String& errorMessage, const String& sourceURL, int lineNumber, int columnNumber, PassRefPtr<Inspector::ScriptCallStack>) override;
</span><span class="lines">@@ -168,7 +168,7 @@
</span><span class="cx"> mutable RefPtr<WorkerNavigator> m_navigator;
</span><span class="cx">
</span><span class="cx"> OwnPtr<WorkerScriptController> m_script;
</span><del>- WorkerThread* m_thread;
</del><ins>+ WorkerThread& m_thread;
</ins><span class="cx">
</span><span class="cx"> #if ENABLE(INSPECTOR)
</span><span class="cx"> const std::unique_ptr<WorkerInspectorController> m_workerInspectorController;
</span></span></pre></div>
<a id="trunkSourceWebCoreworkersWorkerMessagingProxycpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/workers/WorkerMessagingProxy.cpp (164157 => 164158)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/workers/WorkerMessagingProxy.cpp        2014-02-15 05:45:26 UTC (rev 164157)
+++ trunk/Source/WebCore/workers/WorkerMessagingProxy.cpp        2014-02-15 07:41:12 UTC (rev 164158)
</span><span class="lines">@@ -73,7 +73,7 @@
</span><span class="cx"> DedicatedWorkerGlobalScope* context = static_cast<DedicatedWorkerGlobalScope*>(scriptContext);
</span><span class="cx"> std::unique_ptr<MessagePortArray> ports = MessagePort::entanglePorts(*scriptContext, std::move(m_channels));
</span><span class="cx"> context->dispatchEvent(MessageEvent::create(std::move(ports), m_message));
</span><del>- context->thread()->workerObjectProxy().confirmMessageFromWorkerObject(context->hasPendingActivity());
</del><ins>+ context->thread().workerObjectProxy().confirmMessageFromWorkerObject(context->hasPendingActivity());
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> private:
</span><span class="lines">@@ -285,14 +285,14 @@
</span><span class="cx"> {
</span><span class="cx"> ASSERT(m_workerObject);
</span><span class="cx"> ASSERT((m_scriptExecutionContext->isDocument() && isMainThread())
</span><del>- || (m_scriptExecutionContext->isWorkerGlobalScope() && currentThread() == static_cast<WorkerGlobalScope*>(m_scriptExecutionContext.get())->thread()->threadID()));
</del><ins>+ || (m_scriptExecutionContext->isWorkerGlobalScope() && currentThread() == static_cast<WorkerGlobalScope*>(m_scriptExecutionContext.get())->thread().threadID()));
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> WorkerMessagingProxy::~WorkerMessagingProxy()
</span><span class="cx"> {
</span><span class="cx"> ASSERT(!m_workerObject);
</span><span class="cx"> ASSERT((m_scriptExecutionContext->isDocument() && isMainThread())
</span><del>- || (m_scriptExecutionContext->isWorkerGlobalScope() && currentThread() == static_cast<WorkerGlobalScope*>(m_scriptExecutionContext.get())->thread()->threadID()));
</del><ins>+ || (m_scriptExecutionContext->isWorkerGlobalScope() && currentThread() == static_cast<WorkerGlobalScope*>(m_scriptExecutionContext.get())->thread().threadID()));
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void WorkerMessagingProxy::startWorkerGlobalScope(const URL& scriptURL, const String& userAgent, const String& sourceCode, WorkerThreadStartMode startMode)
</span></span></pre></div>
<a id="trunkSourceWebCoreworkersWorkerRunLoopcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/workers/WorkerRunLoop.cpp (164157 => 164158)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/workers/WorkerRunLoop.cpp        2014-02-15 05:45:26 UTC (rev 164157)
+++ trunk/Source/WebCore/workers/WorkerRunLoop.cpp        2014-02-15 07:41:12 UTC (rev 164158)
</span><span class="lines">@@ -146,8 +146,7 @@
</span><span class="cx"> MessageQueueWaitResult WorkerRunLoop::runInMode(WorkerGlobalScope* context, const ModePredicate& predicate, WaitMode waitMode)
</span><span class="cx"> {
</span><span class="cx"> ASSERT(context);
</span><del>- ASSERT(context->thread());
- ASSERT(context->thread()->threadID() == currentThread());
</del><ins>+ ASSERT(context->thread().threadID() == currentThread());
</ins><span class="cx">
</span><span class="cx"> double absoluteTime = 0.0;
</span><span class="cx"> if (waitMode == WaitForMessage)
</span><span class="lines">@@ -177,8 +176,7 @@
</span><span class="cx"> void WorkerRunLoop::runCleanupTasks(WorkerGlobalScope* context)
</span><span class="cx"> {
</span><span class="cx"> ASSERT(context);
</span><del>- ASSERT(context->thread());
- ASSERT(context->thread()->threadID() == currentThread());
</del><ins>+ ASSERT(context->thread().threadID() == currentThread());
</ins><span class="cx"> ASSERT(m_messageQueue.killed());
</span><span class="cx">
</span><span class="cx"> while (true) {
</span></span></pre>
</div>
</div>
</body>
</html>