| Index: content/ppapi_plugin/broker_process_dispatcher.cc
|
| ===================================================================
|
| --- content/ppapi_plugin/broker_process_dispatcher.cc (revision 141490)
|
| +++ content/ppapi_plugin/broker_process_dispatcher.cc (working copy)
|
| @@ -6,15 +6,11 @@
|
|
|
| #include "base/bind.h"
|
| #include "base/bind_helpers.h"
|
| -#include "base/memory/scoped_ptr.h"
|
| #include "base/utf_string_conversions.h"
|
| #include "content/common/child_process.h"
|
| #include "ppapi/c/pp_bool.h"
|
| #include "ppapi/c/private/ppp_flash_browser_operations.h"
|
| #include "ppapi/proxy/ppapi_messages.h"
|
| -#include "ppapi/shared_impl/ppapi_globals.h"
|
| -#include "ppapi/shared_impl/var.h"
|
| -#include "ppapi/shared_impl/var_tracker.h"
|
|
|
| namespace {
|
|
|
| @@ -30,70 +26,14 @@
|
| #endif
|
| }
|
|
|
| -struct GetPermissionSettingsContext {
|
| - GetPermissionSettingsContext(
|
| - const base::WeakPtr<BrokerProcessDispatcher> in_dispatcher,
|
| - uint32 in_request_id)
|
| - : dispatcher(in_dispatcher),
|
| - request_id(in_request_id) {
|
| - }
|
| -
|
| - base::WeakPtr<BrokerProcessDispatcher> dispatcher;
|
| - uint32 request_id;
|
| -};
|
| -
|
| -void GetPermissionSettingsCallback(
|
| - void* user_data,
|
| - PP_Bool success,
|
| - PP_Flash_BrowserOperations_Permission default_permission,
|
| - uint32_t site_count,
|
| - const PP_Flash_BrowserOperations_SiteSetting sites[]) {
|
| - scoped_ptr<GetPermissionSettingsContext> context(
|
| - reinterpret_cast<GetPermissionSettingsContext*>(user_data));
|
| -
|
| - if (!context->dispatcher)
|
| - return;
|
| -
|
| - ppapi::FlashSiteSettings site_vector;
|
| - if (success) {
|
| - site_vector.reserve(site_count);
|
| - for (uint32_t i = 0; i < site_count; ++i) {
|
| - ppapi::StringVar* string_var = ppapi::StringVar::FromPPVar(sites[i].site);
|
| - if (!string_var) {
|
| - success = PP_FALSE;
|
| - break;
|
| - }
|
| - site_vector.push_back(
|
| - ppapi::FlashSiteSetting(string_var->value(), sites[i].permission));
|
| - }
|
| -
|
| - if (!success)
|
| - site_vector.clear();
|
| - }
|
| - context->dispatcher->OnGetPermissionSettingsCompleted(
|
| - context->request_id, PP_ToBool(success), default_permission, site_vector);
|
| -}
|
| -
|
| } // namespace
|
|
|
| BrokerProcessDispatcher::BrokerProcessDispatcher(
|
| PP_GetInterface_Func get_plugin_interface,
|
| PP_ConnectInstance_Func connect_instance)
|
| : ppapi::proxy::BrokerSideDispatcher(connect_instance),
|
| - get_plugin_interface_(get_plugin_interface),
|
| - flash_browser_operations_1_1_(NULL),
|
| - flash_browser_operations_1_0_(NULL) {
|
| + get_plugin_interface_(get_plugin_interface) {
|
| ChildProcess::current()->AddRefProcess();
|
| -
|
| - if (get_plugin_interface) {
|
| - flash_browser_operations_1_0_ =
|
| - static_cast<const PPP_Flash_BrowserOperations_1_0*>(
|
| - get_plugin_interface_(PPP_FLASH_BROWSEROPERATIONS_INTERFACE_1_0));
|
| -
|
| - flash_browser_operations_1_1_ =
|
| - static_cast<const PPP_Flash_BrowserOperations_1_1*>(
|
| - get_plugin_interface_(PPP_FLASH_BROWSEROPERATIONS_INTERFACE_1_1));
|
| - }
|
| }
|
|
|
| BrokerProcessDispatcher::~BrokerProcessDispatcher() {
|
| @@ -115,25 +55,11 @@
|
| IPC_MESSAGE_HANDLER(PpapiMsg_ClearSiteData, OnMsgClearSiteData)
|
| IPC_MESSAGE_HANDLER(PpapiMsg_DeauthorizeContentLicenses,
|
| OnMsgDeauthorizeContentLicenses)
|
| - IPC_MESSAGE_HANDLER(PpapiMsg_GetPermissionSettings,
|
| - OnMsgGetPermissionSettings)
|
| - IPC_MESSAGE_HANDLER(PpapiMsg_SetDefaultPermission,
|
| - OnMsgSetDefaultPermission)
|
| - IPC_MESSAGE_HANDLER(PpapiMsg_SetSitePermission, OnMsgSetSitePermission)
|
| IPC_MESSAGE_UNHANDLED(return BrokerSideDispatcher::OnMessageReceived(msg))
|
| IPC_END_MESSAGE_MAP()
|
| return true;
|
| }
|
|
|
| -void BrokerProcessDispatcher::OnGetPermissionSettingsCompleted(
|
| - uint32 request_id,
|
| - bool success,
|
| - PP_Flash_BrowserOperations_Permission default_permission,
|
| - const ppapi::FlashSiteSettings& sites) {
|
| - Send(new PpapiHostMsg_GetPermissionSettingsResult(
|
| - request_id, success, default_permission, sites));
|
| -}
|
| -
|
| void BrokerProcessDispatcher::OnMsgClearSiteData(
|
| const FilePath& plugin_data_path,
|
| const std::string& site,
|
| @@ -150,62 +76,34 @@
|
| request_id, DeauthorizeContentLicenses(plugin_data_path)));
|
| }
|
|
|
| -void BrokerProcessDispatcher::OnMsgGetPermissionSettings(
|
| - uint32 request_id,
|
| - const FilePath& plugin_data_path,
|
| - PP_Flash_BrowserOperations_SettingType setting_type) {
|
| - if (!flash_browser_operations_1_1_) {
|
| - OnGetPermissionSettingsCompleted(
|
| - request_id, false, PP_FLASH_BROWSEROPERATIONS_PERMISSION_DEFAULT,
|
| - ppapi::FlashSiteSettings());
|
| - return;
|
| - }
|
| -
|
| - std::string data_str = ConvertPluginDataPath(plugin_data_path);
|
| - // The GetPermissionSettingsContext object will be deleted in
|
| - // GetPermissionSettingsCallback().
|
| - flash_browser_operations_1_1_->GetPermissionSettings(
|
| - data_str.c_str(), setting_type, &GetPermissionSettingsCallback,
|
| - new GetPermissionSettingsContext(AsWeakPtr(), request_id));
|
| -}
|
| -
|
| -void BrokerProcessDispatcher::OnMsgSetDefaultPermission(
|
| - uint32 request_id,
|
| - const FilePath& plugin_data_path,
|
| - PP_Flash_BrowserOperations_SettingType setting_type,
|
| - PP_Flash_BrowserOperations_Permission permission,
|
| - bool clear_site_specific) {
|
| - Send(new PpapiHostMsg_SetDefaultPermissionResult(
|
| - request_id,
|
| - SetDefaultPermission(plugin_data_path, setting_type, permission,
|
| - clear_site_specific)));
|
| -}
|
| -
|
| -void BrokerProcessDispatcher::OnMsgSetSitePermission(
|
| - uint32 request_id,
|
| - const FilePath& plugin_data_path,
|
| - PP_Flash_BrowserOperations_SettingType setting_type,
|
| - const ppapi::FlashSiteSettings& sites) {
|
| - Send(new PpapiHostMsg_SetSitePermissionResult(
|
| - request_id, SetSitePermission(plugin_data_path, setting_type, sites)));
|
| -}
|
| -
|
| bool BrokerProcessDispatcher::ClearSiteData(const FilePath& plugin_data_path,
|
| const std::string& site,
|
| uint64 flags,
|
| uint64 max_age) {
|
| - std::string data_str = ConvertPluginDataPath(plugin_data_path);
|
| - if (flash_browser_operations_1_1_) {
|
| - flash_browser_operations_1_1_->ClearSiteData(
|
| - data_str.c_str(), site.empty() ? NULL : site.c_str(), flags, max_age);
|
| + if (!get_plugin_interface_)
|
| + return false;
|
| +
|
| + const PPP_Flash_BrowserOperations_1_1* browser_interface =
|
| + static_cast<const PPP_Flash_BrowserOperations_1_1*>(
|
| + get_plugin_interface_(PPP_FLASH_BROWSEROPERATIONS_INTERFACE_1_1));
|
| + if (browser_interface) {
|
| + std::string data_str = ConvertPluginDataPath(plugin_data_path);
|
| + browser_interface->ClearSiteData(data_str.c_str(),
|
| + site.empty() ? NULL : site.c_str(),
|
| + flags, max_age);
|
| return true;
|
| }
|
|
|
| // TODO(viettrungluu): Remove this (and the 1.0 interface) sometime after M21
|
| // goes to Stable.
|
| - if (flash_browser_operations_1_0_) {
|
| - flash_browser_operations_1_0_->ClearSiteData(
|
| - data_str.c_str(), site.empty() ? NULL : site.c_str(), flags, max_age);
|
| + const PPP_Flash_BrowserOperations_1_0* browser_interface_1_0 =
|
| + static_cast<const PPP_Flash_BrowserOperations_1_0*>(
|
| + get_plugin_interface_(PPP_FLASH_BROWSEROPERATIONS_INTERFACE_1_0));
|
| + if (browser_interface_1_0) {
|
| + std::string data_str = ConvertPluginDataPath(plugin_data_path);
|
| + browser_interface_1_0->ClearSiteData(data_str.c_str(),
|
| + site.empty() ? NULL : site.c_str(),
|
| + flags, max_age);
|
| return true;
|
| }
|
|
|
| @@ -214,52 +112,16 @@
|
|
|
| bool BrokerProcessDispatcher::DeauthorizeContentLicenses(
|
| const FilePath& plugin_data_path) {
|
| - if (!flash_browser_operations_1_1_)
|
| + if (!get_plugin_interface_)
|
| return false;
|
| + const PPP_Flash_BrowserOperations_1_1* browser_interface =
|
| + static_cast<const PPP_Flash_BrowserOperations_1_1*>(
|
| + get_plugin_interface_(PPP_FLASH_BROWSEROPERATIONS_INTERFACE_1_1));
|
| + if (!browser_interface)
|
| + return false;
|
|
|
| std::string data_str = ConvertPluginDataPath(plugin_data_path);
|
| - return PP_ToBool(flash_browser_operations_1_1_->DeauthorizeContentLicenses(
|
| + return PP_ToBool(browser_interface->DeauthorizeContentLicenses(
|
| data_str.c_str()));
|
| }
|
|
|
| -bool BrokerProcessDispatcher::SetDefaultPermission(
|
| - const FilePath& plugin_data_path,
|
| - PP_Flash_BrowserOperations_SettingType setting_type,
|
| - PP_Flash_BrowserOperations_Permission permission,
|
| - bool clear_site_specific) {
|
| - if (!flash_browser_operations_1_1_)
|
| - return false;
|
| -
|
| - std::string data_str = ConvertPluginDataPath(plugin_data_path);
|
| - return PP_ToBool(flash_browser_operations_1_1_->SetDefaultPermission(
|
| - data_str.c_str(), setting_type, permission,
|
| - PP_FromBool(clear_site_specific)));
|
| -}
|
| -
|
| -bool BrokerProcessDispatcher::SetSitePermission(
|
| - const FilePath& plugin_data_path,
|
| - PP_Flash_BrowserOperations_SettingType setting_type,
|
| - const ppapi::FlashSiteSettings& sites) {
|
| - if (!flash_browser_operations_1_1_)
|
| - return false;
|
| -
|
| - if (sites.empty())
|
| - return true;
|
| -
|
| - std::string data_str = ConvertPluginDataPath(plugin_data_path);
|
| - scoped_array<PP_Flash_BrowserOperations_SiteSetting> site_array(
|
| - new PP_Flash_BrowserOperations_SiteSetting[sites.size()]);
|
| -
|
| - for (size_t i = 0; i < sites.size(); ++i) {
|
| - site_array[i].site = ppapi::StringVar::StringToPPVar(sites[i].site);
|
| - site_array[i].permission = sites[i].permission;
|
| - }
|
| -
|
| - PP_Bool result = flash_browser_operations_1_1_->SetSitePermission(
|
| - data_str.c_str(), setting_type, sites.size(), site_array.get());
|
| -
|
| - for (size_t i = 0; i < sites.size(); ++i)
|
| - ppapi::PpapiGlobals::Get()->GetVarTracker()->ReleaseVar(site_array[i].site);
|
| -
|
| - return PP_ToBool(result);
|
| -}
|
|
|