summaryrefslogtreecommitdiffstats
path: root/ppapi/proxy/ppb_url_util_proxy.cc
diff options
context:
space:
mode:
Diffstat (limited to 'ppapi/proxy/ppb_url_util_proxy.cc')
-rw-r--r--ppapi/proxy/ppb_url_util_proxy.cc27
1 files changed, 15 insertions, 12 deletions
diff --git a/ppapi/proxy/ppb_url_util_proxy.cc b/ppapi/proxy/ppb_url_util_proxy.cc
index a202038..b3cea08 100644
--- a/ppapi/proxy/ppb_url_util_proxy.cc
+++ b/ppapi/proxy/ppb_url_util_proxy.cc
@@ -129,16 +129,19 @@ const PPB_URLUtil_Dev url_util_interface = {
&GetPluginInstanceURL
};
-InterfaceProxy* CreateURLUtilProxy(Dispatcher* dispatcher,
- const void* target_interface) {
- return new PPB_URLUtil_Proxy(dispatcher, target_interface);
+InterfaceProxy* CreateURLUtilProxy(Dispatcher* dispatcher) {
+ return new PPB_URLUtil_Proxy(dispatcher);
}
} // namespace
-PPB_URLUtil_Proxy::PPB_URLUtil_Proxy(Dispatcher* dispatcher,
- const void* target_interface)
- : InterfaceProxy(dispatcher, target_interface) {
+PPB_URLUtil_Proxy::PPB_URLUtil_Proxy(Dispatcher* dispatcher)
+ : InterfaceProxy(dispatcher),
+ ppb_url_util_impl_(NULL) {
+ if (!dispatcher->IsPlugin()) {
+ ppb_url_util_impl_ = static_cast<const PPB_URLUtil_Dev*>(
+ dispatcher->local_get_interface()(PPB_URLUTIL_DEV_INTERFACE));
+ }
}
PPB_URLUtil_Proxy::~PPB_URLUtil_Proxy() {
@@ -179,34 +182,34 @@ void PPB_URLUtil_Proxy::OnMsgResolveRelativeToDocument(
SerializedVarReceiveInput relative,
SerializedVarReturnValue result) {
result.Return(dispatcher(),
- ppb_url_util_target()->ResolveRelativeToDocument(
+ ppb_url_util_impl_->ResolveRelativeToDocument(
instance, relative.Get(dispatcher()), NULL));
}
void PPB_URLUtil_Proxy::OnMsgDocumentCanRequest(PP_Instance instance,
SerializedVarReceiveInput url,
PP_Bool* result) {
- *result = ppb_url_util_target()->DocumentCanRequest(instance,
- url.Get(dispatcher()));
+ *result = ppb_url_util_impl_->DocumentCanRequest(instance,
+ url.Get(dispatcher()));
}
void PPB_URLUtil_Proxy::OnMsgDocumentCanAccessDocument(PP_Instance active,
PP_Instance target,
PP_Bool* result) {
- *result = ppb_url_util_target()->DocumentCanAccessDocument(
+ *result = ppb_url_util_impl_->DocumentCanAccessDocument(
active, target);
}
void PPB_URLUtil_Proxy::OnMsgGetDocumentURL(PP_Instance instance,
SerializedVarReturnValue result) {
result.Return(dispatcher(),
- ppb_url_util_target()->GetDocumentURL(instance, NULL));
+ ppb_url_util_impl_->GetDocumentURL(instance, NULL));
}
void PPB_URLUtil_Proxy::OnMsgGetPluginInstanceURL(
PP_Instance instance, SerializedVarReturnValue result) {
result.Return(dispatcher(),
- ppb_url_util_target()->GetPluginInstanceURL(instance, NULL));
+ ppb_url_util_impl_->GetPluginInstanceURL(instance, NULL));
}
} // namespace proxy