RESOLVED FIXED 201284
Avoid running the outline painting phase if no renderers have outlines
https://bugs.webkit.org/show_bug.cgi?id=201284
Summary Avoid running the outline painting phase if no renderers have outlines
Simon Fraser (smfr)
Reported 2019-08-28 21:08:11 PDT
Avoid running the outline painting phase if no renderers have outlines
Attachments
Patch (5.12 KB, patch)
2019-08-28 21:13 PDT, Simon Fraser (smfr)
no flags
Patch (5.12 KB, patch)
2019-08-29 08:08 PDT, Simon Fraser (smfr)
no flags
Archive of layout-test-results from ews210 for win-future (13.65 MB, application/zip)
2019-08-29 09:44 PDT, EWS Watchlist
no flags
Patch (5.46 KB, patch)
2019-08-29 15:34 PDT, Simon Fraser (smfr)
sabouhallawa: review+
Simon Fraser (smfr)
Comment 1 2019-08-28 21:13:57 PDT
Simon Fraser (smfr)
Comment 2 2019-08-29 08:08:48 PDT
EWS Watchlist
Comment 3 2019-08-29 09:44:36 PDT
Comment on attachment 377584 [details] Patch Attachment 377584 [details] did not pass win-ews (win): Output: https://webkit-queues.webkit.org/results/12980576 New failing tests: fast/borders/hidpi-outline-on-subpixel-position.html fast/replaced/outline-replaced-elements-offset.html svg/custom/rgba-color-outline.svg svg/text/text-outline-rgba.html transforms/2d/preserve3d-not-fixed-container.html svg/text/tspan-multiple-outline.svg transforms/2d/perspective-not-fixed-container.html fast/block/block-only/block-replaced-with-vertical-margins.html fast/repaint/layer-child-outline.html fast/css/sticky/sticky-side-margins.html
EWS Watchlist
Comment 4 2019-08-29 09:44:39 PDT
Created attachment 377594 [details] Archive of layout-test-results from ews210 for win-future The attached test failures were seen while running run-webkit-tests on the win-ews. Bot: ews210 Port: win-future Platform: CYGWIN_NT-10.0-17763-3.0.5-338.x86_64-x86_64-64bit
Simon Fraser (smfr)
Comment 5 2019-08-29 15:34:36 PDT
Said Abou-Hallawa
Comment 6 2019-08-29 16:21:13 PDT
Comment on attachment 377636 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=377636&action=review > Source/WebCore/rendering/RenderView.h:153 > + void addRenderWithOutline() { m_renderersWithOutlineCount++; } This name is a little bit confusing. This function does not add a renderer with outline to the RenderView. How about didAddOutlineToRenderer() or something similar? Also can we use the pre increment ++ operator? > Source/WebCore/rendering/RenderView.h:154 > + void removeRenderWithOutline() { ASSERT(m_renderersWithOutlineCount > 0); m_renderersWithOutlineCount--; } This ASSERT will not prevent the overflow in the release build. Can we add an if statement to ensure m_renderersWithOutlineCount will not overflow?
Simon Fraser (smfr)
Comment 7 2019-08-29 17:30:00 PDT
(In reply to Said Abou-Hallawa from comment #6) > Comment on attachment 377636 [details] > Patch > > View in context: > https://bugs.webkit.org/attachment.cgi?id=377636&action=review > > > Source/WebCore/rendering/RenderView.h:153 > > + void addRenderWithOutline() { m_renderersWithOutlineCount++; } > > This name is a little bit confusing. This function does not add a renderer > with outline to the RenderView. How about didAddOutlineToRenderer() or > something similar? Also can we use the pre increment ++ operator? I'll call them incrementRendersWithOutline/decrementRendersWithOutline > > Source/WebCore/rendering/RenderView.h:154 > > + void removeRenderWithOutline() { ASSERT(m_renderersWithOutlineCount > 0); m_renderersWithOutlineCount--; } > > This ASSERT will not prevent the overflow in the release build. Can we add > an if statement to ensure m_renderersWithOutlineCount will not overflow? Underflow is benign in this case; we'll just do a bit more painting.
Simon Fraser (smfr)
Comment 8 2019-08-29 19:37:16 PDT
Radar WebKit Bug Importer
Comment 9 2019-08-29 19:38:21 PDT
Note You need to log in before you can comment on or make changes to this bug.