| Index: Source/core/workers/WorkerGlobalScope.cpp
 | 
| diff --git a/Source/core/workers/WorkerGlobalScope.cpp b/Source/core/workers/WorkerGlobalScope.cpp
 | 
| index 1c0e3df625225876635810a810df379f5f1de242..3adf634a14271e5b2209881d93ee880d2be331f1 100644
 | 
| --- a/Source/core/workers/WorkerGlobalScope.cpp
 | 
| +++ b/Source/core/workers/WorkerGlobalScope.cpp
 | 
| @@ -59,8 +59,8 @@
 | 
|  #include "core/workers/WorkerLocation.h"
 | 
|  #include "core/workers/WorkerNavigator.h"
 | 
|  #include "core/workers/WorkerReportingProxy.h"
 | 
| +#include "core/workers/WorkerScript.h"
 | 
|  #include "core/workers/WorkerScriptLoader.h"
 | 
| -#include "core/workers/WorkerThread.h"
 | 
|  #include "platform/network/ContentSecurityPolicyParsers.h"
 | 
|  #include "platform/weborigin/KURL.h"
 | 
|  #include "platform/weborigin/SecurityOrigin.h"
 | 
| @@ -78,19 +78,19 @@ public:
 | 
|      virtual void performTask(ExecutionContext *context)
 | 
|      {
 | 
|          WorkerGlobalScope* workerGlobalScope = toWorkerGlobalScope(context);
 | 
| -        // Notify parent that this context is closed. Parent is responsible for calling WorkerThread::stop().
 | 
| -        workerGlobalScope->thread()->workerReportingProxy().workerGlobalScopeClosed();
 | 
| +        // Notify parent that this context is closed. Parent is responsible for calling WorkerScript::stop().
 | 
| +        workerGlobalScope->script()->workerReportingProxy().workerGlobalScopeClosed();
 | 
|      }
 | 
|  
 | 
|      virtual bool isCleanupTask() const { return true; }
 | 
|  };
 | 
|  
 | 
| -WorkerGlobalScope::WorkerGlobalScope(const KURL& url, const String& userAgent, WorkerThread* thread, double timeOrigin, const SecurityOrigin* starterOrigin, PassOwnPtrWillBeRawPtr<WorkerClients> workerClients)
 | 
| +WorkerGlobalScope::WorkerGlobalScope(const KURL& url, const String& userAgent, WorkerScript* script, double timeOrigin, const SecurityOrigin* starterOrigin, PassOwnPtrWillBeRawPtr<WorkerClients> workerClients)
 | 
|      : m_url(url)
 | 
|      , m_userAgent(userAgent)
 | 
|      , m_v8CacheOptions(V8CacheOptionsDefault)
 | 
| -    , m_script(adoptPtr(new WorkerScriptController(*this, thread->isolate())))
 | 
| -    , m_thread(thread)
 | 
| +    , m_scriptController(adoptPtr(new WorkerScriptController(*this, script->isolate())))
 | 
| +    , m_script(script)
 | 
|      , m_workerInspectorController(adoptRefWillBeNoop(new WorkerInspectorController(this)))
 | 
|      , m_closing(false)
 | 
|      , m_eventQueue(WorkerEventQueue::create(this))
 | 
| @@ -104,12 +104,12 @@ WorkerGlobalScope::WorkerGlobalScope(const KURL& url, const String& userAgent, W
 | 
|          securityOrigin()->transferPrivilegesFrom(*starterOrigin);
 | 
|  
 | 
|      m_workerClients->reattachThread();
 | 
| -    m_thread->setWorkerInspectorController(m_workerInspectorController.get());
 | 
| +    m_script->setWorkerInspectorController(m_workerInspectorController.get());
 | 
|  }
 | 
|  
 | 
|  WorkerGlobalScope::~WorkerGlobalScope()
 | 
|  {
 | 
| -    ASSERT(!m_script);
 | 
| +    ASSERT(!m_scriptController);
 | 
|      ASSERT(!m_workerInspectorController);
 | 
|  }
 | 
|  
 | 
| @@ -154,7 +154,7 @@ String WorkerGlobalScope::userAgent(const KURL&) const
 | 
|  
 | 
|  void WorkerGlobalScope::disableEval(const String& errorMessage)
 | 
|  {
 | 
| -    m_script->disableEval(errorMessage);
 | 
| +    m_scriptController->disableEval(errorMessage);
 | 
|  }
 | 
|  
 | 
|  double WorkerGlobalScope::timerAlignmentInterval() const
 | 
| @@ -202,30 +202,30 @@ WorkerNavigator* WorkerGlobalScope::navigator() const
 | 
|  
 | 
|  void WorkerGlobalScope::postTask(const WebTraceLocation& location, PassOwnPtr<ExecutionContextTask> task)
 | 
|  {
 | 
| -    thread()->postTask(location, task);
 | 
| +    script()->postTask(location, task);
 | 
|  }
 | 
|  
 | 
|  void WorkerGlobalScope::clearInspector()
 | 
|  {
 | 
|      ASSERT(m_workerInspectorController);
 | 
| -    thread()->setWorkerInspectorController(nullptr);
 | 
| +    script()->setWorkerInspectorController(nullptr);
 | 
|      m_workerInspectorController->dispose();
 | 
|      m_workerInspectorController.clear();
 | 
|  }
 | 
|  
 | 
|  void WorkerGlobalScope::dispose()
 | 
|  {
 | 
| -    ASSERT(thread()->isCurrentThread());
 | 
| +    ASSERT(script()->isCurrentThread());
 | 
|  
 | 
| -    clearScript();
 | 
| +    m_scriptController.clear();
 | 
|      clearInspector();
 | 
|      m_eventQueue->close();
 | 
|  
 | 
| -    // We do not clear the thread field of the
 | 
| +    // We do not clear the script field of the
 | 
|      // WorkerGlobalScope. Other objects keep the worker global scope
 | 
| -    // alive because they need its thread field to check that work is
 | 
| +    // alive because they need its script field to check that work is
 | 
|      // being carried out on the right thread. We therefore cannot clear
 | 
| -    // the thread field before all references to the worker global
 | 
| +    // the script field before all references to the worker global
 | 
|      // scope are gone.
 | 
|  }
 | 
|  
 | 
| @@ -271,9 +271,9 @@ void WorkerGlobalScope::importScripts(const Vector<String>& urls, ExceptionState
 | 
|          RefPtrWillBeRawPtr<ErrorEvent> errorEvent = nullptr;
 | 
|          OwnPtr<Vector<char>> cachedMetaData(scriptLoader->releaseCachedMetadata());
 | 
|          OwnPtr<CachedMetadataHandler> handler(createWorkerScriptCachedMetadataHandler(completeURL, cachedMetaData.get()));
 | 
| -        m_script->evaluate(ScriptSourceCode(scriptLoader->script(), scriptLoader->responseURL()), &errorEvent, handler.get(), m_v8CacheOptions);
 | 
| +        m_scriptController->evaluate(ScriptSourceCode(scriptLoader->script(), scriptLoader->responseURL()), &errorEvent, handler.get(), m_v8CacheOptions);
 | 
|          if (errorEvent) {
 | 
| -            m_script->rethrowExceptionFromImportedScript(errorEvent.release(), exceptionState);
 | 
| +            m_scriptController->rethrowExceptionFromImportedScript(errorEvent.release(), exceptionState);
 | 
|              return;
 | 
|          }
 | 
|      }
 | 
| @@ -291,7 +291,7 @@ void WorkerGlobalScope::logExceptionToConsole(const String& errorMessage, int, c
 | 
|      consoleMessage->setCallStack(callStack);
 | 
|      m_pendingMessages.set(exceptionId, consoleMessage);
 | 
|  
 | 
| -    thread()->workerReportingProxy().reportException(errorMessage, lineNumber, columnNumber, sourceURL, exceptionId);
 | 
| +    script()->workerReportingProxy().reportException(errorMessage, lineNumber, columnNumber, sourceURL, exceptionId);
 | 
|  }
 | 
|  
 | 
|  void WorkerGlobalScope::reportBlockedScriptExecutionToInspector(const String& directiveText)
 | 
| @@ -306,7 +306,7 @@ void WorkerGlobalScope::addConsoleMessage(PassRefPtrWillBeRawPtr<ConsoleMessage>
 | 
|          postTask(FROM_HERE, AddConsoleMessageTask::create(consoleMessage->source(), consoleMessage->level(), consoleMessage->message()));
 | 
|          return;
 | 
|      }
 | 
| -    thread()->workerReportingProxy().reportConsoleMessage(consoleMessage);
 | 
| +    script()->workerReportingProxy().reportConsoleMessage(consoleMessage);
 | 
|      addMessageToWorkerConsole(consoleMessage.release());
 | 
|  }
 | 
|  
 | 
| @@ -318,12 +318,12 @@ void WorkerGlobalScope::addMessageToWorkerConsole(PassRefPtrWillBeRawPtr<Console
 | 
|  
 | 
|  bool WorkerGlobalScope::isContextThread() const
 | 
|  {
 | 
| -    return thread()->isCurrentThread();
 | 
| +    return script()->isCurrentThread();
 | 
|  }
 | 
|  
 | 
|  bool WorkerGlobalScope::isJSExecutionForbidden() const
 | 
|  {
 | 
| -    return m_script->isExecutionForbidden();
 | 
| +    return m_scriptController->isExecutionForbidden();
 | 
|  }
 | 
|  
 | 
|  WorkerEventQueue* WorkerGlobalScope::eventQueue() const
 | 
| @@ -370,13 +370,13 @@ bool WorkerGlobalScope::isPrivilegedContext(String& errorMessage, const Privileg
 | 
|      // a simple check here. Once we have a need for a real
 | 
|      // |isPrivilegedContext| check here, we can check the responsible
 | 
|      // document for a privileged context at worker creation time, pass
 | 
| -    // it in via WorkerThreadStartupData, and check it here.
 | 
| +    // it in via WorkerScriptStartupData, and check it here.
 | 
|      return securityOrigin()->isPotentiallyTrustworthy(errorMessage);
 | 
|  }
 | 
|  
 | 
|  void WorkerGlobalScope::removeURLFromMemoryCache(const KURL& url)
 | 
|  {
 | 
| -    m_thread->workerLoaderProxy()->postTaskToLoader(createCrossThreadTask(&WorkerGlobalScope::removeURLFromMemoryCacheInternal, url));
 | 
| +    m_script->workerLoaderProxy()->postTaskToLoader(createCrossThreadTask(&WorkerGlobalScope::removeURLFromMemoryCacheInternal, url));
 | 
|  }
 | 
|  
 | 
|  void WorkerGlobalScope::removeURLFromMemoryCacheInternal(const KURL& url)
 | 
| 
 |