Commit a9f67901 authored by Philip Rogers's avatar Philip Rogers Committed by Commit Bot

Do not mark directly composited image layers as opaque

Due to https://crbug.com/870857, we cannot mark directly composited
image layers as opaque. https://crrev.com/556288 started setting
prevent_contents_opaque_changes_ for directly-composited image layers
which exposed this bug.

Bug: 868779
Cq-Include-Trybots: luci.chromium.try:linux_layout_tests_slimming_paint_v2;master.tryserver.blink:linux_trusty_blink_rel
Change-Id: I9fb0fe4361bd8fd39529bbf698f7549edbc51faf
Reviewed-on: https://chromium-review.googlesource.com/1162750
Commit-Queue: Philip Rogers <pdr@chromium.org>
Reviewed-by: default avatarenne <enne@chromium.org>
Cr-Commit-Position: refs/heads/master@{#580725}
parent 3a1d09a1
...@@ -876,7 +876,8 @@ void GraphicsLayer::SetContentsToImage( ...@@ -876,7 +876,8 @@ void GraphicsLayer::SetContentsToImage(
} }
image_layer_->SetImage(std::move(paint_image), matrix, image_layer_->SetImage(std::move(paint_image), matrix,
image_orientation.UsesWidthAsHeight()); image_orientation.UsesWidthAsHeight());
image_layer_->SetContentsOpaque(image->CurrentFrameKnownToBeOpaque()); // Image layers can not be marked as opaque due to crbug.com/870857.
image_layer_->SetContentsOpaque(false);
UpdateContentsRect(); UpdateContentsRect();
} else if (image_layer_) { } else if (image_layer_) {
UnregisterContentsLayer(image_layer_.get()); UnregisterContentsLayer(image_layer_.get());
......
...@@ -131,7 +131,9 @@ TEST(ImageLayerChromiumTest, opaqueImages) { ...@@ -131,7 +131,9 @@ TEST(ImageLayerChromiumTest, opaqueImages) {
graphics_layer->SetContentsToImage(opaque_image.get(), graphics_layer->SetContentsToImage(opaque_image.get(),
Image::kUnspecifiedDecode); Image::kUnspecifiedDecode);
ASSERT_TRUE(graphics_layer->ContentsLayer()->contents_opaque()); // This would normally have contents_opaque set but due to crbug.com/870857,
// we cannot set image layers as having contents_opaque.
ASSERT_FALSE(graphics_layer->ContentsLayer()->contents_opaque());
graphics_layer->SetContentsToImage(non_opaque_image.get(), graphics_layer->SetContentsToImage(non_opaque_image.get(),
Image::kUnspecifiedDecode); Image::kUnspecifiedDecode);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment