Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(85)

Unified Diff: content/renderer/render_view_impl.cc

Issue 10919075: Move android mediaplayer from render process to browser process. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: addressing comments and resolving merge conflicts Created 8 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « content/renderer/render_view_impl.h ('k') | media/base/android/cookie_getter.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: content/renderer/render_view_impl.cc
diff --git a/content/renderer/render_view_impl.cc b/content/renderer/render_view_impl.cc
index 224cb16f4c42e163a00131e049cb9bfa46244295..a4612f2e8f82e1a238f137ad3a88812445ad72ad 100644
--- a/content/renderer/render_view_impl.cc
+++ b/content/renderer/render_view_impl.cc
@@ -204,11 +204,15 @@
#include "content/renderer/android/email_detector.h"
#include "content/renderer/android/phone_number_detector.h"
#include "content/renderer/media/stream_texture_factory_impl_android.h"
+#include "content/renderer/media/webmediaplayer_proxy_impl_android.h"
#include "third_party/WebKit/Source/WebKit/chromium/public/WebHitTestResult.h"
#include "third_party/WebKit/Source/WebKit/chromium/public/platform/WebFloatPoint.h"
#include "third_party/WebKit/Source/WebKit/chromium/public/platform/WebFloatRect.h"
#include "ui/gfx/rect_f.h"
+#include "webkit/media/android/media_player_bridge_manager_impl.h"
#include "webkit/media/android/webmediaplayer_android.h"
+#include "webkit/media/android/webmediaplayer_impl_android.h"
+#include "webkit/media/android/webmediaplayer_in_process_android.h"
#include "webkit/media/android/webmediaplayer_manager_android.h"
#elif defined(OS_WIN)
// TODO(port): these files are currently Windows only because they concern:
@@ -612,6 +616,7 @@ RenderViewImpl::RenderViewImpl(
mouse_lock_dispatcher_(NULL),
#if defined(OS_ANDROID)
expected_content_intent_id_(0),
+ media_player_proxy_(NULL),
#endif
session_storage_namespace_id_(session_storage_namespace_id),
handling_select_range_(false),
@@ -2496,12 +2501,36 @@ WebMediaPlayer* RenderViewImpl::createMediaPlayer(
FOR_EACH_OBSERVER(
RenderViewObserver, observers_, WillCreateMediaPlayer(frame, client));
+ const CommandLine* cmd_line = CommandLine::ForCurrentProcess();
#if defined(OS_ANDROID)
// TODO(qinmin): upstream the implementation of getting WebGraphicsContext3D
// and GpuChannelHost here to replace the NULL params.
- return new webkit_media::WebMediaPlayerAndroid(
- frame, client, cookieJar(frame), media_player_manager_.get(),
- new content::StreamTextureFactoryImpl(NULL, NULL, routing_id_));
+ if (cmd_line->HasSwitch(switches::kMediaPlayerInRenderProcess)) {
+ if (!media_bridge_manager_.get()) {
+ media_bridge_manager_.reset(
+ new webkit_media::MediaPlayerBridgeManagerImpl(1));
+ }
+ return new webkit_media::WebMediaPlayerInProcessAndroid(
+ frame,
+ client,
+ cookieJar(frame),
+ media_player_manager_.get(),
+ media_bridge_manager_.get(),
+ new content::StreamTextureFactoryImpl(
+ NULL, NULL, routing_id_),
+ cmd_line->HasSwitch(switches::kDisableMediaHistoryLogging));
+ }
+ if (!media_player_proxy_) {
+ media_player_proxy_ = new content::WebMediaPlayerProxyImplAndroid(
+ this, media_player_manager_.get());
+ }
+ return new webkit_media::WebMediaPlayerImplAndroid(
+ frame,
+ client,
+ media_player_manager_.get(),
+ media_player_proxy_,
+ new content::StreamTextureFactoryImpl(
+ NULL, NULL, routing_id_));
#endif
media::MessageLoopFactory* message_loop_factory =
@@ -2512,7 +2541,6 @@ WebMediaPlayer* RenderViewImpl::createMediaPlayer(
RenderAudioSourceProvider* audio_source_provider = NULL;
// Add in any custom filter factories first.
- const CommandLine* cmd_line = CommandLine::ForCurrentProcess();
if (!cmd_line->HasSwitch(switches::kDisableAudio)) {
// audio_source_provider is a "provider" to WebKit, and a sink
// from the perspective of the audio renderer.
« no previous file with comments | « content/renderer/render_view_impl.h ('k') | media/base/android/cookie_getter.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698