Index: third_party/WebKit/Source/core/workers/MainThreadWorklet.cpp |
diff --git a/third_party/WebKit/Source/core/workers/Worklet.cpp b/third_party/WebKit/Source/core/workers/MainThreadWorklet.cpp |
similarity index 65% |
copy from third_party/WebKit/Source/core/workers/Worklet.cpp |
copy to third_party/WebKit/Source/core/workers/MainThreadWorklet.cpp |
index a5f9e2a9956dbb53af533920a85f9558f047f120..d58013c098195d78b2ff592ad093502e8580a90d 100644 |
--- a/third_party/WebKit/Source/core/workers/Worklet.cpp |
+++ b/third_party/WebKit/Source/core/workers/MainThreadWorklet.cpp |
@@ -1,8 +1,8 @@ |
-// Copyright 2016 The Chromium Authors. All rights reserved. |
+// Copyright 2017 The Chromium Authors. All rights reserved. |
// Use of this source code is governed by a BSD-style license that can be |
// found in the LICENSE file. |
-#include "core/workers/Worklet.h" |
+#include "core/workers/MainThreadWorklet.h" |
#include "bindings/core/v8/ScriptSourceCode.h" |
#include "bindings/core/v8/V8Binding.h" |
@@ -15,10 +15,10 @@ |
namespace blink { |
-Worklet::Worklet(LocalFrame* frame) |
- : ContextLifecycleObserver(frame->GetDocument()), frame_(frame) {} |
+MainThreadWorklet::MainThreadWorklet(LocalFrame* frame) : Worklet(frame) {} |
-ScriptPromise Worklet::import(ScriptState* script_state, const String& url) { |
+ScriptPromise MainThreadWorklet::import(ScriptState* script_state, |
+ const String& url) { |
DCHECK(IsMainThread()); |
if (!GetExecutionContext()) { |
return ScriptPromise::RejectWithDOMException( |
@@ -41,17 +41,17 @@ ScriptPromise Worklet::import(ScriptState* script_state, const String& url) { |
WorkletScriptLoader* script_loader = |
WorkletScriptLoader::Create(frame_->GetDocument()->Fetcher(), this); |
- loader_and_resolvers_.Set(script_loader, resolver); |
+ loader_to_resolver_map_.Set(script_loader, resolver); |
script_loader->FetchScript(script_url); |
return promise; |
} |
-void Worklet::NotifyWorkletScriptLoadingFinished( |
+void MainThreadWorklet::NotifyWorkletScriptLoadingFinished( |
WorkletScriptLoader* script_loader, |
const ScriptSourceCode& source_code) { |
DCHECK(IsMainThread()); |
- ScriptPromiseResolver* resolver = loader_and_resolvers_.at(script_loader); |
- loader_and_resolvers_.erase(script_loader); |
+ ScriptPromiseResolver* resolver = loader_to_resolver_map_.at(script_loader); |
+ loader_to_resolver_map_.erase(script_loader); |
if (!script_loader->WasScriptLoadSuccessful()) { |
resolver->Reject(DOMException::Create(kNetworkError)); |
@@ -62,20 +62,17 @@ void Worklet::NotifyWorkletScriptLoadingFinished( |
resolver->Resolve(); |
} |
-void Worklet::ContextDestroyed(ExecutionContext*) { |
+void MainThreadWorklet::ContextDestroyed(ExecutionContext* execution_context) { |
DCHECK(IsMainThread()); |
- if (IsInitialized()) |
- GetWorkletGlobalScopeProxy()->TerminateWorkletGlobalScope(); |
- for (const auto& script_loader : loader_and_resolvers_.Keys()) |
+ for (const auto& script_loader : loader_to_resolver_map_.Keys()) |
script_loader->Cancel(); |
- loader_and_resolvers_.Clear(); |
- frame_ = nullptr; |
+ loader_to_resolver_map_.Clear(); |
+ Worklet::ContextDestroyed(execution_context); |
} |
-DEFINE_TRACE(Worklet) { |
- visitor->Trace(frame_); |
- visitor->Trace(loader_and_resolvers_); |
- ContextLifecycleObserver::Trace(visitor); |
+DEFINE_TRACE(MainThreadWorklet) { |
+ visitor->Trace(loader_to_resolver_map_); |
+ Worklet::Trace(visitor); |
} |
} // namespace blink |