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

Issue 2860433002: Update WebView/FrameView size from LayoutView::UpdateAfterLayout (Closed)

Created:
3 years, 7 months ago by szager1
Modified:
3 years, 7 months ago
CC:
chromium-reviews, szager+layoutwatch_chromium.org, zoltan1, blink-reviews-layout_chromium.org, pdr+renderingwatchlist_chromium.org, eae+blinkwatch, leviw+renderwatch, dshwang, jchaffraix+rendering, blink-reviews-paint_chromium.org, blink-reviews, blink-reviews-frames_chromium.org, kinuko+watch
Target Ref:
refs/heads/master
Project:
chromium
Visibility:
Public.

Description

Update WebView/FrameView size from LayoutView::UpdateAfterLayout Previously, this was set *after* layout had completed, via FrameView::AdjustViewSize and WebViewImpl::LayoutUpdated. The layout size of the full document must be known before the WebView and FrameView can be resized, because the document size may affect the minimum page scale factor, which will affect the FrameView's size. The earliest that the full document's layout size is known is after the LayoutView completes its block layout. This patch updates the FrameView size in LayoutView::UpdateAfterLayout, which is after the LayoutView has finished block layout, but still in time for the LayoutView to use the new sizes when updating its scrollbars (when root layer scrolling is enabled). The new test expectations are just paint invalidation reasons, which are expected; and one case (resize-iframe-text.html) where the existing invalidation geometry was too big, and this patch results in a smaller, correct set of invalidations. BUG=701575 CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2 Review-Url: https://codereview.chromium.org/2860433002 Cr-Commit-Position: refs/heads/master@{#471275} Committed: https://chromium.googlesource.com/chromium/src/+/54a03d79877c3cacd79e37e33ec715abb3460bd7

Patch Set 1 #

Patch Set 2 : rebase on top of svg percent size fix #

Patch Set 3 : make rietveld recognize dependent patchset #

Patch Set 4 : test expectations #

Patch Set 5 : Don't paint LayoutView scroll corners unless RLS #

Patch Set 6 : cherry-pick scroll corner fix #

Patch Set 7 : rebas #

Total comments: 8

Patch Set 8 : nits #

Total comments: 26

Patch Set 9 : nits #

Total comments: 2

Patch Set 10 : refactors #

Patch Set 11 : s/IsLocalRoot/IsMainFrame/ #

Unified diffs Side-by-side diffs Delta from patch set Stats (+196 lines, -854 lines) Patch
D third_party/WebKit/LayoutTests/paint/invalidation/iframe-display-none-to-display-block-expected.txt View 1 2 3 1 chunk +0 lines, -41 lines 0 comments Download
D third_party/WebKit/LayoutTests/paint/invalidation/resize-iframe-text-expected.txt View 1 2 3 1 chunk +0 lines, -84 lines 0 comments Download
D third_party/WebKit/LayoutTests/paint/invalidation/shift-relative-positioned-container-with-image-addition-expected.txt View 1 2 3 1 chunk +0 lines, -76 lines 0 comments Download
M third_party/WebKit/LayoutTests/paint/invalidation/window-resize-centered-inline-under-fixed-pos-expected.txt View 1 2 3 4 chunks +4 lines, -4 lines 0 comments Download
M third_party/WebKit/LayoutTests/paint/invalidation/window-resize-frameset-expected.txt View 1 2 3 4 5 6 7 8 3 chunks +0 lines, -24 lines 0 comments Download
D third_party/WebKit/LayoutTests/platform/linux/paint/invalidation/resize-iframe-text-expected.txt View 1 2 3 1 chunk +0 lines, -84 lines 0 comments Download
M third_party/WebKit/LayoutTests/platform/linux/paint/invalidation/window-resize-vertical-writing-mode-expected.txt View 1 2 3 2 chunks +12 lines, -12 lines 0 comments Download
D third_party/WebKit/LayoutTests/platform/linux/virtual/disable-spinvalidation/paint/invalidation/resize-iframe-text-expected.txt View 1 2 3 1 chunk +0 lines, -89 lines 0 comments Download
M third_party/WebKit/LayoutTests/platform/linux/virtual/disable-spinvalidation/paint/invalidation/window-resize-vertical-writing-mode-expected.txt View 1 2 3 2 chunks +12 lines, -12 lines 0 comments Download
A + third_party/WebKit/LayoutTests/platform/mac/paint/invalidation/iframe-display-none-to-display-block-expected.txt View 1 2 3 4 5 6 7 8 1 chunk +4 lines, -0 lines 0 comments Download
A + third_party/WebKit/LayoutTests/platform/mac/paint/invalidation/resize-iframe-text-expected.txt View 1 2 3 4 5 6 7 8 2 chunks +3 lines, -28 lines 0 comments Download
A + third_party/WebKit/LayoutTests/platform/mac/paint/invalidation/shift-relative-positioned-container-with-image-addition-expected.txt View 1 2 3 4 5 6 7 8 1 chunk +4 lines, -0 lines 0 comments Download
M third_party/WebKit/LayoutTests/platform/mac/paint/invalidation/window-resize-vertical-writing-mode-expected.txt View 1 2 3 2 chunks +10 lines, -10 lines 0 comments Download
A + third_party/WebKit/LayoutTests/platform/mac/virtual/disable-spinvalidation/paint/invalidation/iframe-display-none-to-display-block-expected.txt View 1 2 3 4 5 6 7 8 1 chunk +4 lines, -0 lines 0 comments Download
M third_party/WebKit/LayoutTests/platform/mac/virtual/disable-spinvalidation/paint/invalidation/resize-iframe-text-expected.txt View 1 2 3 4 5 6 7 8 2 chunks +3 lines, -33 lines 0 comments Download
A + third_party/WebKit/LayoutTests/platform/mac/virtual/disable-spinvalidation/paint/invalidation/shift-relative-positioned-container-with-image-addition-expected.txt View 1 2 3 4 5 6 7 8 1 chunk +4 lines, -0 lines 0 comments Download
M third_party/WebKit/LayoutTests/platform/mac/virtual/disable-spinvalidation/paint/invalidation/window-resize-vertical-writing-mode-expected.txt View 1 2 3 2 chunks +12 lines, -12 lines 0 comments Download
M third_party/WebKit/LayoutTests/platform/win/paint/invalidation/iframe-display-none-to-display-block-expected.txt View 1 2 3 4 5 6 7 8 1 chunk +4 lines, -0 lines 0 comments Download
M third_party/WebKit/LayoutTests/platform/win/paint/invalidation/resize-iframe-text-expected.txt View 1 2 3 4 5 6 7 8 2 chunks +3 lines, -28 lines 0 comments Download
M third_party/WebKit/LayoutTests/platform/win/paint/invalidation/shift-relative-positioned-container-with-image-addition-expected.txt View 1 2 3 4 5 6 7 8 1 chunk +4 lines, -0 lines 0 comments Download
M third_party/WebKit/LayoutTests/platform/win/paint/invalidation/window-resize-vertical-writing-mode-expected.txt View 1 2 3 2 chunks +12 lines, -12 lines 0 comments Download
M third_party/WebKit/LayoutTests/platform/win/virtual/disable-spinvalidation/paint/invalidation/iframe-display-none-to-display-block-expected.txt View 1 2 3 4 5 6 7 8 1 chunk +4 lines, -0 lines 0 comments Download
M third_party/WebKit/LayoutTests/platform/win/virtual/disable-spinvalidation/paint/invalidation/resize-iframe-text-expected.txt View 1 2 3 4 5 6 7 8 2 chunks +3 lines, -33 lines 0 comments Download
M third_party/WebKit/LayoutTests/platform/win/virtual/disable-spinvalidation/paint/invalidation/shift-relative-positioned-container-with-image-addition-expected.txt View 1 2 3 4 5 6 7 8 1 chunk +4 lines, -0 lines 0 comments Download
M third_party/WebKit/LayoutTests/platform/win/virtual/disable-spinvalidation/paint/invalidation/window-resize-vertical-writing-mode-expected.txt View 1 2 3 2 chunks +12 lines, -12 lines 0 comments Download
D third_party/WebKit/LayoutTests/virtual/disable-spinvalidation/paint/invalidation/iframe-display-none-to-display-block-expected.txt View 1 2 3 1 chunk +0 lines, -51 lines 0 comments Download
D third_party/WebKit/LayoutTests/virtual/disable-spinvalidation/paint/invalidation/shift-relative-positioned-container-with-image-addition-expected.txt View 1 2 3 1 chunk +0 lines, -96 lines 0 comments Download
M third_party/WebKit/LayoutTests/virtual/disable-spinvalidation/paint/invalidation/window-resize-centered-inline-under-fixed-pos-expected.txt View 1 2 3 4 chunks +4 lines, -4 lines 0 comments Download
M third_party/WebKit/LayoutTests/virtual/disable-spinvalidation/paint/invalidation/window-resize-frameset-expected.txt View 1 2 3 4 5 6 7 8 3 chunks +0 lines, -24 lines 0 comments Download
M third_party/WebKit/Source/core/frame/FrameView.cpp View 1 2 3 4 5 6 7 8 9 10 chunks +42 lines, -40 lines 0 comments Download
M third_party/WebKit/Source/core/layout/LayoutView.h View 1 chunk +2 lines, -0 lines 0 comments Download
M third_party/WebKit/Source/core/layout/LayoutView.cpp View 1 2 3 4 5 6 7 2 chunks +17 lines, -0 lines 0 comments Download
M third_party/WebKit/Source/core/paint/BoxPaintInvalidatorTest.cpp View 2 chunks +4 lines, -17 lines 0 comments Download
M third_party/WebKit/Source/web/WebViewImpl.h View 1 2 3 4 5 6 7 8 9 1 chunk +0 lines, -1 line 0 comments Download
M third_party/WebKit/Source/web/WebViewImpl.cpp View 1 2 3 4 5 6 7 8 9 10 5 chunks +9 lines, -27 lines 0 comments Download

Messages

Total messages: 67 (47 generated)
szager1
cbiesinger: Sorry for this, but skobes and bokan are both OOO, so I'm sending it ...
3 years, 7 months ago (2017-05-05 14:09:38 UTC) #28
szager1
+chrishtr, who has some background on this from a meeting about a month ago.
3 years, 7 months ago (2017-05-05 14:12:53 UTC) #30
cbiesinger
I think this mostly makes sense but I'm not sure I fully understand it. See ...
3 years, 7 months ago (2017-05-05 18:20:01 UTC) #31
szager1
https://codereview.chromium.org/2860433002/diff/120001/third_party/WebKit/Source/core/frame/FrameView.cpp File third_party/WebKit/Source/core/frame/FrameView.cpp (right): https://codereview.chromium.org/2860433002/diff/120001/third_party/WebKit/Source/core/frame/FrameView.cpp#newcode889 third_party/WebKit/Source/core/frame/FrameView.cpp:889: SetNeedsPaintPropertyUpdate(); On 2017/05/05 18:20:01, cbiesinger wrote: > Why is ...
3 years, 7 months ago (2017-05-08 16:27:06 UTC) #33
szager1
ping
3 years, 7 months ago (2017-05-10 15:07:02 UTC) #37
szager1
+bokan, you're probably best positioned to review this with skobes out.
3 years, 7 months ago (2017-05-10 15:22:43 UTC) #39
bokan
Thanks, I think this is making things more sane. Haven't looked over the test yet ...
3 years, 7 months ago (2017-05-10 21:30:08 UTC) #40
szager1
https://codereview.chromium.org/2860433002/diff/140001/third_party/WebKit/Source/core/frame/FrameView.cpp File third_party/WebKit/Source/core/frame/FrameView.cpp (left): https://codereview.chromium.org/2860433002/diff/140001/third_party/WebKit/Source/core/frame/FrameView.cpp#oldcode561 third_party/WebKit/Source/core/frame/FrameView.cpp:561: // discover the deeper cause of this. http://crbug.com/607987. On ...
3 years, 7 months ago (2017-05-11 12:50:55 UTC) #41
bokan
https://codereview.chromium.org/2860433002/diff/140001/third_party/WebKit/Source/core/frame/FrameView.cpp File third_party/WebKit/Source/core/frame/FrameView.cpp (left): https://codereview.chromium.org/2860433002/diff/140001/third_party/WebKit/Source/core/frame/FrameView.cpp#oldcode1683 third_party/WebKit/Source/core/frame/FrameView.cpp:1683: lvi.SetShouldDoFullPaintInvalidation(); On 2017/05/11 12:50:54, szager1 wrote: > On 2017/05/10 ...
3 years, 7 months ago (2017-05-11 16:51:09 UTC) #42
szager1
https://codereview.chromium.org/2860433002/diff/140001/third_party/WebKit/Source/core/frame/FrameView.cpp File third_party/WebKit/Source/core/frame/FrameView.cpp (right): https://codereview.chromium.org/2860433002/diff/140001/third_party/WebKit/Source/core/frame/FrameView.cpp#newcode566 third_party/WebKit/Source/core/frame/FrameView.cpp:566: lv->GetScrollableArea()->ClampScrollOffsetAfterOverflowChange(); On 2017/05/11 16:51:08, bokan wrote: > On 2017/05/11 ...
3 years, 7 months ago (2017-05-11 20:12:00 UTC) #44
bokan
thanks, lgtm once you change IsLocalRoot back to IsMainFrame. But I'd like someone from paint ...
3 years, 7 months ago (2017-05-11 22:15:06 UTC) #46
szager1
From previous conversations with wangxianzhu, the invalidation reason diffs are fine, as long as the ...
3 years, 7 months ago (2017-05-12 06:15:13 UTC) #49
commit-bot: I haz the power
CQ is trying da patch. Follow status at: https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.org/2860433002/200001
3 years, 7 months ago (2017-05-12 06:18:38 UTC) #52
commit-bot: I haz the power
Try jobs failed on following builders: linux_chromium_chromeos_ozone_rel_ng on master.tryserver.chromium.linux (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.linux/builders/linux_chromium_chromeos_ozone_rel_ng/builds/382825)
3 years, 7 months ago (2017-05-12 07:27:11 UTC) #54
commit-bot: I haz the power
CQ is trying da patch. Follow status at: https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.org/2860433002/200001
3 years, 7 months ago (2017-05-12 07:46:11 UTC) #56
commit-bot: I haz the power
Try jobs failed on following builders: linux_chromium_chromeos_ozone_rel_ng on master.tryserver.chromium.linux (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.linux/builders/linux_chromium_chromeos_ozone_rel_ng/builds/382921)
3 years, 7 months ago (2017-05-12 08:47:16 UTC) #58
commit-bot: I haz the power
CQ is trying da patch. Follow status at: https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.org/2860433002/200001
3 years, 7 months ago (2017-05-12 09:34:57 UTC) #60
commit-bot: I haz the power
Try jobs failed on following builders: linux_chromium_chromeos_ozone_rel_ng on master.tryserver.chromium.linux (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.linux/builders/linux_chromium_chromeos_ozone_rel_ng/builds/383046)
3 years, 7 months ago (2017-05-12 11:09:54 UTC) #62
commit-bot: I haz the power
CQ is trying da patch. Follow status at: https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.org/2860433002/200001
3 years, 7 months ago (2017-05-12 11:21:54 UTC) #64
commit-bot: I haz the power
3 years, 7 months ago (2017-05-12 11:45:17 UTC) #67
Message was sent while issue was closed.
Committed patchset #11 (id:200001) as
https://chromium.googlesource.com/chromium/src/+/54a03d79877c3cacd79e37e33ec7...

Powered by Google App Engine
This is Rietveld 408576698