summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorskyostil <skyostil@chromium.org>2015-05-29 10:58:35 -0700
committerCommit bot <commit-bot@chromium.org>2015-05-29 17:59:12 +0000
commit278ba16ea277753f370236aefd4c6a7236097bbf (patch)
treeaef1321caa3bc183181d7a0df426c684d28ac24a
parentcfdd80f3d2a845a2267dd9ffe81011609f74eb0c (diff)
downloadchromium_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.cc31
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);