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

Unified Diff: content/renderer/render_frame_impl.cc

Issue 375713002: Ties RenderFrameImpl VIDEO_HOLE observer to lifetime of RenderWidget. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: only hook up observer for known media playback Created 6 years, 5 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_frame_impl.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: content/renderer/render_frame_impl.cc
diff --git a/content/renderer/render_frame_impl.cc b/content/renderer/render_frame_impl.cc
index 6ccb9f5995949069dbeadc97faa76fd507a3ac9b..d2b2854216c4bcc398a0dbb2b40ffd90dc8de46a 100644
--- a/content/renderer/render_frame_impl.cc
+++ b/content/renderer/render_frame_impl.cc
@@ -406,6 +406,9 @@ RenderFrameImpl::RenderFrameImpl(RenderViewImpl* render_view, int routing_id)
#if defined(ENABLE_BROWSER_CDMS)
cdm_manager_(NULL),
#endif
+#if defined(VIDEO_HOLE)
+ contains_media_player_(false),
+#endif
geolocation_dispatcher_(NULL),
push_messaging_dispatcher_(NULL),
screen_orientation_dispatcher_(NULL),
@@ -431,8 +434,8 @@ RenderFrameImpl::~RenderFrameImpl() {
FOR_EACH_OBSERVER(RenderFrameObserver, observers_, RenderFrameGone());
FOR_EACH_OBSERVER(RenderFrameObserver, observers_, OnDestruct());
-#if defined(OS_ANDROID) && defined(VIDEO_HOLE)
- if (media_player_manager_)
+#if defined(VIDEO_HOLE)
+ if (contains_media_player_)
render_view_->UnregisterVideoHoleFrame(this);
#endif
@@ -1372,6 +1375,13 @@ blink::WebMediaPlayer* RenderFrameImpl::createMediaPlayer(
blink::WebLocalFrame* frame,
const blink::WebURL& url,
blink::WebMediaPlayerClient* client) {
+#if defined(VIDEO_HOLE)
+ if (!contains_media_player_) {
+ render_view_->RegisterVideoHoleFrame(this);
+ contains_media_player_ = true;
+ }
+#endif // defined(VIDEO_HOLE)
+
blink::WebMediaStream web_stream(
blink::WebMediaStreamRegistry::lookupMediaStreamDescriptor(url));
if (!web_stream.isNull())
@@ -3558,12 +3568,8 @@ WebMediaPlayer* RenderFrameImpl::CreateAndroidWebMediaPlayer(
}
RendererMediaPlayerManager* RenderFrameImpl::GetMediaPlayerManager() {
- if (!media_player_manager_) {
+ if (!media_player_manager_)
media_player_manager_ = new RendererMediaPlayerManager(this);
-#if defined(VIDEO_HOLE)
- render_view_->RegisterVideoHoleFrame(this);
-#endif // defined(VIDEO_HOLE)
- }
return media_player_manager_;
}
« no previous file with comments | « content/renderer/render_frame_impl.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698