1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #include "content/renderer/pepper/ppb_proxy_impl.h"
7 #include "ppapi/c/private/ppb_proxy_private.h"
8 #include "ppapi/thunk/enter.h"
9 #include "ppapi/thunk/ppb_image_data_api.h"
10 #include "content/renderer/pepper/host_globals.h"
11 #include "content/renderer/pepper/plugin_module.h"
13 using ppapi::PpapiGlobals
;
14 using ppapi::thunk::EnterResource
;
15 using ppapi::thunk::PPB_URLLoader_API
;
21 void PluginCrashed(PP_Module module
) {
22 PluginModule
* plugin_module
= HostGlobals::Get()->GetModule(module
);
24 plugin_module
->PluginCrashed();
27 PP_Instance
GetInstanceForResource(PP_Resource resource
) {
28 ppapi::Resource
* obj
=
29 PpapiGlobals::Get()->GetResourceTracker()->GetResource(resource
);
32 return obj
->pp_instance();
35 void SetReserveInstanceIDCallback(PP_Module module
,
36 PP_Bool (*reserve
)(PP_Module
, PP_Instance
)) {
37 PluginModule
* plugin_module
= HostGlobals::Get()->GetModule(module
);
39 plugin_module
->SetReserveInstanceIDCallback(reserve
);
42 void AddRefModule(PP_Module module
) {
43 PluginModule
* plugin_module
= HostGlobals::Get()->GetModule(module
);
45 plugin_module
->AddRef();
48 void ReleaseModule(PP_Module module
) {
49 PluginModule
* plugin_module
= HostGlobals::Get()->GetModule(module
);
51 plugin_module
->Release();
54 PP_Bool
IsInModuleDestructor(PP_Module module
) {
55 PluginModule
* plugin_module
= HostGlobals::Get()->GetModule(module
);
57 return PP_FromBool(plugin_module
->is_in_destructor());
61 const PPB_Proxy_Private ppb_proxy
= {
62 &PluginCrashed
, &GetInstanceForResource
, &SetReserveInstanceIDCallback
,
63 &AddRefModule
, &ReleaseModule
, &IsInModuleDestructor
};
68 const PPB_Proxy_Private
* PPB_Proxy_Impl::GetInterface() { return &ppb_proxy
; }
70 } // namespace content