diff options
author | gunsch <gunsch@chromium.org> | 2015-06-11 12:08:55 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2015-06-11 19:11:47 +0000 |
commit | 7c0343cfad781414997cd713ae5ae4c9cc1d1eb3 (patch) | |
tree | a59339c2fa17e51f1c94bee121358429e99f483c | |
parent | b2a3e34c33d4f50676fc27aa4d8513e4ee7a854c (diff) | |
download | chromium_src-7c0343cfad781414997cd713ae5ae4c9cc1d1eb3.zip chromium_src-7c0343cfad781414997cd713ae5ae4c9cc1d1eb3.tar.gz chromium_src-7c0343cfad781414997cd713ae5ae4c9cc1d1eb3.tar.bz2 |
Chromecast: move link-time decisions to inheritance-based Content*Client.
R=halliwell@chromium.org,lcwu@chromium.org,slan@chromium.org
BUG=None
Review URL: https://codereview.chromium.org/1171303002
Cr-Commit-Position: refs/heads/master@{#334001}
-rw-r--r-- | chromecast/browser/cast_content_browser_client.cc | 32 | ||||
-rw-r--r-- | chromecast/browser/cast_content_browser_client.h | 17 | ||||
-rw-r--r-- | chromecast/browser/cast_content_browser_client_simple.cc | 24 | ||||
-rw-r--r-- | chromecast/chromecast.gyp | 1 | ||||
-rw-r--r-- | chromecast/renderer/cast_content_renderer_client.cc | 31 | ||||
-rw-r--r-- | chromecast/renderer/cast_content_renderer_client.h | 10 | ||||
-rw-r--r-- | chromecast/renderer/cast_content_renderer_client_simple.cc | 8 | ||||
-rw-r--r-- | chromecast/renderer/key_systems_cast.h | 4 | ||||
-rw-r--r-- | chromecast/renderer/key_systems_cast_simple.cc | 16 |
9 files changed, 66 insertions, 77 deletions
diff --git a/chromecast/browser/cast_content_browser_client.cc b/chromecast/browser/cast_content_browser_client.cc index bb38360..8593825 100644 --- a/chromecast/browser/cast_content_browser_client.cc +++ b/chromecast/browser/cast_content_browser_client.cc @@ -65,11 +65,35 @@ CastContentBrowserClient::~CastContentBrowserClient() { url_request_context_factory_.release()); } +void CastContentBrowserClient::AppendExtraCommandLineSwitches( + base::CommandLine* command_line) { +} + +std::vector<scoped_refptr<content::BrowserMessageFilter>> +CastContentBrowserClient::GetBrowserMessageFilters() { + return std::vector<scoped_refptr<content::BrowserMessageFilter>>(); +} + +scoped_ptr<::media::AudioManagerFactory> +CastContentBrowserClient::CreateAudioManagerFactory() { + // Return nullptr. The factory will not be set, and the statically linked + // implementation of AudioManager will be used. + return scoped_ptr<::media::AudioManagerFactory>(); +} + +#if !defined(OS_ANDROID) +scoped_ptr<media::MediaPipelineDevice> +CastContentBrowserClient::CreateMediaPipelineDevice( + const media::MediaPipelineDeviceParams& params) { + return media::CreateMediaPipelineDevice(params); +} +#endif + content::BrowserMainParts* CastContentBrowserClient::CreateBrowserMainParts( const content::MainFunctionParams& parameters) { return new CastBrowserMainParts(parameters, url_request_context_factory_.get(), - PlatformCreateAudioManagerFactory()); + CreateAudioManagerFactory()); } void CastContentBrowserClient::RenderProcessWillLaunch( @@ -79,7 +103,7 @@ void CastContentBrowserClient::RenderProcessWillLaunch( new media::CmaMessageFilterHost( host->GetID(), base::Bind( - &CastContentBrowserClient::PlatformCreateMediaPipelineDevice, + &CastContentBrowserClient::CreateMediaPipelineDevice, base::Unretained(this)))); host->AddFilter(cma_message_filter.get()); #endif // !defined(OS_ANDROID) @@ -94,7 +118,7 @@ void CastContentBrowserClient::RenderProcessWillLaunch( base::Bind(&CastContentBrowserClient::AddNetworkHintsMessageFilter, base::Unretained(this), host->GetID())); - auto extra_filters = PlatformGetBrowserMessageFilters(); + auto extra_filters = GetBrowserMessageFilters(); for (auto const& filter : extra_filters) { host->AddFilter(filter.get()); } @@ -199,7 +223,7 @@ void CastContentBrowserClient::AppendExtraCommandLineSwitches( } #endif - PlatformAppendExtraCommandLineSwitches(command_line); + AppendExtraCommandLineSwitches(command_line); } content::AccessTokenStore* CastContentBrowserClient::CreateAccessTokenStore() { diff --git a/chromecast/browser/cast_content_browser_client.h b/chromecast/browser/cast_content_browser_client.h index 5fc6da0..092d0a7 100644 --- a/chromecast/browser/cast_content_browser_client.h +++ b/chromecast/browser/cast_content_browser_client.h @@ -49,17 +49,20 @@ class CastContentBrowserClient: public content::ContentBrowserClient { ~CastContentBrowserClient() override; // Appends extra command line arguments before launching a new process. - void PlatformAppendExtraCommandLineSwitches(base::CommandLine* command_line); + virtual void AppendExtraCommandLineSwitches(base::CommandLine* command_line); - // Returns any BrowserMessageFilters from the platform implementation that - // should be added when launching a new render process. - std::vector<scoped_refptr<content::BrowserMessageFilter>> - PlatformGetBrowserMessageFilters(); + // Returns any BrowserMessageFilters that should be added when launching a + // new render process. + virtual std::vector<scoped_refptr<content::BrowserMessageFilter>> + GetBrowserMessageFilters(); + + // Provide an AudioManagerFactory instance for WebAudio playback. + virtual scoped_ptr<::media::AudioManagerFactory> CreateAudioManagerFactory(); #if !defined(OS_ANDROID) // Creates a MediaPipelineDevice (CMA backend) for media playback, called // once per media player instance. - scoped_ptr<media::MediaPipelineDevice> PlatformCreateMediaPipelineDevice( + virtual scoped_ptr<media::MediaPipelineDevice> CreateMediaPipelineDevice( const media::MediaPipelineDeviceParams& params); #endif @@ -136,8 +139,6 @@ class CastContentBrowserClient: public content::ContentBrowserClient { GURL requesting_url, int render_process_id); - scoped_ptr<::media::AudioManagerFactory> PlatformCreateAudioManagerFactory(); - #if !defined(OS_ANDROID) // Returns the crash signal FD corresponding to the current process type. int GetCrashSignalFD(const base::CommandLine& command_line); diff --git a/chromecast/browser/cast_content_browser_client_simple.cc b/chromecast/browser/cast_content_browser_client_simple.cc index 63a4704..c88e9f6 100644 --- a/chromecast/browser/cast_content_browser_client_simple.cc +++ b/chromecast/browser/cast_content_browser_client_simple.cc @@ -17,29 +17,5 @@ scoped_ptr<CastContentBrowserClient> CastContentBrowserClient::Create() { return make_scoped_ptr(new CastContentBrowserClient()); } -void CastContentBrowserClient::PlatformAppendExtraCommandLineSwitches( - base::CommandLine* command_line) { -} - -std::vector<scoped_refptr<content::BrowserMessageFilter>> -CastContentBrowserClient::PlatformGetBrowserMessageFilters() { - return std::vector<scoped_refptr<content::BrowserMessageFilter>>(); -} - -scoped_ptr<::media::AudioManagerFactory> -CastContentBrowserClient::PlatformCreateAudioManagerFactory() { - // Return nullptr. The factory will not be set, and the statically linked - // implementation of AudioManager will be used. - return scoped_ptr<::media::AudioManagerFactory>(); -} - -#if !defined(OS_ANDROID) -scoped_ptr<media::MediaPipelineDevice> -CastContentBrowserClient::PlatformCreateMediaPipelineDevice( - const media::MediaPipelineDeviceParams& params) { - return media::CreateMediaPipelineDevice(params); -} -#endif - } // namespace shell } // namespace chromecast diff --git a/chromecast/chromecast.gyp b/chromecast/chromecast.gyp index 9519c65..325f47b 100644 --- a/chromecast/chromecast.gyp +++ b/chromecast/chromecast.gyp @@ -310,7 +310,6 @@ 'browser/pref_service_helper_simple.cc', 'common/platform_client_auth_simple.cc', 'renderer/cast_content_renderer_client_simple.cc', - 'renderer/key_systems_cast_simple.cc', ], 'conditions': [ ['OS=="android"', { diff --git a/chromecast/renderer/cast_content_renderer_client.cc b/chromecast/renderer/cast_content_renderer_client.cc index 3e8170f..3f48cb4 100644 --- a/chromecast/renderer/cast_content_renderer_client.cc +++ b/chromecast/renderer/cast_content_renderer_client.cc @@ -72,18 +72,27 @@ const blink::WebColor kColorBlack = 0xFF000000; class CastRenderViewObserver : content::RenderViewObserver { public: - explicit CastRenderViewObserver(content::RenderView* render_view); + CastRenderViewObserver(CastContentRendererClient* client, + content::RenderView* render_view); ~CastRenderViewObserver() override {} void DidClearWindowObject(blink::WebLocalFrame* frame) override; + + private: + CastContentRendererClient* const client_; + + DISALLOW_COPY_AND_ASSIGN(CastRenderViewObserver); }; -CastRenderViewObserver::CastRenderViewObserver(content::RenderView* render_view) - : content::RenderViewObserver(render_view) { +CastRenderViewObserver::CastRenderViewObserver( + CastContentRendererClient* client, + content::RenderView* render_view) + : content::RenderViewObserver(render_view), + client_(client) { } void CastRenderViewObserver::DidClearWindowObject(blink::WebLocalFrame* frame) { - PlatformAddRendererNativeBindings(frame); + client_->AddRendererNativeBindings(frame); } } // namespace @@ -94,6 +103,15 @@ CastContentRendererClient::CastContentRendererClient() { CastContentRendererClient::~CastContentRendererClient() { } +void CastContentRendererClient::AddRendererNativeBindings( + blink::WebLocalFrame* frame) { +} + +std::vector<scoped_refptr<IPC::MessageFilter>> +CastContentRendererClient::GetRendererMessageFilters() { + return std::vector<scoped_refptr<IPC::MessageFilter>>(); +} + void CastContentRendererClient::RenderThreadStarted() { base::CommandLine* command_line = base::CommandLine::ForCurrentProcess(); #if defined(USE_NSS_CERTS) @@ -121,7 +139,7 @@ void CastContentRendererClient::RenderThreadStarted() { } cast_observer_.reset( - new CastRenderProcessObserver(PlatformGetRendererMessageFilters())); + new CastRenderProcessObserver(GetRendererMessageFilters())); prescient_networking_dispatcher_.reset( new network_hints::PrescientNetworkingDispatcher()); @@ -161,13 +179,12 @@ void CastContentRendererClient::RenderViewCreated( } // Note: RenderView will own the lifetime of its observer. - new CastRenderViewObserver(render_view); + new CastRenderViewObserver(this, render_view); } void CastContentRendererClient::AddKeySystems( std::vector< ::media::KeySystemInfo>* key_systems) { AddChromecastKeySystems(key_systems); - AddChromecastPlatformKeySystems(key_systems); } #if !defined(OS_ANDROID) diff --git a/chromecast/renderer/cast_content_renderer_client.h b/chromecast/renderer/cast_content_renderer_client.h index f8539f6..a29d2d1 100644 --- a/chromecast/renderer/cast_content_renderer_client.h +++ b/chromecast/renderer/cast_content_renderer_client.h @@ -22,9 +22,6 @@ namespace chromecast { namespace shell { class CastRenderProcessObserver; -// Adds any platform-specific bindings to the current frame. -void PlatformAddRendererNativeBindings(blink::WebLocalFrame* frame); - class CastContentRendererClient : public content::ContentRendererClient { public: // Creates an implementation of CastContentRendererClient. Platform should @@ -33,10 +30,13 @@ class CastContentRendererClient : public content::ContentRendererClient { ~CastContentRendererClient() override; + // Adds any platform-specific bindings to the current frame. + virtual void AddRendererNativeBindings(blink::WebLocalFrame* frame); + // Returns any MessageFilters from the platform implementation that should // be added to the render process. - std::vector<scoped_refptr<IPC::MessageFilter>> - PlatformGetRendererMessageFilters(); + virtual std::vector<scoped_refptr<IPC::MessageFilter>> + GetRendererMessageFilters(); // ContentRendererClient implementation: void RenderThreadStarted() override; diff --git a/chromecast/renderer/cast_content_renderer_client_simple.cc b/chromecast/renderer/cast_content_renderer_client_simple.cc index f1d4cf2..5f94e08 100644 --- a/chromecast/renderer/cast_content_renderer_client_simple.cc +++ b/chromecast/renderer/cast_content_renderer_client_simple.cc @@ -15,13 +15,5 @@ scoped_ptr<CastContentRendererClient> CastContentRendererClient::Create() { return make_scoped_ptr(new CastContentRendererClient()); } -void PlatformAddRendererNativeBindings(blink::WebLocalFrame* frame) { -} - -std::vector<scoped_refptr<IPC::MessageFilter>> -CastContentRendererClient::PlatformGetRendererMessageFilters() { - return std::vector<scoped_refptr<IPC::MessageFilter>>(); -} - } // namespace shell } // namespace chromecast diff --git a/chromecast/renderer/key_systems_cast.h b/chromecast/renderer/key_systems_cast.h index c64eb1d..d59993f 100644 --- a/chromecast/renderer/key_systems_cast.h +++ b/chromecast/renderer/key_systems_cast.h @@ -22,10 +22,6 @@ void AddKeySystemWithCodecs( void AddChromecastKeySystems( std::vector<::media::KeySystemInfo>* key_systems_info); -// TODO(gunsch): Remove when prefixed EME is removed. -void AddChromecastPlatformKeySystems( - std::vector<::media::KeySystemInfo>* key_systems_info); - } // namespace shell } // namespace chromecast diff --git a/chromecast/renderer/key_systems_cast_simple.cc b/chromecast/renderer/key_systems_cast_simple.cc deleted file mode 100644 index e5ca378..0000000 --- a/chromecast/renderer/key_systems_cast_simple.cc +++ /dev/null @@ -1,16 +0,0 @@ -// Copyright 2014 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 "chromecast/renderer/key_systems_cast.h" - -namespace chromecast { -namespace shell { - -void AddChromecastPlatformKeySystems( - std::vector< ::media::KeySystemInfo>* key_systems_info) { - // Intentional no-op for public build. -} - -} // namespace shell -} // namespace chromecast |