RESOLVED FIXED 180607
Web Inspector: get rid of remaining uses of OptOutput<T>
https://bugs.webkit.org/show_bug.cgi?id=180607
Summary Web Inspector: get rid of remaining uses of OptOutput<T>
Blaze Burg
Reported 2017-12-08 14:24:38 PST
Gross
Attachments
Patch (156.60 KB, patch)
2018-02-14 21:50 PST, Darin Adler
no flags
Patch (158.03 KB, patch)
2018-02-15 11:57 PST, Darin Adler
no flags
Patch (179.25 KB, patch)
2018-02-15 14:06 PST, Darin Adler
no flags
Patch (182.38 KB, patch)
2018-02-15 15:20 PST, Darin Adler
no flags
Darin Adler
Comment 1 2018-02-14 21:50:47 PST
EWS Watchlist
Comment 2 2018-02-14 21:51:31 PST
This patch modifies the inspector protocol generator. Please ensure that you have rebaselined any generator test results (i.e., by running `Tools/Scripts/run-inspector-generator-tests --reset-results`)
Darin Adler
Comment 3 2018-02-15 11:57:40 PST
Blaze Burg
Comment 4 2018-02-15 13:26:59 PST
Comment on attachment 333928 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=333928&action=review r=me, great cleanup! Thanks! > Source/JavaScriptCore/inspector/InspectorProtocolTypes.h:36 > +template<typename> struct BindingTraits; I didn't know you could do that.
Darin Adler
Comment 5 2018-02-15 14:06:58 PST
Darin Adler
Comment 6 2018-02-15 15:20:05 PST
Darin Adler
Comment 7 2018-02-15 18:14:33 PST
Radar WebKit Bug Importer
Comment 8 2018-02-15 18:15:29 PST
Claudio Saavedra
Comment 9 2018-02-16 05:13:28 PST
This change seems to have broken inspector/heap/getPreview.html, in WebKitGTK+ and Mac as well. Might be related to the change in signature of InspectorHeapAgent::getPreview(), but I am not sure. Please check it? Below is the failure diff. Seems that the string variable in the test is undefined. --- /home/slave/webkitgtk/gtk-linux-64-release-tests/build/layout-test-results/inspector/heap/getPreview-expected.txt +++ /home/slave/webkitgtk/gtk-linux-64-release-tests/build/layout-test-results/inspector/heap/getPreview-actual.txt @@ -9,7 +9,7 @@ -- Running test case: GetPreviewForString PASS: Should not have an error creating a snapshot. PASS: Should not have an error getting preview. -STRING: This is the test string. +STRING: undefined -- Running test case: GetPreviewForFunction PASS: Should not have an error creating a snapshot.
Matt Lewis
Comment 10 2018-02-16 10:42:18 PST
It looks like it has actually cause the same test to crash with an assertion failure on Debug macOS testers as well. sderr: LEAK: 6 CachedResource LEAK: 25 WebCoreNode Assertion failed: (initialized()), function operator*, file /Volumes/Data/slave/highsierra-debug/build/WebKitBuild/Debug/usr/local/include/wtf/Optional.h, line 595. LEAK: 2 WebPageProxy https://build.webkit.org/results/Apple%20High%20Sierra%20Debug%20WK2%20(Tests)/r228557%20(2088)/results.html https://build.webkit.org/builders/Apple%20High%20Sierra%20Debug%20WK2%20(Tests)/builds/2088
Matt Lewis
Comment 11 2018-02-16 10:52:28 PST
Reverted r228546 for reason: This caused a consistent crash on all macOS WK2 platforms. Committed r228563: <https://trac.webkit.org/changeset/228563>
Blaze Burg
Comment 12 2018-02-16 10:58:53 PST
(In reply to Claudio Saavedra from comment #9) > This change seems to have broken inspector/heap/getPreview.html, in > WebKitGTK+ and Mac as well. Might be related to the change in signature of > InspectorHeapAgent::getPreview(), but I am not sure. Please check it? Below > is the failure diff. Seems that the string variable in the test is undefined. > > > --- > /home/slave/webkitgtk/gtk-linux-64-release-tests/build/layout-test-results/ > inspector/heap/getPreview-expected.txt > +++ > /home/slave/webkitgtk/gtk-linux-64-release-tests/build/layout-test-results/ > inspector/heap/getPreview-actual.txt > @@ -9,7 +9,7 @@ > -- Running test case: GetPreviewForString > PASS: Should not have an error creating a snapshot. > PASS: Should not have an error getting preview. > -STRING: This is the test string. > +STRING: undefined > > -- Running test case: GetPreviewForFunction > PASS: Should not have an error creating a snapshot. The code used to do *result = ..., but now it should not use operator*. It should just assign to result. So the crash is using operator* on an empty std::optional. (I'm not sure what the semantics of this, or whether it's allowed. Should just not use operator* here.) As for the other ServiceWorker crashes, I have no idea what's going on and it looks like unrelated code.
Darin Adler
Comment 13 2018-02-17 11:10:21 PST
Darin Adler
Comment 14 2018-02-17 11:10:39 PST
Re-landed with the offending "*" character removed.
Claudio Saavedra
Comment 15 2018-02-19 01:04:11 PST
Thanks, test passing again.
Note You need to log in before you can comment on or make changes to this bug.