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..ebacc632aee96e6d8c99b5eb8670d371e84612b7 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::VarConversionResult conversion_result = |
dmichael (off chromium)
2014/06/13 17:24:48
Being nested, maybe it would be enough to call it
raymes
2014/06/16 02:59:25
Done. Well caught - I didn't notice the local clas
|
+ 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(), |