WebKit Bugzilla
Attachment 339985 Details for
Bug 185465
: Tapping after CSS-based table casues an infinite loop in wordRangeFromPosition
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
WIP2
wip185465b.patch (text/plain), 21.60 KB, created by
Ryosuke Niwa
on 2018-05-09 11:09:29 PDT
(
hide
)
Description:
WIP2
Filename:
MIME Type:
Creator:
Ryosuke Niwa
Created:
2018-05-09 11:09:29 PDT
Size:
21.60 KB
patch
obsolete
>Index: Source/WebCore/editing/TextIterator.cpp >=================================================================== >--- Source/WebCore/editing/TextIterator.cpp (revision 231394) >+++ Source/WebCore/editing/TextIterator.cpp (working copy) >@@ -536,6 +536,9 @@ > return; > } > next = nextSibling(m_behavior, *m_node); >+ if (next && m_node->renderer() && ((is<RenderBlockFlow>(*m_node->renderer()) && downcast<RenderBlockFlow>(*m_node->renderer()).height()) >+ || is<RenderTableRow>(*m_node->renderer()))) >+ exitNode(m_node); > } > } > m_fullyClippedStack.pop(); >@@ -998,13 +1001,15 @@ > && !renderer->isRubyText(); > } > >-static bool shouldEmitNewlineAfterNode(Node& node) >+static bool shouldEmitNewlineAfterNode(Node& node, bool emitsCharactersBetweenAllVisiblePositions = false) > { > // FIXME: It should be better but slower to create a VisiblePosition here. > if (!shouldEmitNewlinesBeforeAndAfterNode(node)) > return false; >- // Check if this is the very last renderer in the document. >- // If so, then we should not emit a newline. >+ >+ // Don't emit a new line at the end of the document unless we're matching the behavior of VisiblePosition. >+ if (emitsCharactersBetweenAllVisiblePositions) >+ return true; > Node* subsequentNode = &node; > while ((subsequentNode = NodeTraversal::nextSkippingChildren(*subsequentNode))) { > if (subsequentNode->renderer()) >@@ -1174,7 +1179,7 @@ > // the logic in _web_attributedStringFromRange match. We'll get that for free when we switch to use > // TextIterator in _web_attributedStringFromRange. > // See <rdar://problem/5428427> for an example of how this mismatch will cause problems. >- if (m_lastTextNode && shouldEmitNewlineAfterNode(*m_node)) { >+ if (m_lastTextNode && shouldEmitNewlineAfterNode(*m_node, m_behavior & TextIteratorEmitsCharactersBetweenAllVisiblePositions)) { > // use extra newline to represent margin bottom, as needed > bool addNewline = shouldEmitExtraNewlineForNode(*m_node); > >Index: LayoutTests/accessibility/table-headers-expected.txt >=================================================================== >--- LayoutTests/accessibility/table-headers-expected.txt (revision 231394) >+++ LayoutTests/accessibility/table-headers-expected.txt (working copy) >@@ -3,6 +3,7 @@ > 2. Russia Moscow > 3. Ukraine Kiev > >+ > This tests that the columnHeaders() and rowHeaders() functions return the correct headers for a table cell. > > The table cell at (0,3) should have exactly one column header, currently it has 1 column header(s). >Index: LayoutTests/css3/flexbox/box-orient-button-expected.txt >=================================================================== >--- LayoutTests/css3/flexbox/box-orient-button-expected.txt (revision 231394) >+++ LayoutTests/css3/flexbox/box-orient-button-expected.txt (working copy) >@@ -11,18 +11,22 @@ > > hello > world >+ > horizontal: > > hello > world >+ > vertical: > > hello > world >+ > default => vertical: > > hello > world >+ > vertical => horizontal: > > hello >Index: LayoutTests/editing/inserting/insert-list-in-table-cell-08-expected.txt >=================================================================== >--- LayoutTests/editing/inserting/insert-list-in-table-cell-08-expected.txt (revision 231394) >+++ LayoutTests/editing/inserting/insert-list-in-table-cell-08-expected.txt (working copy) >@@ -30,4 +30,4 @@ > | <td> > | "gghfg" > | <td> >-| "fsfg<#selection-focus>" >+| "fsfg" >Index: LayoutTests/fast/css/css3-ch-unit-expected.txt >=================================================================== >--- LayoutTests/fast/css/css3-ch-unit-expected.txt (revision 231394) >+++ LayoutTests/fast/css/css3-ch-unit-expected.txt (working copy) >@@ -36,10 +36,14 @@ > Four zeroes should be visible, nothing else: > 0000 > 0000 >-0000 There should be more than one green '|' visible (non-monospaced fonts): >-|||0||| >-|||0||| >-|||0||| >+0000 >+There should be more than one green '|' visible (non-monospaced fonts): >+|||0 >+||| >+|||0 >+||| >+|||0 >+||| > This box has a 20px font size. The last two '0's should be the same size. > 0 > 0 >Index: LayoutTests/fast/css/percent-min-width-img-src-change-expected.txt >=================================================================== >--- LayoutTests/fast/css/percent-min-width-img-src-change-expected.txt (revision 231394) >+++ LayoutTests/fast/css/percent-min-width-img-src-change-expected.txt (working copy) >@@ -1,2 +1,3 @@ > PASS >- >+ >+ >Index: LayoutTests/fast/css/percent-width-img-src-change-expected.txt >=================================================================== >--- LayoutTests/fast/css/percent-width-img-src-change-expected.txt (revision 231394) >+++ LayoutTests/fast/css/percent-width-img-src-change-expected.txt (working copy) >@@ -1,3 +1,4 @@ > PASS > >- >+ >+ >Index: LayoutTests/fast/css/pseudo-empty-display-none-expected.txt >=================================================================== >--- LayoutTests/fast/css/pseudo-empty-display-none-expected.txt (revision 231394) >+++ LayoutTests/fast/css/pseudo-empty-display-none-expected.txt (working copy) >@@ -1,3 +1,4 @@ > Test for bug 26570. There should be two green boxes on this page. > >+ > PASS >Index: LayoutTests/fast/dom/HTMLDivElement/align/getset-expected.txt >=================================================================== >--- LayoutTests/fast/dom/HTMLDivElement/align/getset-expected.txt (revision 231394) >+++ LayoutTests/fast/dom/HTMLDivElement/align/getset-expected.txt (working copy) >@@ -1,4 +1,5 @@ > Tests: getting and setting HTMLDivElement::align >+ > Condition(s): > Testing valid, invalid, and empty values > >Index: LayoutTests/fast/dom/HTMLSelectElement/listbox-select-reset-expected.txt >=================================================================== >--- LayoutTests/fast/dom/HTMLSelectElement/listbox-select-reset-expected.txt (revision 231394) >+++ LayoutTests/fast/dom/HTMLSelectElement/listbox-select-reset-expected.txt (working copy) >@@ -2,6 +2,7 @@ > This test verifies that list-box-style select form controls with no "selected" attributes are properly cleared when reset. > > You should see two element IDs below, and the word "SUCCESS" twice: >+ > multiSelectElement: SUCCESS > > singleSelectElement: SUCCESS >Index: LayoutTests/fast/dom/HTMLTableElement/table-with-invalid-border-expected.txt >=================================================================== >--- LayoutTests/fast/dom/HTMLTableElement/table-with-invalid-border-expected.txt (revision 231394) >+++ LayoutTests/fast/dom/HTMLTableElement/table-with-invalid-border-expected.txt (working copy) >@@ -1,3 +1,4 @@ > https://bugs.webkit.org/show_bug.cgi?id=102112: There should be a black box below. >+ > PASS getComputedStyle(document.querySelector("table")).borderTopWidth is "1px" > >Index: LayoutTests/fast/history/multiple-classes-visited-expected.txt >=================================================================== >--- LayoutTests/fast/history/multiple-classes-visited-expected.txt (revision 231394) >+++ LayoutTests/fast/history/multiple-classes-visited-expected.txt (working copy) >@@ -1,6 +1,7 @@ > These two links should be the same color (orange): > > One Two >+ > PASS firstStyle.color became secondStyle.color > PASS successfullyParsed is true > >Index: LayoutTests/fast/history/self-is-visited-expected.txt >=================================================================== >--- LayoutTests/fast/history/self-is-visited-expected.txt (revision 231394) >+++ LayoutTests/fast/history/self-is-visited-expected.txt (working copy) >@@ -1,6 +1,7 @@ > These two links should be different colors (green and orange): > > One Two >+ > PASS firstStyle.color became different from secondStyle.color > PASS firstStyle.backgroundColor became different from secondStyle.backgroundColor > PASS successfullyParsed is true >Index: LayoutTests/fast/html/marquee-reparent-check-expected.txt >=================================================================== >--- LayoutTests/fast/html/marquee-reparent-check-expected.txt (revision 231394) >+++ LayoutTests/fast/html/marquee-reparent-check-expected.txt (working copy) >@@ -7,4 +7,5 @@ > > TEST COMPLETE > >-TEST >+TEST >+ >Index: LayoutTests/fast/invalid/test-case-tr-th-td-should-not-close-dl-list-expected.txt >=================================================================== >--- LayoutTests/fast/invalid/test-case-tr-th-td-should-not-close-dl-list-expected.txt (revision 231394) >+++ LayoutTests/fast/invalid/test-case-tr-th-td-should-not-close-dl-list-expected.txt (working copy) >@@ -5,5 +5,6 @@ > test > > test >+ > PASSED. > PASSED. >Index: LayoutTests/fast/parser/comments-expected.txt >=================================================================== >--- LayoutTests/fast/parser/comments-expected.txt (revision 231394) >+++ LayoutTests/fast/parser/comments-expected.txt (working copy) >@@ -2,8 +2,10 @@ > > Basic comments: > PASSED >+ > Comment series: > PASSED >+ > Dash runs: > PASSED PASSED PASSED > >@@ -17,6 +19,7 @@ > PASSED PASSED > > White space after comment close: >+ > Extra comment after markup declaration close: > FAILED: extra comment end and markup declaration close --> > PASSED (outer nested comment) --> >Index: LayoutTests/fast/ruby/ruby-base-merge-block-children-crash-2-expected.txt >=================================================================== >--- LayoutTests/fast/ruby/ruby-base-merge-block-children-crash-2-expected.txt (revision 231394) >+++ LayoutTests/fast/ruby/ruby-base-merge-block-children-crash-2-expected.txt (working copy) >@@ -1,3 +1,4 @@ > >+ > > WebKit bug #127515. This test must be run under Guard Malloc. It passes if it does not crash. >Index: LayoutTests/fast/spatial-navigation/snav-radio-group-expected.txt >=================================================================== >--- LayoutTests/fast/spatial-navigation/snav-radio-group-expected.txt (revision 231394) >+++ LayoutTests/fast/spatial-navigation/snav-radio-group-expected.txt (working copy) >@@ -2,7 +2,8 @@ > 4 > > >- 6 >+ >+6 > 8 > PASS gFocusedDocument.activeElement.getAttribute("id") is "down" > PASS gFocusedDocument.activeElement.getAttribute("id") is "8" >Index: LayoutTests/fast/sub-pixel/table-cells-have-stable-width-expected.txt >=================================================================== >--- LayoutTests/fast/sub-pixel/table-cells-have-stable-width-expected.txt (revision 231394) >+++ LayoutTests/fast/sub-pixel/table-cells-have-stable-width-expected.txt (working copy) >@@ -1,6 +1,6 @@ > PASS Cell in AutoTable has expected size > PASS Cell in FixedTable has expected size >-Cc: AutoTableLayout >+Cc: AutoTableLayout > foo > FixedTableLayout > Tests that setting the width of an element inside a cell to the computed width of said element does not change the width of the cell itself. >Index: LayoutTests/fast/table/table-row-oveflow-crash-expected.txt >=================================================================== >--- LayoutTests/fast/table/table-row-oveflow-crash-expected.txt (revision 231394) >+++ LayoutTests/fast/table/table-row-oveflow-crash-expected.txt (working copy) >@@ -1,4 +1,5 @@ > PASS if no crash. > 5 > 2 >+ > 43 >Index: LayoutTests/fast/table/table-with-borderattr-null-expected.txt >=================================================================== >--- LayoutTests/fast/table/table-with-borderattr-null-expected.txt (revision 231394) >+++ LayoutTests/fast/table/table-with-borderattr-null-expected.txt (working copy) >@@ -1,3 +1,4 @@ > There should be a black box below. >+ > PASS getComputedStyle(document.querySelector("table")).borderTopWidth is "1px" > >Index: LayoutTests/fast/table/table-with-borderattr-set-to-null-expected.txt >=================================================================== >--- LayoutTests/fast/table/table-with-borderattr-set-to-null-expected.txt (revision 231394) >+++ LayoutTests/fast/table/table-with-borderattr-set-to-null-expected.txt (working copy) >@@ -1,3 +1,4 @@ > There should be a black box below. >+ > PASS getComputedStyle(document.querySelector("table")).borderTopWidth is "1px" > >Index: LayoutTests/fast/xsl/mozilla-tests-expected.txt >=================================================================== >--- LayoutTests/fast/xsl/mozilla-tests-expected.txt (revision 231394) >+++ LayoutTests/fast/xsl/mozilla-tests-expected.txt (working copy) >@@ -38,6 +38,7 @@ > Test:see source > Desired Result: true > Result:true >+ > Testing basic xsl:apply-templates > Test:<xsl:apply-templates/> > Desired Result:element x, element y, element z >Index: LayoutTests/http/tests/misc/large-js-program-expected.txt >=================================================================== >--- LayoutTests/http/tests/misc/large-js-program-expected.txt (revision 231394) >+++ LayoutTests/http/tests/misc/large-js-program-expected.txt (working copy) >@@ -3,3 +3,4 @@ > > This test should generate an out of stack exception, but have no other output. > >+ >Index: LayoutTests/imported/w3c/web-platform-tests/dom/nodes/getElementsByClassName-30-expected.txt >=================================================================== >--- LayoutTests/imported/w3c/web-platform-tests/dom/nodes/getElementsByClassName-30-expected.txt (revision 231394) >+++ LayoutTests/imported/w3c/web-platform-tests/dom/nodes/getElementsByClassName-30-expected.txt (working copy) >@@ -26,6 +26,7 @@ > q s samp small span strike strong sub sup colgroup > caption > th >-td tt u >+td >+ tt u > ul > var >Index: LayoutTests/imported/w3c/web-platform-tests/html/syntax/parsing/html5lib_menuitem-element-expected.txt >=================================================================== >--- LayoutTests/imported/w3c/web-platform-tests/html/syntax/parsing/html5lib_menuitem-element-expected.txt (revision 231394) >+++ LayoutTests/imported/w3c/web-platform-tests/html/syntax/parsing/html5lib_menuitem-element-expected.txt (working copy) >@@ -22,6 +22,7 @@ > PASS html5lib_menuitem-element.html 6d596b9e342db2306365fbdfb7615377c5b26347 > PASS html5lib_menuitem-element.html 4b712b488be9ee047c139c1b0cd955bae990b8e5 > afcd3b1e3317ac609ddab924d836ba1e3873b80f >+ > Input > > <!DOCTYPE html><body><menuitem>A<menuitem>B >@@ -48,6 +49,7 @@ > | <menuitem> > | "B" > 95c0c6923fe609297c1592f2cb82bb9f2d0f5aed >+ > Input > > <!DOCTYPE html><body><menuitem>A<menu>B</menu> >@@ -74,6 +76,7 @@ > | <menu> > | "B" > e2772fe779cbcefb4458f169a0cd495cf7115845 >+ > Input > > <!DOCTYPE html><body><menuitem>A<hr>B >Index: LayoutTests/imported/w3c/web-platform-tests/html/syntax/parsing/html5lib_tests11-expected.txt >=================================================================== >--- LayoutTests/imported/w3c/web-platform-tests/html/syntax/parsing/html5lib_tests11-expected.txt (revision 231394) >+++ LayoutTests/imported/w3c/web-platform-tests/html/syntax/parsing/html5lib_tests11-expected.txt (working copy) >@@ -18,6 +18,7 @@ > PASS html5lib_tests11.html af40d26164229c29b9be77ed6dd7dda780cba55c > PASS html5lib_tests11.html 16e68d18f8f0fb81013fe77a30b7d396c5081e5e > 0e5897aafe87e460f84576c2d1d983504d12a7db >+ > Input > > <!DOCTYPE html><body><svg attributename='' attributetype='' basefrequency='' baseprofile='' calcmode='' clippathunits='' diffuseconstant='' edgemode='' filterunits='' filterres='' glyphref='' gradienttransform='' gradientunits='' kernelmatrix='' kernelunitlength='' keypoints='' keysplines='' keytimes='' lengthadjust='' limitingconeangle='' markerheight='' markerunits='' markerwidth='' maskcontentunits='' maskunits='' numoctaves='' pathlength='' patterncontentunits='' patterntransform='' patternunits='' pointsatx='' pointsaty='' pointsatz='' preservealpha='' preserveaspectratio='' primitiveunits='' refx='' refy='' repeatcount='' repeatdur='' requiredextensions='' requiredfeatures='' specularconstant='' specularexponent='' spreadmethod='' startoffset='' stddeviation='' stitchtiles='' surfacescale='' systemlanguage='' tablevalues='' targetx='' targety='' textlength='' viewbox='' viewtarget='' xchannelselector='' ychannelselector='' zoomandpan=''></svg> >@@ -156,6 +157,7 @@ > | yChannelSelector="" > | zoomAndPan="" > a8f7a23601363454b4a13f66aed99ec9708ae87b >+ > Input > > <!DOCTYPE html><body><svg contentScriptType='' contentStyleType='' externalResourcesRequired='' filterRes=''></svg> >@@ -184,6 +186,7 @@ > | externalResourcesRequired="" > | filterRes="" > f8f7f6c576acc9eb874acb0dce6988f0f7b6fc5f >+ > Input > > <!DOCTYPE html><body><svg CONTENTSCRIPTTYPE='' CONTENTSTYLETYPE='' EXTERNALRESOURCESREQUIRED='' FILTERRES=''></svg> >@@ -212,6 +215,7 @@ > | externalResourcesRequired="" > | filterRes="" > fb4dc9f70129a8a045fca3a1e3acee052d0990b3 >+ > Input > > <!DOCTYPE html><body><svg contentscripttype='' contentstyletype='' externalresourcesrequired='' filterres=''></svg> >Index: LayoutTests/imported/w3c/web-platform-tests/html/syntax/parsing/html5lib_tests21-expected.txt >=================================================================== >--- LayoutTests/imported/w3c/web-platform-tests/html/syntax/parsing/html5lib_tests21-expected.txt (revision 231394) >+++ LayoutTests/imported/w3c/web-platform-tests/html/syntax/parsing/html5lib_tests21-expected.txt (working copy) >@@ -25,6 +25,7 @@ > PASS html5lib_tests21.html 671f606f5cb7033854d99b96b040994f0f451496 > PASS html5lib_tests21.html caa80af33c7880aaddd17824efff1774ece01325 > 80607dd011814b8d3ef5c9ca380fec044dd5e1aa >+ > Input > > <!DOCTYPE html><svg><![CDATA[foo]]]> >@@ -47,6 +48,7 @@ > | <svg svg> > | "foo]]]>" > c9f579bf49de2d4c553d03e43772c0d94be474c0 >+ > Input > > <!DOCTYPE html><svg><![CDATA[foo]]]]]> >Index: LayoutTests/imported/w3c/web-platform-tests/html/syntax/parsing/html5lib_tests25-expected.txt >=================================================================== >--- LayoutTests/imported/w3c/web-platform-tests/html/syntax/parsing/html5lib_tests25-expected.txt (revision 231394) >+++ LayoutTests/imported/w3c/web-platform-tests/html/syntax/parsing/html5lib_tests25-expected.txt (working copy) >@@ -22,6 +22,7 @@ > PASS html5lib_tests25.html 7f684d19be362ec9aa4fe7ecbba4ff3fc9730a43 > PASS html5lib_tests25.html d79f9119d02447226cc2d151044e6cffc5409e81 > de4aa726e09215ba9c50b97d257e6c6b880107f1 >+ > Input > > <!DOCTYPE html><body><command>A >Index: LayoutTests/imported/w3c/web-platform-tests/html/syntax/parsing/html5lib_webkit02-expected.txt >=================================================================== >--- LayoutTests/imported/w3c/web-platform-tests/html/syntax/parsing/html5lib_webkit02-expected.txt (revision 231394) >+++ LayoutTests/imported/w3c/web-platform-tests/html/syntax/parsing/html5lib_webkit02-expected.txt (working copy) >@@ -19,6 +19,7 @@ > PASS html5lib_webkit02.html 21a5b2b413c4db8ed588334b9a50dea9872bbcfa > PASS html5lib_webkit02.html 90d3f6f2dff994f63293ca46f7cd50a75cde96a6 > 6e33515b4dc011dd390d433a6358bf68b786b1fd >+ > Input > > <b><em><foo><foo><foo><aside></b></em> >Index: LayoutTests/inspector/console/js-isLikelyStackTrace-expected.txt >=================================================================== >--- LayoutTests/inspector/console/js-isLikelyStackTrace-expected.txt (revision 231394) >+++ LayoutTests/inspector/console/js-isLikelyStackTrace-expected.txt (working copy) >@@ -1,5 +1,6 @@ > Test stack trace detection heuristic. > >+ > == Running test suite: WI.StackTrace.isLikelyStackTrace > -- Running test case: notStacktrace > PASS: Should NOT be a stacktrace. >Index: LayoutTests/inspector/console/js-source-locations-expected.txt >=================================================================== >--- LayoutTests/inspector/console/js-source-locations-expected.txt (revision 231394) >+++ LayoutTests/inspector/console/js-source-locations-expected.txt (working copy) >@@ -7,6 +7,7 @@ > CONSOLE MESSAGE: line 9: error 1 > CONSOLE MESSAGE: line 10: error 2 > Tests that JavaScript errors and warnings from inline script tags and external files are sent to the console with correct line and column information. >+ > {"source":"console-api","level":"error","text":"error script","location":"errors.js:1:14","parameters":[{"type":"string"}]} > {"source":"console-api","level":"warning","text":"warn script","location":"errors.js:1:44","parameters":[{"type":"string"}]} > {"source":"console-api","level":"error","text":"error script","location":"errors.js:5:18","parameters":[{"type":"string"}]} >Index: LayoutTests/platform/mac/accessibility/table-cells-roles-expected.txt >=================================================================== >--- LayoutTests/platform/mac/accessibility/table-cells-roles-expected.txt (revision 231394) >+++ LayoutTests/platform/mac/accessibility/table-cells-roles-expected.txt (working copy) >@@ -5,6 +5,7 @@ > 3. Ukraine Kiev > All 3 countries 3 capitals > >+ > table2 > No Country Capital > 1. Germany Berlin >Index: LayoutTests/platform/mac/accessibility/table-roles-hierarchy-expected.txt >=================================================================== >--- LayoutTests/platform/mac/accessibility/table-roles-hierarchy-expected.txt (revision 231394) >+++ LayoutTests/platform/mac/accessibility/table-roles-hierarchy-expected.txt (working copy) >@@ -5,6 +5,7 @@ > All 3 countries 3 capitals > > >+ > This shows the hierarchy of table roles. > > role: AXRole: AXTable >Index: LayoutTests/tiled-drawing/scrolling/non-fast-region/wheel-handler-region-basic-expected.txt >=================================================================== >--- LayoutTests/tiled-drawing/scrolling/non-fast-region/wheel-handler-region-basic-expected.txt (revision 231394) >+++ LayoutTests/tiled-drawing/scrolling/non-fast-region/wheel-handler-region-basic-expected.txt (working copy) >@@ -1,5 +1,6 @@ > Some text >-Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. here Container >+Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. >+here Container > Intermediate > Child > Container
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Formatted Diff
|
Diff
Attachments on
bug 185465
:
339933
|
339934
|
339939
|
339941
|
339942
|
339944
|
339951
|
339985
|
340135