Chromium Code Reviews| Index: ppapi/proxy/plugin_dispatcher.cc |
| diff --git a/ppapi/proxy/plugin_dispatcher.cc b/ppapi/proxy/plugin_dispatcher.cc |
| index 3da15e9bd3f93deaf6d66c0869e0260c1eebf4b8..43c620c958e37a17b6c3601c703bd2a053aaafe0 100644 |
| --- a/ppapi/proxy/plugin_dispatcher.cc |
| +++ b/ppapi/proxy/plugin_dispatcher.cc |
| @@ -13,6 +13,7 @@ |
| #include "ipc/ipc_sync_channel.h" |
| #include "base/debug/trace_event.h" |
| #include "ppapi/c/pp_errors.h" |
| +#include "ppapi/c/ppp_instance.h" |
| #include "ppapi/proxy/interface_list.h" |
| #include "ppapi/proxy/interface_proxy.h" |
| #include "ppapi/proxy/plugin_message_filter.h" |
| @@ -42,10 +43,8 @@ InstanceToDispatcherMap* g_instance_to_dispatcher = NULL; |
| } // namespace |
| InstanceData::InstanceData() |
| - : fullscreen(PP_FALSE), |
| - flash_fullscreen(PP_FALSE), |
| + : flash_fullscreen(PP_FALSE), |
| mouse_lock_callback(PP_BlockUntilComplete()) { |
| - memset(&position, 0, sizeof(position)); |
| } |
| InstanceData::~InstanceData() { |
| @@ -233,6 +232,14 @@ void PluginDispatcher::OnMsgSupportsInterface( |
| const std::string& interface_name, |
| bool* result) { |
| *result = !!GetPluginInterface(interface_name); |
| + |
| + // Do fallback for PPP_Instance. This is a hack here and if we have more |
| + // cases like this it should be generalized. The PPP_Instance proxy always |
| + // prroxies the 1.1 interface, and then does fallback to 1.0 inside the |
|
dmichael (off chromium)
2011/12/20 19:01:34
prroxies->proxies
|
| + // plugin process (see PPP_Instance_Proxy). So here we return true for |
| + // supporting the 1.1 interface if either 1.1 or 1.0 is supported. |
| + if (!*result && interface_name == PPP_INSTANCE_INTERFACE) |
| + *result = !!GetPluginInterface(PPP_INSTANCE_INTERFACE_1_0); |
| } |
| void PluginDispatcher::OnMsgSetPreferences(const Preferences& prefs) { |