Changeset 160908 in webkit
- Timestamp:
- Dec 20, 2013 6:44:23 AM (10 years ago)
- Location:
- trunk
- Files:
-
- 75 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LayoutTests/ChangeLog
r160907 r160908 1 2013-12-19 Antti Koivisto <antti@apple.com> 2 3 Create render tree lazily 4 https://bugs.webkit.org/show_bug.cgi?id=120685 5 6 Reviewed by Andreas Kling. 7 8 Most of these are non-visible render tree dump changes (they become simpler). 9 10 * editing/selection/click-on-head-margin-expected.txt: 11 * fast/css-generated-content/before-content-continuation-chain-expected.txt: 12 * fast/css/transition-color-unspecified.html: 13 * fast/dom/adopt-node-crash-2-expected.txt: 14 * fast/dom/modify-node-and-while-in-the-callback-too-crash-expected.txt: 15 * fast/forms/radio/radio_checked_dynamic-expected.txt: 16 * fast/frames/lots-of-iframes-expected.txt: 17 * fast/frames/sandboxed-iframe-autofocus-denied-expected.txt: 18 * fast/table/table-row-style-not-updated-with-after-content-expected.txt: 19 * fullscreen/full-screen-render-inline-expected.txt: 20 * fullscreen/parent-flow-inline-with-block-child-expected.txt: 21 * platform/mac/editing/inserting/break-blockquote-after-delete-expected.txt: 22 * platform/mac/fast/css-generated-content/table-row-group-to-inline-expected.txt: 23 * platform/mac/fast/dynamic/011-expected.txt: 24 * platform/mac/fast/forms/formmove3-expected.txt: 25 * platform/mac/fast/forms/preserveFormDuringResidualStyle-expected.txt: 26 * platform/mac/fast/invalid/001-expected.txt: 27 * platform/mac/fast/invalid/003-expected.txt: 28 * platform/mac/fast/invalid/004-expected.txt: 29 * platform/mac/fast/invalid/007-expected.txt: 30 * platform/mac/fast/invalid/019-expected.txt: 31 * platform/mac/fast/multicol/span/span-as-immediate-child-generated-content-expected.txt: 32 * platform/mac/fast/multicol/span/span-as-immediate-columns-child-dynamic-expected.txt: 33 * platform/mac/fast/multicol/span/span-as-nested-columns-child-dynamic-expected.txt: 34 * platform/mac/fast/ruby/ruby-base-merge-block-children-crash-expected.txt: 35 * platform/mac/tables/mozilla/bugs/bug113235-1-expected.txt: 36 * platform/mac/tables/mozilla/bugs/bug647-expected.txt: 37 * platform/mac/tables/mozilla/other/wa_table_tr_align-expected.txt: 38 * plugins/plugin-remove-readystatechange-expected.txt: 39 * svg/custom/system-language-crash-expected.txt: 40 * transitions/equivalent-background-image-no-transition.html: 41 * transitions/repeated-firing-background-color.html: 42 * transitions/transition-duration-cleared-in-transitionend-crash.html: 43 44 Adopt a few transition test cases to new behavior. 45 1 46 2013-12-20 Mario Sanchez Prada <mario.prada@samsung.com> 2 47 -
trunk/LayoutTests/editing/selection/click-on-head-margin-expected.txt
r95574 r160908 1 1 Click on the right of this line outside the black box. 2 2 The caret should be placed on the right of the first line, NOT on the right of this line. 3 3 PASS 4 4 -
trunk/LayoutTests/fast/css-generated-content/before-content-continuation-chain-expected.txt
r137336 r160908 6 6 RenderBlock (anonymous) at (0,0) size 784x0 7 7 RenderInline {SPAN} at (0,0) size 0x0 [color=#008000] 8 RenderBlock (anonymous) at (0,0) size 784x200 8 RenderBlock (anonymous) at (0,0) size 784x200 [color=#008000] 9 9 RenderBlock (generated) at (0,0) size 784x200 [color=#0000FF] 10 10 RenderText at (0,0) size 200x200 11 11 text run at (0,0) width 200: "A" 12 RenderBlock {DIV} at (0,200) size 784x0 [color=#008000]12 RenderBlock {DIV} at (0,200) size 784x0 13 13 RenderBlock (anonymous) at (0,200) size 784x200 14 14 RenderInline {SPAN} at (0,0) size 200x200 [color=#008000] -
trunk/LayoutTests/fast/css/transition-color-unspecified.html
r120683 r160908 15 15 }, false); 16 16 17 document.getElementById("test").className = "";17 setTimeout(function() { document.getElementById("test").className = "" }, 0); 18 18 </script> -
trunk/LayoutTests/fast/dom/adopt-node-crash-2-expected.txt
r135914 r160908 1 1 Tests for a crash due to adopting a DOM node during DOMFocusOut event. Test passes if it doesn't crash. 2 2 3 -
trunk/LayoutTests/fast/dom/modify-node-and-while-in-the-callback-too-crash-expected.txt
r159481 r160908 1 1 This tests that making changes on a node that triggers a callback where we make changes again on the same node does not result in an assert/crash. Test passes if no crash is observed. 2 3 -
trunk/LayoutTests/fast/forms/radio/radio_checked_dynamic-expected.txt
r108612 r160908 11 11 12 12 Test 4: Transfer from <form> to <form> 13 13 14 14 Test 4 Passed 15 15 -
trunk/LayoutTests/fast/frames/lots-of-iframes-expected.txt
r61205 r160908 1 1 Sucessfully created 1000 frames. 2 2 Successfully blocked creation of frame number 1001. 3 -
trunk/LayoutTests/fast/frames/sandboxed-iframe-autofocus-denied-expected.txt
r137180 r160908 1 1 CONSOLE MESSAGE: line 1: Blocked script execution in 'about:srcdoc' because the document's frame is sandboxed and the 'allow-scripts' permission is not set. 2 CONSOLE MESSAGE: line 1:Blocked autofocusing on a form control because the form's frame is sandboxed and the 'allow-scripts' permission is not set.2 CONSOLE MESSAGE: Blocked autofocusing on a form control because the form's frame is sandboxed and the 'allow-scripts' permission is not set. 3 3 CONSOLE MESSAGE: line 13: PASS: The input element is not focused. 4 4 This test passes if the input element in the sandboxed frame is not automatically focused upon, as it should be blocked by the sandboxed scripts flag. A console warning to that effect should also be present. -
trunk/LayoutTests/fast/table/table-row-style-not-updated-with-after-content-expected.txt
r95671 r160908 8 8 RenderTableRow {DIV} at (0,0) size 512x256 [color=#0000FF] 9 9 RenderTableCell (anonymous) at (0,0) size 512x256 [r=0 c=0 rs=1 cs=1] 10 RenderTable at (0,0) size 512x256 11 RenderTableSection (anonymous) at (0,0) size 512x256 12 RenderTableRow (anonymous) at (0,0) size 512x128 10 RenderBlock (anonymous) at (0,0) size 512x128 11 RenderText {#text} at (0,0) size 512x128 12 text run at (0,0) width 512: "ABCD" 13 RenderTable at (0,128) size 512x128 14 RenderTableSection (anonymous) at (0,0) size 512x128 15 RenderTableRow (anonymous) at (0,0) size 512x128 [color=#FFFF00] 13 16 RenderTableCell (anonymous) at (0,0) size 512x128 [r=0 c=0 rs=1 cs=1] 14 RenderText {#text} at (0,0) size 512x12815 text run at (0,0) width 512: "ABCD"16 RenderTableRow (anonymous) at (0,128) size 512x128 [color=#FFFF00]17 RenderTableCell (anonymous) at (0,128) size 512x128 [r=1 c=0 rs=1 cs=1]18 17 RenderText at (0,0) size 512x128 19 18 text run at (0,0) width 512: "4578" -
trunk/LayoutTests/fullscreen/full-screen-render-inline-expected.txt
r109192 r160908 5 5 RenderBody {BODY} at (8,8) size 784x584 6 6 RenderBlock {SUMMARY} at (0,0) size 784x48 7 RenderBlock (anonymous) at (0,0) size 784x08 RenderBlock (anonymous) at (0,0) size 784x09 7 RenderBlock (anonymous) at (0,0) size 784x16 10 8 RenderText {#text} at (0,0) size 16x16 -
trunk/LayoutTests/fullscreen/parent-flow-inline-with-block-child-expected.txt
r97088 r160908 4 4 RenderBlock {HTML} at (0,0) size 800x600 5 5 RenderBody {BODY} at (8,8) size 784x584 6 RenderBlock {DIV} at (0,0) size 784x 326 RenderBlock {DIV} at (0,0) size 784x16 7 7 RenderBlock (anonymous) at (0,0) size 784x16 8 8 RenderInline {SPAN} at (0,0) size 16x16 9 9 RenderText {#text} at (0,0) size 16x16 10 10 text run at (0,0) width 16: "1" 11 RenderText {#text} at (16,0) size 16x16 12 text run at (16,0) width 16: " " 13 RenderInline {SPAN} at (0,0) size 16x16 14 RenderText {#text} at (32,0) size 16x16 15 text run at (32,0) width 16: "2" 16 RenderBlock (anonymous) at (0,16) size 784x0 17 RenderBlock {DIV} at (0,0) size 784x0 18 RenderBlock (anonymous) at (0,16) size 784x0 19 RenderInline {SPAN} at (0,0) size 0x0 11 20 RenderText {#text} at (0,0) size 0x0 12 RenderBlock (anonymous) at (0,16) size 784x1613 RenderInline {SPAN} at (0,0) size 16x1614 RenderText {#text} at (0,0) size 16x1615 text run at (0,0) width 16: "2"16 RenderBlock (anonymous) at (0,32) size 784x017 RenderBlock {DIV} at (0,0) size 784x018 RenderBlock (anonymous) at (0,32) size 784x019 RenderInline {SPAN} at (0,0) size 0x020 RenderBlock (anonymous) at (0,32) size 784x021 RenderText {#text} at (0,0) size 0x0 -
trunk/LayoutTests/platform/mac/editing/inserting/break-blockquote-after-delete-expected.txt
r126704 r160908 22 22 RenderText {#text} at (12,0) size 35x18 23 23 text run at (12,0) width 35: "green" 24 RenderBlock (anonymous) at (0,54) size 784x025 24 caret: position 5 of child 2 {#text} of child 4 {DIV} of body -
trunk/LayoutTests/platform/mac/fast/css-generated-content/table-row-group-to-inline-expected.txt
r150290 r160908 11 11 text run at (638,0) width 4: " " 12 12 RenderBR {BR} at (642,14) size 0x0 13 RenderBlock {UL} at (0,34) size 784x36 14 RenderListItem {LI} at (40,0) size 744x36 15 RenderBlock (anonymous) at (0,0) size 744x18 16 RenderListMarker at (-17,0) size 7x18: bullet 17 RenderTable at (0,18) size 0x0 18 RenderBlock (anonymous) at (0,18) size 744x18 19 RenderInline (generated) at (0,0) size 31x18 20 RenderText at (0,0) size 31x18 21 text run at (0,0) width 31: "hello" 22 RenderText {#text} at (31,0) size 21x18 23 text run at (31,0) width 21: "test" 13 RenderBlock {UL} at (0,34) size 784x18 14 RenderListItem {LI} at (40,0) size 744x18 15 RenderListMarker at (-17,0) size 7x18: bullet 16 RenderInline (generated) at (0,0) size 31x18 17 RenderText at (0,0) size 31x18 18 text run at (0,0) width 31: "hello" 19 RenderText {#text} at (31,0) size 21x18 20 text run at (31,0) width 21: "test" -
trunk/LayoutTests/platform/mac/fast/dynamic/011-expected.txt
r120477 r160908 5 5 RenderBody {BODY} at (8,8) size 784x584 6 6 RenderBlock (anonymous) at (0,0) size 784x36 7 RenderInline {SPAN} at (0,0) size 0x08 7 RenderInline {SPAN} at (0,0) size 781x36 9 8 RenderInline {SPAN} at (0,0) size 781x36 -
trunk/LayoutTests/platform/mac/fast/forms/formmove3-expected.txt
r155253 r160908 7 7 RenderInline {A} at (0,0) size 0x0 8 8 RenderText {#text} at (0,0) size 0x0 9 RenderInline {A} at (0,0) size 0x010 9 RenderBlock {DIV} at (0,0) size 784x28 11 10 RenderBlock (anonymous) at (0,0) size 784x0 -
trunk/LayoutTests/platform/mac/fast/forms/preserveFormDuringResidualStyle-expected.txt
r155253 r160908 7 7 RenderInline {FONT} at (0,0) size 0x0 8 8 RenderText {#text} at (0,0) size 0x0 9 RenderInline {FONT} at (0,0) size 0x010 9 RenderBlock {CENTER} at (0,0) size 784x25 11 10 RenderBlock (anonymous) at (0,0) size 784x0 … … 23 22 RenderInline {FONT} at (0,0) size 0x0 24 23 RenderText {#text} at (0,0) size 0x0 25 RenderBlock (anonymous) at (0,25) size 784x026 24 RenderBlock {DIV} at (0,25) size 784x36 27 25 RenderText {#text} at (0,0) size 775x36 -
trunk/LayoutTests/platform/mac/fast/invalid/001-expected.txt
r120477 r160908 5 5 RenderBody {BODY} at (8,8) size 784x584 6 6 RenderBlock (anonymous) at (0,0) size 784x0 7 RenderInline {B} at (0,0) size 0x08 7 RenderInline {B} at (0,0) size 0x0 9 8 RenderBlock {P} at (0,0) size 784x18 -
trunk/LayoutTests/platform/mac/fast/invalid/003-expected.txt
r155253 r160908 9 9 RenderText {#text} at (0,0) size 89x18 10 10 text run at (0,0) width 89: "Italic and Red" 11 RenderInline {FONT} at (0,0) size 0x18 [color=#FF0000]12 RenderInline {I} at (0,0) size 0x1813 11 RenderInline {I} at (0,0) size 0x18 14 12 RenderBlock (anonymous) at (0,34) size 784x18 … … 38 36 RenderInline {I} at (0,0) size 0x0 39 37 RenderText {#text} at (0,0) size 0x0 40 RenderInline {FONT} at (0,0) size 0x0 [color=#FF0000]41 RenderInline {I} at (0,0) size 0x042 38 RenderBlock {P} at (0,136) size 784x18 43 39 RenderInline {FONT} at (0,0) size 123x18 [color=#FF0000] -
trunk/LayoutTests/platform/mac/fast/invalid/004-expected.txt
r120477 r160908 19 19 RenderText {#text} at (0,0) size 0x0 20 20 RenderInline {B} at (0,0) size 0x0 21 RenderInline {B} at (0,0) size 0x022 21 RenderBlock {P} at (0,206) size 784x18 23 22 RenderInline {B} at (0,0) size 97x18 -
trunk/LayoutTests/platform/mac/fast/invalid/007-expected.txt
r120477 r160908 5 5 RenderBody {BODY} at (8,8) size 784x584 6 6 RenderBlock (anonymous) at (0,0) size 784x0 7 RenderInline {LABEL} at (0,0) size 0x08 RenderInline {A} at (0,0) size 0x09 7 RenderInline {LABEL} at (0,0) size 0x0 10 8 RenderInline {A} at (0,0) size 0x0 -
trunk/LayoutTests/platform/mac/fast/invalid/019-expected.txt
r120477 r160908 5 5 RenderBody {BODY} at (8,8) size 784x579 6 6 RenderBlock (anonymous) at (0,0) size 784x0 7 RenderInline {B} at (0,0) size 0x08 RenderInline {NOBR} at (0,0) size 0x09 7 RenderInline {B} at (0,0) size 0x0 10 8 RenderInline {NOBR} at (0,0) size 0x0 -
trunk/LayoutTests/platform/mac/fast/multicol/span/span-as-immediate-child-generated-content-expected.txt
r149210 r160908 1 layer at (0,0) size 785x27 441 layer at (0,0) size 785x2762 2 2 RenderView at (0,0) size 785x600 3 layer at (0,0) size 785x27 444 RenderBlock {HTML} at (0,0) size 785x27 445 RenderBody {BODY} at (8,16) size 769x27 123 layer at (0,0) size 785x2762 4 RenderBlock {HTML} at (0,0) size 785x2762 5 RenderBody {BODY} at (8,16) size 769x2730 6 6 layer at (8,16) size 760x420 7 7 RenderBlock {DIV} at (0,0) size 760x420 [border: (5px solid #800000)] … … 294 294 RenderText at (0,0) size 156x18 295 295 text run at (0,0) width 156: "After Generated Content" 296 layer at (8,2258) size 760x4 70297 RenderBlock {DIV} at (0,2242) size 760x4 70[border: (5px solid #800000)]296 layer at (8,2258) size 760x488 297 RenderBlock {DIV} at (0,2242) size 760x488 [border: (5px solid #800000)] 298 298 RenderBlock (anonymous multi-column span) at (5,271) size 750x66 299 299 RenderBlock {H2} at (0,19) size 750x28 [bgcolor=#EEEEEE] 300 300 RenderText {#text} at (0,0) size 276x28 301 301 text run at (0,0) width 276: "This is a spanning element." 302 RenderBlock (anonymous) at (5,355) size 750x18 303 RenderBlock {SPAN} at (0,0) size 750x18 304 RenderText {#text} at (0,0) size 154x18 305 text run at (0,0) width 154: "Nulla varius enim ac mi." 302 306 layer at (13,2263) size 750x266 303 307 RenderBlock (anonymous multi-column) at (5,5) size 750x266 … … 335 339 text run at (0,162) width 362: "nec felis. Sed varius turpis vitae pede. Lorem ipsum dolor" 336 340 text run at (0,180) width 229: "sit amet, consectetuer adipiscing elit." 337 layer at (13,2595) size 750x128 338 RenderBlock (anonymous multi-column) at (5,337) size 750x128 339 RenderBlock (anonymous) at (0,0) size 367x18 340 RenderInline {SPAN} at (0,0) size 354x18 341 RenderText {#text} at (0,0) size 354x18 342 text run at (0,0) width 354: "Lorem ipsum dolor sit amet, consectetuer adipiscing elit." 343 RenderBlock (anonymous) at (0,18) size 367x18 344 RenderBlock {SPAN} at (0,0) size 367x18 345 RenderText {#text} at (0,0) size 154x18 346 text run at (0,0) width 154: "Nulla varius enim ac mi." 347 RenderBlock (anonymous) at (0,36) size 367x182 341 layer at (13,2595) size 750x18 342 RenderBlock (anonymous multi-column) at (5,337) size 750x18 343 RenderInline {SPAN} at (0,0) size 354x18 344 RenderText {#text} at (0,0) size 354x18 345 text run at (0,0) width 354: "Lorem ipsum dolor sit amet, consectetuer adipiscing elit." 346 layer at (13,2631) size 750x110 347 RenderBlock (anonymous multi-column) at (5,373) size 750x110 348 RenderBlock (anonymous) at (0,0) size 367x182 348 349 RenderInline {SPAN} at (0,0) size 362x182 349 350 RenderText {#text} at (0,0) size 362x182 … … 353 354 text run at (0,54) width 332: "Cras convallis adipiscing sem. Nam nonummy enim." 354 355 text run at (0,72) width 351: "Nullam bibendum lobortis neque. Vestibulum velit orci," 355 text run at (0,9 2) width 329: "tempus euismod, pretium quis, interdum vitae, nulla."356 text run at (0,90) width 329: "tempus euismod, pretium quis, interdum vitae, nulla." 356 357 text run at (0,110) width 339: "Phasellus eget ante et tortor condimentum vestibulum." 357 358 text run at (0,128) width 345: "Suspendisse hendrerit quam nec felis. Sed varius turpis" … … 359 360 text run at (0,164) width 91: "adipiscing elit." 360 361 RenderText {#text} at (0,0) size 0x0 361 RenderBlock (generated) at (0, 218) size 367x20 [bgcolor=#FFFF00]362 RenderText at (0,0) size 156x18 363 text run at (0,0) width 156: "After Generated Content" 362 RenderBlock (generated) at (0,182) size 367x20 [bgcolor=#FFFF00] 363 RenderText at (0,0) size 156x18 364 text run at (0,0) width 156: "After Generated Content" -
trunk/LayoutTests/platform/mac/fast/multicol/span/span-as-immediate-columns-child-dynamic-expected.txt
r149210 r160908 1 layer at (0,0) size 785x25 721 layer at (0,0) size 785x2590 2 2 RenderView at (0,0) size 785x600 3 layer at (0,0) size 785x25 724 RenderBlock {HTML} at (0,0) size 785x25 725 RenderBody {BODY} at (8,16) size 769x25 403 layer at (0,0) size 785x2590 4 RenderBlock {HTML} at (0,0) size 785x2590 5 RenderBody {BODY} at (8,16) size 769x2558 6 6 layer at (8,16) size 760x382 7 7 RenderBlock {DIV} at (0,0) size 760x382 [border: (5px solid #800000)] … … 153 153 layer at (13,1265) size 750x126 154 154 RenderBlock (anonymous multi-column) at (5,5) size 750x126 155 RenderBlock (anonymous) at (0,0) size 367x234 156 RenderText {#text} at (0,0) size 363x234 157 text run at (0,0) width 354: "Lorem ipsum dolor sit amet, consectetuer adipiscing elit." 158 text run at (0,18) width 351: "Nulla varius enim ac mi. Curabitur sollicitudin felis quis" 159 text run at (0,36) width 325: "lectus. Quisque adipiscing rhoncus sem. Proin nulla" 160 text run at (0,54) width 358: "purus, vulputate vel, varius ut, euismod et, nisi. Sed vitae" 161 text run at (0,72) width 343: "felis vel orci sagittis aliquam. Cras convallis adipiscing" 162 text run at (0,90) width 340: "sem. Nam nonummy enim. Nullam bibendum lobortis" 163 text run at (0,108) width 344: "neque. Vestibulum velit orci, tempus euismod, pretium" 164 text run at (0,126) width 343: "quis, interdum vitae, nulla. Phasellus eget ante et tortor" 165 text run at (0,144) width 343: "condimentum vestibulum. Suspendisse hendrerit quam" 166 text run at (0,162) width 362: "nec felis. Sed varius turpis vitae pede. Lorem ipsum dolor" 167 text run at (0,180) width 233: "sit amet, consectetuer adipiscing elit. " 168 text run at (233,180) width 121: "Lorem ipsum dolor" 169 text run at (0,198) width 363: "sit amet, consectetuer adipiscing elit. Nulla varius enim ac" 170 text run at (0,216) width 20: "mi." 155 RenderText {#text} at (0,0) size 363x234 156 text run at (0,0) width 354: "Lorem ipsum dolor sit amet, consectetuer adipiscing elit." 157 text run at (0,18) width 351: "Nulla varius enim ac mi. Curabitur sollicitudin felis quis" 158 text run at (0,36) width 325: "lectus. Quisque adipiscing rhoncus sem. Proin nulla" 159 text run at (0,54) width 358: "purus, vulputate vel, varius ut, euismod et, nisi. Sed vitae" 160 text run at (0,72) width 343: "felis vel orci sagittis aliquam. Cras convallis adipiscing" 161 text run at (0,90) width 340: "sem. Nam nonummy enim. Nullam bibendum lobortis" 162 text run at (0,108) width 344: "neque. Vestibulum velit orci, tempus euismod, pretium" 163 text run at (0,126) width 343: "quis, interdum vitae, nulla. Phasellus eget ante et tortor" 164 text run at (0,144) width 343: "condimentum vestibulum. Suspendisse hendrerit quam" 165 text run at (0,162) width 362: "nec felis. Sed varius turpis vitae pede. Lorem ipsum dolor" 166 text run at (0,180) width 233: "sit amet, consectetuer adipiscing elit. " 167 text run at (233,180) width 121: "Lorem ipsum dolor" 168 text run at (0,198) width 363: "sit amet, consectetuer adipiscing elit. Nulla varius enim ac" 169 text run at (0,216) width 20: "mi." 171 170 layer at (13,1457) size 750x214 172 171 RenderBlock (anonymous multi-column) at (5,197) size 750x214 … … 258 257 text run at (0,162) width 362: "nec felis. Sed varius turpis vitae pede. Lorem ipsum dolor" 259 258 text run at (0,180) width 229: "sit amet, consectetuer adipiscing elit." 260 layer at (8,2124) size 760x4 32261 RenderBlock {DIV} at (0,2108) size 760x4 32[border: (5px solid #800000)]259 layer at (8,2124) size 760x450 260 RenderBlock {DIV} at (0,2108) size 760x450 [border: (5px solid #800000)] 262 261 RenderBlock (anonymous multi-column span) at (5,253) size 750x66 263 262 RenderBlock {H2} at (0,19) size 750x28 [bgcolor=#EEEEEE] 264 263 RenderText {#text} at (0,0) size 276x28 265 264 text run at (0,0) width 276: "This is a spanning element." 265 RenderBlock (anonymous) at (5,337) size 750x18 266 RenderBlock {SPAN} at (0,0) size 750x18 267 RenderText {#text} at (0,0) size 154x18 268 text run at (0,0) width 154: "Nulla varius enim ac mi." 266 269 layer at (13,2129) size 750x248 267 270 RenderBlock (anonymous multi-column) at (5,5) size 750x248 … … 296 299 text run at (0,162) width 362: "nec felis. Sed varius turpis vitae pede. Lorem ipsum dolor" 297 300 text run at (0,180) width 229: "sit amet, consectetuer adipiscing elit." 298 layer at (13,2443) size 750x108 299 RenderBlock (anonymous multi-column) at (5,319) size 750x108 300 RenderBlock (anonymous) at (0,0) size 367x18 301 RenderInline {SPAN} at (0,0) size 354x18 302 RenderText {#text} at (0,0) size 354x18 303 text run at (0,0) width 354: "Lorem ipsum dolor sit amet, consectetuer adipiscing elit." 304 RenderBlock (anonymous) at (0,18) size 367x18 305 RenderBlock {SPAN} at (0,0) size 367x18 306 RenderText {#text} at (0,0) size 154x18 307 text run at (0,0) width 154: "Nulla varius enim ac mi." 308 RenderBlock (anonymous) at (0,36) size 367x180 309 RenderInline {SPAN} at (0,0) size 362x180 310 RenderText {#text} at (0,0) size 362x180 311 text run at (0,0) width 362: "Curabitur sollicitudin felis quis lectus. Quisque adipiscing" 312 text run at (0,18) width 350: "rhoncus sem. Proin nulla purus, vulputate vel, varius ut," 313 text run at (0,36) width 350: "euismod et, nisi. Sed vitae felis vel orci sagittis aliquam." 314 text run at (0,54) width 332: "Cras convallis adipiscing sem. Nam nonummy enim." 315 text run at (0,72) width 351: "Nullam bibendum lobortis neque. Vestibulum velit orci," 316 text run at (0,90) width 329: "tempus euismod, pretium quis, interdum vitae, nulla." 317 text run at (0,108) width 339: "Phasellus eget ante et tortor condimentum vestibulum." 318 text run at (0,126) width 345: "Suspendisse hendrerit quam nec felis. Sed varius turpis" 319 text run at (0,144) width 331: "vitae pede. Lorem ipsum dolor sit amet, consectetuer" 320 text run at (0,162) width 91: "adipiscing elit." 321 RenderText {#text} at (0,0) size 0x0 301 layer at (13,2443) size 750x18 302 RenderBlock (anonymous multi-column) at (5,319) size 750x18 303 RenderInline {SPAN} at (0,0) size 354x18 304 RenderText {#text} at (0,0) size 354x18 305 text run at (0,0) width 354: "Lorem ipsum dolor sit amet, consectetuer adipiscing elit." 306 layer at (13,2479) size 750x90 307 RenderBlock (anonymous multi-column) at (5,355) size 750x90 308 RenderInline {SPAN} at (0,0) size 362x180 309 RenderText {#text} at (0,0) size 362x180 310 text run at (0,0) width 362: "Curabitur sollicitudin felis quis lectus. Quisque adipiscing" 311 text run at (0,18) width 350: "rhoncus sem. Proin nulla purus, vulputate vel, varius ut," 312 text run at (0,36) width 350: "euismod et, nisi. Sed vitae felis vel orci sagittis aliquam." 313 text run at (0,54) width 332: "Cras convallis adipiscing sem. Nam nonummy enim." 314 text run at (0,72) width 351: "Nullam bibendum lobortis neque. Vestibulum velit orci," 315 text run at (0,90) width 329: "tempus euismod, pretium quis, interdum vitae, nulla." 316 text run at (0,108) width 339: "Phasellus eget ante et tortor condimentum vestibulum." 317 text run at (0,126) width 345: "Suspendisse hendrerit quam nec felis. Sed varius turpis" 318 text run at (0,144) width 331: "vitae pede. Lorem ipsum dolor sit amet, consectetuer" 319 text run at (0,162) width 91: "adipiscing elit." 320 RenderText {#text} at (0,0) size 0x0 -
trunk/LayoutTests/platform/mac/fast/multicol/span/span-as-nested-columns-child-dynamic-expected.txt
r149210 r160908 132 132 text run at (0,196) width 229: "sit amet, consectetuer adipiscing elit." 133 133 RenderBlock {SPAN} at (0,246) size 367x36 [color=#FFFFFF] [bgcolor=#000000] 134 RenderBlock (anonymous) at (0,0) size 367x36 135 RenderText {#text} at (0,0) size 354x36 136 text run at (0,0) width 354: "Lorem ipsum dolor sit amet, consectetuer adipiscing elit." 137 text run at (0,18) width 154: "Nulla varius enim ac mi." 134 RenderText {#text} at (0,0) size 354x36 135 text run at (0,0) width 354: "Lorem ipsum dolor sit amet, consectetuer adipiscing elit." 136 text run at (0,18) width 154: "Nulla varius enim ac mi." 138 137 layer at (13,1106) size 750x222 139 138 RenderBlock (anonymous multi-column) at (5,229) size 750x222 140 RenderBlock {SPAN} at (0,16) size 367x19 8[color=#FFFFFF] [bgcolor=#000000]139 RenderBlock {SPAN} at (0,16) size 367x190 [color=#FFFFFF] [bgcolor=#000000] 141 140 RenderBlock {P} at (0,0) size 367x198 142 141 RenderText {#text} at (0,0) size 362x198 … … 152 151 text run at (0,162) width 362: "nec felis. Sed varius turpis vitae pede. Lorem ipsum dolor" 153 152 text run at (0,180) width 229: "sit amet, consectetuer adipiscing elit." 153 RenderBlock (anonymous) at (0,206) size 367x0 154 RenderText {#text} at (0,0) size 0x0 154 155 RenderBlock (anonymous) at (0,222) size 367x198 155 156 RenderText {#text} at (0,0) size 362x198 -
trunk/LayoutTests/platform/mac/fast/ruby/ruby-base-merge-block-children-crash-expected.txt
r95924 r160908 7 7 RenderRubyRun (anonymous) at (0,0) size 64x16 8 8 RenderRubyBase (anonymous) at (0,0) size 64x16 9 RenderBlock (anonymous) at (0,0) size 64x16 10 RenderText {#text} at (0,0) size 64x16 11 text run at (0,0) width 64: "PASS" 12 RenderInline {I} at (0,0) size 0x0 13 RenderText {#text} at (0,0) size 0x0 14 RenderBlock (anonymous) at (0,16) size 64x0 9 RenderText {#text} at (0,0) size 64x16 10 text run at (0,0) width 64: "PASS" 11 RenderInline {I} at (0,0) size 0x0 12 RenderText {#text} at (0,0) size 0x0 13 RenderInline {I} at (0,0) size 0x0 15 14 RenderInline {SPAN} at (0,0) size 0x0 16 15 RenderInline {SPAN} at (0,0) size 0x0 17 16 RenderText {#text} at (0,0) size 0x0 18 17 RenderText {#text} at (0,0) size 0x0 19 RenderBlock (anonymous) at (0,16) size 64x0 20 RenderInline {I} at (0,0) size 0x0 18 RenderInline {I} at (0,0) size 0x0 -
trunk/LayoutTests/platform/mac/tables/mozilla/bugs/bug113235-1-expected.txt
r149210 r160908 14 14 RenderInline {FONT} at (0,0) size 0x0 15 15 RenderText {#text} at (0,0) size 0x0 16 RenderBlock (anonymous) at (2,2) size 715x 1137416 RenderBlock (anonymous) at (2,2) size 715x52 17 17 RenderTable {TABLE} at (0,0) size 566x52 [border: (1px outset #808080)] 18 18 RenderTableSection {TBODY} at (1,1) size 564x50 … … 26 26 RenderText {#text} at (2,2) size 107x17 27 27 text run at (2,2) width 107: "Search again..." 28 RenderBlock (anonymous) at (0,52) size 715x15 28 RenderBlock (anonymous) at (2,54) size 715x15 29 RenderInline {FONT} at (0,0) size 715x15 29 30 RenderText {#text} at (0,0) size 715x15 30 31 text run at (0,0) width 332: "This text node only exists once in the original document! " … … 32 33 text run at (639,0) width 76: "hang forever." 33 34 RenderInline {A} at (0,0) size 0x0 34 RenderBlock {H2} at (0,83) size 715x23 35 RenderBlock (anonymous) at (2,85) size 715x11291 36 RenderBlock {H2} at (0,0) size 715x23 35 37 RenderInline {A} at (0,0) size 169x22 36 38 RenderText {#text} at (0,0) size 169x22 37 39 text run at (0,0) width 169: "Table of Contents" 38 RenderBlock {P} at (0, 122) size 715x15040 RenderBlock {P} at (0,39) size 715x150 39 41 RenderInline {B} at (0,0) size 76x15 40 42 RenderInline {A} at (0,0) size 76x15 [color=#0000EE] … … 89 91 text run at (0,135) width 217: "Related Documentation for This Book" 90 92 RenderText {#text} at (0,0) size 0x0 91 RenderBlock {P} at (0,2 85) size 715x99093 RenderBlock {P} at (0,202) size 715x990 92 94 RenderInline {B} at (0,0) size 58x15 93 95 RenderInline {A} at (0,0) size 58x15 [color=#0000EE] … … 478 480 text run at (0,975) width 100: "Table Collocation" 479 481 RenderText {#text} at (0,0) size 0x0 480 RenderBlock {P} at (0,12 88) size 715x1995482 RenderBlock {P} at (0,1205) size 715x1995 481 483 RenderInline {B} at (0,0) size 123x15 482 484 RenderInline {A} at (0,0) size 123x15 [color=#0000EE] … … 1269 1271 text run at (0,1980) width 58: "Examples" 1270 1272 RenderText {#text} at (0,0) size 0x0 1271 RenderBlock {P} at (0,32 96) size 715x19351273 RenderBlock {P} at (0,3213) size 715x1935 1272 1274 RenderInline {B} at (0,0) size 62x15 1273 1275 RenderInline {A} at (0,0) size 62x15 [color=#0000EE] … … 2036 2038 text run at (0,1920) width 136: "User-Defined Functions" 2037 2039 RenderText {#text} at (0,0) size 0x0 2038 RenderBlock {P} at (0,5 244) size 715x3452040 RenderBlock {P} at (0,5161) size 715x345 2039 2041 RenderInline {B} at (0,0) size 48x15 2040 2042 RenderInline {A} at (0,0) size 48x15 [color=#0000EE] … … 2167 2169 text run at (0,330) width 185: "Examples of a select-statement" 2168 2170 RenderText {#text} at (0,0) size 0x0 2169 RenderBlock {P} at (0,5 602) size 715x17702171 RenderBlock {P} at (0,5519) size 715x1770 2170 2172 RenderInline {B} at (0,0) size 100x15 2171 2173 RenderInline {A} at (0,0) size 100x15 [color=#0000EE] … … 2868 2870 text run at (0,1755) width 75: "WHENEVER" 2869 2871 RenderText {#text} at (0,0) size 0x0 2870 RenderBlock {P} at (0,73 85) size 715x3002872 RenderBlock {P} at (0,7302) size 715x300 2871 2873 RenderInline {B} at (0,0) size 102x15 2872 2874 RenderInline {A} at (0,0) size 102x15 [color=#0000EE] … … 2981 2983 text run at (0,285) width 105: "WHILE Statement" 2982 2984 RenderText {#text} at (0,0) size 0x0 2983 RenderBlock {P} at (0,76 98) size 715x152985 RenderBlock {P} at (0,7615) size 715x15 2984 2986 RenderInline {B} at (0,0) size 150x15 2985 2987 RenderInline {A} at (0,0) size 150x15 [color=#0000EE] … … 2987 2989 text run at (0,0) width 150: "Appendix A. SQL Limits" 2988 2990 RenderBR {BR} at (150,12) size 0x0 2989 RenderBlock {P} at (0,7 726) size 715x902991 RenderBlock {P} at (0,7643) size 715x90 2990 2992 RenderInline {B} at (0,0) size 274x15 2991 2993 RenderInline {A} at (0,0) size 274x15 [color=#0000EE] … … 3016 3018 text run at (0,75) width 325: "DB2 Enterprise - Extended Edition Usage of the SQLCA" 3017 3019 RenderText {#text} at (0,0) size 0x0 3018 RenderBlock {P} at (0,7 829) size 715x1653020 RenderBlock {P} at (0,7746) size 715x165 3019 3021 RenderInline {B} at (0,0) size 264x15 3020 3022 RenderInline {A} at (0,0) size 264x15 [color=#0000EE] … … 3075 3077 text run at (0,150) width 153: "SQLLEN Field for Decimal" 3076 3078 RenderText {#text} at (0,0) size 0x0 3077 RenderBlock {P} at (0, 8007) size 715x10953079 RenderBlock {P} at (0,7924) size 715x1095 3078 3080 RenderInline {B} at (0,0) size 168x15 3079 3081 RenderInline {A} at (0,0) size 168x15 [color=#0000EE] … … 3506 3508 text run at (0,1080) width 116: "SYSSTAT.TABLES" 3507 3509 RenderText {#text} at (0,0) size 0x0 3508 RenderBlock {P} at (0,9 115) size 715x1653510 RenderBlock {P} at (0,9032) size 715x165 3509 3511 RenderInline {B} at (0,0) size 362x15 3510 3512 RenderInline {A} at (0,0) size 362x15 [color=#0000EE] … … 3565 3567 text run at (0,150) width 147: "OBJCAT.TRANSFORMS" 3566 3568 RenderText {#text} at (0,0) size 0x0 3567 RenderBlock {P} at (0,92 93) size 715x2403569 RenderBlock {P} at (0,9210) size 715x240 3568 3570 RenderInline {B} at (0,0) size 197x15 3569 3571 RenderInline {A} at (0,0) size 197x15 [color=#0000EE] … … 3654 3656 text run at (0,225) width 184: "Considerations and Restrictions" 3655 3657 RenderText {#text} at (0,0) size 0x0 3656 RenderBlock {P} at (0,9 546) size 715x3903658 RenderBlock {P} at (0,9463) size 715x390 3657 3659 RenderInline {B} at (0,0) size 233x15 3658 3660 RenderInline {A} at (0,0) size 233x15 [color=#0000EE] … … 3803 3805 text run at (0,375) width 92: "Walker Resume" 3804 3806 RenderText {#text} at (0,0) size 0x0 3805 RenderBlock {P} at (0,9 949) size 715x903807 RenderBlock {P} at (0,9866) size 715x90 3806 3808 RenderInline {B} at (0,0) size 369x15 3807 3809 RenderInline {A} at (0,0) size 369x15 [color=#0000EE] … … 3832 3834 text run at (0,75) width 198: "ISO/ANS SQL92 Reserved Words" 3833 3835 RenderText {#text} at (0,0) size 0x0 3834 RenderBlock {P} at (0, 10052) size 715x153836 RenderBlock {P} at (0,9969) size 715x15 3835 3837 RenderInline {B} at (0,0) size 269x15 3836 3838 RenderInline {A} at (0,0) size 269x15 [color=#0000EE] … … 3838 3840 text run at (0,0) width 269: "Appendix I. Comparison of Isolation Levels" 3839 3841 RenderBR {BR} at (269,12) size 0x0 3840 RenderBlock {P} at (0, 10080) size 715x153842 RenderBlock {P} at (0,9997) size 715x15 3841 3843 RenderInline {B} at (0,0) size 318x15 3842 3844 RenderInline {A} at (0,0) size 318x15 [color=#0000EE] … … 3844 3846 text run at (0,0) width 318: "Appendix J. Interaction of Triggers and Constraints" 3845 3847 RenderBR {BR} at (318,12) size 0x0 3846 RenderBlock {P} at (0,10 108) size 715x3153848 RenderBlock {P} at (0,10025) size 715x315 3847 3849 RenderInline {B} at (0,0) size 270x15 3848 3850 RenderInline {A} at (0,0) size 270x15 [color=#0000EE] … … 3963 3965 text run at (0,300) width 225: "ADVISE_WORKLOAD Table Definition" 3964 3966 RenderText {#text} at (0,0) size 0x0 3965 RenderBlock {P} at (0,10 436) size 715x153967 RenderBlock {P} at (0,10353) size 715x15 3966 3968 RenderInline {B} at (0,0) size 227x15 3967 3969 RenderInline {A} at (0,0) size 227x15 [color=#0000EE] … … 3969 3971 text run at (0,0) width 227: "Appendix L. Explain Register Values" 3970 3972 RenderBR {BR} at (227,12) size 0x0 3971 RenderBlock {P} at (0,10 464) size 715x753973 RenderBlock {P} at (0,10381) size 715x75 3972 3974 RenderInline {B} at (0,0) size 308x15 3973 3975 RenderInline {A} at (0,0) size 308x15 [color=#0000EE] … … 3992 3994 text run at (0,60) width 169: "Example 3: Controlling Depth" 3993 3995 RenderText {#text} at (0,0) size 0x0 3994 RenderBlock {P} at (0,10 552) size 715x753996 RenderBlock {P} at (0,10469) size 715x75 3995 3997 RenderInline {B} at (0,0) size 187x15 3996 3998 RenderInline {A} at (0,0) size 187x15 [color=#0000EE] … … 4015 4017 text run at (0,60) width 179: "Querying the Exception Tables" 4016 4018 RenderText {#text} at (0,0) size 0x0 4017 RenderBlock {P} at (0,10 640) size 715x3304019 RenderBlock {P} at (0,10557) size 715x330 4018 4020 RenderInline {B} at (0,0) size 420x15 4019 4021 RenderInline {A} at (0,0) size 420x15 [color=#0000EE] … … 4140 4142 text run at (0,315) width 63: "PREPARE" 4141 4143 RenderText {#text} at (0,0) size 0x0 4142 RenderBlock {P} at (0,109 83) size 715x154144 RenderBlock {P} at (0,10900) size 715x15 4143 4145 RenderInline {B} at (0,0) size 295x15 4144 4146 RenderInline {A} at (0,0) size 295x15 [color=#0000EE] … … 4146 4148 text run at (0,0) width 295: "Appendix P. BNF Specifications for DATALINKs" 4147 4149 RenderBR {BR} at (295,12) size 0x0 4148 RenderBlock {P} at (0,1 1011) size 715x1804150 RenderBlock {P} at (0,10928) size 715x180 4149 4151 RenderInline {B} at (0,0) size 217x15 4150 4152 RenderInline {A} at (0,0) size 217x15 [color=#0000EE] … … 4211 4213 text run at (0,165) width 168: "Searching Information Online" 4212 4214 RenderText {#text} at (0,0) size 0x0 4213 RenderBlock {P} at (0,11 204) size 715x454215 RenderBlock {P} at (0,11121) size 715x45 4214 4216 RenderInline {B} at (0,0) size 126x15 4215 4217 RenderInline {A} at (0,0) size 126x15 [color=#0000EE] … … 4222 4224 text run at (0,30) width 69: "Trademarks" 4223 4225 RenderText {#text} at (0,0) size 0x0 4224 RenderBlock {P} at (0,11 262) size 715x154226 RenderBlock {P} at (0,11179) size 715x15 4225 4227 RenderInline {B} at (0,0) size 34x15 4226 4228 RenderInline {A} at (0,0) size 34x15 [color=#0000EE] … … 4228 4230 text run at (0,0) width 34: "Index" 4229 4231 RenderBR {BR} at (34,12) size 0x0 4230 RenderBlock {P} at (0,112 90) size 715x454232 RenderBlock {P} at (0,11207) size 715x45 4231 4233 RenderInline {B} at (0,0) size 95x15 4232 4234 RenderInline {A} at (0,0) size 95x15 [color=#0000EE] … … 4241 4243 RenderInline {A} at (0,0) size 0x0 4242 4244 RenderText {#text} at (0,0) size 0x0 4243 RenderTable {TABLE} at (0,11 348) size 26x264245 RenderTable {TABLE} at (0,11265) size 26x26 4244 4246 RenderTableSection {TBODY} at (0,0) size 26x26 4245 4247 RenderTableRow {TR} at (0,2) size 26x0 -
trunk/LayoutTests/platform/mac/tables/mozilla/bugs/bug647-expected.txt
r155253 r160908 19 19 RenderInline {FONT} at (0,0) size 0x0 20 20 RenderText {#text} at (0,0) size 0x0 21 RenderInline {FONT} at (0,0) size 0x022 21 RenderBlock {CENTER} at (2,2) size 90x13 23 22 RenderInline {FONT} at (0,0) size 24x13 … … 25 24 text run at (33,0) width 24: "inside" 26 25 RenderText {#text} at (0,0) size 0x0 27 RenderBlock (anonymous) at (2,15) size 90x028 26 RenderBlock (anonymous) at (0,23) size 100x18 29 27 RenderText {#text} at (10,0) size 80x18 -
trunk/LayoutTests/platform/mac/tables/mozilla/other/wa_table_tr_align-expected.txt
r149210 r160908 235 235 text run at (0,18) width 294: "special effect on the row data since it simply" 236 236 text run at (0,36) width 319: "reiterates the default horizontal row alignment!" 237 RenderInline {B} at (0,0) size 0x0238 RenderInline {FONT} at (0,0) size 0x0 [color=#FF0000]239 237 RenderBlock {P} at (2,72) size 336x0 240 238 RenderInline {B} at (0,0) size 0x0 … … 281 279 text run at (0,18) width 297: "special effect on the row head since it simply" 282 280 text run at (0,36) width 319: "reiterates the default horizontal row alignment!" 283 RenderInline {B} at (0,0) size 0x0284 RenderInline {FONT} at (0,0) size 0x0 [color=#FF0000]285 281 RenderBlock {P} at (2,72) size 336x0 286 282 RenderInline {B} at (0,0) size 0x0 -
trunk/LayoutTests/plugins/plugin-remove-readystatechange-expected.txt
r128524 r160908 1 1 ALERT: PASS: element could not be re-appended 2 2 This test passes if it does not trip an assert in debug builds. It ensures a readystatechange event can't get dispatched until after a plugin is fully removed. 3 -
trunk/LayoutTests/svg/custom/system-language-crash-expected.txt
r126657 r160908 1 1 PASS: did not crash. 2 -
trunk/LayoutTests/transitions/equivalent-background-image-no-transition.html
r120521 r160908 42 42 }); 43 43 44 document.getElementById("foo").className="trans";44 setTimeout(function() { document.getElementById("foo").className="trans" }, 0); 45 45 </script> 46 46 -
trunk/LayoutTests/transitions/repeated-firing-background-color.html
r141849 r160908 41 41 }); 42 42 43 document.getElementById("foo").className="trans";43 setTimeout(function() { document.getElementById("foo").className="trans" }, 0); 44 44 </script> 45 45 -
trunk/LayoutTests/transitions/transition-duration-cleared-in-transitionend-crash.html
r120521 r160908 14 14 testRunner.notifyDone(); 15 15 }); 16 el.style.cssText += ';-webkit-transition:background-color 0.2s;background-color:#fff'16 setTimeout(function() { el.style.cssText += ';-webkit-transition:background-color 0.2s;background-color:#fff' }, 0); 17 17 </script> 18 18 </body> -
trunk/Source/WebCore/ChangeLog
r160906 r160908 1 2013-12-19 Antti Koivisto <antti@apple.com> 2 3 Create render tree lazily 4 https://bugs.webkit.org/show_bug.cgi?id=120685 5 6 Reviewed by Andreas Kling. 7 8 We currently recompute style and construct renderer for each DOM node immediately after they are added to 9 the tree. This is often inefficient as the style may change immediately afterwards and the work needs to be 10 redone. 11 12 With this patch we always compute style and construct render tree lazily, either on style recalc timer or 13 synchronously when they are needed. It also removes the 'attached' bit. If document has render tree then 14 all nodes are conceptually "attached" even if this happens lazily. 15 16 The patch slightly changes behavior of implicit CSS transitions. A synchronous style change during parsing 17 may not trigger the animation anymore as laziness means we don't see anything changing. This matches Firefox 18 and Chrome in our test cases. 19 20 * WebCore.exp.in: 21 * bindings/js/JSNodeCustom.cpp: 22 (WebCore::JSNode::insertBefore): 23 (WebCore::JSNode::replaceChild): 24 (WebCore::JSNode::appendChild): 25 26 All attaching is now lazy, remove AttachLazily. 27 28 * css/CSSComputedStyleDeclaration.cpp: 29 (WebCore::ComputedStyleExtractor::propertyValue): 30 31 SVG renderers with !isValid() have empty display property value for some reason. Keep the behavior. 32 33 * dom/ContainerNode.cpp: 34 (WebCore::ContainerNode::insertBefore): 35 (WebCore::ContainerNode::parserInsertBefore): 36 (WebCore::ContainerNode::replaceChild): 37 (WebCore::ContainerNode::appendChild): 38 (WebCore::ContainerNode::parserAppendChild): 39 (WebCore::ContainerNode::updateTreeAfterInsertion): 40 * dom/ContainerNode.h: 41 * dom/Document.cpp: 42 (WebCore::Document::~Document): 43 (WebCore::Document::updateStyleIfNeeded): 44 (WebCore::Document::createRenderTree): 45 (WebCore::Document::destroyRenderTree): 46 47 Remove attach bit maintenance. 48 49 (WebCore::Document::webkitDidExitFullScreenForElement): 50 51 Do lazy render tree reconstruction after returning from full screen. That is the only reliable way 52 to get the render tree back to decent shape. 53 54 * dom/Element.cpp: 55 (WebCore::Element::isFocusable): 56 57 Remove pointless !renderer()->needsLayout() assert. 58 59 (WebCore::Element::addShadowRoot): 60 (WebCore::Element::childShouldCreateRenderer): 61 (WebCore::Element::resetComputedStyle): 62 63 Take care to reset computed style in all descendants. attachRenderTree no longer does this. 64 65 * dom/Element.h: 66 * dom/Node.cpp: 67 (WebCore::Node::insertBefore): 68 (WebCore::Node::replaceChild): 69 (WebCore::Node::appendChild): 70 (WebCore::Node::setNeedsStyleRecalc): 71 72 Propagate ReconstructRenderTree. 73 74 (WebCore::Node::attached): 75 76 Emulate the behavior of old attached bit for now so existing code calling this mostly stays working. 77 78 * dom/Node.h: 79 80 Add new ReconstructRenderTree value for StyleChangeType. 81 82 * dom/Range.cpp: 83 (WebCore::Range::isPointInRange): 84 (WebCore::Range::comparePoint): 85 (WebCore::Range::compareNode): 86 (WebCore::Range::intersectsNode): 87 * editing/AppendNodeCommand.cpp: 88 (WebCore::AppendNodeCommand::doApply): 89 * editing/CompositeEditCommand.cpp: 90 (WebCore::CompositeEditCommand::canRebalance): 91 * editing/InsertNodeBeforeCommand.cpp: 92 (WebCore::InsertNodeBeforeCommand::doApply): 93 * html/HTMLDetailsElement.cpp: 94 (WebCore::HTMLDetailsElement::didAddUserAgentShadowRoot): 95 * html/HTMLDocument.cpp: 96 (WebCore::HTMLDocument::activeElement): 97 * html/HTMLElement.cpp: 98 (WebCore::HTMLElement::setInnerText): 99 100 TextControlInnerTextElement always preserves newline even if it doesn't have style yet. 101 102 (WebCore::HTMLElement::supportsFocus): 103 * html/HTMLEmbedElement.cpp: 104 (WebCore::HTMLEmbedElement::parseAttribute): 105 * html/HTMLFormControlElement.cpp: 106 (WebCore::shouldAutofocus): 107 108 Don't autofocus until we have renderer. 109 110 * html/HTMLFormControlElementWithState.cpp: 111 (WebCore::HTMLFormControlElementWithState::shouldSaveAndRestoreFormControlState): 112 * html/HTMLFrameElementBase.cpp: 113 (WebCore::HTMLFrameElementBase::didNotifySubtreeInsertions): 114 * html/HTMLInputElement.cpp: 115 (WebCore::HTMLInputElement::updateType): 116 117 Lazy render tree construction. 118 119 (WebCore::HTMLInputElement::parseAttribute): 120 (WebCore::HTMLInputElement::defaultEventHandler): 121 * html/HTMLMediaElement.cpp: 122 (WebCore::HTMLMediaElement::parseAttribute): 123 * html/HTMLObjectElement.cpp: 124 (WebCore::HTMLObjectElement::parseAttribute): 125 * html/HTMLSummaryElement.cpp: 126 (WebCore::HTMLSummaryElement::didAddUserAgentShadowRoot): 127 * html/parser/HTMLConstructionSite.cpp: 128 (WebCore::executeTask): 129 130 Don't attach renderer after construction. 131 132 * html/parser/HTMLTreeBuilder.cpp: 133 (WebCore::HTMLTreeBuilder::callTheAdoptionAgency): 134 * html/shadow/ContentDistributor.cpp: 135 (WebCore::ContentDistributor::invalidateDistribution): 136 * html/shadow/InsertionPoint.cpp: 137 (WebCore::InsertionPoint::willAttachRenderers): 138 (WebCore::InsertionPoint::willDetachRenderers): 139 * html/shadow/MediaControlElements.cpp: 140 (WebCore::MediaControlTextTrackContainerElement::updateDisplay): 141 * html/shadow/MediaControls.cpp: 142 (WebCore::MediaControls::createTextTrackDisplay): 143 * html/shadow/MediaControlsApple.cpp: 144 (WebCore::MediaControlsApple::createControls): 145 * html/track/TextTrackCue.cpp: 146 (WebCore::TextTrackCue::getDisplayTree): 147 * loader/PlaceholderDocument.cpp: 148 (WebCore::PlaceholderDocument::createRenderTree): 149 * loader/cache/CachedResourceLoader.cpp: 150 (WebCore::CachedResourceLoader::preload): 151 * style/StyleResolveTree.cpp: 152 (WebCore::Style::attachTextRenderer): 153 (WebCore::Style::detachTextRenderer): 154 155 Remove attached bit maintenance. 156 157 (WebCore::Style::attachChildren): 158 (WebCore::Style::attachShadowRoot): 159 (WebCore::Style::attachRenderTree): 160 (WebCore::Style::detachShadowRoot): 161 (WebCore::Style::detachRenderTree): 162 (WebCore::Style::resolveLocal): 163 * svg/SVGTests.cpp: 164 (WebCore::SVGTests::handleAttributeChange): 165 166 Make lazy. 167 168 * testing/Internals.cpp: 169 (WebCore::Internals::attached): 170 (WebCore::Internals::elementRenderTreeAsText): 171 (WebCore::Internals::markerAt): 172 (WebCore::Internals::nodesFromRect): 173 1 174 2013-12-20 Andreas Kling <akling@apple.com> 2 175 -
trunk/Source/WebCore/WebCore.exp.in
r160877 r160908 258 258 __ZN7WebCore13AXObjectCache42gAccessibilityEnhancedUserInterfaceEnabledE 259 259 __ZN7WebCore13CharacterData7setDataERKN3WTF6StringERi 260 __ZN7WebCore13ContainerNode11appendChildEN3WTF10PassRefPtrINS_4NodeEEERi NS_14AttachBehaviorE260 __ZN7WebCore13ContainerNode11appendChildEN3WTF10PassRefPtrINS_4NodeEEERi 261 261 __ZN7WebCore13ContainerNode11removeChildEPNS_4NodeERi 262 262 __ZN7WebCore13GraphicsLayer11setChildrenERKN3WTF6VectorIPS0_Lm0ENS1_15CrashOnOverflowEEE … … 952 952 __ZN7WebCore4IconD1Ev 953 953 __ZN7WebCore4Node10renderRectEPb 954 __ZN7WebCore4Node11appendChildEN3WTF10PassRefPtrIS0_EERi NS_14AttachBehaviorE954 __ZN7WebCore4Node11appendChildEN3WTF10PassRefPtrIS0_EERi 955 955 __ZN7WebCore4Node11removeChildEPS0_Ri 956 __ZN7WebCore4Node12insertBeforeEN3WTF10PassRefPtrIS0_EEPS0_Ri NS_14AttachBehaviorE956 __ZN7WebCore4Node12insertBeforeEN3WTF10PassRefPtrIS0_EEPS0_Ri 957 957 __ZN7WebCore4Node14removedLastRefEv 958 958 __ZN7WebCore4Node14setTextContentERKN3WTF6StringERi … … 1159 1159 __ZN7WebCore8Document16shortcutIconURLsEv 1160 1160 __ZN7WebCore8Document17setFocusedElementEN3WTF10PassRefPtrINS_7ElementEEENS_14FocusDirectionE 1161 __ZN7WebCore8Document19updateStyleIfNeededEv 1161 1162 __ZN7WebCore8Document20styleResolverChangedENS_23StyleResolverUpdateFlagE 1162 1163 __ZN7WebCore8Document22createDocumentFragmentEv -
trunk/Source/WebCore/bindings/js/JSNodeCustom.cpp
r157230 r160908 135 135 { 136 136 ExceptionCode ec = 0; 137 bool ok = impl().insertBefore(toNode(exec->argument(0)), toNode(exec->argument(1)), ec , AttachLazily);137 bool ok = impl().insertBefore(toNode(exec->argument(0)), toNode(exec->argument(1)), ec); 138 138 setDOMException(exec, ec); 139 139 if (ok) … … 145 145 { 146 146 ExceptionCode ec = 0; 147 bool ok = impl().replaceChild(toNode(exec->argument(0)), toNode(exec->argument(1)), ec , AttachLazily);147 bool ok = impl().replaceChild(toNode(exec->argument(0)), toNode(exec->argument(1)), ec); 148 148 setDOMException(exec, ec); 149 149 if (ok) … … 165 165 { 166 166 ExceptionCode ec = 0; 167 bool ok = impl().appendChild(toNode(exec->argument(0)), ec , AttachLazily);167 bool ok = impl().appendChild(toNode(exec->argument(0)), ec); 168 168 setDOMException(exec, ec); 169 169 if (ok) -
trunk/Source/WebCore/css/CSSComputedStyleDeclaration.cpp
r160765 r160908 59 59 #include "RenderStyle.h" 60 60 #include "RenderView.h" 61 #include "SVGElement.h" 61 62 #include "StyleInheritedData.h" 62 63 #include "StyleProperties.h" … … 1758 1759 } 1759 1760 1761 renderer = styledNode->renderer(); 1762 1763 #if ENABLE(SVG) 1764 if (propertyID == CSSPropertyDisplay && !renderer && isSVGElement(*styledNode) && !toSVGElement(*styledNode).isValid()) 1765 return nullptr; 1766 #endif 1760 1767 style = computeRenderStyleForProperty(styledNode, m_pseudoElementSpecifier, propertyID); 1761 renderer = styledNode->renderer();1762 1768 1763 1769 // FIXME: Some of these cases could be narrowed down or optimized better. -
trunk/Source/WebCore/dom/ContainerNode.cpp
r158739 r160908 259 259 } 260 260 261 bool ContainerNode::insertBefore(PassRefPtr<Node> newChild, Node* refChild, ExceptionCode& ec , AttachBehavior attachBehavior)261 bool ContainerNode::insertBefore(PassRefPtr<Node> newChild, Node* refChild, ExceptionCode& ec) 262 262 { 263 263 // Check that this node is not "floating". … … 271 271 // insertBefore(node, 0) is equivalent to appendChild(node) 272 272 if (!refChild) 273 return appendChild(newChild, ec , attachBehavior);273 return appendChild(newChild, ec); 274 274 275 275 // Make sure adding the new child is OK. … … 318 318 insertBeforeCommon(next.get(), child); 319 319 320 updateTreeAfterInsertion(child , attachBehavior);320 updateTreeAfterInsertion(child); 321 321 } 322 322 … … 397 397 398 398 ChildNodeInsertionNotifier(*this).notify(*newChild); 399 } 400 401 bool ContainerNode::replaceChild(PassRefPtr<Node> newChild, Node* oldChild, ExceptionCode& ec, AttachBehavior attachBehavior) 399 400 newChild->setNeedsStyleRecalc(ReconstructRenderTree); 401 } 402 403 bool ContainerNode::replaceChild(PassRefPtr<Node> newChild, Node* oldChild, ExceptionCode& ec) 402 404 { 403 405 // Check that this node is not "floating". … … 479 481 } 480 482 481 updateTreeAfterInsertion(child , attachBehavior);483 updateTreeAfterInsertion(child); 482 484 } 483 485 … … 675 677 } 676 678 677 bool ContainerNode::appendChild(PassRefPtr<Node> newChild, ExceptionCode& ec , AttachBehavior attachBehavior)679 bool ContainerNode::appendChild(PassRefPtr<Node> newChild, ExceptionCode& ec) 678 680 { 679 681 Ref<ContainerNode> protect(*this); … … 725 727 } 726 728 727 updateTreeAfterInsertion(child , attachBehavior);729 updateTreeAfterInsertion(child); 728 730 } 729 731 … … 758 760 759 761 ChildNodeInsertionNotifier(*this).notify(*newChild); 762 763 newChild->setNeedsStyleRecalc(ReconstructRenderTree); 760 764 } 761 765 … … 1066 1070 } 1067 1071 1068 void ContainerNode::updateTreeAfterInsertion(Node& child , AttachBehavior attachBehavior)1072 void ContainerNode::updateTreeAfterInsertion(Node& child) 1069 1073 { 1070 1074 ASSERT(child.refCount()); … … 1076 1080 ChildNodeInsertionNotifier(*this).notify(child); 1077 1081 1078 // FIXME: Attachment should be the first operation in this function, but some code 1079 // (for example, HTMLFormControlElement's autofocus support) requires this ordering. 1080 if (attached() && !child.attached() && child.parentNode() == this) { 1081 if (attachBehavior == AttachLazily) { 1082 if (child.isElementNode()) 1083 toElement(child).lazyAttach(); 1084 else if (child.isTextNode()) { 1085 child.setAttached(true); 1086 child.setNeedsStyleRecalc(); 1087 } 1088 } else 1089 attachChild(child); 1090 } 1082 child.setNeedsStyleRecalc(ReconstructRenderTree); 1091 1083 1092 1084 dispatchChildInsertionEvents(child); -
trunk/Source/WebCore/dom/ContainerNode.h
r159036 r160908 91 91 Node* childNode(unsigned index) const; 92 92 93 bool insertBefore(PassRefPtr<Node> newChild, Node* refChild, ExceptionCode& = ASSERT_NO_EXCEPTION , AttachBehavior = AttachNow);94 bool replaceChild(PassRefPtr<Node> newChild, Node* oldChild, ExceptionCode& = ASSERT_NO_EXCEPTION , AttachBehavior = AttachNow);93 bool insertBefore(PassRefPtr<Node> newChild, Node* refChild, ExceptionCode& = ASSERT_NO_EXCEPTION); 94 bool replaceChild(PassRefPtr<Node> newChild, Node* oldChild, ExceptionCode& = ASSERT_NO_EXCEPTION); 95 95 bool removeChild(Node* child, ExceptionCode& = ASSERT_NO_EXCEPTION); 96 bool appendChild(PassRefPtr<Node> newChild, ExceptionCode& = ASSERT_NO_EXCEPTION , AttachBehavior = AttachNow);96 bool appendChild(PassRefPtr<Node> newChild, ExceptionCode& = ASSERT_NO_EXCEPTION); 97 97 98 98 // These methods are only used during parsing. … … 169 169 void notifyChildRemoved(Node& child, Node* previousSibling, Node* nextSibling, ChildChangeSource); 170 170 171 void updateTreeAfterInsertion(Node& child , AttachBehavior);171 void updateTreeAfterInsertion(Node& child); 172 172 173 173 bool isContainerNode() const WTF_DELETED_FUNCTION; -
trunk/Source/WebCore/dom/Document.cpp
r160847 r160908 560 560 ASSERT(!m_inPageCache); 561 561 ASSERT(m_ranges.isEmpty()); 562 ASSERT(!m_styleRecalcTimer.isActive());563 562 ASSERT(!m_parentTreeScope); 564 563 … … 1796 1795 { 1797 1796 ASSERT(isMainThread()); 1798 ASSERT(!view() || (!view()->isInLayout() && !view()->isPainting())); 1797 ASSERT(!view() || !view()->isPainting()); 1798 1799 if (!view() || view()->isInLayout()) 1800 return; 1799 1801 1800 1802 if (m_optimizedStyleSheetUpdateTimer.isActive()) … … 1966 1968 if (m_documentElement) 1967 1969 Style::attachRenderTree(*m_documentElement); 1968 1969 setAttached(true);1970 1970 } 1971 1971 … … 2060 2060 2061 2061 clearChildNeedsStyleRecalc(); 2062 setAttached(false);2063 2062 2064 2063 unscheduleStyleRecalc(); … … 5441 5440 m_fullScreenRenderer->unwrapRenderer(); 5442 5441 5442 if (m_fullScreenElement->parentNode()) 5443 m_fullScreenElement->parentNode()->setNeedsStyleRecalc(ReconstructRenderTree); 5444 5443 5445 m_fullScreenElement = nullptr; 5444 5446 scheduleForcedStyleRecalc(); -
trunk/Source/WebCore/dom/Element.cpp
r160901 r160908 37 37 #include "DOMTokenList.h" 38 38 #include "DocumentSharedObjectPool.h" 39 #include "ElementIterator.h" 39 40 #include "ElementRareData.h" 40 41 #include "EventDispatcher.h" … … 462 463 } 463 464 464 if (renderer()) 465 ASSERT(!renderer()->needsLayout()); 466 else { 465 if (!renderer()) { 467 466 // If the node is in a display:none tree it might say it needs style recalc but 468 467 // the whole document is actually up to date. 469 ASSERT(! document().childNeedsStyleRecalc());468 ASSERT(!needsStyleRecalc() || !document().childNeedsStyleRecalc()); 470 469 } 471 470 … … 1449 1448 } 1450 1449 1451 void Element::lazyReattach(ShouldSetAttached shouldSetAttached)1452 {1453 if (attached())1454 Style::detachRenderTreeInReattachMode(*this);1455 lazyAttach(shouldSetAttached);1456 }1457 1458 void Element::lazyAttach(ShouldSetAttached shouldSetAttached)1459 {1460 for (Node* node = this; node; node = NodeTraversal::next(node, this)) {1461 if (!node->isTextNode() && !node->isElementNode())1462 continue;1463 if (node->hasChildNodes())1464 node->setChildNeedsStyleRecalc();1465 if (node->isElementNode())1466 toElement(node)->setStyleChange(FullStyleChange);1467 if (shouldSetAttached == SetAttached)1468 node->setAttached(true);1469 }1470 markAncestorsWithChildNeedsStyleRecalc();1471 }1472 1473 1450 PassRef<RenderStyle> Element::styleForRenderer() 1474 1451 { … … 1524 1501 // Element::recalcStyle. 1525 1502 if (attached()) 1526 lazyReattach();1503 setNeedsStyleRecalc(ReconstructRenderTree); 1527 1504 1528 1505 InspectorInstrumentation::didPushShadowRoot(this, shadowRoot); … … 2534 2511 #if ENABLE(SVG) 2535 2512 // Only create renderers for SVG elements whose parents are SVG elements, or for proper <svg xmlns="svgNS"> subdocuments. 2536 if (child.isSVGElement()) 2537 return child.hasTagName(SVGNames::svgTag) || isSVGElement(); 2513 if (child.isSVGElement()) { 2514 ASSERT(!isSVGElement()); 2515 return child.hasTagName(SVGNames::svgTag) && toSVGElement(child).isValid(); 2516 } 2538 2517 #endif 2539 2518 return ContainerNode::childShouldCreateRenderer(child); … … 2953 2932 void Element::resetComputedStyle() 2954 2933 { 2955 if (!hasRareData() )2934 if (!hasRareData() || !elementRareData()->computedStyle()) 2956 2935 return; 2957 2936 elementRareData()->resetComputedStyle(); 2937 for (auto& child : elementDescendants(*this)) { 2938 if (child.hasRareData()) 2939 child.elementRareData()->resetComputedStyle(); 2940 } 2958 2941 } 2959 2942 -
trunk/Source/WebCore/dom/Element.h
r160679 r160908 305 305 virtual void copyNonAttributePropertiesFromElement(const Element&) { } 306 306 307 enum ShouldSetAttached { 308 SetAttached, 309 DoNotSetAttached 310 }; 311 void lazyAttach(ShouldSetAttached = SetAttached); 312 void lazyReattach(ShouldSetAttached = SetAttached); 307 void lazyReattach(); 313 308 314 309 virtual RenderElement* createRenderer(PassRef<RenderStyle>); -
trunk/Source/WebCore/dom/Node.cpp
r160901 r160908 421 421 } 422 422 423 bool Node::insertBefore(PassRefPtr<Node> newChild, Node* refChild, ExceptionCode& ec , AttachBehavior attachBehavior)423 bool Node::insertBefore(PassRefPtr<Node> newChild, Node* refChild, ExceptionCode& ec) 424 424 { 425 425 if (!isContainerNode()) { … … 427 427 return false; 428 428 } 429 return toContainerNode(this)->insertBefore(newChild, refChild, ec , attachBehavior);430 } 431 432 bool Node::replaceChild(PassRefPtr<Node> newChild, Node* oldChild, ExceptionCode& ec , AttachBehavior attachBehavior)429 return toContainerNode(this)->insertBefore(newChild, refChild, ec); 430 } 431 432 bool Node::replaceChild(PassRefPtr<Node> newChild, Node* oldChild, ExceptionCode& ec) 433 433 { 434 434 if (!isContainerNode()) { … … 436 436 return false; 437 437 } 438 return toContainerNode(this)->replaceChild(newChild, oldChild, ec , attachBehavior);438 return toContainerNode(this)->replaceChild(newChild, oldChild, ec); 439 439 } 440 440 … … 448 448 } 449 449 450 bool Node::appendChild(PassRefPtr<Node> newChild, ExceptionCode& ec , AttachBehavior attachBehavior)450 bool Node::appendChild(PassRefPtr<Node> newChild, ExceptionCode& ec) 451 451 { 452 452 if (!isContainerNode()) { … … 454 454 return false; 455 455 } 456 return toContainerNode(this)->appendChild(newChild, ec , attachBehavior);456 return toContainerNode(this)->appendChild(newChild, ec); 457 457 } 458 458 … … 674 674 { 675 675 ASSERT(changeType != NoStyleChange); 676 if ( !attached()) // changed compared to what?676 if (changeType != ReconstructRenderTree && !attached()) // changed compared to what? 677 677 return; 678 678 … … 681 681 setStyleChange(changeType); 682 682 683 if (existingChangeType == NoStyleChange )683 if (existingChangeType == NoStyleChange || changeType == ReconstructRenderTree) 684 684 markAncestorsWithChildNeedsStyleRecalc(); 685 685 } … … 2298 2298 } 2299 2299 2300 bool Node::attached() const 2301 { 2302 // FIXME: This should go away along with the whole vague 'attached' concept. The conditions here produce 2303 // roughly the old behavior based on an explicit attached bit. 2304 return inDocument() && document().renderView() && (renderer() || styleChangeType() != ReconstructRenderTree); 2305 } 2306 2300 2307 } // namespace WebCore 2301 2308 -
trunk/Source/WebCore/dom/Node.h
r160679 r160908 98 98 InlineStyleChange = 1 << nodeStyleChangeShift, 99 99 FullStyleChange = 2 << nodeStyleChangeShift, 100 SyntheticStyleChange = 3 << nodeStyleChangeShift 100 SyntheticStyleChange = 3 << nodeStyleChangeShift, 101 ReconstructRenderTree = 4 << nodeStyleChangeShift, 101 102 }; 102 103 … … 113 114 private: 114 115 RenderObject* m_renderer; 115 };116 117 enum AttachBehavior {118 AttachNow,119 AttachLazily,120 116 }; 121 117 … … 190 186 // which will already know and hold a ref on the right node to return. Returning bool allows 191 187 // these methods to be more efficient since they don't need to return a ref 192 bool insertBefore(PassRefPtr<Node> newChild, Node* refChild, ExceptionCode& , AttachBehavior = AttachNow);193 bool replaceChild(PassRefPtr<Node> newChild, Node* oldChild, ExceptionCode& , AttachBehavior = AttachNow);188 bool insertBefore(PassRefPtr<Node> newChild, Node* refChild, ExceptionCode&); 189 bool replaceChild(PassRefPtr<Node> newChild, Node* oldChild, ExceptionCode&); 194 190 bool removeChild(Node* child, ExceptionCode&); 195 bool appendChild(PassRefPtr<Node> newChild, ExceptionCode& , AttachBehavior = AttachNow);191 bool appendChild(PassRefPtr<Node> newChild, ExceptionCode&); 196 192 197 193 void remove(ExceptionCode&); … … 314 310 void setUserActionElement(bool flag) { setFlag(flag, IsUserActionElement); } 315 311 316 bool attached() const { return getFlag(IsAttachedFlag); } 317 void setAttached(bool flag) { setFlag(flag, IsAttachedFlag); } 312 bool attached() const; 318 313 bool needsStyleRecalc() const { return styleChangeType() != NoStyleChange; } 319 314 StyleChangeType styleChangeType() const { return static_cast<StyleChangeType>(m_nodeFlags & StyleChangeMask); } … … 573 568 IsHTMLFlag = 1 << 4, 574 569 IsSVGFlag = 1 << 5, 575 IsAttachedFlag = 1 << 6,576 570 ChildNeedsStyleRecalcFlag = 1 << 7, 577 571 InDocumentFlag = 1 << 8, … … 585 579 IsParsingChildrenFinishedFlag = 1 << 13, // Element 586 580 587 StyleChangeMask = 1 << nodeStyleChangeShift | 1 << (nodeStyleChangeShift + 1), 588 SelfOrAncestorHasDirAutoFlag = 1 << 16, 581 StyleChangeMask = 1 << nodeStyleChangeShift | 1 << (nodeStyleChangeShift + 1) | 1 << (nodeStyleChangeShift + 2), 589 582 IsEditingTextFlag = 1 << 17, 590 583 InNamedFlowFlag = 1 << 18, … … 600 593 ChildrenAffectedByDirectAdjacentRulesFlag = 1 << 27, 601 594 ChildrenAffectedByHoverRulesFlag = 1 << 28, 595 596 SelfOrAncestorHasDirAutoFlag = 1 << 29, 602 597 603 598 DefaultNodeFlags = IsParsingChildrenFinishedFlag -
trunk/Source/WebCore/dom/Range.cpp
r160679 r160908 312 312 } 313 313 314 if (!refNode-> attached() || &refNode->document() != &ownerDocument()) {314 if (!refNode->inDocument() || &refNode->document() != &ownerDocument()) { 315 315 return false; 316 316 } … … 341 341 } 342 342 343 if (!refNode-> attached() || &refNode->document() != &ownerDocument()) {343 if (!refNode->inDocument() || &refNode->document() != &ownerDocument()) { 344 344 ec = WRONG_DOCUMENT_ERR; 345 345 return 0; … … 377 377 } 378 378 379 if (!m_start.container() && refNode-> attached()) {379 if (!m_start.container() && refNode->inDocument()) { 380 380 ec = INVALID_STATE_ERR; 381 381 return NODE_BEFORE; 382 382 } 383 383 384 if (m_start.container() && !refNode-> attached()) {384 if (m_start.container() && !refNode->inDocument()) { 385 385 // Firefox doesn't throw an exception for this case; it returns 0. 386 386 return NODE_BEFORE; … … 592 592 } 593 593 594 if (!refNode-> attached() || &refNode->document() != &ownerDocument()) {594 if (!refNode->inDocument() || &refNode->document() != &ownerDocument()) { 595 595 // Firefox doesn't throw an exception for these cases; it returns false. 596 596 return false; -
trunk/Source/WebCore/editing/AppendNodeCommand.cpp
r154938 r160908 62 62 return; 63 63 64 m_parent->appendChild(m_node.get(), IGNORE_EXCEPTION , AttachLazily);64 m_parent->appendChild(m_node.get(), IGNORE_EXCEPTION); 65 65 66 66 if (AXObjectCache::accessibilityEnabled()) -
trunk/Source/WebCore/editing/CompositeEditCommand.cpp
r158163 r160908 627 627 return false; 628 628 629 node->document().updateStyleIfNeeded(); 630 629 631 RenderObject* renderer = textNode->renderer(); 630 632 if (renderer && !renderer->style().collapseWhiteSpace()) -
trunk/Source/WebCore/editing/InsertNodeBeforeCommand.cpp
r154938 r160908 56 56 ASSERT(parent->isContentEditable(Node::UserSelectAllIsAlwaysNonEditable)); 57 57 58 parent->insertBefore(m_insertChild.get(), m_refChild.get(), IGNORE_EXCEPTION , AttachLazily);58 parent->insertBefore(m_insertChild.get(), m_refChild.get(), IGNORE_EXCEPTION); 59 59 60 60 if (AXObjectCache* cache = document().existingAXObjectCache()) -
trunk/Source/WebCore/html/HTMLDetailsElement.cpp
r159036 r160908 118 118 void HTMLDetailsElement::didAddUserAgentShadowRoot(ShadowRoot* root) 119 119 { 120 root->appendChild(DetailsSummaryElement::create(document()), ASSERT_NO_EXCEPTION , AttachLazily);121 root->appendChild(DetailsContentElement::create(document()), ASSERT_NO_EXCEPTION , AttachLazily);120 root->appendChild(DetailsSummaryElement::create(document()), ASSERT_NO_EXCEPTION); 121 root->appendChild(DetailsContentElement::create(document()), ASSERT_NO_EXCEPTION); 122 122 } 123 123 -
trunk/Source/WebCore/html/HTMLDocument.cpp
r160753 r160908 140 140 Element* HTMLDocument::activeElement() 141 141 { 142 document().updateStyleIfNeeded(); 142 143 if (Element* element = treeScope().focusedElement()) 143 144 return element; -
trunk/Source/WebCore/html/HTMLElement.cpp
r160733 r160908 40 40 #include "Frame.h" 41 41 #include "FrameLoader.h" 42 #include "FrameView.h" 42 43 #include "HTMLBRElement.h" 43 44 #include "HTMLCollection.h" … … 479 480 // For example, for the contents of textarea elements that are display:none? 480 481 auto r = renderer(); 481 if ( r && r->style().preserveNewline()) {482 if ((r && r->style().preserveNewline()) || (inDocument() && isTextControlInnerTextElement())) { 482 483 if (!text.contains('\r')) { 483 484 replaceChildrenWithText(*this, text, ec); … … 662 663 bool HTMLElement::supportsFocus() const 663 664 { 665 if (!document().view()->isInLayout()) 666 document().updateStyleIfNeeded(); 664 667 return Element::supportsFocus() || (rendererIsEditable() && parentNode() && !parentNode()->rendererIsEditable()); 665 668 } -
trunk/Source/WebCore/html/HTMLEmbedElement.cpp
r159856 r160908 106 106 else if (name == srcAttr) { 107 107 m_url = stripLeadingAndTrailingHTMLSpaces(value); 108 document().updateStyleIfNeeded(); 108 109 if (renderer() && isImageType()) { 109 110 if (!m_imageLoader) -
trunk/Source/WebCore/html/HTMLFormControlElement.cpp
r160733 r160908 171 171 static bool shouldAutofocus(HTMLFormControlElement* element) 172 172 { 173 if (!element->renderer()) 174 return false; 173 175 if (!element->fastHasAttribute(autofocusAttr)) 174 176 return false; 175 if (!element-> renderer())177 if (!element->inDocument() || !element->document().renderView()) 176 178 return false; 177 179 if (element->document().ignoreAutofocus()) -
trunk/Source/WebCore/html/HTMLFormControlElementWithState.cpp
r156903 r160908 78 78 { 79 79 // We don't save/restore control state in a form with autocomplete=off. 80 return attached() && shouldAutocomplete();80 return inDocument() && shouldAutocomplete(); 81 81 } 82 82 -
trunk/Source/WebCore/html/HTMLFrameElementBase.cpp
r158962 r160908 163 163 return; 164 164 165 // JavaScript in src=javascript: and beforeonload can access the renderer166 // during attribute parsing *before* the normal parser machinery would167 // attach the element. To support this, we lazyAttach here, but only168 // if we don't already have a renderer (if we're inserted169 // as part of a DocumentFragment, insertedInto from an earlier element170 // could have forced a style resolve and already attached us).171 165 if (!renderer()) 172 lazyAttach(DoNotSetAttached);166 setNeedsStyleRecalc(ReconstructRenderTree); 173 167 setNameAndOpenURL(); 174 168 } -
trunk/Source/WebCore/html/HTMLInputElement.cpp
r160733 r160908 472 472 m_inputType->destroyShadowSubtree(); 473 473 474 bool wasAttached = attached();475 if (wasAttached)476 Style::detachRenderTree(*this);477 478 474 m_inputType = std::move(newType); 479 475 m_inputType->createShadowSubtree(); … … 524 520 } 525 521 526 if ( wasAttached) {527 Style::attachRenderTree(*this);528 if (document().focusedElement() == this) 529 updateFocusAppearance(true);530 }522 if (renderer()) 523 setNeedsStyleRecalc(ReconstructRenderTree); 524 525 if (document().focusedElement() == this) 526 updateFocusAppearance(true); 531 527 532 528 if (ShadowRoot* shadowRoot = shadowRootOfParentForDistribution(this)) … … 689 685 // FIXME: Detaching just for maxResults change is not ideal. We should figure out the right 690 686 // time to relayout for this change. 691 if (m_maxResults != oldResults && (m_maxResults <= 0 || oldResults <= 0) && attached())687 if (m_maxResults != oldResults && (m_maxResults <= 0 || oldResults <= 0) && renderer()) 692 688 Style::reattachRenderTree(*this); 693 689 setNeedsStyleRecalc(); … … 746 742 m_inputType->destroyShadowSubtree(); 747 743 m_inputType->createShadowSubtree(); 748 if (!attached()) 749 Style::attachRenderTree(*this); 744 Style::attachRenderTree(*this); 750 745 } else { 751 746 m_inputType->destroyShadowSubtree(); … … 1203 1198 } 1204 1199 1200 document().updateStyleIfNeeded(); 1205 1201 m_inputType->forwardEvent(evt); 1206 1202 -
trunk/Source/WebCore/html/HTMLMediaElement.cpp
r160755 r160908 735 735 void HTMLMediaElement::willAttachRenderers() 736 736 { 737 ASSERT(! attached());737 ASSERT(!renderer()); 738 738 739 739 #if ENABLE(PLUGIN_PROXY_FOR_VIDEO) … … 5107 5107 mediaControls->enteredFullscreen(); 5108 5108 5109 ensureUserAgentShadowRoot().appendChild(mediaControls, ASSERT_NO_EXCEPTION , AttachLazily);5109 ensureUserAgentShadowRoot().appendChild(mediaControls, ASSERT_NO_EXCEPTION); 5110 5110 5111 5111 if (!controls() || !inDocument()) -
trunk/Source/WebCore/html/HTMLObjectElement.cpp
r160733 r160908 116 116 } else if (name == dataAttr) { 117 117 m_url = stripLeadingAndTrailingHTMLSpaces(value); 118 document().updateStyleIfNeeded(); 118 119 if (renderer()) { 119 120 setNeedsWidgetUpdate(true); -
trunk/Source/WebCore/html/HTMLSummaryElement.cpp
r159604 r160908 80 80 void HTMLSummaryElement::didAddUserAgentShadowRoot(ShadowRoot* root) 81 81 { 82 root->appendChild(DetailsMarkerControl::create(document()), ASSERT_NO_EXCEPTION , AttachLazily);83 root->appendChild(SummaryContentElement::create(document()), ASSERT_NO_EXCEPTION , AttachLazily);82 root->appendChild(DetailsMarkerControl::create(document()), ASSERT_NO_EXCEPTION); 83 root->appendChild(SummaryContentElement::create(document()), ASSERT_NO_EXCEPTION); 84 84 } 85 85 -
trunk/Source/WebCore/html/parser/HTMLConstructionSite.cpp
r160182 r160908 91 91 else 92 92 task.parent->parserAppendChild(task.child.get()); 93 94 // JavaScript run from beforeload (or DOM Mutation or event handlers)95 // might have removed the child, in which case we should not attach it.96 97 if (task.child->parentNode() && task.parent->attached() && !task.child->attached()) {98 if (task.child->isElementNode())99 Style::attachRenderTree(*toElement(task.child.get()));100 else if (task.child->isTextNode())101 Style::attachTextRenderer(*toText(task.child.get()));102 }103 93 104 94 task.child->beginParsingChildren(); -
trunk/Source/WebCore/html/parser/HTMLTreeBuilder.cpp
r160753 r160908 1604 1604 parent->parserRemoveChild(*lastNode->element()); 1605 1605 node->element()->parserAppendChild(lastNode->element()); 1606 if (lastNode->element()->parentElement()->attached() && !lastNode->element()->attached())1607 lastNode->element()->lazyAttach();1608 1606 // 9.10 1609 1607 lastNode = node; … … 1625 1623 ASSERT(lastNode->stackItem()->isElementNode()); 1626 1624 ASSERT(lastNode->element()->parentNode()); 1627 if (lastNode->element()->parentNode()->attached() && !lastNode->element()->attached())1628 lastNode->element()->lazyAttach();1629 1625 } 1630 1626 // 11. -
trunk/Source/WebCore/html/shadow/ContentDistributor.cpp
r158650 r160908 145 145 bool needsReattach = didNeedInvalidation ? invalidate(host) : false; 146 146 147 if (needsReattach && host->attached()) { 148 for (Element* element = ElementTraversal::firstWithin(host); element; element = ElementTraversal::nextSibling(element)) 149 element->lazyReattach(); 150 host->setNeedsStyleRecalc(); 151 } 147 if (needsReattach) 148 host->setNeedsStyleRecalc(ReconstructRenderTree); 152 149 153 150 if (didNeedInvalidation) { -
trunk/Source/WebCore/html/shadow/InsertionPoint.cpp
r158650 r160908 56 56 ContentDistributor::ensureDistribution(shadowRoot); 57 57 for (Node* current = firstDistributed(); current; current = nextDistributedTo(current)) { 58 if (current->attached())59 continue;60 58 if (current->isTextNode()) { 59 if (current->renderer()) 60 continue; 61 61 Style::attachTextRenderer(*toText(current)); 62 62 continue; 63 63 } 64 if (current->isElementNode()) 64 if (current->isElementNode()) { 65 if (current->renderer()) 66 Style::detachRenderTree(*toElement(current)); 65 67 Style::attachRenderTree(*toElement(current)); 68 } 66 69 } 67 70 } … … 69 72 void InsertionPoint::willDetachRenderers() 70 73 { 71 if (ShadowRoot* shadowRoot = containingShadowRoot())72 ContentDistributor::ensureDistribution(shadowRoot);73 74 74 for (Node* current = firstDistributed(); current; current = nextDistributedTo(current)) { 75 75 if (current->isTextNode()) { -
trunk/Source/WebCore/html/shadow/MediaControlElements.cpp
r160733 r160908 1291 1291 if (displayBox->hasChildNodes() && !contains(displayBox.get())) { 1292 1292 // Note: the display tree of a cue is removed when the active flag of the cue is unset. 1293 appendChild(displayBox, ASSERT_NO_EXCEPTION , AttachNow);1293 appendChild(displayBox, ASSERT_NO_EXCEPTION); 1294 1294 cue->setFontSize(m_fontSize, m_videoDisplaySize.size(), m_fontSizeIsImportant); 1295 1295 } -
trunk/Source/WebCore/html/shadow/MediaControls.cpp
r160599 r160908 393 393 394 394 // Insert it before the first controller element so it always displays behind the controls. 395 insertBefore(textDisplayContainer.release(), m_panel, IGNORE_EXCEPTION , AttachLazily);395 insertBefore(textDisplayContainer.release(), m_panel, IGNORE_EXCEPTION); 396 396 } 397 397 -
trunk/Source/WebCore/html/shadow/MediaControlsApple.cpp
r160599 r160908 74 74 RefPtr<MediaControlRewindButtonElement> rewindButton = MediaControlRewindButtonElement::create(document); 75 75 controls->m_rewindButton = rewindButton.get(); 76 panel->appendChild(rewindButton.release(), ec , AttachLazily);76 panel->appendChild(rewindButton.release(), ec); 77 77 if (ec) 78 78 return 0; … … 80 80 RefPtr<MediaControlPlayButtonElement> playButton = MediaControlPlayButtonElement::create(document); 81 81 controls->m_playButton = playButton.get(); 82 panel->appendChild(playButton.release(), ec , AttachLazily);82 panel->appendChild(playButton.release(), ec); 83 83 if (ec) 84 84 return 0; … … 86 86 RefPtr<MediaControlReturnToRealtimeButtonElement> returnToRealtimeButton = MediaControlReturnToRealtimeButtonElement::create(document); 87 87 controls->m_returnToRealTimeButton = returnToRealtimeButton.get(); 88 panel->appendChild(returnToRealtimeButton.release(), ec , AttachLazily);88 panel->appendChild(returnToRealtimeButton.release(), ec); 89 89 if (ec) 90 90 return 0; … … 93 93 RefPtr<MediaControlStatusDisplayElement> statusDisplay = MediaControlStatusDisplayElement::create(document); 94 94 controls->m_statusDisplay = statusDisplay.get(); 95 panel->appendChild(statusDisplay.release(), ec , AttachLazily);95 panel->appendChild(statusDisplay.release(), ec); 96 96 if (ec) 97 97 return 0; … … 102 102 RefPtr<MediaControlCurrentTimeDisplayElement> currentTimeDisplay = MediaControlCurrentTimeDisplayElement::create(document); 103 103 controls->m_currentTimeDisplay = currentTimeDisplay.get(); 104 timelineContainer->appendChild(currentTimeDisplay.release(), ec , AttachLazily);104 timelineContainer->appendChild(currentTimeDisplay.release(), ec); 105 105 if (ec) 106 106 return 0; … … 108 108 RefPtr<MediaControlTimelineElement> timeline = MediaControlTimelineElement::create(document, controls.get()); 109 109 controls->m_timeline = timeline.get(); 110 timelineContainer->appendChild(timeline.release(), ec , AttachLazily);110 timelineContainer->appendChild(timeline.release(), ec); 111 111 if (ec) 112 112 return 0; … … 114 114 RefPtr<MediaControlTimeRemainingDisplayElement> timeRemainingDisplay = MediaControlTimeRemainingDisplayElement::create(document); 115 115 controls->m_timeRemainingDisplay = timeRemainingDisplay.get(); 116 timelineContainer->appendChild(timeRemainingDisplay.release(), ec , AttachLazily);116 timelineContainer->appendChild(timeRemainingDisplay.release(), ec); 117 117 if (ec) 118 118 return 0; 119 119 120 120 controls->m_timelineContainer = timelineContainer.get(); 121 panel->appendChild(timelineContainer.release(), ec , AttachLazily);121 panel->appendChild(timelineContainer.release(), ec); 122 122 if (ec) 123 123 return 0; … … 126 126 RefPtr<MediaControlSeekBackButtonElement> seekBackButton = MediaControlSeekBackButtonElement::create(document); 127 127 controls->m_seekBackButton = seekBackButton.get(); 128 panel->appendChild(seekBackButton.release(), ec , AttachLazily);128 panel->appendChild(seekBackButton.release(), ec); 129 129 if (ec) 130 130 return 0; … … 133 133 RefPtr<MediaControlSeekForwardButtonElement> seekForwardButton = MediaControlSeekForwardButtonElement::create(document); 134 134 controls->m_seekForwardButton = seekForwardButton.get(); 135 panel->appendChild(seekForwardButton.release(), ec , AttachLazily);135 panel->appendChild(seekForwardButton.release(), ec); 136 136 if (ec) 137 137 return 0; … … 142 142 RefPtr<MediaControlClosedCaptionsTrackListElement> closedCaptionsTrackList = MediaControlClosedCaptionsTrackListElement::create(document, controls.get()); 143 143 controls->m_closedCaptionsTrackList = closedCaptionsTrackList.get(); 144 closedCaptionsContainer->appendChild(closedCaptionsTrackList.release(), ec , AttachLazily);144 closedCaptionsContainer->appendChild(closedCaptionsTrackList.release(), ec); 145 145 if (ec) 146 146 return 0; … … 148 148 RefPtr<MediaControlToggleClosedCaptionsButtonElement> toggleClosedCaptionsButton = MediaControlToggleClosedCaptionsButtonElement::create(document, controls.get()); 149 149 controls->m_toggleClosedCaptionsButton = toggleClosedCaptionsButton.get(); 150 panel->appendChild(toggleClosedCaptionsButton.release(), ec , AttachLazily);150 panel->appendChild(toggleClosedCaptionsButton.release(), ec); 151 151 if (ec) 152 152 return 0; 153 153 154 154 controls->m_closedCaptionsContainer = closedCaptionsContainer.get(); 155 controls->appendChild(closedCaptionsContainer.release(), ec , AttachLazily);155 controls->appendChild(closedCaptionsContainer.release(), ec); 156 156 if (ec) 157 157 return 0; … … 161 161 RefPtr<MediaControlFullscreenButtonElement> fullScreenButton = MediaControlFullscreenButtonElement::create(document); 162 162 controls->m_fullScreenButton = fullScreenButton.get(); 163 panel->appendChild(fullScreenButton.release(), ec , AttachLazily);163 panel->appendChild(fullScreenButton.release(), ec); 164 164 165 165 // The mute button and the slider element should be in the same div. … … 171 171 RefPtr<MediaControlPanelVolumeSliderElement> slider = MediaControlPanelVolumeSliderElement::create(document); 172 172 controls->m_volumeSlider = slider.get(); 173 volumeSliderContainer->appendChild(slider.release(), ec , AttachLazily);173 volumeSliderContainer->appendChild(slider.release(), ec); 174 174 if (ec) 175 175 return 0; … … 179 179 RefPtr<MediaControlVolumeSliderMuteButtonElement> volumeSliderMuteButton = MediaControlVolumeSliderMuteButtonElement::create(document); 180 180 controls->m_volumeSliderMuteButton = volumeSliderMuteButton.get(); 181 volumeSliderContainer->appendChild(volumeSliderMuteButton.release(), ec , AttachLazily);181 volumeSliderContainer->appendChild(volumeSliderMuteButton.release(), ec); 182 182 183 183 if (ec) … … 185 185 186 186 controls->m_volumeSliderContainer = volumeSliderContainer.get(); 187 panelVolumeControlContainer->appendChild(volumeSliderContainer.release(), ec , AttachLazily);187 panelVolumeControlContainer->appendChild(volumeSliderContainer.release(), ec); 188 188 if (ec) 189 189 return 0; … … 192 192 RefPtr<MediaControlPanelMuteButtonElement> panelMuteButton = MediaControlPanelMuteButtonElement::create(document, controls.get()); 193 193 controls->m_panelMuteButton = panelMuteButton.get(); 194 panelVolumeControlContainer->appendChild(panelMuteButton.release(), ec , AttachLazily);195 if (ec) 196 return 0; 197 198 panel->appendChild(panelVolumeControlContainer, ec , AttachLazily);194 panelVolumeControlContainer->appendChild(panelMuteButton.release(), ec); 195 if (ec) 196 return 0; 197 198 panel->appendChild(panelVolumeControlContainer, ec); 199 199 if (ec) 200 200 return 0; … … 203 203 RefPtr<MediaControlFullscreenVolumeMinButtonElement> fullScreenMinVolumeButton = MediaControlFullscreenVolumeMinButtonElement::create(document); 204 204 controls->m_fullScreenMinVolumeButton = fullScreenMinVolumeButton.get(); 205 panel->appendChild(fullScreenMinVolumeButton.release(), ec , AttachLazily);205 panel->appendChild(fullScreenMinVolumeButton.release(), ec); 206 206 if (ec) 207 207 return 0; … … 209 209 RefPtr<MediaControlFullscreenVolumeSliderElement> fullScreenVolumeSlider = MediaControlFullscreenVolumeSliderElement::create(document); 210 210 controls->m_fullScreenVolumeSlider = fullScreenVolumeSlider.get(); 211 panel->appendChild(fullScreenVolumeSlider.release(), ec , AttachLazily);211 panel->appendChild(fullScreenVolumeSlider.release(), ec); 212 212 if (ec) 213 213 return 0; … … 215 215 RefPtr<MediaControlFullscreenVolumeMaxButtonElement> fullScreenMaxVolumeButton = MediaControlFullscreenVolumeMaxButtonElement::create(document); 216 216 controls->m_fullScreenMaxVolumeButton = fullScreenMaxVolumeButton.get(); 217 panel->appendChild(fullScreenMaxVolumeButton.release(), ec , AttachLazily);217 panel->appendChild(fullScreenMaxVolumeButton.release(), ec); 218 218 if (ec) 219 219 return 0; 220 220 221 221 controls->m_panel = panel.get(); 222 controls->appendChild(panel.release(), ec , AttachLazily);222 controls->appendChild(panel.release(), ec); 223 223 if (ec) 224 224 return 0; -
trunk/Source/WebCore/html/track/TextTrackCue.cpp
r160777 r160908 826 826 // Note: This is contained by default in m_cueBackgroundBox. 827 827 m_cueBackgroundBox->setPseudo(cueShadowPseudoId()); 828 displayTree->appendChild(m_cueBackgroundBox, ASSERT_NO_EXCEPTION , AttachLazily);828 displayTree->appendChild(m_cueBackgroundBox, ASSERT_NO_EXCEPTION); 829 829 830 830 // FIXME(BUG 79916): Runs of children of WebVTT Ruby Objects that are not -
trunk/Source/WebCore/loader/PlaceholderDocument.cpp
r160598 r160908 37 37 for (auto& child : elementChildren(*this)) 38 38 Style::attachRenderTree(child); 39 40 setAttached(true);41 39 } 42 40 -
trunk/Source/WebCore/loader/cache/CachedResourceLoader.cpp
r160841 r160908 833 833 // to making this behavior specific to iOS. 834 834 #if !PLATFORM(IOS) 835 bool hasRendering = m_document->body() && m_document-> body()->renderer();835 bool hasRendering = m_document->body() && m_document->renderView(); 836 836 bool canBlockParser = type == CachedResource::Script || type == CachedResource::CSSStyleSheet; 837 837 if (!hasRendering && !canBlockParser) { -
trunk/Source/WebCore/style/StyleResolveTree.cpp
r160138 r160908 406 406 createTextRendererIfNeeded(textNode); 407 407 408 textNode.setAttached(true);409 408 textNode.clearNeedsStyleRecalc(); 410 409 } … … 415 414 textNode.renderer()->destroyAndCleanupAnonymousWrappers(); 416 415 textNode.setRenderer(0); 417 textNode.setAttached(false);418 416 } 419 417 … … 441 439 { 442 440 for (Node* child = current.firstChild(); child; child = child->nextSibling()) { 443 ASSERT(!child-> attached() || current.shadowRoot());444 if (child-> attached())441 ASSERT(!child->renderer() || current.shadowRoot() || current.isInsertionPoint()); 442 if (child->renderer()) 445 443 continue; 446 444 if (child->isTextNode()) { … … 455 453 static void attachShadowRoot(ShadowRoot& shadowRoot) 456 454 { 457 if (shadowRoot.attached())458 return;459 455 StyleResolver& styleResolver = shadowRoot.document().ensureStyleResolver(); 460 456 styleResolver.pushParentShadowRoot(&shadowRoot); … … 465 461 466 462 shadowRoot.clearNeedsStyleRecalc(); 467 shadowRoot. setAttached(true);463 shadowRoot.clearChildNeedsStyleRecalc(); 468 464 } 469 465 … … 544 540 attachChildren(current); 545 541 546 current.setAttached(true);547 542 current.clearNeedsStyleRecalc(); 543 current.clearChildNeedsStyleRecalc(); 548 544 549 545 if (AXObjectCache* cache = current.document().axObjectCache()) … … 573 569 static void detachShadowRoot(ShadowRoot& shadowRoot, DetachType detachType) 574 570 { 575 if (!shadowRoot.attached())576 return;577 571 detachChildren(shadowRoot, detachType); 578 579 shadowRoot.setAttached(false);580 572 } 581 573 … … 602 594 current.renderer()->destroyAndCleanupAnonymousWrappers(); 603 595 current.setRenderer(0); 604 605 current.setAttached(false);606 596 607 597 if (current.hasCustomStyleResolveCallbacks()) … … 650 640 651 641 Document& document = current.document(); 652 if (currentStyle ) {642 if (currentStyle && current.styleChangeType() != ReconstructRenderTree) { 653 643 newStyle = current.styleForRenderer(); 654 644 localChange = determineChange(currentStyle.get(), newStyle.get(), document.settings()); 655 645 } 656 646 if (localChange == Detach) { 657 if (current. attached())647 if (current.renderer() || current.inNamedFlow()) 658 648 detachRenderTree(current, ReattachDetach); 659 649 attachRenderTree(current, newStyle.release()); -
trunk/Source/WebCore/svg/SVGTests.cpp
r154903 r160908 157 157 return true; 158 158 159 bool valid = targetElement->isValid(); 160 bool attached = targetElement->attached(); 161 if (valid && !attached && targetElement->parentNode()->attached()) 162 Style::attachRenderTree(*targetElement); 163 else if (!valid && attached) 164 Style::detachRenderTree(*targetElement); 159 targetElement->setNeedsStyleRecalc(ReconstructRenderTree); 165 160 166 161 return true; -
trunk/Source/WebCore/testing/Internals.cpp
r160671 r160908 487 487 } 488 488 489 // FIXME: Remove. 489 490 bool Internals::attached(Node* node, ExceptionCode& ec) 490 491 { … … 494 495 } 495 496 496 return node->attached();497 return true; 497 498 } 498 499 … … 503 504 return String(); 504 505 } 506 507 element->document().updateStyleIfNeeded(); 505 508 506 509 String representation = externalRepresentation(element); … … 750 753 DocumentMarker* Internals::markerAt(Node* node, const String& markerType, unsigned index, ExceptionCode& ec) 751 754 { 755 node->document().updateLayoutIgnorePendingStylesheets(); 752 756 if (!node) { 753 757 ec = INVALID_ACCESS_ERR; … … 1204 1208 if (!renderView) 1205 1209 return 0; 1210 1211 document->updateLayoutIgnorePendingStylesheets(); 1206 1212 1207 1213 float zoomFactor = frame->pageZoomFactor(); -
trunk/Source/WebKit/mac/WebView/WebHTMLView.mm
r160152 r160908 3017 3017 // minPageWidth==0 implies a non-printing layout 3018 3018 - (void)layoutToMinimumPageWidth:(float)minPageLogicalWidth height:(float)minPageLogicalHeight originalPageWidth:(float)originalPageWidth originalPageHeight:(float)originalPageHeight maximumShrinkRatio:(float)maximumShrinkRatio adjustingViewSize:(BOOL)adjustViewSize 3019 { 3019 { 3020 Frame* coreFrame = core([self _frame]); 3021 if (!coreFrame) 3022 return; 3023 if (coreFrame->document()) { 3024 if (coreFrame->document()->inPageCache()) 3025 return; 3026 coreFrame->document()->updateStyleIfNeeded(); 3027 } 3028 3020 3029 if (![self _needsLayout]) 3021 3030 return; … … 3026 3035 3027 3036 LOG(View, "%@ doing layout", self); 3028 3029 Frame* coreFrame = core([self _frame]);3030 if (!coreFrame)3031 return;3032 3037 3033 3038 if (FrameView* coreView = coreFrame->view()) { -
trunk/Source/WebKit2/WebProcess/WebPage/WebPage.cpp
r160818 r160908 1776 1776 CurrentEvent currentEvent(keyboardEvent); 1777 1777 1778 Frame& frame = m_page->focusController().focusedOrMainFrame(); 1779 frame.document()->updateStyleIfNeeded(); 1780 1778 1781 handled = handleKeyEvent(keyboardEvent, m_page.get()); 1779 1782 if (!handled)
Note: See TracChangeset
for help on using the changeset viewer.