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

Issue 15219003: Move updateLayout() call from RenderLayer to RenderView (Closed)

Created:
7 years, 7 months ago by cbiesinger
Modified:
7 years, 7 months ago
Reviewers:
jamesr, eseidel, ojan
CC:
blink-reviews, eae+blinkwatch, leviw+renderwatch, jchaffraix+rendering, esprehn, Julien - ping for review
Visibility:
Public.

Description

Move updateLayout() call from RenderLayer to RenderView This is necessary because otherwise, RenderLayer may end up destroying itself, leading to unhappiness. Further, the updateLayout call needs to recursively update the child documents' layout as well, see the comment in the patch. This was uncovered when I removed superfluous layout() calls from event sender, but there is likely a way to trigger this from web content also. R=ojan@chromium.org BUG=241090 Committed: https://src.chromium.org/viewvc/blink?view=rev&revision=150612

Patch Set 1 #

Total comments: 2

Patch Set 2 : add fixme #

Unified diffs Side-by-side diffs Delta from patch set Stats (+29 lines, -3 lines) Patch
A LayoutTests/compositing/iframes/crash-mouse-event.html View 1 chunk +18 lines, -0 lines 0 comments Download
A + LayoutTests/compositing/iframes/crash-mouse-event-expected.txt View 1 chunk +1 line, -1 line 0 comments Download
M Source/core/rendering/RenderLayer.cpp View 1 1 chunk +4 lines, -2 lines 0 comments Download
M Source/core/rendering/RenderView.cpp View 1 1 chunk +6 lines, -0 lines 0 comments Download

Messages

Total messages: 25 (0 generated)
cbiesinger
7 years, 7 months ago (2013-05-16 22:07:23 UTC) #1
ojan
https://codereview.chromium.org/15219003/diff/1/Source/core/rendering/RenderView.cpp File Source/core/rendering/RenderView.cpp (right): https://codereview.chromium.org/15219003/diff/1/Source/core/rendering/RenderView.cpp#newcode91 Source/core/rendering/RenderView.cpp:91: // into a child document, it could trigger a ...
7 years, 7 months ago (2013-05-16 23:57:54 UTC) #2
cbiesinger
https://codereview.chromium.org/15219003/diff/1/Source/core/rendering/RenderView.cpp File Source/core/rendering/RenderView.cpp (right): https://codereview.chromium.org/15219003/diff/1/Source/core/rendering/RenderView.cpp#newcode91 Source/core/rendering/RenderView.cpp:91: // into a child document, it could trigger a ...
7 years, 7 months ago (2013-05-17 00:17:03 UTC) #3
eseidel
seamless iframes depend on their parent document having resolved style. I'm not sure about having ...
7 years, 7 months ago (2013-05-17 01:04:39 UTC) #4
cbiesinger
Here's my printf output (with some manual formatting). Clearly, something marks the outer document as ...
7 years, 7 months ago (2013-05-17 01:05:43 UTC) #5
cbiesinger
perhaps this is easier to read: EventSender::mouseDown(0, 0) -> RenderView::hitTest(document=OUTER layer=L1) -> Document::updateLayout(this=OUTER) <- Document::updateLayout ...
7 years, 7 months ago (2013-05-17 01:07:07 UTC) #6
ojan
Ick. Document::updateLayout calls ownerElement()->document()->updateLayout(), i.e. calling updateLayout on a document walks up the frame tree ...
7 years, 7 months ago (2013-05-17 01:11:45 UTC) #7
ojan
CC some other people who might have some insight into the Document::updateLayout behavior.
7 years, 7 months ago (2013-05-17 01:12:24 UTC) #8
cbiesinger
Sigh, there was a bug in my printfs, don't pay too much attention to them ...
7 years, 7 months ago (2013-05-17 01:15:30 UTC) #9
jamesr
Who calls RenderView::hitTest() without first updating layout? Can this just be an ASSERT() that layout ...
7 years, 7 months ago (2013-05-17 01:15:52 UTC) #10
ojan
The code to walk up the owner chain updating layout was added in http://trac.webkit.org/changeset/20936. We ...
7 years, 7 months ago (2013-05-17 01:22:41 UTC) #11
cbiesinger
On 2013/05/17 01:15:52, jamesr wrote: > Who calls RenderView::hitTest() without first updating layout? Everyone, as ...
7 years, 7 months ago (2013-05-17 01:23:57 UTC) #12
jamesr
Huh, interesting. Having the layout() inside RenderView is definitely better than having it in RenderLayer(), ...
7 years, 7 months ago (2013-05-17 01:25:50 UTC) #13
ojan
On 2013/05/17 01:25:50, jamesr wrote: > Huh, interesting. Having the layout() inside RenderView is definitely ...
7 years, 7 months ago (2013-05-17 01:39:06 UTC) #14
cbiesinger
So I have news about where the additional scheduled layout comes from. When the inner ...
7 years, 7 months ago (2013-05-17 02:13:29 UTC) #15
cbiesinger
On 2013/05/17 01:39:06, ojan wrote: > On 2013/05/17 01:25:50, jamesr wrote: > > Huh, interesting. ...
7 years, 7 months ago (2013-05-17 02:14:35 UTC) #16
jamesr
On 2013/05/17 02:13:29, cbiesinger wrote: > So I have news about where the additional scheduled ...
7 years, 7 months ago (2013-05-17 02:17:14 UTC) #17
ojan
On 2013/05/17 02:13:29, cbiesinger wrote: > It's not clear to me whether it's a good ...
7 years, 7 months ago (2013-05-17 02:23:52 UTC) #18
cbiesinger
On 2013/05/17 02:23:52, ojan wrote: > On 2013/05/17 02:13:29, cbiesinger wrote: > > It's not ...
7 years, 7 months ago (2013-05-17 02:30:52 UTC) #19
ojan
lgtm
7 years, 7 months ago (2013-05-17 04:20:14 UTC) #20
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/cbiesinger@chromium.org/15219003/21001
7 years, 7 months ago (2013-05-17 18:33:07 UTC) #21
commit-bot: I haz the power
Retried try job too often on linux_layout_rel for step(s) webkit_tests http://build.chromium.org/p/tryserver.chromium/buildstatus?builder=linux_layout_rel&number=8587
7 years, 7 months ago (2013-05-17 19:23:28 UTC) #22
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/cbiesinger@chromium.org/15219003/21001
7 years, 7 months ago (2013-05-17 21:09:36 UTC) #23
commit-bot: I haz the power
Retried try job too often on linux_layout_rel for step(s) webkit_tests http://build.chromium.org/p/tryserver.chromium/buildstatus?builder=linux_layout_rel&number=8604
7 years, 7 months ago (2013-05-17 21:47:51 UTC) #24
cbiesinger
7 years, 7 months ago (2013-05-17 21:49:14 UTC) #25
Message was sent while issue was closed.
Committed patchset #2 manually as r150612 (presubmit successful).

Powered by Google App Engine
This is Rietveld 408576698