summaryrefslogtreecommitdiffstats
path: root/webkit/plugins
diff options
context:
space:
mode:
Diffstat (limited to 'webkit/plugins')
-rw-r--r--webkit/plugins/ppapi/event_conversion.cc2
-rw-r--r--webkit/plugins/ppapi/plugin_module.cc9
-rw-r--r--webkit/plugins/ppapi/ppapi_plugin_instance.cc62
-rw-r--r--webkit/plugins/ppapi/ppapi_plugin_instance.h6
-rw-r--r--webkit/plugins/ppapi/ppapi_unittest.cc7
-rw-r--r--webkit/plugins/ppapi/resource_tracker_unittest.cc8
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.