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

Unified Diff: public/platform/WebScheduler.h

Issue 1087203002: Patch 2/3 to get WebScheduler via WebThread (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Sami's tidy up Created 5 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: public/platform/WebScheduler.h
diff --git a/public/platform/WebScheduler.h b/public/platform/WebScheduler.h
index 551327fc999ab6b2a3bc1b2838c9ab23d3e348dc..463d1300af735ada6a105b97c63716c5c66145e6 100644
--- a/public/platform/WebScheduler.h
+++ b/public/platform/WebScheduler.h
@@ -18,9 +18,9 @@ class BLINK_PLATFORM_EXPORT WebScheduler {
public:
virtual ~WebScheduler() { }
- // Returns true if there is high priority work pending on the main thread
+ // Returns true if there is high priority work pending on the associated WebThread
// and the caller should yield to let the scheduler service that work.
- // Must be called on the main thread.
+ // Must be called on the associated WebThread.
virtual bool shouldYieldForHighPriorityWork() { return false; }
// Returns true if a currently running idle task could exceed its deadline
@@ -30,10 +30,10 @@ public:
// check whether more work can be performed on the current idle task after
// its deadline has expired - post a new idle task for the continuation of
// the work in this case.
- // Must be called from the main thread.
+ // Must be called from the associated WebThread.
virtual bool canExceedIdleDeadlineIfRequired() { return false; }
- // Schedule an idle task to run the Blink main thread. For non-critical
+ // Schedule an idle task to run the associated WebThread. For non-critical
// tasks which may be reordered relative to other task types and may be
// starved for an arbitrarily long time if no idle time is available.
// Takes ownership of |IdleTask|. Can be called from any thread.
@@ -52,11 +52,28 @@ public:
// Takes ownership of |IdleTask|. Can be called from any thread.
virtual void postIdleTaskAfterWakeup(const WebTraceLocation&, WebThread::IdleTask*) { }
- // Schedule a loading task to be run on the Blink main thread. Loading
+ // Schedule a loading task to be run on the the associated WebThread. Loading
// tasks usually have the default priority, but may be deprioritised
// when the user is interacting with the device.
// Takes ownership of |WebThread::Task|. Can be called from any thread.
virtual void postLoadingTask(const WebTraceLocation&, WebThread::Task*) { }
+
+ // Schedule a timer task to be run on the the associated WebThread. Timer Tasks
+ // tasks usually have the default priority, but may be delayed
+ // when the user is interacting with the device.
+ // Takes ownership of |WebThread::Task|. Can be called from any thread.
+ virtual void postTimerTask(const WebTraceLocation&, WebThread::Task*, long long delayMs) { }
+
+#ifdef INSIDE_BLINK
+ // Helpers for posting bound functions as tasks.
+ typedef Function<void(double deadlineSeconds)> IdleTask;
+ typedef Function<void()> Task;
+
+ void postIdleTask(const WebTraceLocation&, PassOwnPtr<IdleTask>);
+ void postNonNestableIdleTask(const WebTraceLocation&, PassOwnPtr<IdleTask>);
+ void postIdleTaskAfterWakeup(const WebTraceLocation&, PassOwnPtr<IdleTask>);
+ void postLoadingTask(const WebTraceLocation&, PassOwnPtr<Task>);
+#endif
};
} // namespace blink

Powered by Google App Engine
This is Rietveld 408576698