Index: content/browser/media/webrtc_getusermedia_browsertest.cc |
diff --git a/content/browser/media/webrtc_getusermedia_browsertest.cc b/content/browser/media/webrtc_getusermedia_browsertest.cc |
index d2e69eed076d5ef66b78a3d502423a6607a72459..8cd00dce04703f741a8ec88dd476d55e6cae2e8d 100644 |
--- a/content/browser/media/webrtc_getusermedia_browsertest.cc |
+++ b/content/browser/media/webrtc_getusermedia_browsertest.cc |
@@ -96,6 +96,7 @@ class WebRtcGetUserMediaBrowserTest: public WebRtcContentBrowserTest { |
CHECK(message_loop_runner_.get() == NULL) |
<< "Calling StopTracing more than once"; |
trace_log_->SetDisabled(); |
+ message_loop_proxy_ = base::MessageLoopProxy::current(); |
message_loop_runner_ = new MessageLoopRunner; |
trace_log_->Flush(base::Bind( |
&WebRtcGetUserMediaBrowserTest::OnTraceDataCollected, |
@@ -107,6 +108,13 @@ class WebRtcGetUserMediaBrowserTest: public WebRtcContentBrowserTest { |
const scoped_refptr<base::RefCountedString>& events_str_ptr, |
bool has_more_events) { |
CHECK(!has_more_events); |
+ if (!message_loop_proxy_->BelongsToCurrentThread()) { |
+ message_loop_proxy_->PostTask( |
+ FROM_HERE, |
+ Bind(&WebRtcGetUserMediaBrowserTest::OnTraceDataCollected, |
+ base::Unretained(this), events_str_ptr, has_more_events)); |
+ return; |
+ } |
recorded_trace_data_ = events_str_ptr; |
message_loop_runner_->Quit(); |
} |
@@ -234,6 +242,7 @@ class WebRtcGetUserMediaBrowserTest: public WebRtcContentBrowserTest { |
base::debug::TraceLog* trace_log_; |
scoped_refptr<base::RefCountedString> recorded_trace_data_; |
scoped_refptr<MessageLoopRunner> message_loop_runner_; |
+ scoped_refptr<base::MessageLoopProxy> message_loop_proxy_; |
}; |
// These tests will all make a getUserMedia call with different constraints and |