| // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #include "ppapi/c/pp_errors.h" |
| #include "ppapi/shared_impl/ppb_url_util_shared.h" |
| #include "ppapi/thunk/enter.h" |
| #include "ppapi/thunk/ppb_instance_api.h" |
| #include "ppapi/thunk/thunk.h" |
| |
| namespace ppapi { |
| namespace thunk { |
| |
| namespace { |
| |
| PP_Var ResolveRelativeToDocument(PP_Instance instance, |
| PP_Var relative, |
| PP_URLComponents_Dev* components) { |
| EnterInstance enter(instance); |
| if (enter.failed()) |
| return PP_MakeUndefined(); |
| return enter.functions()->ResolveRelativeToDocument(instance, relative, |
| components); |
| } |
| |
| PP_Bool DocumentCanRequest(PP_Instance instance, PP_Var url) { |
| EnterInstance enter(instance); |
| if (enter.failed()) |
| return PP_FALSE; |
| return enter.functions()->DocumentCanRequest(instance, url); |
| } |
| |
| PP_Bool DocumentCanAccessDocument(PP_Instance active, PP_Instance target) { |
| EnterInstance enter(active); |
| if (enter.failed()) |
| return PP_FALSE; |
| return enter.functions()->DocumentCanAccessDocument(active, target); |
| } |
| |
| PP_Var GetDocumentURL(PP_Instance instance, |
| PP_URLComponents_Dev* components) { |
| EnterInstance enter(instance); |
| if (enter.failed()) |
| return PP_MakeUndefined(); |
| return enter.functions()->GetDocumentURL(instance, components); |
| } |
| |
| PP_Var GetPluginInstanceURL(PP_Instance instance, |
| PP_URLComponents_Dev* components) { |
| EnterInstance enter(instance); |
| if (enter.failed()) |
| return PP_MakeUndefined(); |
| return enter.functions()->GetPluginInstanceURL(instance, components); |
| } |
| |
| PP_Var GetPluginReferrerURL(PP_Instance instance, |
| PP_URLComponents_Dev* components) { |
| EnterInstance enter(instance); |
| if (enter.failed()) |
| return PP_MakeUndefined(); |
| return enter.functions()->GetPluginReferrerURL(instance, components); |
| } |
| |
| const PPB_URLUtil_Dev_0_6 g_ppb_url_util_0_6 = { |
| &PPB_URLUtil_Shared::Canonicalize, |
| &PPB_URLUtil_Shared::ResolveRelativeToURL, |
| &ResolveRelativeToDocument, |
| &PPB_URLUtil_Shared::IsSameSecurityOrigin, |
| &DocumentCanRequest, |
| &DocumentCanAccessDocument, |
| &GetDocumentURL, |
| &GetPluginInstanceURL |
| }; |
| |
| const PPB_URLUtil_Dev_0_7 g_ppb_url_util_0_7 = { |
| &PPB_URLUtil_Shared::Canonicalize, |
| &PPB_URLUtil_Shared::ResolveRelativeToURL, |
| &ResolveRelativeToDocument, |
| &PPB_URLUtil_Shared::IsSameSecurityOrigin, |
| &DocumentCanRequest, |
| &DocumentCanAccessDocument, |
| &GetDocumentURL, |
| &GetPluginInstanceURL, |
| &GetPluginReferrerURL |
| }; |
| |
| } // namespace |
| |
| const PPB_URLUtil_Dev_0_6* GetPPB_URLUtil_Dev_0_6_Thunk() { |
| return &g_ppb_url_util_0_6; |
| } |
| |
| const PPB_URLUtil_Dev_0_7* GetPPB_URLUtil_Dev_0_7_Thunk() { |
| return &g_ppb_url_util_0_7; |
| } |
| |
| } // namespace thunk |
| } // namespace ppapi |