| Summary: | Nullptr crash in RenderStyle::isFlippedBlocksWritingMode when fragment flow gains a new in-flow descendant | ||||||||
|---|---|---|---|---|---|---|---|---|---|
| Product: | WebKit | Reporter: | Jack <shihchieh_lee> | ||||||
| Component: | Layout and Rendering | Assignee: | Nobody <webkit-unassigned> | ||||||
| Status: | RESOLVED FIXED | ||||||||
| Severity: | Normal | CC: | aakash_jain, ajuma, bfulgham, ews-feeder, koivisto, product-security, rniwa, simon.fraser, webkit-bug-importer, zalan | ||||||
| Priority: | P2 | Keywords: | InRadar | ||||||
| Version: | WebKit Nightly Build | ||||||||
| Hardware: | All | ||||||||
| OS: | All | ||||||||
| Attachments: |
|
||||||||
|
Description
Jack
2020-02-05 14:30:06 PST
Root cause analysis from Alan: Without the [outer.style.transition = "1s”] this is what we end up with: before [range.extractContents] call B-----L- -- DIV RenderBlock at (0,0) size 1222x0 renderer->(0x1360f9420) node->(0x12f59afc0) B---YGL- RenderMultiColumnFlowThread at (0,0) size 603x0 renderer->(0x1360f97b0) [Rs:0x0 Re:0x0] BA----L- -- DIV RenderBlock at (8,8) size 304x154 renderer->(0x1360f9550) node->(0x12f59b050) N------- -- IFRAME RenderIFrame at (0,0) size 304x154 renderer->(0x1360f9680) node->(0x12f59b0e0) after [range.extractContents] call B------- -+ DIV RenderBlock at (0,0) size 1222x0 renderer->(0x1360f9420) node->(0x12f59afc0) layout->[self][normal child] B------- -+ DIV RenderBlock at (8,8) size 304x154 renderer->(0x1360f9550) node->(0x12f59b050) layout->[self][normal child] N------- -+ IFRAME RenderIFrame at (0,0) size 304x154 renderer->(0x1360f9680) node->(0x12f59b0e0) layout->[self] ^^Note that missing RenderMultiColumnFlowThread and the inner <div> is no longer absolutely positioned. and when the [outer.style.transition = "1s”] is added back the after state is this -> B-----L- -+ DIV RenderBlock at (0,0) size 1222x0 renderer->(0x1360f9420) node->(0x1360fbd60) layout->[self][normal child] B---YGL- RenderMultiColumnFlowThread at (0,0) size 603x0 renderer->(0x1360f97b0) [Rs:0x0 Re:0x0] layout->[self][normal child] B------- -+ DIV RenderBlock at (8,8) size 304x154 renderer->(0x1360f9550) node->(0x1360fbdf0) [Rs:0x0 Re:0x0] layout->[self][normal child] N------- -+ IFRAME RenderIFrame at (0,0) size 304x154 renderer->(0x1360f9680) node->(0x1360fa2a0) layout->[self] ^^the inner <div> is no longer absolutely positioned but we’ve still have a fragmented flow. It looks like when the inner <div> goes from out-of-flow to in-flow, we don’t check if the enclosing fragmented flow needs a new set. Created attachment 389894 [details]
Patch
EWS test "Mac-debug-wk1" fails because of <rdar://46103517>. Pending on investigation. Comment on attachment 389894 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=389894&action=review > Source/WebCore/ChangeLog:10 > + Reviewed by NOBODY (OOPS!). This line should appear below URL but before the description (surrounded by blank lines as you did here). Created attachment 391076 [details]
Patch
Submit the change with expected crash in layout test due to bug 202805. Comment on attachment 391076 [details] Patch commit-queue still doesn't support security bugs. Please land manually. See: https://bugs.webkit.org/show_bug.cgi?id=201939 This is not a security bug. Committed r257129: <https://trac.webkit.org/changeset/257129> *** Bug 208317 has been marked as a duplicate of this bug. *** |