| Index: content/renderer/pepper/message_channel.cc
|
| diff --git a/content/renderer/pepper/message_channel.cc b/content/renderer/pepper/message_channel.cc
|
| index 12d24baeda28d561f18ca7ce2ff2285f34b6b880..7a04d37964ad5f107812b7a56fa7fc1104cbad23 100644
|
| --- a/content/renderer/pepper/message_channel.cc
|
| +++ b/content/renderer/pepper/message_channel.cc
|
| @@ -294,12 +294,18 @@ void MessageChannel::EnqueuePluginMessage(const NPVariant* variant) {
|
| // won't result in a deep copy.
|
| v8::Handle<v8::Value> v8_value = WebBindings::toV8Value(variant);
|
| V8VarConverter v8_var_converter(instance_->pp_instance());
|
| - v8_var_converter.FromV8Value(
|
| - v8_value,
|
| - v8::Isolate::GetCurrent()->GetCurrentContext(),
|
| - base::Bind(&MessageChannel::FromV8ValueComplete,
|
| - weak_ptr_factory_.GetWeakPtr(),
|
| - &plugin_message_queue_.back()));
|
| + V8VarConverter::VarResult conversion_result =
|
| + v8_var_converter.FromV8Value(
|
| + v8_value,
|
| + v8::Isolate::GetCurrent()->GetCurrentContext(),
|
| + base::Bind(&MessageChannel::FromV8ValueComplete,
|
| + weak_ptr_factory_.GetWeakPtr(),
|
| + &plugin_message_queue_.back()));
|
| + if (conversion_result.completed_synchronously) {
|
| + plugin_message_queue_.back().ConversionCompleted(
|
| + conversion_result.var,
|
| + conversion_result.success);
|
| + }
|
| } else {
|
| plugin_message_queue_.back().ConversionCompleted(
|
| ScopedPPVar(ScopedPPVar::PassRef(),
|
|
|