| 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);
|
|
|