RESOLVED FIXED Bug 176279
Fix a few minor problems found while working toward removing unneeded calls to updateStyle
https://bugs.webkit.org/show_bug.cgi?id=176279
Summary Fix a few minor problems found while working toward removing unneeded calls t...
Darin Adler
Reported 2017-09-02 11:46:21 PDT
Fix a few minor problems found while working toward removing unneeded calls to updateStyle
Attachments
Patch (19.12 KB, patch)
2017-09-02 12:03 PDT, Darin Adler
no flags
Archive of layout-test-results from ews100 for mac-elcapitan (1.41 MB, application/zip)
2017-09-02 13:11 PDT, Build Bot
no flags
Archive of layout-test-results from ews105 for mac-elcapitan-wk2 (1.47 MB, application/zip)
2017-09-02 13:16 PDT, Build Bot
no flags
Archive of layout-test-results from ews113 for mac-elcapitan (2.13 MB, application/zip)
2017-09-02 13:33 PDT, Build Bot
no flags
Archive of layout-test-results from ews126 for ios-simulator-wk2 (1.27 MB, application/zip)
2017-09-02 13:39 PDT, Build Bot
no flags
Patch (26.37 KB, patch)
2017-09-03 17:36 PDT, Darin Adler
koivisto: review+
Darin Adler
Comment 1 2017-09-02 12:03:34 PDT Comment hidden (obsolete)
Build Bot
Comment 2 2017-09-02 13:11:13 PDT Comment hidden (obsolete)
Build Bot
Comment 3 2017-09-02 13:11:14 PDT Comment hidden (obsolete)
Build Bot
Comment 4 2017-09-02 13:16:12 PDT Comment hidden (obsolete)
Build Bot
Comment 5 2017-09-02 13:16:13 PDT Comment hidden (obsolete)
Build Bot
Comment 6 2017-09-02 13:33:50 PDT Comment hidden (obsolete)
Build Bot
Comment 7 2017-09-02 13:33:51 PDT Comment hidden (obsolete)
Build Bot
Comment 8 2017-09-02 13:39:43 PDT Comment hidden (obsolete)
Build Bot
Comment 9 2017-09-02 13:39:44 PDT Comment hidden (obsolete)
Darin Adler
Comment 10 2017-09-03 17:36:00 PDT
Darin Adler
Comment 11 2017-09-03 22:24:23 PDT
Passing all EWS now. Ready for someone to review.
Antti Koivisto
Comment 12 2017-09-04 13:23:35 PDT
Comment on attachment 319820 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=319820&action=review > Source/WebCore/dom/Document.cpp:1574 > + auto* newTitleElement = m_titleElement.get(); > + if (is<SVGSVGElement>(documentElement)) { > + if (is<SVGTitleElement>(changingTitleElement)) { > + if (m_titleElement) > + newTitleElement = childrenOfType<SVGTitleElement>(*documentElement).first(); > + else if (changingTitleElement.parentNode() == documentElement) > + newTitleElement = &changingTitleElement; > + else > + newTitleElement = nullptr; > + } > + ASSERT(newTitleElement == childrenOfType<SVGTitleElement>(*documentElement).first()); > + } else { > + if (is<HTMLTitleElement>(changingTitleElement)) { > + if (m_titleElement) > + newTitleElement = descendantsOfType<HTMLTitleElement>(*this).first(); > + else if (changingTitleElement.isConnected() && !changingTitleElement.isInShadowTree()) > + newTitleElement = &changingTitleElement; > + else > + newTitleElement = nullptr; > + } > + ASSERT(newTitleElement == descendantsOfType<HTMLTitleElement>(*this).first()); > } I find this logic somewhat difficult to follow. Maybe having computeNewTitleElementForHTML/SVG helper lambdas would make this cleaner? > Source/WebCore/rendering/RenderTreeAsText.cpp:964 > + ASSERT(element); // FIXME: Take a reference instead of a pointer. Not sure if this sort FIXMEs achieve anything. It is pretty obvious from the code and we have tons of these still.
Darin Adler
Comment 13 2017-09-04 16:51:30 PDT
Comment on attachment 319820 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=319820&action=review >> Source/WebCore/dom/Document.cpp:1574 >> } > > I find this logic somewhat difficult to follow. Maybe having computeNewTitleElementForHTML/SVG helper lambdas would make this cleaner? I will see what I can do to make it easier to read. >> Source/WebCore/rendering/RenderTreeAsText.cpp:964 >> + ASSERT(element); // FIXME: Take a reference instead of a pointer. > > Not sure if this sort FIXMEs achieve anything. It is pretty obvious from the code and we have tons of these still. OK, dropped it.
Darin Adler
Comment 14 2017-09-04 20:29:50 PDT
Darin Adler
Comment 15 2017-09-04 20:55:30 PDT
Antti, the new version, still a bit complicated, but likely easier to read, is at <https://trac.webkit.org/changeset/221603/webkit#file3>.
Antti Koivisto
Comment 16 2017-09-04 21:45:12 PDT
Interesting solution! Definitely more readable.
Matt Lewis
Comment 17 2017-09-05 10:28:26 PDT
It looks like this revision (r221603) caused the test accessibility/mac/select-element-selection-with-optgroups.html to time out consistently on all macOS platforms. https://webkit-test-results.webkit.org/dashboards/flakiness_dashboard.html#showAllRuns=true&tests=accessibility%2Fmac%2Fselect-element-selection-with-optgroups.html giving this diff: --- /Volumes/Data/slave/sierra-release-tests-wk2/build/layout-test-results/accessibility/mac/select-element-selection-with-optgroups-expected.txt +++ /Volumes/Data/slave/sierra-release-tests-wk2/build/layout-test-results/accessibility/mac/select-element-selection-with-optgroups-actual.txt @@ -1,17 +1,5 @@ +#PID UNRESPONSIVE - com.apple.WebKit.WebContent.Development (pid 83065) +FAIL: Timed out waiting for notifyDone to be called -This tests that setting selection within a list box works correctly if there are optgroups - -On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE". - - -PASS selectElement.selectedChildrenCount is 0 -PASS selectElement.selectedChildrenCount became 1 -PASS selectElement.selectedChildAtIndex(0).isEqual(option1) is true -PASS selectElement.selectedChildrenCount became 1 -PASS selectElement.selectedChildAtIndex(0).isEqual(option2) is true -PASS selectElement.selectedChildrenCount became 1 -PASS selectElement.selectedChildAtIndex(0).isEqual(option3) is true -PASS successfullyParsed is true - -TEST COMPLETE - +#EOF +#EOF
Matt Lewis
Comment 18 2017-09-05 11:13:37 PDT
I was able to reproduce this timeout by using run-webkit-tests --no-retry-failures accessibility/mac/select-element-selection-with-optgroups.html Interestingly when run without the --no-retry-failures argument it passed the first couple of times but once it timed out after passing the argument it consistently timed out with or without it.
Matt Lewis
Comment 19 2017-09-05 11:16:01 PDT
Reverted r221603 for reason: This caused accessibility/mac/select-element-selection-with-optgroups.html to consistently timeout on macOS Committed r221626: <http://trac.webkit.org/changeset/221626>
Darin Adler
Comment 20 2017-09-05 19:38:24 PDT
Will re-land after fixing the test.
Darin Adler
Comment 21 2017-09-05 20:33:17 PDT
I figure out what happened. I had the null check logic backwards in AccessibilityUIElement::setSelectedChild and somehow missed the test failure locally. Fixed now!
Darin Adler
Comment 22 2017-09-05 20:35:46 PDT
Matt Lewis
Comment 23 2017-09-06 09:52:34 PDT
Looks like the new patch broke the windows builds: https://build.webkit.org/builders/Apple%20Win%20Debug%20(Build)/builds/3816 https://build.webkit.org/builders/Apple%20Win%20Debug%20(Build)/builds/3816/steps/compile-webkit/logs/stdio This probably wasn't seen because the build was broken from another revision when the original patch from this bug was landed. The bad patch was rolled out and now we can see the build break from this revision.
Matt Lewis
Comment 24 2017-09-06 09:53:39 PDT
The first error given: c:\cygwin\home\buildbot\slave\win-debug\build\source\webcore\dom\Document.cpp(1570): error C2446: ':': no conversion from 'WebCore::Document::updateTitleElement::<lambda_16b62001404c23de7212dde0d19dd8c0>' to 'WebCore::Document::updateTitleElement::<lambda_8c64903d313d33c5fcf4c4945dc4e7bd>' [C:\cygwin\home\buildbot\slave\win-debug\build\WebKitBuild\Debug\Source\WebCore\WebCore.vcxproj] c:\cygwin\home\buildbot\slave\win-debug\build\source\webcore\dom\Document.cpp(1570): note: No user-defined-conversion operator available that can perform this conversion, or the operator cannot be called
Ryan Haddad
Comment 25 2017-09-06 10:51:48 PDT
(In reply to Matt Lewis from comment #23) > Looks like the new patch broke the windows builds: > https://build.webkit.org/builders/Apple%20Win%20Debug%20(Build)/builds/3816 > https://build.webkit.org/builders/Apple%20Win%20Debug%20(Build)/builds/3816/ > steps/compile-webkit/logs/stdio > > This probably wasn't seen because the build was broken from another revision > when the original patch from this bug was landed. The bad patch was rolled > out and now we can see the build break from this revision. It looks like Per is taking care of this in https://bugs.webkit.org/show_bug.cgi?id=176381
Radar WebKit Bug Importer
Comment 26 2017-09-27 12:39:58 PDT
Note You need to log in before you can comment on or make changes to this bug.