diff options
author | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2020-11-18 16:35:47 +0100 |
---|---|---|
committer | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2020-11-18 15:45:54 +0000 |
commit | 32f5a1c56531e4210bc4cf8d8c7825d66e081888 (patch) | |
tree | eeeec6822f4d738d8454525233fd0e2e3a659e6d /chromium/cc/layers/picture_layer.cc | |
parent | 99677208ff3b216fdfec551fbe548da5520cd6fb (diff) |
BASELINE: Update Chromium to 87.0.4280.67
Change-Id: Ib157360be8c2ffb2c73125751a89f60e049c1d54
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
Diffstat (limited to 'chromium/cc/layers/picture_layer.cc')
-rw-r--r-- | chromium/cc/layers/picture_layer.cc | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/chromium/cc/layers/picture_layer.cc b/chromium/cc/layers/picture_layer.cc index a5442b679bf..852c77de18a 100644 --- a/chromium/cc/layers/picture_layer.cc +++ b/chromium/cc/layers/picture_layer.cc @@ -230,7 +230,7 @@ void PictureLayer::RunMicroBenchmark(MicroBenchmark* benchmark) { } void PictureLayer::CaptureContent(const gfx::Rect& rect, - std::vector<NodeId>* content) { + std::vector<NodeInfo>* content) { if (!DrawsContent()) return; @@ -253,6 +253,22 @@ void PictureLayer::CaptureContent(const gfx::Rect& rect, return; display_item_list->CaptureContent(transformed, content); + if (auto* outer_viewport_layer = layer_tree_host()->LayerByElementId( + layer_tree_host()->OuterViewportScrollElementId())) { + if (transform_tree_index() == outer_viewport_layer->transform_tree_index()) + return; + gfx::Transform inverse_outer_screen_space_transform; + if (!outer_viewport_layer->ScreenSpaceTransform().GetInverse( + &inverse_outer_screen_space_transform)) { + return; + } + gfx::Transform combined_transform{ScreenSpaceTransform(), + inverse_outer_screen_space_transform}; + for (auto& i : *content) { + i.visual_rect = MathUtil::ProjectEnclosingClippedRect(combined_transform, + i.visual_rect); + } + } } void PictureLayer::DropRecordingSourceContentIfInvalid() { |