Bug 246203

Summary: REGRESSION (r294902): Overflowed area is not repainted when just changed to "hidden".
Product: WebKit Reporter: Takao Baba <baba>
Component: Layout and RenderingAssignee: zalan <zalan>
Status: RESOLVED FIXED    
Severity: Normal CC: bfulgham, changseok, esprehn+autocc, ews-watchlist, glenn, kondapallykalyan, pdr, simon.fraser, webkit-bug-importer, zalan
Priority: P2 Keywords: InRadar
Version: Safari 16   
Hardware: Unspecified   
OS: Unspecified   
Attachments:
Description Flags
Test reduction
none
Test reduction
none
Patch
none
Patch none

Takao Baba
Reported 2022-10-06 23:56:19 PDT
Steps to reproduce: 1. Open https://jsbin.com/pukomelowe/edit?html,css,js,output by Safari 16. (It doesn't matter if it is iOS or macOS) 2. Click "1". Then the first <p> is wrapped by a black border. 3. Click "2". Then the second <p> is wrapped by a black border. Expected behavior: The border around the first <p> disappears. Actual behavior: On Safari 16, the first border still remains. I've tested on Safari 16.0 (17614.1.25.9.10) on macOS 12.6 and iPad Simulator 16.0. iOS 15.7 works well. This is a regression of iOS 16.
Attachments
Test reduction (446 bytes, text/html)
2022-10-07 07:56 PDT, zalan
no flags
Test reduction (439 bytes, text/html)
2022-10-07 09:21 PDT, zalan
no flags
Patch (5.39 KB, patch)
2022-10-07 12:18 PDT, zalan
no flags
Patch (4.65 KB, patch)
2022-10-07 12:24 PDT, zalan
no flags
zalan
Comment 1 2022-10-07 07:56:22 PDT
Created attachment 462865 [details] Test reduction
zalan
Comment 2 2022-10-07 09:21:34 PDT
Created attachment 462868 [details] Test reduction
Radar WebKit Bug Importer
Comment 3 2022-10-07 09:23:26 PDT
zalan
Comment 4 2022-10-07 12:18:14 PDT
Simon Fraser (smfr)
Comment 5 2022-10-07 12:21:02 PDT
Comment on attachment 462869 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=462869&action=review > COMMIT_MESSAGE:7 > +1. When a layer has "full repaint" flag set we skip any subsequent repaint requests on the associated renderer and on any of its descendant because we know that the layer would eventually issue a repaint on the enclosing rect after layout. its descendant_s_ > Source/WebCore/rendering/RenderObject.cpp:982 > + if (!isRooted() || view().printing()) RenderObject::repaintRectangle() calls this, so now we have two calls to `isRooted` in this code path? That's an ancestor tree walk.
zalan
Comment 6 2022-10-07 12:24:58 PDT
EWS
Comment 7 2022-10-08 07:42:14 PDT
Committed 255312@main (3cf19dcd601e): <https://commits.webkit.org/255312@main> All reviewed patches have been landed. Closing bug and clearing flags on attachment 462870 [details].
zalan
Comment 8 2022-10-08 07:54:31 PDT
(In reply to Takao Baba from comment #0) > Steps to reproduce: > 1. Open https://jsbin.com/pukomelowe/edit?html,css,js,output by Safari 16. > (It doesn't matter if it is iOS or macOS) > 2. Click "1". Then the first <p> is wrapped by a black border. > 3. Click "2". Then the second <p> is wrapped by a black border. > > Expected behavior: > The border around the first <p> disappears. > > Actual behavior: > On Safari 16, the first border still remains. > > I've tested on Safari 16.0 (17614.1.25.9.10) on macOS 12.6 and iPad > Simulator 16.0. > iOS 15.7 works well. This is a regression of iOS 16. Thanks for filing this issue!
Note You need to log in before you can comment on or make changes to this bug.