summaryrefslogtreecommitdiff
path: root/chromium/third_party/blink/renderer/core/script/script_runner.cc
diff options
context:
space:
mode:
authorAllan Sandfeld Jensen <allan.jensen@qt.io>2020-07-16 11:45:35 +0200
committerAllan Sandfeld Jensen <allan.jensen@qt.io>2020-07-17 08:59:23 +0000
commit552906b0f222c5d5dd11b9fd73829d510980461a (patch)
tree3a11e6ed0538a81dd83b20cf3a4783e297f26d91 /chromium/third_party/blink/renderer/core/script/script_runner.cc
parent1b05827804eaf047779b597718c03e7d38344261 (diff)
downloadqtwebengine-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.cc21
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_);