diff options
Diffstat (limited to 'webkit/plugins')
-rw-r--r-- | webkit/plugins/ppapi/event_conversion.cc | 2 | ||||
-rw-r--r-- | webkit/plugins/ppapi/plugin_module.cc | 9 | ||||
-rw-r--r-- | webkit/plugins/ppapi/ppapi_plugin_instance.cc | 62 | ||||
-rw-r--r-- | webkit/plugins/ppapi/ppapi_plugin_instance.h | 6 | ||||
-rw-r--r-- | webkit/plugins/ppapi/ppapi_unittest.cc | 7 | ||||
-rw-r--r-- | webkit/plugins/ppapi/resource_tracker_unittest.cc | 8 |
6 files changed, 62 insertions, 32 deletions
diff --git a/webkit/plugins/ppapi/event_conversion.cc b/webkit/plugins/ppapi/event_conversion.cc index 41db456c..d09faef 100644 --- a/webkit/plugins/ppapi/event_conversion.cc +++ b/webkit/plugins/ppapi/event_conversion.cc @@ -13,6 +13,8 @@ #include "base/utf_string_conversion_utils.h" #include "ppapi/c/pp_input_event.h" #include "ppapi/shared_impl/input_event_impl.h" +// TODO(dmichael): Remove this include when PP_InputEvent is gone from m14. +#include "ppapi/shared_impl/ppp_instance_combined.h" #include "ppapi/shared_impl/time_conversion.h" #include "third_party/WebKit/Source/WebKit/chromium/public/WebInputEvent.h" #include "webkit/plugins/ppapi/common.h" diff --git a/webkit/plugins/ppapi/plugin_module.cc b/webkit/plugins/ppapi/plugin_module.cc index a3f7919..e0190c8 100644 --- a/webkit/plugins/ppapi/plugin_module.cc +++ b/webkit/plugins/ppapi/plugin_module.cc @@ -73,6 +73,10 @@ #include "ppapi/c/trusted/ppb_file_io_trusted.h" #include "ppapi/c/trusted/ppb_image_data_trusted.h" #include "ppapi/c/trusted/ppb_url_loader_trusted.h" +#include "ppapi/shared_impl/input_event_impl.h" +// TODO(dmichael): Delete this include after PPP_Instance_0_5 goes away in m14. +// This is just to get the PPP_INSTANCE_0_5 definition. +#include "ppapi/shared_impl/ppp_instance_combined.h" #include "ppapi/shared_impl/time_conversion.h" #include "ppapi/thunk/enter.h" #include "ppapi/thunk/thunk.h" @@ -532,8 +536,11 @@ PluginModule::GetInterfaceFunc PluginModule::GetLocalGetInterfaceFunc() { PluginInstance* PluginModule::CreateInstance(PluginDelegate* delegate) { PluginInstance* instance(NULL); - const void* ppp_instance = GetPluginInterface(PPP_INSTANCE_INTERFACE_0_5); + const void* ppp_instance = GetPluginInterface(PPP_INSTANCE_INTERFACE_1_0); if (ppp_instance) { + instance = PluginInstance::Create1_0(delegate, this, ppp_instance); + } else if ((ppp_instance = GetPluginInterface(PPP_INSTANCE_INTERFACE_0_5))) { + // TODO(dmichael): Remove support for 0.5 in m14. instance = PluginInstance::Create0_5(delegate, this, ppp_instance); } if (!instance) { diff --git a/webkit/plugins/ppapi/ppapi_plugin_instance.cc b/webkit/plugins/ppapi/ppapi_plugin_instance.cc index 3163a1c..8bc4e62 100644 --- a/webkit/plugins/ppapi/ppapi_plugin_instance.cc +++ b/webkit/plugins/ppapi/ppapi_plugin_instance.cc @@ -200,6 +200,18 @@ PluginInstance* PluginInstance::Create0_5(PluginDelegate* delegate, new ::ppapi::PPP_Instance_Combined(*interface)); } +// static +PluginInstance* PluginInstance::Create1_0(PluginDelegate* delegate, + PluginModule* module, + const void* ppp_instance_if_1_0) { + const PPP_Instance_1_0* interface = + static_cast<const PPP_Instance_1_0*>(ppp_instance_if_1_0); + return new PluginInstance( + delegate, + module, + new ::ppapi::PPP_Instance_Combined(*interface)); +} + PluginInstance::PluginInstance( PluginDelegate* delegate, PluginModule* module, @@ -419,16 +431,16 @@ bool PluginInstance::Initialize(WebPluginContainer* container, argc++; } - return PPBoolToBool(instance_interface_->DidCreate(pp_instance(), - argc, - argn.get(), - argv.get())); + return PP_ToBool(instance_interface_->DidCreate(pp_instance(), + argc, + argn.get(), + argv.get())); } bool PluginInstance::HandleDocumentLoad(PPB_URLLoader_Impl* loader) { Resource::ScopedResourceId resource(loader); - return PPBoolToBool(instance_interface_->HandleDocumentLoad(pp_instance(), - resource.id)); + return PP_ToBool(instance_interface_->HandleDocumentLoad(pp_instance(), + resource.id)); } bool PluginInstance::HandleInputEvent(const WebKit::WebInputEvent& event, @@ -459,7 +471,7 @@ bool PluginInstance::HandleInputEvent(const WebKit::WebInputEvent& event, new PPB_InputEvent_Impl(this, events[i])); PP_Resource resource = event_resource->GetReference(); - rv |= PPBoolToBool(plugin_input_event_interface_->HandleInputEvent( + rv |= PP_ToBool(plugin_input_event_interface_->HandleInputEvent( pp_instance(), event_resource->GetReference())); // Release the reference we took above. @@ -468,15 +480,19 @@ bool PluginInstance::HandleInputEvent(const WebKit::WebInputEvent& event, } } - // For compatibility, also send all input events through the old interface. + // For compatibility, also send all input events through the old interface, + // if it exists. // TODO(brettw) remove this. - std::vector<PP_InputEvent> pp_events; - CreatePPEvent(event, &pp_events); - - // Each input event may generate more than one PP_InputEvent. - for (size_t i = 0; i < pp_events.size(); i++) { - rv |= PPBoolToBool(instance_interface_->HandleInputEvent(pp_instance(), - &pp_events[i])); + if (instance_interface_->HandleInputEvent_0_5) { + std::vector<PP_InputEvent> pp_events; + CreatePPEvent(event, &pp_events); + + // Each input event may generate more than one PP_InputEvent. + for (size_t i = 0; i < pp_events.size(); i++) { + rv |= PP_ToBool( + instance_interface_->HandleInputEvent_0_5(pp_instance(), + &pp_events[i])); + } } if (cursor_.get()) @@ -533,7 +549,7 @@ void PluginInstance::SetWebKitFocus(bool has_focus) { if (PluginHasFocus() != old_plugin_focus) { delegate()->PluginFocusChanged(PluginHasFocus()); instance_interface_->DidChangeFocus(pp_instance(), - BoolToPPBool(PluginHasFocus())); + PP_FromBool(PluginHasFocus())); } } @@ -545,7 +561,7 @@ void PluginInstance::SetContentAreaFocus(bool has_focus) { has_content_area_focus_ = has_focus; if (PluginHasFocus() != old_plugin_focus) { instance_interface_->DidChangeFocus(pp_instance(), - BoolToPPBool(PluginHasFocus())); + PP_FromBool(PluginHasFocus())); } } @@ -605,7 +621,7 @@ string16 PluginInstance::GetSelectedText(bool html) { return string16(); PP_Var rv = plugin_selection_interface_->GetSelectedText(pp_instance(), - BoolToPPBool(html)); + PP_FromBool(html)); scoped_refptr<StringVar> string(StringVar::FromPPVar(rv)); Var::PluginReleasePPVar(rv); // Release the ref the plugin transfered to us. if (!string) @@ -635,7 +651,7 @@ void PluginInstance::Zoom(double factor, bool text_only) { scoped_refptr<PluginInstance> ref(this); if (!LoadZoomInterface()) return; - plugin_zoom_interface_->Zoom(pp_instance(), factor, BoolToPPBool(text_only)); + plugin_zoom_interface_->Zoom(pp_instance(), factor, PP_FromBool(text_only)); } bool PluginInstance::StartFind(const string16& search_text, @@ -646,11 +662,11 @@ bool PluginInstance::StartFind(const string16& search_text, if (!LoadFindInterface()) return false; find_identifier_ = identifier; - return PPBoolToBool( + return PP_ToBool( plugin_find_interface_->StartFind( pp_instance(), UTF16ToUTF8(search_text.c_str()).c_str(), - BoolToPPBool(case_sensitive))); + PP_FromBool(case_sensitive))); } void PluginInstance::SelectFindResult(bool forward) { @@ -658,7 +674,7 @@ void PluginInstance::SelectFindResult(bool forward) { scoped_refptr<PluginInstance> ref(this); if (LoadFindInterface()) plugin_find_interface_->SelectFindResult(pp_instance(), - BoolToPPBool(forward)); + PP_FromBool(forward)); } void PluginInstance::StopFind() { @@ -1502,7 +1518,7 @@ PP_Bool PluginInstance::SetFullscreen(PP_Instance instance, PP_Bool fullscreen) { // TODO(yzshen): Re-enable it once fullscreen mode is supported on Windows. #if !defined(OS_WIN) - SetFullscreen(PPBoolToBool(fullscreen), true); + SetFullscreen(PP_ToBool(fullscreen), true); return PP_TRUE; #else return PP_FALSE; diff --git a/webkit/plugins/ppapi/ppapi_plugin_instance.h b/webkit/plugins/ppapi/ppapi_plugin_instance.h index c122ada..a69c54a 100644 --- a/webkit/plugins/ppapi/ppapi_plugin_instance.h +++ b/webkit/plugins/ppapi/ppapi_plugin_instance.h @@ -86,11 +86,17 @@ class PluginInstance : public base::RefCounted<PluginInstance>, public ::ppapi::thunk::PPB_Instance_FunctionAPI, public ::ppapi::InstanceImpl { public: + // TODO(dmichael): Delete this for m14. // Create and return a PluginInstance object which supports the // PPP_Instance_0_5 interface. static PluginInstance* Create0_5(PluginDelegate* delegate, PluginModule* module, const void* ppp_instance_if_0_5); + // Create and return a PluginInstance object which supports the + // PPP_Instance_0_5 interface. + static PluginInstance* Create1_0(PluginDelegate* delegate, + PluginModule* module, + const void* ppp_instance_if_1_0); // Delete should be called by the WebPlugin before this destructor. virtual ~PluginInstance(); diff --git a/webkit/plugins/ppapi/ppapi_unittest.cc b/webkit/plugins/ppapi/ppapi_unittest.cc index 03a9793..ef083998 100644 --- a/webkit/plugins/ppapi/ppapi_unittest.cc +++ b/webkit/plugins/ppapi/ppapi_unittest.cc @@ -61,7 +61,6 @@ static PPP_Instance mock_instance_interface = { &Instance_DidDestroy, &Instance_DidChangeView, &Instance_DidChangeFocus, - &Instance_HandleInputEvent, &Instance_HandleDocumentLoad }; @@ -90,10 +89,10 @@ void PpapiUnittest::SetUp() { ASSERT_TRUE(module_->InitAsInternalPlugin(entry_points)); // Initialize the mock instance. - instance_ = PluginInstance::Create0_5( + instance_ = PluginInstance::Create1_0( delegate_.get(), module(), - GetMockInterface(PPP_INSTANCE_INTERFACE_0_5)); + GetMockInterface(PPP_INSTANCE_INTERFACE_1_0)); } @@ -103,7 +102,7 @@ void PpapiUnittest::TearDown() { } const void* PpapiUnittest::GetMockInterface(const char* interface_name) const { - if (strcmp(interface_name, PPP_INSTANCE_INTERFACE_0_5) == 0) + if (strcmp(interface_name, PPP_INSTANCE_INTERFACE_1_0) == 0) return &mock_instance_interface; return NULL; } diff --git a/webkit/plugins/ppapi/resource_tracker_unittest.cc b/webkit/plugins/ppapi/resource_tracker_unittest.cc index e73b243..75ea9983 100644 --- a/webkit/plugins/ppapi/resource_tracker_unittest.cc +++ b/webkit/plugins/ppapi/resource_tracker_unittest.cc @@ -141,8 +141,8 @@ TEST_F(ResourceTrackerTest, Ref) { TEST_F(ResourceTrackerTest, DeleteResourceWithInstance) { // Make a second instance (the test harness already creates & manages one). scoped_refptr<PluginInstance> instance2( - PluginInstance::Create0_5(delegate(), module(), - GetMockInterface(PPP_INSTANCE_INTERFACE_0_5))); + PluginInstance::Create1_0(delegate(), module(), + GetMockInterface(PPP_INSTANCE_INTERFACE_1_0))); PP_Instance pp_instance2 = instance2->pp_instance(); // Make two resources and take refs on behalf of the "plugin" for each. @@ -175,8 +175,8 @@ TEST_F(ResourceTrackerTest, DeleteResourceWithInstance) { TEST_F(ResourceTrackerTest, DeleteObjectVarWithInstance) { // Make a second instance (the test harness already creates & manages one). scoped_refptr<PluginInstance> instance2( - PluginInstance::Create0_5(delegate(), module(), - GetMockInterface(PPP_INSTANCE_INTERFACE_0_5))); + PluginInstance::Create1_0(delegate(), module(), + GetMockInterface(PPP_INSTANCE_INTERFACE_1_0))); PP_Instance pp_instance2 = instance2->pp_instance(); // Make an object var. |