diff options
author | sergeyu@chromium.org <sergeyu@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-09-06 20:14:51 +0000 |
---|---|---|
committer | sergeyu@chromium.org <sergeyu@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-09-06 20:14:51 +0000 |
commit | ce5effe4aa69ce57101824d12a3ba1b8155c9ca3 (patch) | |
tree | 8d7d44e6d4f6384df377ce41eee1ecf871ec0ac7 /content | |
parent | 990222767c6407f91804875827cdb7bb08929e9c (diff) | |
download | chromium_src-ce5effe4aa69ce57101824d12a3ba1b8155c9ca3.zip chromium_src-ce5effe4aa69ce57101824d12a3ba1b8155c9ca3.tar.gz chromium_src-ce5effe4aa69ce57101824d12a3ba1b8155c9ca3.tar.bz2 |
Don't create PepperMessageFilter for renderer processes.
PepperMessageFilter is used for PPB_NetworkMonitor and
PPB_X509Certificate. Neither of these APIs is supported for
in-process plugins.
TBR=sky@chromium.org, yzshen@chromium.org
Review URL: https://codereview.chromium.org/23997002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@221764 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'content')
9 files changed, 10 insertions, 137 deletions
diff --git a/content/browser/ppapi_plugin_process_host.cc b/content/browser/ppapi_plugin_process_host.cc index b85950a..3183a84 100644 --- a/content/browser/ppapi_plugin_process_host.cc +++ b/content/browser/ppapi_plugin_process_host.cc @@ -217,7 +217,7 @@ PpapiPluginProcessHost::PpapiPluginProcessHost( info.path, profile_data_directory, false)); - filter_ = PepperMessageFilter::CreateForPpapiPluginProcess(permissions_); + filter_ = new PepperMessageFilter(permissions_); process_->GetHost()->AddFilter(filter_.get()); process_->GetHost()->AddFilter(host_impl_->message_filter().get()); diff --git a/content/browser/renderer_host/pepper/browser_ppapi_host_impl.cc b/content/browser/renderer_host/pepper/browser_ppapi_host_impl.cc index f23965f..7368932 100644 --- a/content/browser/renderer_host/pepper/browser_ppapi_host_impl.cc +++ b/content/browser/renderer_host/pepper/browser_ppapi_host_impl.cc @@ -29,7 +29,7 @@ BrowserPpapiHost* BrowserPpapiHost::CreateExternalPluginProcess( browser_ppapi_host->set_plugin_process_handle(plugin_child_process); scoped_refptr<PepperMessageFilter> pepper_message_filter( - PepperMessageFilter::CreateForExternalPluginProcess(permissions)); + new PepperMessageFilter(permissions)); channel->AddFilter(pepper_message_filter); channel->AddFilter(browser_ppapi_host->message_filter().get()); channel->AddFilter(new TraceMessageFilter()); diff --git a/content/browser/renderer_host/pepper/pepper_message_filter.cc b/content/browser/renderer_host/pepper/pepper_message_filter.cc index 698decf..197a303 100644 --- a/content/browser/renderer_host/pepper/pepper_message_filter.cc +++ b/content/browser/renderer_host/pepper/pepper_message_filter.cc @@ -20,26 +20,6 @@ using ppapi::NetAddressPrivateImpl; namespace content { -// static -PepperMessageFilter* PepperMessageFilter::CreateForRendererProcess() { - return new PepperMessageFilter(ppapi::PpapiPermissions(), - PLUGIN_TYPE_IN_PROCESS); -} - -// static -PepperMessageFilter* PepperMessageFilter::CreateForPpapiPluginProcess( - const ppapi::PpapiPermissions& permissions) { - return new PepperMessageFilter(permissions, - PLUGIN_TYPE_OUT_OF_PROCESS); -} - -// static -PepperMessageFilter* PepperMessageFilter::CreateForExternalPluginProcess( - const ppapi::PpapiPermissions& permissions) { - return new PepperMessageFilter(permissions, - PLUGIN_TYPE_EXTERNAL_PLUGIN); -} - bool PepperMessageFilter::OnMessageReceived(const IPC::Message& msg, bool* message_was_ok) { bool handled = true; @@ -64,10 +44,8 @@ void PepperMessageFilter::OnIPAddressChanged() { } PepperMessageFilter::PepperMessageFilter( - const ppapi::PpapiPermissions& permissions, - PluginType plugin_type) - : plugin_type_(plugin_type), - permissions_(permissions) { + const ppapi::PpapiPermissions& permissions) + : permissions_(permissions) { } PepperMessageFilter::~PepperMessageFilter() { @@ -77,10 +55,8 @@ PepperMessageFilter::~PepperMessageFilter() { void PepperMessageFilter::OnNetworkMonitorStart(uint32 plugin_dispatcher_id) { // Support all in-process plugins, and ones with "private" permissions. - if (plugin_type_ != PLUGIN_TYPE_IN_PROCESS && - !permissions_.HasPermission(ppapi::PERMISSION_PRIVATE)) { + if (!permissions_.HasPermission(ppapi::PERMISSION_PRIVATE)) return; - } if (network_monitor_ids_.empty()) net::NetworkChangeNotifier::AddIPAddressObserver(this); @@ -90,11 +66,8 @@ void PepperMessageFilter::OnNetworkMonitorStart(uint32 plugin_dispatcher_id) { } void PepperMessageFilter::OnNetworkMonitorStop(uint32 plugin_dispatcher_id) { - // Support all in-process plugins, and ones with "private" permissions. - if (plugin_type_ != PLUGIN_TYPE_IN_PROCESS && - !permissions_.HasPermission(ppapi::PERMISSION_PRIVATE)) { + if (!permissions_.HasPermission(ppapi::PERMISSION_PRIVATE)) return; - } network_monitor_ids_.erase(plugin_dispatcher_id); if (network_monitor_ids_.empty()) diff --git a/content/browser/renderer_host/pepper/pepper_message_filter.h b/content/browser/renderer_host/pepper/pepper_message_filter.h index 3d17193..a2aa226 100644 --- a/content/browser/renderer_host/pepper/pepper_message_filter.h +++ b/content/browser/renderer_host/pepper/pepper_message_filter.h @@ -23,25 +23,13 @@ class PPB_X509Certificate_Fields; namespace content { -// This class is used in two contexts, both supporting PPAPI plugins. The first -// is on the renderer->browser channel, to handle requests from in-process -// PPAPI plugins and any requests that the PPAPI implementation code in the -// renderer needs to make. The second is on the plugin->browser channel to -// handle requests that out-of-process plugins send directly to the browser. +// Message filter that handles IPC for PPB_NetworkMonitor_Private and +// PPB_X509Certificate_Private. class PepperMessageFilter : public BrowserMessageFilter, public net::NetworkChangeNotifier::IPAddressObserver { public: - // Factory method used in the context of a renderer process. - static PepperMessageFilter* CreateForRendererProcess(); - - // Factory method used in the context of a PPAPI process. - static PepperMessageFilter* CreateForPpapiPluginProcess( - const ppapi::PpapiPermissions& permissions); - - // Factory method used in the context of an external plugin, - static PepperMessageFilter* CreateForExternalPluginProcess( - const ppapi::PpapiPermissions& permissions); + explicit PepperMessageFilter(const ppapi::PpapiPermissions& permissions); // BrowserMessageFilter methods. virtual bool OnMessageReceived(const IPC::Message& message, @@ -58,17 +46,6 @@ class PepperMessageFilter // notifications. typedef std::set<uint32> NetworkMonitorIdSet; - enum PluginType { - PLUGIN_TYPE_IN_PROCESS, - PLUGIN_TYPE_OUT_OF_PROCESS, - // External plugin means it was created through - // BrowserPpapiHost::CreateExternalPluginProcess. - PLUGIN_TYPE_EXTERNAL_PLUGIN, - }; - - PepperMessageFilter(const ppapi::PpapiPermissions& permissions, - PluginType plugin_type); - void OnNetworkMonitorStart(uint32 plugin_dispatcher_id); void OnNetworkMonitorStop(uint32 plugin_dispatcher_id); @@ -80,8 +57,6 @@ class PepperMessageFilter void DoGetNetworkList(); void SendNetworkList(scoped_ptr<net::NetworkInterfaceList> list); - PluginType plugin_type_; - // When attached to an out-of-process plugin (be it native or NaCl) this // will have the Pepper permissions for the plugin. When attached to the // renderer channel, this will have no permissions listed (since there may diff --git a/content/browser/renderer_host/render_process_host_impl.cc b/content/browser/renderer_host/render_process_host_impl.cc index e9ab929..f29affb 100644 --- a/content/browser/renderer_host/render_process_host_impl.cc +++ b/content/browser/renderer_host/render_process_host_impl.cc @@ -622,8 +622,6 @@ void RenderProcessHostImpl::CreateMessageFilters() { new DeviceRequestMessageFilter(resource_context, media_stream_manager)); #endif #if defined(ENABLE_PLUGINS) - // TODO(raymes): PepperMessageFilter should be removed from here. - channel_->AddFilter(PepperMessageFilter::CreateForRendererProcess()); channel_->AddFilter(new PepperRendererConnection(GetID())); #endif #if defined(ENABLE_INPUT_SPEECH) diff --git a/content/content_renderer.gypi b/content/content_renderer.gypi index 2b45e31..3e06bf2 100644 --- a/content/content_renderer.gypi +++ b/content/content_renderer.gypi @@ -373,8 +373,6 @@ 'renderer/pepper/ppb_video_decoder_impl.h', 'renderer/pepper/ppb_widget_impl.cc', 'renderer/pepper/ppb_widget_impl.h', - 'renderer/pepper/ppb_x509_certificate_private_impl.cc', - 'renderer/pepper/ppb_x509_certificate_private_impl.h', 'renderer/pepper/quota_file_io.cc', 'renderer/pepper/quota_file_io.h', 'renderer/pepper/renderer_ppapi_host_impl.cc', diff --git a/content/renderer/pepper/ppb_x509_certificate_private_impl.cc b/content/renderer/pepper/ppb_x509_certificate_private_impl.cc deleted file mode 100644 index c580e71..0000000 --- a/content/renderer/pepper/ppb_x509_certificate_private_impl.cc +++ /dev/null @@ -1,35 +0,0 @@ -// Copyright (c) 2012 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#include "content/renderer/pepper/ppb_x509_certificate_private_impl.h" - -#include "content/renderer/render_thread_impl.h" -#include "ppapi/proxy/ppapi_messages.h" - -namespace content { - -PPB_X509Certificate_Private_Impl::PPB_X509Certificate_Private_Impl( - PP_Instance instance) : - PPB_X509Certificate_Private_Shared(ppapi::OBJECT_IS_IMPL, instance) { -} - -// static -PP_Resource PPB_X509Certificate_Private_Impl::CreateResource( - PP_Instance instance) { - return (new PPB_X509Certificate_Private_Impl(instance))->GetReference(); -} - -bool PPB_X509Certificate_Private_Impl::ParseDER( - const std::vector<char>& der, - ppapi::PPB_X509Certificate_Fields* result) { - bool succeeded = false; - RenderThreadImpl::current()->Send( - new PpapiHostMsg_PPBX509Certificate_ParseDER(der, &succeeded, result)); - return succeeded; -} - -PPB_X509Certificate_Private_Impl::~PPB_X509Certificate_Private_Impl() { -} - -} // namespace content diff --git a/content/renderer/pepper/ppb_x509_certificate_private_impl.h b/content/renderer/pepper/ppb_x509_certificate_private_impl.h deleted file mode 100644 index 0f10ec0..0000000 --- a/content/renderer/pepper/ppb_x509_certificate_private_impl.h +++ /dev/null @@ -1,35 +0,0 @@ -// Copyright (c) 2012 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#ifndef CONTENT_RENDERER_PEPPER_PPB_X509_CERTIFICATE_PRIVATE_IMPL_H_ -#define CONTENT_RENDERER_PEPPER_PPB_X509_CERTIFICATE_PRIVATE_IMPL_H_ - -#include "base/basictypes.h" -#include "base/compiler_specific.h" -#include "ppapi/shared_impl/private/ppb_x509_certificate_private_shared.h" -#include "ppapi/shared_impl/resource.h" - -namespace ppapi { -class PPB_X509Certificate_Fields; -} - -namespace content { - -class PPB_X509Certificate_Private_Impl : - public ppapi::PPB_X509Certificate_Private_Shared { - public: - PPB_X509Certificate_Private_Impl(PP_Instance instance); - static PP_Resource CreateResource(PP_Instance instance); - virtual bool ParseDER(const std::vector<char>& der, - ppapi::PPB_X509Certificate_Fields* result) OVERRIDE; - - private: - virtual ~PPB_X509Certificate_Private_Impl(); - - DISALLOW_COPY_AND_ASSIGN(PPB_X509Certificate_Private_Impl); -}; - -} // namespace content - -#endif // CONTENT_RENDERER_PEPPER_PPB_X509_CERTIFICATE_PRIVATE_IMPL_H_ diff --git a/content/renderer/pepper/resource_creation_impl.cc b/content/renderer/pepper/resource_creation_impl.cc index 3f25b2a..f554e410 100644 --- a/content/renderer/pepper/resource_creation_impl.cc +++ b/content/renderer/pepper/resource_creation_impl.cc @@ -14,7 +14,6 @@ #include "content/renderer/pepper/ppb_image_data_impl.h" #include "content/renderer/pepper/ppb_scrollbar_impl.h" #include "content/renderer/pepper/ppb_video_decoder_impl.h" -#include "content/renderer/pepper/ppb_x509_certificate_private_impl.h" #include "ppapi/c/pp_size.h" #include "ppapi/shared_impl/ppb_audio_config_shared.h" #include "ppapi/shared_impl/ppb_image_data_shared.h" @@ -297,7 +296,7 @@ PP_Resource ResourceCreationImpl::CreateWheelInputEvent( PP_Resource ResourceCreationImpl::CreateX509CertificatePrivate( PP_Instance instance) { - return PPB_X509Certificate_Private_Impl::CreateResource(instance); + return 0; // Not supported in-process. } } // namespace content |