diff options
author | skyostil <skyostil@chromium.org> | 2015-05-29 10:58:35 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2015-05-29 17:59:12 +0000 |
commit | 278ba16ea277753f370236aefd4c6a7236097bbf (patch) | |
tree | aef1321caa3bc183181d7a0df426c684d28ac24a | |
parent | cfdd80f3d2a845a2267dd9ffe81011609f74eb0c (diff) | |
download | chromium_src-278ba16ea277753f370236aefd4c6a7236097bbf.zip chromium_src-278ba16ea277753f370236aefd4c6a7236097bbf.tar.gz chromium_src-278ba16ea277753f370236aefd4c6a7236097bbf.tar.bz2 |
Ensure TestBlinkUnitTestSupport provides a current thread to Blink
More of Blink will start assuming that Platform::currentThread()
returns a non-null WebThread. This patch ensures this is true for tests
which are using TestBlinkUnitTestSupport.
BUG=463143
Review URL: https://codereview.chromium.org/1156423003
Cr-Commit-Position: refs/heads/master@{#332007}
-rw-r--r-- | content/test/test_blink_web_unit_test_support.cc | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/content/test/test_blink_web_unit_test_support.cc b/content/test/test_blink_web_unit_test_support.cc index 8aa6618..4dbce40 100644 --- a/content/test/test_blink_web_unit_test_support.cc +++ b/content/test/test_blink_web_unit_test_support.cc @@ -24,6 +24,7 @@ #include "storage/browser/database/vfs_backend.h" #include "third_party/WebKit/public/platform/WebData.h" #include "third_party/WebKit/public/platform/WebFileSystem.h" +#include "third_party/WebKit/public/platform/WebScheduler.h" #include "third_party/WebKit/public/platform/WebStorageArea.h" #include "third_party/WebKit/public/platform/WebStorageNamespace.h" #include "third_party/WebKit/public/platform/WebString.h" @@ -76,6 +77,35 @@ class DummyTaskRunner : public base::SingleThreadTaskRunner { DISALLOW_COPY_AND_ASSIGN(DummyTaskRunner); }; +class DummyWebThread : public blink::WebThread { + public: + DummyWebThread() + : thread_id_(base::PlatformThread::CurrentId()), + m_dummyScheduler(new blink::WebScheduler()) {} + + virtual void postTask(const blink::WebTraceLocation&, Task*) { NOTREACHED(); } + + virtual void postDelayedTask(const blink::WebTraceLocation&, + Task*, + long long delayMs) { + NOTREACHED(); + } + + virtual bool isCurrentThread() const { + return thread_id_ == base::PlatformThread::CurrentId(); + } + + virtual blink::WebScheduler* scheduler() const { + return m_dummyScheduler.get(); + } + + private: + base::PlatformThreadId thread_id_; + scoped_ptr<blink::WebScheduler> m_dummyScheduler; + + DISALLOW_COPY_AND_ASSIGN(DummyWebThread); +}; + } // namespace namespace content { @@ -109,6 +139,7 @@ TestBlinkWebUnitTestSupport::TestBlinkWebUnitTestSupport() { dummy_task_runner = make_scoped_refptr(new DummyTaskRunner()); dummy_task_runner_handle.reset( new base::ThreadTaskRunnerHandle(dummy_task_runner)); + web_thread_.reset(new DummyWebThread()); } blink::initialize(this); |