| Index: third_party/WebKit/Source/web/WebEmbeddedWorkerImpl.cpp
|
| diff --git a/third_party/WebKit/Source/web/WebEmbeddedWorkerImpl.cpp b/third_party/WebKit/Source/web/WebEmbeddedWorkerImpl.cpp
|
| index a933efb7ed5e498c903ac7b50f3f1aa6ac22c9d2..303b19e23f291aed8f8284c243a84ac51b70e6dc 100644
|
| --- a/third_party/WebKit/Source/web/WebEmbeddedWorkerImpl.cpp
|
| +++ b/third_party/WebKit/Source/web/WebEmbeddedWorkerImpl.cpp
|
| @@ -88,7 +88,6 @@
|
| , m_mainFrame(nullptr)
|
| , m_loadingShadowPage(false)
|
| , m_askedToTerminate(false)
|
| - , m_pauseAfterDownloadState(DontPauseAfterDownload)
|
| , m_waitingForDebuggerState(NotWaitingForDebugger)
|
| {
|
| runningWorkerInstances().add(this);
|
| @@ -125,10 +124,7 @@
|
| {
|
| ASSERT(!m_askedToTerminate);
|
| ASSERT(!m_mainScriptLoader);
|
| - ASSERT(m_pauseAfterDownloadState == DontPauseAfterDownload);
|
| m_workerStartData = data;
|
| - if (data.pauseAfterDownloadMode == WebEmbeddedWorkerStartData::PauseAfterDownload)
|
| - m_pauseAfterDownloadState = DoPauseAfterDownload;
|
| prepareShadowPageForLoader();
|
| }
|
|
|
| @@ -151,23 +147,14 @@
|
| }
|
| if (!m_workerThread) {
|
| // The worker thread has not been created yet if the worker is asked to
|
| - // terminate during waiting for debugger or paused after download.
|
| - ASSERT(m_workerStartData.waitForDebuggerMode == WebEmbeddedWorkerStartData::WaitForDebugger || m_pauseAfterDownloadState == IsPausedAfterDownload);
|
| + // terminate during waiting for debugger.
|
| + ASSERT(m_workerStartData.waitForDebuggerMode == WebEmbeddedWorkerStartData::WaitForDebugger);
|
| // This deletes 'this'.
|
| m_workerContextClient->workerContextFailedToStart();
|
| return;
|
| }
|
| m_workerThread->terminate();
|
| m_workerInspectorProxy->workerThreadTerminated();
|
| -}
|
| -
|
| -void WebEmbeddedWorkerImpl::resumeAfterDownload()
|
| -{
|
| - ASSERT(!m_askedToTerminate);
|
| - ASSERT(m_pauseAfterDownloadState == IsPausedAfterDownload);
|
| -
|
| - m_pauseAfterDownloadState = DontPauseAfterDownload;
|
| - startWorkerThread();
|
| }
|
|
|
| void WebEmbeddedWorkerImpl::attachDevTools(const WebString& hostId, int sessionId)
|
| @@ -250,7 +237,7 @@
|
| // If we were asked to wait for debugger then it is the good time to do that.
|
| m_workerContextClient->workerReadyForInspection();
|
| if (m_workerStartData.waitForDebuggerMode == WebEmbeddedWorkerStartData::WaitForDebugger) {
|
| - m_waitingForDebuggerState = WaitingForDebugger;
|
| + m_waitingForDebuggerState = WaitingForDebuggerBeforeLoadingScript;
|
| return;
|
| }
|
|
|
| @@ -304,15 +291,18 @@
|
|
|
| void WebEmbeddedWorkerImpl::resumeStartup()
|
| {
|
| - bool wasWaiting = (m_waitingForDebuggerState == WaitingForDebugger);
|
| + WaitingForDebuggerState waitingForDebuggerState = m_waitingForDebuggerState;
|
| m_waitingForDebuggerState = NotWaitingForDebugger;
|
| - if (wasWaiting)
|
| + if (waitingForDebuggerState == WaitingForDebuggerBeforeLoadingScript)
|
| loadShadowPage();
|
| + else if (waitingForDebuggerState == WaitingForDebuggerAfterScriptLoaded)
|
| + startWorkerThread();
|
| }
|
|
|
| void WebEmbeddedWorkerImpl::onScriptLoaderFinished()
|
| {
|
| ASSERT(m_mainScriptLoader);
|
| +
|
| if (m_askedToTerminate)
|
| return;
|
|
|
| @@ -331,16 +321,11 @@
|
| scriptCachedMetadataSizeHistogram.count(m_mainScriptLoader->cachedMetadata()->size());
|
| }
|
|
|
| - if (m_pauseAfterDownloadState == DoPauseAfterDownload) {
|
| - m_pauseAfterDownloadState = IsPausedAfterDownload;
|
| - return;
|
| - }
|
| startWorkerThread();
|
| }
|
|
|
| void WebEmbeddedWorkerImpl::startWorkerThread()
|
| {
|
| - ASSERT(m_pauseAfterDownloadState == DontPauseAfterDownload);
|
| ASSERT(!m_askedToTerminate);
|
|
|
| Document* document = m_mainFrame->frame()->document();
|
|
|