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

Unified Diff: content/browser/renderer_host/render_widget_host_view_android.cc

Issue 2302023003: Set content opacity of DFHAndroid surfacelayer based on renderer frame contents. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: modify background color Created 4 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
Index: content/browser/renderer_host/render_widget_host_view_android.cc
diff --git a/content/browser/renderer_host/render_widget_host_view_android.cc b/content/browser/renderer_host/render_widget_host_view_android.cc
index 0a30eafc252fbf60769c6cf52509f44bb42cfcd8..cb2dd7096e5a6bd31133b8e8f9e70e55468e9593 100644
--- a/content/browser/renderer_host/render_widget_host_view_android.cc
+++ b/content/browser/renderer_host/render_widget_host_view_android.cc
@@ -941,6 +941,7 @@ void RenderWidgetHostViewAndroid::InternalSwapCompositorFrame(
cc::RenderPass* root_pass =
frame.delegated_frame_data->render_pass_list.back().get();
current_surface_size_ = root_pass->output_rect.size();
+ bool is_transparent = root_pass->has_transparent_background;
cc::CompositorFrameMetadata metadata = frame.metadata.Clone();
@@ -970,7 +971,7 @@ void RenderWidgetHostViewAndroid::InternalSwapCompositorFrame(
// As the metadata update may trigger view invalidation, always call it after
// any potential compositor scheduling.
- OnFrameMetadataUpdated(std::move(metadata));
+ OnFrameMetadataUpdated(std::move(metadata), is_transparent);
}
void RenderWidgetHostViewAndroid::DestroyDelegatedContent() {
@@ -1027,7 +1028,7 @@ void RenderWidgetHostViewAndroid::SynchronousFrameMetadata(
// This is a subset of OnSwapCompositorFrame() used in the synchronous
// compositor flow.
- OnFrameMetadataUpdated(frame_metadata.Clone());
+ OnFrameMetadataUpdated(frame_metadata.Clone(), false);
no sievers 2016/09/02 22:06:52 +Bo for whether WebView needs to worry about this
boliu 2016/09/02 22:52:11 Don't think so. Webview disables video overlays be
// DevTools ScreenCast support for Android WebView.
WebContents* web_contents = content_view_core_->GetWebContents();
@@ -1044,11 +1045,6 @@ void RenderWidgetHostViewAndroid::SynchronousFrameMetadata(
}
}
-void RenderWidgetHostViewAndroid::SetOverlayVideoMode(bool enabled) {
- if (delegated_frame_host_)
- delegated_frame_host_->SetContentsOpaque(!enabled);
-}
-
bool RenderWidgetHostViewAndroid::SupportsAnimation() const {
// The synchronous (WebView) compositor does not have a proper browser
// compositor with which to drive animations.
@@ -1150,7 +1146,8 @@ void RenderWidgetHostViewAndroid::SynchronousCopyContents(
}
void RenderWidgetHostViewAndroid::OnFrameMetadataUpdated(
- const cc::CompositorFrameMetadata& frame_metadata) {
+ const cc::CompositorFrameMetadata& frame_metadata,
+ bool is_transparent) {
bool is_mobile_optimized = IsMobileOptimizedFrame(frame_metadata);
gesture_provider_.SetDoubleTapSupportForPageEnabled(!is_mobile_optimized);
@@ -1177,7 +1174,8 @@ void RenderWidgetHostViewAndroid::OnFrameMetadataUpdated(
selection_controller_->OnViewportChanged(viewport_rect);
}
- UpdateBackgroundColor(frame_metadata.root_background_color);
+ UpdateBackgroundColor(is_transparent ? SK_ColorTRANSPARENT
+ : frame_metadata.root_background_color);
// All offsets and sizes are in CSS pixels.
content_view_core_->UpdateFrameInfo(

Powered by Google App Engine
This is Rietveld 408576698