Index: chrome/plugin/npobject_proxy.cc |
=================================================================== |
--- chrome/plugin/npobject_proxy.cc (revision 20181) |
+++ chrome/plugin/npobject_proxy.cc (working copy) |
@@ -49,11 +49,13 @@ |
PluginChannelBase* channel, |
int route_id, |
intptr_t npobject_ptr, |
- base::WaitableEvent* modal_dialog_event) |
+ base::WaitableEvent* modal_dialog_event, |
+ const GURL& page_url) |
: channel_(channel), |
route_id_(route_id), |
npobject_ptr_(npobject_ptr), |
- modal_dialog_event_(modal_dialog_event) { |
+ modal_dialog_event_(modal_dialog_event), |
+ page_url_(page_url) { |
channel_->AddRoute(route_id, this, true); |
} |
@@ -68,11 +70,12 @@ |
NPObject* NPObjectProxy::Create(PluginChannelBase* channel, |
int route_id, |
intptr_t npobject_ptr, |
- base::WaitableEvent* modal_dialog_event) { |
+ base::WaitableEvent* modal_dialog_event, |
+ const GURL& page_url) { |
NPObjectWrapper* obj = reinterpret_cast<NPObjectWrapper*>( |
NPN_CreateObject(0, &npclass_proxy_)); |
obj->proxy = new NPObjectProxy( |
- channel, route_id, npobject_ptr, modal_dialog_event); |
+ channel, route_id, npobject_ptr, modal_dialog_event, page_url); |
return reinterpret_cast<NPObject*>(obj); |
} |
@@ -166,7 +169,8 @@ |
for (unsigned int i = 0; i < arg_count; ++i) { |
NPVariant_Param param; |
CreateNPVariantParam( |
- args[i], channel_copy, ¶m, false, proxy->modal_dialog_event_); |
+ args[i], channel_copy, ¶m, false, proxy->modal_dialog_event_, |
+ proxy->page_url_); |
args_param.push_back(param); |
} |
@@ -184,6 +188,7 @@ |
base::WaitableEvent* modal_dialog_event_handle = proxy->modal_dialog_event_; |
+ GURL page_url = proxy->page_url_; |
proxy->Send(msg); |
// Send may delete proxy. |
@@ -193,7 +198,8 @@ |
return false; |
CreateNPVariant( |
- param_result, channel_copy, np_result, modal_dialog_event_handle); |
+ param_result, channel_copy, np_result, modal_dialog_event_handle, |
+ page_url); |
return true; |
} |
@@ -243,6 +249,8 @@ |
NPVariant_Param param; |
base::WaitableEvent* modal_dialog_event_handle = proxy->modal_dialog_event_; |
scoped_refptr<PluginChannelBase> channel(proxy->channel_); |
+ |
+ GURL page_url = proxy->page_url_; |
proxy->Send(new NPObjectMsg_GetProperty( |
proxy->route_id(), name_param, ¶m, &result)); |
// Send may delete proxy. |
@@ -251,7 +259,7 @@ |
return false; |
CreateNPVariant( |
- param, channel.get(), np_result, modal_dialog_event_handle); |
+ param, channel.get(), np_result, modal_dialog_event_handle, page_url); |
return true; |
} |
@@ -271,7 +279,7 @@ |
NPVariant_Param value_param; |
CreateNPVariantParam( |
*value, proxy->channel(), &value_param, false, |
- proxy->modal_dialog_event_); |
+ proxy->modal_dialog_event_, proxy->page_url_); |
proxy->Send(new NPObjectMsg_SetProperty( |
proxy->route_id(), name_param, value_param, &result)); |
@@ -358,7 +366,8 @@ |
for (unsigned int i = 0; i < arg_count; ++i) { |
NPVariant_Param param; |
CreateNPVariantParam( |
- args[i], channel_copy, ¶m, false, proxy->modal_dialog_event_); |
+ args[i], channel_copy, ¶m, false, proxy->modal_dialog_event_, |
+ proxy->page_url_); |
args_param.push_back(param); |
} |
@@ -371,6 +380,7 @@ |
base::WaitableEvent* modal_dialog_event_handle = proxy->modal_dialog_event_; |
+ GURL page_url = proxy->page_url_; |
proxy->Send(msg); |
// Send may delete proxy. |
@@ -380,7 +390,8 @@ |
return false; |
CreateNPVariant( |
- param_result, channel_copy, np_result, modal_dialog_event_handle); |
+ param_result, channel_copy, np_result, modal_dialog_event_handle, |
+ page_url); |
return true; |
} |
@@ -418,6 +429,8 @@ |
msg->set_pump_messages_event(proxy->modal_dialog_event_); |
scoped_refptr<PluginChannelBase> channel(proxy->channel_); |
base::WaitableEvent* modal_dialog_event_handle = proxy->modal_dialog_event_; |
+ |
+ GURL page_url = proxy->page_url_; |
proxy->Send(msg); |
// Send may delete proxy. |
proxy = NULL; |
@@ -425,7 +438,8 @@ |
return false; |
CreateNPVariant( |
- result_param, channel.get(), result_var, modal_dialog_event_handle); |
+ result_param, channel.get(), result_var, modal_dialog_event_handle, |
+ page_url); |
return true; |
} |