Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(267)

Unified Diff: third_party/WebKit/Source/core/workers/Worklet.cpp

Issue 2819153003: Worklet: Separate Worklet into MainThreadWorklet and ThreadedWorklet (Closed)
Patch Set: update comments Created 3 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: third_party/WebKit/Source/core/workers/Worklet.cpp
diff --git a/third_party/WebKit/Source/core/workers/Worklet.cpp b/third_party/WebKit/Source/core/workers/Worklet.cpp
index a5f9e2a9956dbb53af533920a85f9558f047f120..1e6c2743977353df896cf4b145a2f75b8e63daf9 100644
--- a/third_party/WebKit/Source/core/workers/Worklet.cpp
+++ b/third_party/WebKit/Source/core/workers/Worklet.cpp
@@ -4,77 +4,27 @@
#include "core/workers/Worklet.h"
-#include "bindings/core/v8/ScriptSourceCode.h"
-#include "bindings/core/v8/V8Binding.h"
#include "core/dom/DOMException.h"
#include "core/dom/Document.h"
-#include "core/dom/ExceptionCode.h"
#include "core/frame/LocalFrame.h"
#include "core/workers/WorkletGlobalScopeProxy.h"
-#include "platform/wtf/WTF.h"
namespace blink {
Worklet::Worklet(LocalFrame* frame)
- : ContextLifecycleObserver(frame->GetDocument()), frame_(frame) {}
-
-ScriptPromise Worklet::import(ScriptState* script_state, const String& url) {
- DCHECK(IsMainThread());
- if (!GetExecutionContext()) {
- return ScriptPromise::RejectWithDOMException(
- script_state, DOMException::Create(kInvalidStateError,
- "This frame is already detached"));
- }
-
- KURL script_url = GetExecutionContext()->CompleteURL(url);
- if (!script_url.IsValid()) {
- return ScriptPromise::RejectWithDOMException(
- script_state, DOMException::Create(
- kSyntaxError, "'" + url + "' is not a valid URL."));
- }
-
- if (!IsInitialized())
- Initialize();
-
- ScriptPromiseResolver* resolver = ScriptPromiseResolver::Create(script_state);
- ScriptPromise promise = resolver->Promise();
-
- WorkletScriptLoader* script_loader =
- WorkletScriptLoader::Create(frame_->GetDocument()->Fetcher(), this);
- loader_and_resolvers_.Set(script_loader, resolver);
- script_loader->FetchScript(script_url);
- return promise;
-}
-
-void Worklet::NotifyWorkletScriptLoadingFinished(
- WorkletScriptLoader* script_loader,
- const ScriptSourceCode& source_code) {
+ : ContextLifecycleObserver(frame->GetDocument()), frame_(frame) {
DCHECK(IsMainThread());
- ScriptPromiseResolver* resolver = loader_and_resolvers_.at(script_loader);
- loader_and_resolvers_.erase(script_loader);
-
- if (!script_loader->WasScriptLoadSuccessful()) {
- resolver->Reject(DOMException::Create(kNetworkError));
- return;
- }
-
- GetWorkletGlobalScopeProxy()->EvaluateScript(source_code);
- resolver->Resolve();
}
void Worklet::ContextDestroyed(ExecutionContext*) {
DCHECK(IsMainThread());
if (IsInitialized())
GetWorkletGlobalScopeProxy()->TerminateWorkletGlobalScope();
- for (const auto& script_loader : loader_and_resolvers_.Keys())
- script_loader->Cancel();
- loader_and_resolvers_.Clear();
frame_ = nullptr;
}
DEFINE_TRACE(Worklet) {
visitor->Trace(frame_);
- visitor->Trace(loader_and_resolvers_);
ContextLifecycleObserver::Trace(visitor);
}

Powered by Google App Engine
This is Rietveld 408576698