summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorgunsch <gunsch@chromium.org>2015-06-11 12:08:55 -0700
committerCommit bot <commit-bot@chromium.org>2015-06-11 19:11:47 +0000
commit7c0343cfad781414997cd713ae5ae4c9cc1d1eb3 (patch)
treea59339c2fa17e51f1c94bee121358429e99f483c
parentb2a3e34c33d4f50676fc27aa4d8513e4ee7a854c (diff)
downloadchromium_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.cc32
-rw-r--r--chromecast/browser/cast_content_browser_client.h17
-rw-r--r--chromecast/browser/cast_content_browser_client_simple.cc24
-rw-r--r--chromecast/chromecast.gyp1
-rw-r--r--chromecast/renderer/cast_content_renderer_client.cc31
-rw-r--r--chromecast/renderer/cast_content_renderer_client.h10
-rw-r--r--chromecast/renderer/cast_content_renderer_client_simple.cc8
-rw-r--r--chromecast/renderer/key_systems_cast.h4
-rw-r--r--chromecast/renderer/key_systems_cast_simple.cc16
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