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

Unified Diff: content/renderer/render_view_impl.cc

Issue 10413015: Upstream implementation for embedded video for WebMediaPlayerAndroid (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebase after https://chromiumcodereview.appspot.com/10469003/ got committed Created 8 years, 7 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/media_player_bridge.cc » ('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 f37da15b1152ff40856cfe74aec26c7026c2a298..b8cf2111f18d7a331a40508a4156f3e79822dab7 100644
--- a/content/renderer/render_view_impl.cc
+++ b/content/renderer/render_view_impl.cc
@@ -188,6 +188,7 @@
#if defined(OS_ANDROID)
#include "webkit/media/android/webmediaplayer_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:
// * theming
@@ -611,6 +612,11 @@ RenderViewImpl::RenderViewImpl(
new TextInputClientObserver(this);
#endif // defined(OS_MACOSX)
+#if defined(OS_ANDROID)
+ media_player_manager_.reset(
+ new webkit_media::WebMediaPlayerManagerAndroid());
+#endif
+
// The next group of objects all implement RenderViewObserver, so are deleted
// along with the RenderView automatically.
devtools_agent_ = new DevToolsAgent(this);
@@ -2302,8 +2308,10 @@ WebMediaPlayer* RenderViewImpl::createMediaPlayer(
RenderViewObserver, observers_, WillCreateMediaPlayer(frame, client));
#if defined(OS_ANDROID)
+ // TODO(qinmin): upstream the implementation of StreamTextureFactoryImpl
+ // to replace the NULL param here.
return new webkit_media::WebMediaPlayerAndroid(
- client, cookieJar(frame));
+ frame, client, cookieJar(frame), media_player_manager_.get(), NULL);
#endif
media::MessageLoopFactory* message_loop_factory =
@@ -5040,6 +5048,11 @@ void RenderViewImpl::DidHandleTouchEvent(const WebTouchEvent& event) {
void RenderViewImpl::OnWasHidden() {
RenderWidget::OnWasHidden();
+#if defined(OS_ANDROID)
+ // Inform WebMediaPlayerManagerAndroid to release all media player resources.
+ media_player_manager_->ReleaseMediaResources();
+#endif
+
if (webview()) {
webview()->settings()->setMinimumTimerInterval(
webkit_glue::kBackgroundTabTimerInterval);
« no previous file with comments | « content/renderer/render_view_impl.h ('k') | media/base/android/media_player_bridge.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698