Don't show media controls when there is a persistent video.
When a video becomes persistent, the WebContents is notified and will
then update the preferences so Blink doesn't show the native controls.
BUG=691619
Review-Url: https://codereview.chromium.org/2692903002
Cr-Commit-Position: refs/heads/master@{#451454}
diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser/web_contents/web_contents_impl.cc
index 7b92187..87b9b7b 100644
--- a/content/browser/web_contents/web_contents_impl.cc
+++ b/content/browser/web_contents/web_contents_impl.cc
@@ -4252,6 +4252,10 @@
return is_overlay_content_;
}
+bool WebContentsImpl::HasPersistentVideo() const {
+ return has_persistent_video_;
+}
+
bool WebContentsImpl::IsFocusedElementEditable() {
RenderFrameHostImpl* frame = GetFocusedFrame();
return frame && frame->has_focused_editable_element();
@@ -5280,6 +5284,14 @@
}
}
+void WebContentsImpl::SetHasPersistentVideo(bool value) {
+ if (has_persistent_video_ == value)
+ return;
+
+ has_persistent_video_ = value;
+ NotifyPreferencesChanged();
+}
+
#if defined(OS_ANDROID)
void WebContentsImpl::NotifyFindMatchRectsReply(
int version,
@@ -5344,19 +5356,7 @@
}
void WebContentsImpl::UpdateOverridingUserAgent() {
- std::set<RenderViewHost*> render_view_host_set;
- for (FrameTreeNode* node : frame_tree_.Nodes()) {
- RenderWidgetHost* render_widget_host =
- node->current_frame_host()->GetRenderWidgetHost();
- if (!render_widget_host)
- continue;
- RenderViewHost* render_view_host = RenderViewHost::From(render_widget_host);
- if (!render_view_host)
- continue;
- render_view_host_set.insert(render_view_host);
- }
- for (RenderViewHost* render_view_host : render_view_host_set)
- render_view_host->OnWebkitPreferencesChanged();
+ NotifyPreferencesChanged();
}
void WebContentsImpl::SetJavaScriptDialogManagerForTesting(
@@ -5417,4 +5417,20 @@
" releasing your website to the public."));
}
+void WebContentsImpl::NotifyPreferencesChanged() {
+ std::set<RenderViewHost*> render_view_host_set;
+ for (FrameTreeNode* node : frame_tree_.Nodes()) {
+ RenderWidgetHost* render_widget_host =
+ node->current_frame_host()->GetRenderWidgetHost();
+ if (!render_widget_host)
+ continue;
+ RenderViewHost* render_view_host = RenderViewHost::From(render_widget_host);
+ if (!render_view_host)
+ continue;
+ render_view_host_set.insert(render_view_host);
+ }
+ for (RenderViewHost* render_view_host : render_view_host_set)
+ render_view_host->OnWebkitPreferencesChanged();
+}
+
} // namespace content