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

Issue 1126313004: Let layoutAndPaintAsync() schedule commit asynchronously (Closed)

Created:
5 years, 7 months ago by Xianzhu
Modified:
5 years, 7 months ago
Reviewers:
no sievers
CC:
chromium-reviews, mkwst+moarreviews-renderer_chromium.org, mlamouri+watch-content_chromium.org, jam, piman+watch_chromium.org, darin-cc_chromium.org
Base URL:
https://chromium.googlesource.com/chromium/src.git@master
Target Ref:
refs/pending/heads/master
Project:
chromium
Visibility:
Public.

Description

Let layoutAndPaintAsync() schedule commit asynchronously Previously in single-threaded mode we let layoutAndPaintAsync() call commit synchronously and callback asynchronously. The synchronous commit causes reentrant of notifyDone() or requestAnimationFrame() for some tests having event handlers that are triggered by layout. Avoid reentrant by making commit always asynchronous. BUG=485428, 484706 TEST=Webkit layout tests when they use layoutAndPaintAsyncThen(). Committed: https://crrev.com/bccaf6b4f911baf2b84f56582b52d6ae6c818afb Cr-Commit-Position: refs/heads/master@{#328815}

Patch Set 1 #

Total comments: 2

Patch Set 2 : Format #

Unified diffs Side-by-side diffs Delta from patch set Stats (+9 lines, -16 lines) Patch
M content/renderer/gpu/render_widget_compositor.h View 1 chunk +1 line, -1 line 0 comments Download
M content/renderer/gpu/render_widget_compositor.cc View 1 2 chunks +8 lines, -15 lines 0 comments Download

Messages

Total messages: 10 (3 generated)
Xianzhu
5 years, 7 months ago (2015-05-07 17:53:10 UTC) #2
no sievers
lgtm https://codereview.chromium.org/1126313004/diff/1/content/renderer/gpu/render_widget_compositor.cc File content/renderer/gpu/render_widget_compositor.cc (right): https://codereview.chromium.org/1126313004/diff/1/content/renderer/gpu/render_widget_compositor.cc#newcode743 content/renderer/gpu/render_widget_compositor.cc:743: bool RenderWidgetCompositor::CommitIsSynchronous() const nit: move brace back up
5 years, 7 months ago (2015-05-07 17:57:57 UTC) #3
Xianzhu
https://codereview.chromium.org/1126313004/diff/1/content/renderer/gpu/render_widget_compositor.cc File content/renderer/gpu/render_widget_compositor.cc (right): https://codereview.chromium.org/1126313004/diff/1/content/renderer/gpu/render_widget_compositor.cc#newcode743 content/renderer/gpu/render_widget_compositor.cc:743: bool RenderWidgetCompositor::CommitIsSynchronous() const On 2015/05/07 17:57:56, sievers wrote: > ...
5 years, 7 months ago (2015-05-07 18:05:36 UTC) #4
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1126313004/20001
5 years, 7 months ago (2015-05-07 18:08:38 UTC) #7
commit-bot: I haz the power
Committed patchset #2 (id:20001)
5 years, 7 months ago (2015-05-07 19:22:26 UTC) #8
commit-bot: I haz the power
Patchset 2 (id:??) landed as https://crrev.com/bccaf6b4f911baf2b84f56582b52d6ae6c818afb Cr-Commit-Position: refs/heads/master@{#328815}
5 years, 7 months ago (2015-05-07 19:24:27 UTC) #9
tasak
5 years, 7 months ago (2015-05-08 01:46:16 UTC) #10
Message was sent while issue was closed.
A revert of this CL (patchset #2 id:20001) has been created in
https://codereview.chromium.org/1128253004/ by tasak@google.com.

The reason for reverting is: Seems to cause the following layout tests' crash:
virtual/slimmingpaint/svg/custom/hit-test-with-br.xhtml
virtual/slimmingpaint/svg/custom/hit-test-unclosed-subpaths.svg
virtual/slimmingpaint/svg/custom/js-update-container2.svg
virtual/slimmingpaint/svg/custom/scroll-hit-test.xhtml
virtual/slimmingpaint/svg/custom/repaint-shadow.svg
virtual/slimmingpaint/svg/custom/use-event-handler-on-use-element.svg
virtual/slimmingpaint/svg/custom/prevent-default.svg
virtual/slimmingpaint/svg/custom/use-event-handler-on-referenced-element.svg
virtual/slimmingpaint/svg/as-object/embedded-svg-size-changes.html
virtual/slimmingpaint/svg/as-object/nested-embedded-svg-size-changes.html
virtual/slimmingpaint/svg/dom/SVGPathSegList-xml-dom-synchronization.xhtml
virtual/slimmingpaint/svg/zoom/text/absolute-sized-document-scrollbars.svg
virtual/slimmingpaint/svg/zoom/text/zoom-foreignObject.svg
virtual/slimmingpaint/svg/zoom/text/zoom-coords-viewattr-01-b.svg
virtual/slimmingpaint/svg/zoom/text/absolute-sized-document-no-scrollbars.svg
virtual/slimmingpaint/svg/zoom/text/relative-sized-document-scrollbars.svg
svg/as-object/embedded-svg-size-changes.html
svg/as-object/nested-embedded-svg-size-changes.html
svg/dom/SVGPathSegList-xml-dom-synchronization.xhtml
svg/zoom/text/absolute-sized-document-scrollbars.svg
svg/zoom/text/zoom-foreignObject.svg
svg/zoom/text/zoom-coords-viewattr-01-b.svg
svg/zoom/text/absolute-sized-document-no-scrollbars.svg
svg/zoom/text/relative-sized-document-scrollbars.svg
svg/custom/use-event-handler-on-use-element.svg
svg/custom/hit-test-with-br.xhtml
svg/custom/scroll-hit-test.xhtml
svg/custom/js-update-container2.svg
svg/custom/repaint-shadow.svg
svg/custom/hit-test-unclosed-subpaths.svg
svg/custom/prevent-default.svg
svg/custom/use-event-handler-on-referenced-element.svg

---
 3 
libcontent.so!content::RenderWidgetCompositor::compositeAndReadbackAsync(blink::WebCompositeAndReadbackAsyncCallback*)
+ 0x10d
    rbp = 0x00007fffea4d47b0   rsp = 0x00007fffea4d45c0
    rip = 0x00007f04f3018e7d
    Found by: call frame info
 4  libblink_web.so!blink::WebView::zoomFactorToZoomLevel(double) + 0x9699
    rbp = 0x00007fffea4d47e0   rsp = 0x00007fffea4d47c0
    rip = 0x00007f04eda2da99
    Found by: call frame info
---
https://build.chromium.org/p/chromium.webkit/builders/WebKit%20Linux%20%28dbg...
https://build.chromium.org/p/chromium.webkit/builders/WebKit%20Linux%20%28dbg...
.

Powered by Google App Engine
This is Rietveld 408576698