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

Unified Diff: third_party/WebKit/Source/core/html/parser/HTMLParserScheduler.cpp

Issue 2507673002: Scheduler: Deprecate CancellableTaskFactory in favor of WebTaskRunner::postCancellableTask (2) (Closed)
Patch Set: address review comments Created 4 years, 1 month 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/html/parser/HTMLParserScheduler.cpp
diff --git a/third_party/WebKit/Source/core/html/parser/HTMLParserScheduler.cpp b/third_party/WebKit/Source/core/html/parser/HTMLParserScheduler.cpp
index 383f23f3ab505995f8a3c309f5c4bedbc95a6e94..f651555f931ad06a7169e80c743029b2b23ade5b 100644
--- a/third_party/WebKit/Source/core/html/parser/HTMLParserScheduler.cpp
+++ b/third_party/WebKit/Source/core/html/parser/HTMLParserScheduler.cpp
@@ -60,9 +60,6 @@ HTMLParserScheduler::HTMLParserScheduler(HTMLDocumentParser* parser,
WebTaskRunner* loadingTaskRunner)
: m_parser(parser),
m_loadingTaskRunner(loadingTaskRunner->clone()),
- m_cancellableContinueParse(CancellableTaskFactory::create(
- this,
- &HTMLParserScheduler::continueParsing)),
m_isSuspendedWithActiveTimer(false) {}
HTMLParserScheduler::~HTMLParserScheduler() {}
@@ -71,32 +68,37 @@ DEFINE_TRACE(HTMLParserScheduler) {
visitor->trace(m_parser);
}
+bool HTMLParserScheduler::isScheduledForResume() const {
+ return m_isSuspendedWithActiveTimer ||
+ m_cancellableContinueParseTaskHandle.isActive();
+}
+
void HTMLParserScheduler::scheduleForResume() {
- ASSERT(!m_isSuspendedWithActiveTimer);
- m_loadingTaskRunner->postTask(BLINK_FROM_HERE,
- m_cancellableContinueParse->cancelAndCreate());
+ DCHECK(!m_isSuspendedWithActiveTimer);
+ m_cancellableContinueParseTaskHandle =
+ m_loadingTaskRunner->postCancellableTask(
+ BLINK_FROM_HERE, WTF::bind(&HTMLParserScheduler::continueParsing,
+ wrapWeakPersistent(this)));
}
void HTMLParserScheduler::suspend() {
- ASSERT(!m_isSuspendedWithActiveTimer);
- if (!m_cancellableContinueParse->isPending())
+ DCHECK(!m_isSuspendedWithActiveTimer);
+ if (!m_cancellableContinueParseTaskHandle.isActive())
return;
m_isSuspendedWithActiveTimer = true;
- m_cancellableContinueParse->cancel();
+ m_cancellableContinueParseTaskHandle.cancel();
}
void HTMLParserScheduler::resume() {
- ASSERT(!m_cancellableContinueParse->isPending());
+ DCHECK(!m_cancellableContinueParseTaskHandle.isActive());
if (!m_isSuspendedWithActiveTimer)
return;
m_isSuspendedWithActiveTimer = false;
-
- m_loadingTaskRunner->postTask(BLINK_FROM_HERE,
- m_cancellableContinueParse->cancelAndCreate());
+ scheduleForResume();
}
void HTMLParserScheduler::detach() {
- m_cancellableContinueParse->cancel();
+ m_cancellableContinueParseTaskHandle.cancel();
m_isSuspendedWithActiveTimer = false;
}
@@ -139,7 +141,7 @@ bool HTMLParserScheduler::yieldIfNeeded(const SpeculationsPumpSession& session,
}
void HTMLParserScheduler::forceResumeAfterYield() {
- ASSERT(!m_cancellableContinueParse->isPending());
+ DCHECK(!m_cancellableContinueParseTaskHandle.isActive());
m_isSuspendedWithActiveTimer = true;
}

Powered by Google App Engine
This is Rietveld 408576698