Commit 8e40d35a authored by tzik's avatar tzik Committed by Commit bot

Use MainThread on EmptyFrameScheduler

The dummy Frame on Workers has EmptyFrameScheduler, and it returns a
WebTaskRunner for the current thread. However, since all Frame should
belong to the main thread, the resulting WebTaskRunner should run on
the main thread even when the task runner is requested on a non-main
thread.
This CL ensures EmptyFrameScheduler to use the main thread task runner.

Review-Url: https://codereview.chromium.org/2544303002
Cr-Commit-Position: refs/heads/master@{#436265}
parent 5102a7c1
...@@ -71,6 +71,7 @@ class EmptyPopupMenu : public PopupMenu { ...@@ -71,6 +71,7 @@ class EmptyPopupMenu : public PopupMenu {
class EmptyFrameScheduler : public WebFrameScheduler { class EmptyFrameScheduler : public WebFrameScheduler {
public: public:
EmptyFrameScheduler() { DCHECK(isMainThread()); }
void setFrameVisible(bool) override {} void setFrameVisible(bool) override {}
WebTaskRunner* loadingTaskRunner() override; WebTaskRunner* loadingTaskRunner() override;
WebTaskRunner* timerTaskRunner() override; WebTaskRunner* timerTaskRunner() override;
...@@ -78,15 +79,15 @@ class EmptyFrameScheduler : public WebFrameScheduler { ...@@ -78,15 +79,15 @@ class EmptyFrameScheduler : public WebFrameScheduler {
}; };
WebTaskRunner* EmptyFrameScheduler::loadingTaskRunner() { WebTaskRunner* EmptyFrameScheduler::loadingTaskRunner() {
return Platform::current()->currentThread()->getWebTaskRunner(); return Platform::current()->mainThread()->getWebTaskRunner();
} }
WebTaskRunner* EmptyFrameScheduler::timerTaskRunner() { WebTaskRunner* EmptyFrameScheduler::timerTaskRunner() {
return Platform::current()->currentThread()->getWebTaskRunner(); return Platform::current()->mainThread()->getWebTaskRunner();
} }
WebTaskRunner* EmptyFrameScheduler::unthrottledTaskRunner() { WebTaskRunner* EmptyFrameScheduler::unthrottledTaskRunner() {
return Platform::current()->currentThread()->getWebTaskRunner(); return Platform::current()->mainThread()->getWebTaskRunner();
} }
PopupMenu* EmptyChromeClient::openPopupMenu(LocalFrame&, HTMLSelectElement&) { PopupMenu* EmptyChromeClient::openPopupMenu(LocalFrame&, HTMLSelectElement&) {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment