summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--chrome/renderer/audio_message_filter.cc9
1 files changed, 9 insertions, 0 deletions
diff --git a/chrome/renderer/audio_message_filter.cc b/chrome/renderer/audio_message_filter.cc
index de209d9..d9c3a44 100644
--- a/chrome/renderer/audio_message_filter.cc
+++ b/chrome/renderer/audio_message_filter.cc
@@ -23,6 +23,15 @@ bool AudioMessageFilter::Send(IPC::Message* message) {
delete message;
return false;
}
+
+ if (MessageLoop::current() != message_loop_) {
+ // Can only access the IPC::Channel on the IPC thread since it's not thread
+ // safe.
+ message_loop_->PostTask(
+ FROM_HERE, NewRunnableMethod(this, &AudioMessageFilter::Send, message));
+ return true;
+ }
+
message->set_routing_id(route_id_);
return channel_->Send(message);
}