RESOLVED FIXED 65969
[Qt] http/tests/misc/object-embedding-svg-delayed-size-negotiation-2.htm fails intermittently
https://bugs.webkit.org/show_bug.cgi?id=65969
Summary [Qt] http/tests/misc/object-embedding-svg-delayed-size-negotiation-2.htm fail...
Csaba Osztrogonác
Reported 2011-08-10 02:43:27 PDT
http/tests/misc/object-embedding-svg-delayed-size-negotiation-2.htm introduced in 88913
Attachments
actual png - failing result (8.17 KB, image/png)
2011-08-10 03:18 PDT, Csaba Osztrogonác
no flags
first repro on mac slightly different png (9.98 KB, image/png)
2011-08-12 01:55 PDT, Nikolas Zimmermann
no flags
Patch (6.34 KB, patch)
2011-08-26 00:52 PDT, Nikolas Zimmermann
zherczeg: review-
Patch v2 (6.34 KB, patch)
2011-08-26 01:38 PDT, Nikolas Zimmermann
zherczeg: review-
Patch v3 (6.42 KB, patch)
2011-08-26 02:19 PDT, Nikolas Zimmermann
zherczeg: review+
Csaba Osztrogonác
Comment 1 2011-08-10 02:43:50 PDT
The correct result was changed to the failing result by https://trac.webkit.org/changeset/92554
Csaba Osztrogonác
Comment 3 2011-08-10 03:20:15 PDT
you can easily reproduce it with: Tools/Scripts/old-run-webkit-tests LayoutTests/http/tests/misc/object-embedding-svg-delayed-size-negotiation-2.htm --wait-for-httpd --iterations 100 --exit-after-n-failures --platform qt -p test was skpped by https://trac.webkit.org/changeset/92761
Nikolas Zimmermann
Comment 4 2011-08-12 01:54:52 PDT
(In reply to comment #2) > Created an attachment (id=103460) [details] > actual png - failing result > > expected result: > http://trac.webkit.org/browser/trunk/LayoutTests/platform/qt/http/tests/misc/object-embedding-svg-delayed-size-negotiation-2-expected.png This is very convincing that the bug is visible on screen, not just in the DRT dumps, which I assumed so far. I wish we had all bots running pixel tests :( Thanks, Ossy. Would you want to debug this on Qt, or do you know anyone who might want to investigate? I've a hard time reproducing this on mac - I've never been able to do it so far. (In reply to comment #3) > you can easily reproduce it with: > Tools/Scripts/old-run-webkit-tests LayoutTests/http/tests/misc/object-embedding-svg-delayed-size-negotiation-2.htm --wait-for-httpd --iterations 100 --exit-after-n-failures --platform qt -p You made my day! I had no luck in reproducing any of the svg/zoom/page/* problems on my both macs so far that were visible on gtk/qt/chromium/win (zoom-object* tests are flakey). But using this specific test, I can reproduce the problem, finally! 99 test cases (99%) succeeded 1 test case (1%) had incorrect layout Hopefully I'm now able to find the root issue.
Nikolas Zimmermann
Comment 5 2011-08-12 01:55:26 PDT
Created attachment 103753 [details] first repro on mac slightly different png
Nikolas Zimmermann
Comment 6 2011-08-24 05:52:40 PDT
Okay, I found the problem, and will upload a patch soon. I traced this down with QtWebKit/Mac. I must say that's no fun - build-webkit --qt --debug takes 23minutes on my macbook, when editing a single .cpp file and rebuilding :( Glad it's over now :-)
Nikolas Zimmermann
Comment 7 2011-08-26 00:52:13 PDT
Created attachment 105325 [details] Patch Tried this patch with a from-scratch rebuilt of Qt/Mac debug, and ran the testcase 1000 tests with old-run-webkit-tests --iterations 1000 -p ... Works w/o problems now!
Zoltan Herczeg
Comment 8 2011-08-26 01:25:49 PDT
Comment on attachment 105325 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=105325&action=review > Source/WebCore/page/FrameView.cpp:2754 > + HashSet<RefPtr<FrameView> > frameViews; > + collectFrameViewChildren(this, frameViews); Why do you use HashSet<> here? For me it seems a simple Vector would be enough which is much faster and use less sytem resources.
Nikolas Zimmermann
Comment 9 2011-08-26 01:30:34 PDT
(In reply to comment #8) > (From update of attachment 105325 [details]) > View in context: https://bugs.webkit.org/attachment.cgi?id=105325&action=review > > > Source/WebCore/page/FrameView.cpp:2754 > > + HashSet<RefPtr<FrameView> > frameViews; > > + collectFrameViewChildren(this, frameViews); > > Why do you use HashSet<> here? For me it seems a simple Vector would be enough which is much faster and use less sytem resources. Yes, you're just right! Uploading a revised version.
Nikolas Zimmermann
Comment 10 2011-08-26 01:38:56 PDT
Created attachment 105331 [details] Patch v2
Zoltan Herczeg
Comment 11 2011-08-26 01:54:16 PDT
Comment on attachment 105331 [details] Patch v2 View in context: https://bugs.webkit.org/attachment.cgi?id=105331&action=review > Source/WebCore/page/FrameView.cpp:119 > + , m_inLayoutParentView(false) Throw a #if ENABLE(SVG) around it. > Source/WebCore/page/FrameView.h:403 > + bool m_inLayoutParentView; Ditto.
Nikolas Zimmermann
Comment 12 2011-08-26 02:18:42 PDT
(In reply to comment #11) > (From update of attachment 105331 [details]) > View in context: https://bugs.webkit.org/attachment.cgi?id=105331&action=review > > > Source/WebCore/page/FrameView.cpp:119 > > + , m_inLayoutParentView(false) > > Throw a #if ENABLE(SVG) around it. > > > Source/WebCore/page/FrameView.h:403 > > + bool m_inLayoutParentView; > > Ditto. Ok, shall I upload a new version?
Nikolas Zimmermann
Comment 13 2011-08-26 02:19:49 PDT
Created attachment 105336 [details] Patch v3 Uploading the final version, if we need to rollout the patch, this makes it easier.
Zoltan Herczeg
Comment 14 2011-08-26 02:30:33 PDT
Comment on attachment 105336 [details] Patch v3 Nice patch. r=me
Nikolas Zimmermann
Comment 15 2011-08-26 04:20:26 PDT
Landed in r93862. Didn't cause any regressions. Unskipped the test in r93864 on Qt, it may need a rebaseline.
Note You need to log in before you can comment on or make changes to this bug.