diff options
author | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2020-07-16 11:45:35 +0200 |
---|---|---|
committer | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2020-07-17 08:59:23 +0000 |
commit | 552906b0f222c5d5dd11b9fd73829d510980461a (patch) | |
tree | 3a11e6ed0538a81dd83b20cf3a4783e297f26d91 /chromium/third_party/blink/renderer/core/script/script_runner.cc | |
parent | 1b05827804eaf047779b597718c03e7d38344261 (diff) | |
download | qtwebengine-chromium-552906b0f222c5d5dd11b9fd73829d510980461a.tar.gz |
BASELINE: Update Chromium to 83.0.4103.122
Change-Id: Ie3a82f5bb0076eec2a7c6a6162326b4301ee291e
Reviewed-by: Michael BrĂ¼ning <michael.bruning@qt.io>
Diffstat (limited to 'chromium/third_party/blink/renderer/core/script/script_runner.cc')
-rw-r--r-- | chromium/third_party/blink/renderer/core/script/script_runner.cc | 21 |
1 files changed, 12 insertions, 9 deletions
diff --git a/chromium/third_party/blink/renderer/core/script/script_runner.cc b/chromium/third_party/blink/renderer/core/script/script_runner.cc index 6965a18ccf6..9a81bdc25bd 100644 --- a/chromium/third_party/blink/renderer/core/script/script_runner.cc +++ b/chromium/third_party/blink/renderer/core/script/script_runner.cc @@ -35,13 +35,16 @@ #include "third_party/blink/renderer/platform/scheduler/public/cooperative_scheduling_manager.h" #include "third_party/blink/renderer/platform/scheduler/public/thread.h" #include "third_party/blink/renderer/platform/scheduler/public/thread_scheduler.h" +#include "third_party/blink/renderer/platform/wtf/casting.h" namespace blink { ScriptRunner::ScriptRunner(Document* document) - : document_(document), + : ExecutionContextLifecycleStateObserver(document), + document_(document), task_runner_(document->GetTaskRunner(TaskType::kNetworking)) { DCHECK(document); + UpdateStateIfNeeded(); } void ScriptRunner::QueueScriptForExecution(PendingScript* pending_script) { @@ -70,18 +73,17 @@ void ScriptRunner::PostTask(const base::Location& web_trace_location) { WTF::Bind(&ScriptRunner::ExecuteTask, WrapWeakPersistent(this))); } -void ScriptRunner::Suspend() { - is_suspended_ = true; -} - -void ScriptRunner::Resume() { - DCHECK(is_suspended_); - - is_suspended_ = false; +void ScriptRunner::ContextLifecycleStateChanged( + mojom::FrameLifecycleState state) { if (!IsExecutionSuspended()) PostTasksForReadyScripts(FROM_HERE); } +bool ScriptRunner::IsExecutionSuspended() { + return !GetExecutionContext() || GetExecutionContext()->IsContextPaused() || + is_force_deferred_; +} + void ScriptRunner::SetForceDeferredExecution(bool force_deferred) { DCHECK(force_deferred != is_force_deferred_); @@ -260,6 +262,7 @@ void ScriptRunner::ExecuteTask() { } void ScriptRunner::Trace(Visitor* visitor) { + ExecutionContextLifecycleStateObserver::Trace(visitor); visitor->Trace(document_); visitor->Trace(pending_in_order_scripts_); visitor->Trace(pending_async_scripts_); |