diff options
author | raymes@chromium.org <raymes@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-08-22 09:29:08 +0000 |
---|---|---|
committer | raymes@chromium.org <raymes@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-08-22 09:29:08 +0000 |
commit | 4a52cf258635709b5c0d4d2774eb4190ae5a03b4 (patch) | |
tree | 8c065b58a1a66254880942dde517305c49cc8651 /content/renderer/pepper/v8_var_converter_unittest.cc | |
parent | 227fc0f6adfe7a481d542302019ec5cc7017c6ae (diff) | |
download | chromium_src-4a52cf258635709b5c0d4d2774eb4190ae5a03b4.zip chromium_src-4a52cf258635709b5c0d4d2774eb4190ae5a03b4.tar.gz chromium_src-4a52cf258635709b5c0d4d2774eb4190ae5a03b4.tar.bz2 |
Post the V8VarConverter::FromV8Var callback as a task.
This changes the V8VarConverter::FromV8Var to be run asynchronously always for consistency. It also pulls the ResourceConverter into another file.
BUG=177017
TBR=jochen@chromium.org
Review URL: https://chromiumcodereview.appspot.com/22801005
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@218970 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'content/renderer/pepper/v8_var_converter_unittest.cc')
-rw-r--r-- | content/renderer/pepper/v8_var_converter_unittest.cc | 23 |
1 files changed, 17 insertions, 6 deletions
diff --git a/content/renderer/pepper/v8_var_converter_unittest.cc b/content/renderer/pepper/v8_var_converter_unittest.cc index 99918f0..d80335a 100644 --- a/content/renderer/pepper/v8_var_converter_unittest.cc +++ b/content/renderer/pepper/v8_var_converter_unittest.cc @@ -10,6 +10,7 @@ #include "base/memory/ref_counted.h" #include "base/memory/scoped_ptr.h" #include "base/synchronization/waitable_event.h" +#include "base/threading/thread.h" #include "base/values.h" #include "ppapi/c/pp_bool.h" #include "ppapi/c/pp_var.h" @@ -134,7 +135,12 @@ bool Equals(const PP_Var& var, class V8VarConverterTest : public testing::Test { public: V8VarConverterTest() - : isolate_(v8::Isolate::GetCurrent()) {} + : isolate_(v8::Isolate::GetCurrent()), + conversion_success_(false), + conversion_event_(true, false), + callback_thread_("callback_thread") { + callback_thread_.Start(); + } virtual ~V8VarConverterTest() {} // testing::Test implementation. @@ -155,7 +161,10 @@ class V8VarConverterTest : public testing::Test { v8::Handle<v8::Context> context, PP_Var* result) { V8VarConverter::FromV8Value(val, context, base::Bind( - &V8VarConverterTest::FromV8ValueComplete, base::Unretained(this))); + &V8VarConverterTest::FromV8ValueComplete, base::Unretained(this)), + callback_thread_.message_loop_proxy()); + conversion_event_.Wait(); + conversion_event_.Reset(); if (conversion_success_) *result = conversion_result_; return conversion_success_; @@ -167,6 +176,7 @@ class V8VarConverterTest : public testing::Test { ScopedPPVar var = scoped_var; conversion_result_ = var.Release(); } + conversion_event_.Signal(); } bool RoundTrip(const PP_Var& var, PP_Var* result) { @@ -199,12 +209,13 @@ class V8VarConverterTest : public testing::Test { // Context for the JavaScript in the test. v8::Persistent<v8::Context> context_; - PP_Var conversion_result_; - bool conversion_success_; - - private: TestGlobals globals_; + + PP_Var conversion_result_; + bool conversion_success_; + base::WaitableEvent conversion_event_; + base::Thread callback_thread_; }; } // namespace |