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( |