Closed Bug 1625249 Opened 5 years ago Closed 4 years ago

Hit-testing produces incorrect result with SVG over iframe element

Categories

(Core :: Panning and Zooming, defect, P3)

defect

Tracking

()

RESOLVED FIXED
mozilla77
Fission Milestone M7
Tracking Status
firefox75 --- wontfix
firefox76 --- wontfix
firefox77 --- fixed
firefox78 --- fixed

People

(Reporter: yzen, Assigned: kats)

References

(Depends on 1 open bug, Blocks 2 open bugs)

Details

(Whiteboard: [apz:fission:8:M])

Attachments

(3 files, 2 obsolete files)

+++ This bug was initially created as a clone of Bug #1625173 +++

This issue is related to having an SVG overlay in the parent process that is over the OOP iframe. SVG is in the iframe that has pointer-events: none; and the svg/path elements have pointer-events: none; as well. When trying to trigger mouse over events over the iframe, they end up firing in the top level content process.

Parent process display list dump: https://gist.github.com/yzen/5f12a99c50ea40f697b92a0c181e5b6a
Content process display list dump: https://gist.github.com/yzen/dd75854d4d833478e626d3503e9f2f37

Attached file Bug 1625249 - issue (obsolete) (deleted) —

Per discussion in #gfx it's not obvious why the events are being mistargeted. The iframe has pointer-events:none which means that the entire SVG subdocument has ForceEmptyHitRegion set (which we ignore on the APZ side, see bug 1566599) but also means that there are no CompositorHitTestInfo items generated for anything in the SVG subdocument. So I would expect the hit-test to find whatever is under the SVG, which would be the actual OOP iframe content. It's not clear to me why that's not happening, will have to investigate.

This is a Patch (https://phabricator.services.mozilla.com/D68427) that will display an issue when applied. The code in there is not really relevant, I believe, just has a new implementation of the parent process highlighting for devtools in fission.

STR:

  • I usually test on this page: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/iframe
  • Prefs I enable for testing: fission.autostart: true, gfx.webrender.all: true, devtools.contenttoolbox.fission: true, devtools.accessibility.use-new-highlighter: true
  • Open developer tools and accessibility tab. This should trigger a drawing of the svg overlay over content.
  • At this point mousemove events over IFRAME will only fire in top level content only.

Thanks for the STR. I'll park this with me while I do initial investigation.

Assignee: nobody → kats
Attached file Bug 1625249 - wip test case (obsolete) (deleted) —

This is a quick test case with an issue. It currently fails (times out) for both --enable-fission and --enable-fission + --enable-webrender.

The reason it fails (times out) for just --enable-fission is because I can't figure out why EventUtils.synthesizeMouseAtPoint is only triggering click in top level parent even though if I manually click on the iframe the test completes successfully. In case with --enable-webrender set as well, the test will time out regardless.

I'm pretty sure EventUtils.synthesizeMouseAtPoint doesn't route the event through APZ. It just dispatches it to the gecko main-thread hit-testing code. You need to use one of the DOMWindowUtils.synthesizeNativeXXX functions to have it synthesized at the widget level and go through APZ hit-testing.

Ok, I chased down the problem here. My expectation was that since the SVG had pointer-events:none set on it, there would be no CompositorHitTestInfo items generated inside it, and so it would effectively be invisible to the APZ+WR hit-test. This would then mean that the hit-test would fall on the underlying OOPIF, and everything would work.

The problem is that for some SVG elements, this code gets hit, and it does set some hit-test flags even inside the pointer-events:none SVG, because it doesn't check for aBuilder->IsInsidePointerEventsNoneDoc() like we do in the normal codepath.

So what happens is that some part of the SVG has an eIrregularArea flag set on it with the parent process layers id which then ends up causing the APZ+WR hit-test to return the parent process layers id. Fixing either bug 1566599 or bug 1542020 would resolve this. Or we can also put in a local fix to check IsInsidePointerEventsNoneDoc() which would solve this specific scenario but leave other scenarios unfixed. I tested this approach locally and it does seem to make the test pass.

(In reply to Kartikaya Gupta (email:kats@mozilla.com) from comment #9)

I tested this approach locally and it does seem to make the test pass.

Actually my fix didn't quite work, it seems that calling IsInsidePointerEventsNoneDoc() at that location is not easy because for some reason we hit the assertion here. I don't think it's worth digging into that approach more than I already have since it seems like a bit of a hacky workaround when we'll need a proper fix for both of the other bugs anyway. So we might as well just do that.

Unassigning this for now but I'll pick up bug 1566599 as it shouldn't be too complicated to fix.

Assignee: kats → nobody

I wrote patches to fix bug 1566599 but they didn't fix this problem. I discovered a few additional things that would need to be changed (at least) to make those patches fix this bug too:

  • The test sets pointer-events:none on the root <svg> element, which is actually inside the subdocument. So it wouldn't set the ForceEmptyHitRegion flag on the SVG document anyway.
  • But even if move the pointer-events up to the enclosing iframe element, the SVG is an in-process subdocument and not an OOP subdocument, so we use nsDisplaySubdocument instead of nsDisplayRemote and don't propagate the ForceEmptyHitRegion flag to APZ.
  • All of which is moot because the hit result from WR produces the root layers id and a NULL_SCROLL_ID scroll id, because there's no scrollable subframe on the path from the root to the SVG. So when APZ tries to find the corresponding HitTestingTreeNode and check if there is a ForceEmptyHitRegion flag on it, it doesn't find any HTTN at all.

Also while digging around I discovered that nsDisplaySubDocument::ComputeScrollMetadata is unused, and has been since bug 1577859. However I might need to start using it again to resolve one or more of the above issues so I'm not going to remove it just yet.

It's looking more and more like I should make sure the hit-test information emitted in the SVG grouping code in WebRenderCommandBuilder is correct.

With moar fixes yesterday I got it to the point where I think the APZ hit-test is producing the correct result on this testcase. However the listeners in the test are not actually firing, and I'm not sure why. I see the mousedown/mouseup listeners arriving in BrowserChild.cpp for what I think is the correct content process, but I haven't traced to see what's happening between that point and the event listeners that the test registers.

I'll post what I have so far as WIPs, the patches will be split across bug 1566599 and this bug. :yzen hopefully that will be enough to unblock you for now, as I don't want to land the patches without also writing some APZ tests for those codepaths.

For future reference, I'm running MOZ_LOG="apz.inputqueue:4,apz.inputstate:4,apz.manager:4,apz.child:4" ./mach mochitest --setpref test.events.async.enabled=true --enable-webrender --enable-fission devtools/client/accessibility/test/browser/browser_pointer_events.js on this revision

(In reply to Kartikaya Gupta (email:kats@mozilla.com) from comment #12)

With moar fixes yesterday I got it to the point where I think the APZ hit-test is producing the correct result on this testcase. However the listeners in the test are not actually firing, and I'm not sure why. I see the mousedown/mouseup listeners arriving in BrowserChild.cpp for what I think is the correct content process, but I haven't traced to see what's happening between that point and the event listeners that the test registers.

I'll post what I have so far as WIPs, the patches will be split across bug 1566599 and this bug. :yzen hopefully that will be enough to unblock you for now, as I don't want to land the patches without also writing some APZ tests for those codepaths.

For future reference, I'm running MOZ_LOG="apz.inputqueue:4,apz.inputstate:4,apz.manager:4,apz.child:4" ./mach mochitest --setpref test.events.async.enabled=true --enable-webrender --enable-fission devtools/client/accessibility/test/browser/browser_pointer_events.js on this revision

Thanks! I was not sure as well why they do not get through in test, I have a feeling it has something to do with nsIDOMWindowUtils::sendMouseEvent not doing exactly the same thing as the real mouse event..

(In reply to Yura Zenevich [:yzen] from comment #15)

Thanks! I was not sure as well why they do not get through in test, I have a feeling it has something to do with nsIDOMWindowUtils::sendMouseEvent not doing exactly the same thing as the real mouse event..

That's possible, I haven't looked at those codepaths very carefully. I would recommend using the "native" variants of the DOMWindowUtils functions, see e.g. https://searchfox.org/mozilla-central/rev/fa2df28a49883612bd7af4dacd80cdfedcccd2f6/gfx/layers/apz/test/mochitest/apz_test_native_event_utils.js#519 which we use in APZ testing code. The intent of those functions is to simulate as closely as possible real user input, which will go through APZ hit-testing.

(In reply to Kartikaya Gupta (email:kats@mozilla.com) from comment #16)

(In reply to Yura Zenevich [:yzen] from comment #15)

Thanks! I was not sure as well why they do not get through in test, I have a feeling it has something to do with nsIDOMWindowUtils::sendMouseEvent not doing exactly the same thing as the real mouse event..

That's possible, I haven't looked at those codepaths very carefully. I would recommend using the "native" variants of the DOMWindowUtils functions, see e.g. https://searchfox.org/mozilla-central/rev/fa2df28a49883612bd7af4dacd80cdfedcccd2f6/gfx/layers/apz/test/mochitest/apz_test_native_event_utils.js#519 which we use in APZ testing code. The intent of those functions is to simulate as closely as possible real user input, which will go through APZ hit-testing.

OK, thanks, I'll try

Attachment #9136407 - Attachment is obsolete: true
Attachment #9136066 - Attachment is obsolete: true
Assignee: nobody → yzenevich
Status: NEW → ASSIGNED
Assignee: yzenevich → nobody
Status: ASSIGNED → NEW

@kats, Thanks for the patches and sorry it took a little time for me to get back to them! I managed to get a test case that passes with the stack of patches and fails without. The interesting thing is that it might be passing without patches if the tests are run in headless mode..
I posted the test case above that is not in gfx module, let me know if there's anything I can do to make it more useful.

I also tried the patches together with the actual highlighter implementation where the issue was discovered and it looks like it's working well with pointer events getting through into the right frame! Thanks

Assignee: nobody → yzenevich
Status: NEW → ASSIGNED

I got the patches in bug 1566599 finalized and put them up for review. Once those land, I'll do the same for these patches. Parking bug with me for now.

Assignee: yzenevich → kats

I've moved the test to the end of the patch queue so they all can land together whenever that happens.

Thanks. Sorry for the delay here, turns out the patches here cause an existing APZ test to fail and I need to debug the failure to figure out what's going on.

The test case failure seems to have a similar root cause as bug 1625173 so we might have to fix that one first. The SVGOuterSVG element isn't getting a hit-test info due to taking the early-exit codepath here.

Turns out my patch had a small bug that was causing the test failure. After fixing it looks like the tests are green: https://treeherder.mozilla.org/#/jobs?repo=try&group_state=expanded&selectedJob=299048455&revision=5797717009b6bc3bd9a8b7f07dc10cc2976d1626

Pushed by kgupta@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/7b3b764a0e4d Reduce levels of indentation. r=jrmuizel https://hg.mozilla.org/integration/autoland/rev/8c02d6099aa3 Do a better job of setting hit-test info on blobs. r=jrmuizel https://hg.mozilla.org/integration/autoland/rev/5d9701c4fb3b test hittest with SVG in parent over OOP iframe. r=kats

Yura, looks like the test is failing when run in the M-fis configuration (fission enabled by default, I guess?). And it seems to be failing because of a window leak. Do you have any ideas on what might be happening there?

I'm going to land the two patches for now and we can leave the bug open to fix the test.

Flags: needinfo?(kats)
Pushed by kgupta@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/20e5abd29c8f Reduce levels of indentation. r=jrmuizel https://hg.mozilla.org/integration/autoland/rev/523994a07ed7 Do a better job of setting hit-test info on blobs. r=jrmuizel

(for comment 27)

Flags: needinfo?(yzenevich)

(In reply to Kartikaya Gupta (email:kats@mozilla.com) from comment #29)

(for comment 27)

Yeah, I'll take a look and try to see if I can clean it up.

Flags: needinfo?(yzenevich)

I'll take the bug, I guess to finish the test.

Assignee: kats → yzenevich

Using flags to track the fix patches (which landed in 77), not the test (which will probably land in 78, but I guess could be uplifted).

Severity: normal → S3
Pushed by yura.zenevich@gmail.com: https://hg.mozilla.org/integration/autoland/rev/6e34a3e2c5c5 test hittest with SVG in parent over OOP iframe. r=kats
Backout by btara@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/4d6584d65e8a Backed out changeset 6e34a3e2c5c5 for browser_test_hittest_svg_over_iframe.js failures CLOSED TREE

Backed out changeset 6e34a3e2c5c5 (bug 1625249) for browser_test_hittest_svg_over_iframe.js failures

Push with failures: https://treeherder.mozilla.org/#/jobs?repo=autoland&searchStr=linux%2C18.04%2Cx64%2Cdebug%2Cmochitests%2Cwith%2Cfission%2Cenabled%2Ctest-linux1804-64%2Fdebug-mochitest-browser-chrome-fis-e10s-14%2Cm-fis%28bc14%29&fromchange=74707e8ecf389cde739b71b0c0978f4260ca669e&tochange=4d6584d65e8ac934bdb31e8afadf10549a8040fa&selectedTaskRun=ZKR1a9ptTb-vUh_bUieBkg-0

Backout link: https://hg.mozilla.org/integration/autoland/rev/4d6584d65e8ac934bdb31e8afadf10549a8040fa

Failure log: https://treeherder.mozilla.org/logviewer.html#/jobs?job_id=301113116&repo=autoland&lineNumber=20684

[task 2020-05-06T22:41:44.337Z] 22:41:44     INFO - TEST-START | gfx/layers/apz/test/mochitest/browser_test_hittest_svg_over_iframe.js
[task 2020-05-06T22:41:44.344Z] 22:41:44     INFO - GECKO(9633) | Chrome file doesn't exist: /builds/worker/workspace/build/tests/mochitest/browser/gfx/layers/apz/test/mochitest/head.js
[task 2020-05-06T22:41:44.393Z] 22:41:44     INFO - GECKO(9633) | [Child 10310: Main Thread]: I/DocShellAndDOMWindowLeak --DOMWINDOW == 2 (0x7f0c7d693350) [pid = 10310] [serial = 1] [outer = (nil)] [url = https://example.com/browser/gfx/layers/apz/test/mochitest/helper_fission_empty.html]
[task 2020-05-06T22:41:44.394Z] 22:41:44     INFO - GECKO(9633) | [Child 10310: Main Thread]: I/DocShellAndDOMWindowLeak --DOMWINDOW == 1 (0x7f0c61f3a000) [pid = 10310] [serial = 2] [outer = (nil)] [url = about:blank]
[task 2020-05-06T22:41:44.394Z] 22:41:44     INFO - GECKO(9633) | [Child 10310: Main Thread]: I/DocShellAndDOMWindowLeak --DOMWINDOW == 0 (0x7f0c61f44800) [pid = 10310] [serial = 3] [outer = (nil)] [url = https://example.com/browser/gfx/layers/apz/test/mochitest/helper_fission_empty.html]
[task 2020-05-06T22:41:44.394Z] 22:41:44     INFO - GECKO(9633) | [Child 10310, Main Thread] WARNING: NS_ENSURE_SUCCESS(rv, rv) failed with result 0x80004005 (NS_ERROR_FAILURE): file /builds/worker/checkouts/gecko/netwerk/base/nsNetUtil.cpp, line 2293
[task 2020-05-06T22:41:44.394Z] 22:41:44     INFO - GECKO(9633) | [Child 10310, Main Thread] WARNING: 'NS_FAILED(rv)', file /builds/worker/checkouts/gecko/caps/ContentPrincipal.cpp, line 398
[task 2020-05-06T22:41:44.394Z] 22:41:44     INFO - GECKO(9633) | [Child 10310, Main Thread] WARNING: NS_ENSURE_SUCCESS(rv, rv) failed with result 0x80004005 (NS_ERROR_FAILURE): file /builds/worker/checkouts/gecko/caps/ContentPrincipal.cpp, line 423
[task 2020-05-06T22:41:44.415Z] 22:41:44     INFO - GECKO(9633) | [Child 10283: Main Thread]: I/DocShellAndDOMWindowLeak --DOMWINDOW == 3 (0x7fc3ad4dd9f0) [pid = 10283] [serial = 4] [outer = (nil)] [url = about:blank]
[task 2020-05-06T22:41:44.415Z] 22:41:44     INFO - GECKO(9633) | [Child 10283: Main Thread]: I/DocShellAndDOMWindowLeak --DOMWINDOW == 2 (0x7fc3c8293350) [pid = 10283] [serial = 1] [outer = (nil)] [url = http://mochi.test:8888/browser/gfx/layers/apz/test/mochitest/helper_fission_animation_styling_in_transformed_oopif.html]
[task 2020-05-06T22:41:44.415Z] 22:41:44     INFO - GECKO(9633) | [Child 10283: Main Thread]: I/DocShellAndDOMWindowLeak --DOMWINDOW == 1 (0x7fc3acbca800) [pid = 10283] [serial = 5] [outer = (nil)] [url = about:blank]
[task 2020-05-06T22:41:44.415Z] 22:41:44     INFO - GECKO(9633) | [Child 10283: Main Thread]: I/DocShellAndDOMWindowLeak --DOMWINDOW == 0 (0x7fc3b29b8800) [pid = 10283] [serial = 3] [outer = (nil)] [url = http://mochi.test:8888/browser/gfx/layers/apz/test/mochitest/helper_fission_animation_styling_in_transformed_oopif.html]
[task 2020-05-06T22:41:44.415Z] 22:41:44     INFO - GECKO(9633) | [Child 10283, Main Thread] WARNING: NS_ENSURE_SUCCESS(rv, rv) failed with result 0x80004005 (NS_ERROR_FAILURE): file /builds/worker/checkouts/gecko/netwerk/base/nsNetUtil.cpp, line 2293
[task 2020-05-06T22:41:44.415Z] 22:41:44     INFO - GECKO(9633) | [Child 10283, Main Thread] WARNING: 'NS_FAILED(rv)', file /builds/worker/checkouts/gecko/caps/ContentPrincipal.cpp, line 398
[task 2020-05-06T22:41:44.415Z] 22:41:44     INFO - GECKO(9633) | [Child 10283, Main Thread] WARNING: NS_ENSURE_SUCCESS(rv, rv) failed with result 0x80004005 (NS_ERROR_FAILURE): file /builds/worker/checkouts/gecko/caps/ContentPrincipal.cpp, line 423
[task 2020-05-06T22:41:44.415Z] 22:41:44     INFO - GECKO(9633) | [Child 10283, Main Thread] WARNING: NS_ENSURE_SUCCESS(rv, rv) failed with result 0x80004005 (NS_ERROR_FAILURE): file /builds/worker/checkouts/gecko/netwerk/base/nsNetUtil.cpp, line 2293
[task 2020-05-06T22:41:44.415Z] 22:41:44     INFO - GECKO(9633) | [Child 10283, Main Thread] WARNING: 'NS_FAILED(rv)', file /builds/worker/checkouts/gecko/caps/ContentPrincipal.cpp, line 398
[task 2020-05-06T22:41:44.416Z] 22:41:44     INFO - GECKO(9633) | [Child 10283, Main Thread] WARNING: NS_ENSURE_SUCCESS(rv, rv) failed with result 0x80004005 (NS_ERROR_FAILURE): file /builds/worker/checkouts/gecko/caps/ContentPrincipal.cpp, line 423
[task 2020-05-06T22:41:44.457Z] 22:41:44     INFO - GECKO(9633) | [Child 10310, Main Thread] WARNING: Extra shutdown CC: 'i < NORMAL_SHUTDOWN_COLLECTIONS', file /builds/worker/checkouts/gecko/xpcom/base/nsCycleCollector.cpp, line 3359
[task 2020-05-06T22:41:44.457Z] 22:41:44     INFO - GECKO(9633) | [Child 10283, Main Thread] WARNING: Extra shutdown CC: 'i < NORMAL_SHUTDOWN_COLLECTIONS', file /builds/worker/checkouts/gecko/xpcom/base/nsCycleCollector.cpp, line 3359
[task 2020-05-06T22:41:44.505Z] 22:41:44     INFO - GECKO(9633) | ### XPCOM_MEM_BLOAT_LOG defined -- logging bloat/leaks to /tmp/tmpYfgevm.mozrunner/runtests_leaks_tab_pid10337.log
[task 2020-05-06T22:41:44.505Z] 22:41:44     INFO - GECKO(9633) | [10337, Main Thread] WARNING: XPCOM_MEM_BLOAT_LOG is set, disabling native allocations.: file /builds/worker/checkouts/gecko/tools/profiler/core/platform.cpp, line 225
[task 2020-05-06T22:41:44.581Z] 22:41:44     INFO - GECKO(9633) | [Parent 9633, Main Thread] WARNING: NS_ENSURE_TRUE(mPresShell) failed: file /builds/worker/checkouts/gecko/layout/generic/nsFrameSelection.cpp, line 1549
[task 2020-05-06T22:41:44.838Z] 22:41:44     INFO - GECKO(9633) | [Child 10337, Main Thread] WARNING: could not set real-time limit at process startup: file /builds/worker/checkouts/gecko/dom/ipc/ContentChild.cpp, line 1669
[task 2020-05-06T22:41:44.838Z] 22:41:44     INFO - GECKO(9633) | [Child 10337: Main Thread]: I/DocShellAndDOMWindowLeak ++DOCSHELL 0x7fb22a897800 == 1 [pid = 10337] [id = {301931b0-681e-4ba4-84e2-aa714bf6fcbb}]
[task 2020-05-06T22:41:44.854Z] 22:41:44     INFO - GECKO(9633) | [Child 10337: Main Thread]: I/DocShellAndDOMWindowLeak ++DOMWINDOW == 1 (0x7fb240093350) [pid = 10337] [serial = 1] [outer = (nil)]
[task 2020-05-06T22:41:44.855Z] 22:41:44     INFO - GECKO(9633) | [Child 10337: Main Thread]: I/DocShellAndDOMWindowLeak ++DOMWINDOW == 2 (0x7fb22a7b6000) [pid = 10337] [serial = 2] [outer = 0x7fb240093350]
[task 2020-05-06T22:41:44.998Z] 22:41:44     INFO - GECKO(9633) | [Child 10337: Main Thread]: I/DocShellAndDOMWindowLeak ++DOMWINDOW == 3 (0x7fb22a7be800) [pid = 10337] [serial = 3] [outer = 0x7fb240093350]
[task 2020-05-06T22:41:45.007Z] 22:41:45     INFO - GECKO(9633) | [Child 10337: Main Thread]: I/DocShellAndDOMWindowLeak ++DOCSHELL 0x7fb22a7c1800 == 2 [pid = 10337] [id = {af69d156-14fe-4413-a277-4915aaa4ca3a}]
[task 2020-05-06T22:41:45.008Z] 22:41:45     INFO - GECKO(9633) | [Child 10337: Main Thread]: I/DocShellAndDOMWindowLeak ++DOMWINDOW == 4 (0x7fb2252be9f0) [pid = 10337] [serial = 4] [outer = (nil)]
[task 2020-05-06T22:41:45.176Z] 22:41:45     INFO - GECKO(9633) | ### XPCOM_MEM_BLOAT_LOG defined -- logging bloat/leaks to /tmp/tmpYfgevm.mozrunner/runtests_leaks_tab_pid10364.log
[task 2020-05-06T22:41:45.177Z] 22:41:45     INFO - GECKO(9633) | [10364, Main Thread] WARNING: XPCOM_MEM_BLOAT_LOG is set, disabling native allocations.: file /builds/worker/checkouts/gecko/tools/profiler/core/platform.cpp, line 225
[task 2020-05-06T22:41:45.204Z] 22:41:45     INFO - GECKO(9633) | [Child 10337, Main Thread] WARNING: NS_ENSURE_TRUE(request) failed: file /builds/worker/checkouts/gecko/netwerk/base/nsLoadGroup.cpp, line 591
[task 2020-05-06T22:41:45.261Z] 22:41:45     INFO - GECKO(9633) | [Child 10337, Main Thread] WARNING: NS_ENSURE_TRUE(currentInner) failed: file /builds/worker/checkouts/gecko/dom/base/WindowDestroyedEvent.cpp, line 106
...
[task 2020-05-06T22:41:45.573Z] 22:41:45     INFO - GECKO(9633) | [Parent 9633: Main Thread]: I/DocShellAndDOMWindowLeak ++DOCSHELL 0x7fc39c297c00 == 8 [pid = 9633] [id = {2c8ea899-4382-48dc-917a-a2621b030583}]
[task 2020-05-06T22:41:45.573Z] 22:41:45     INFO - GECKO(9633) | [Parent 9633: Main Thread]: I/DocShellAndDOMWindowLeak ++DOMWINDOW == 15 (0x7fc39d020430) [pid = 9633] [serial = 16] [outer = (nil)]
[task 2020-05-06T22:41:45.573Z] 22:41:45     INFO - GECKO(9633) | [Parent 9633: Main Thread]: I/DocShellAndDOMWindowLeak ++DOMWINDOW == 16 (0x7fc39cf27c00) [pid = 9633] [serial = 17] [outer = 0x7fc39d020430]
[task 2020-05-06T22:41:45.770Z] 22:41:45     INFO - GECKO(9633) | ### XPCOM_MEM_BLOAT_LOG defined -- logging bloat/leaks to /tmp/tmpYfgevm.mozrunner/runtests_leaks_tab_pid10391.log
[task 2020-05-06T22:41:45.770Z] 22:41:45     INFO - GECKO(9633) | [10391, Main Thread] WARNING: XPCOM_MEM_BLOAT_LOG is set, disabling native allocations.: file /builds/worker/checkouts/gecko/tools/profiler/core/platform.cpp, line 225
[task 2020-05-06T22:41:46.067Z] 22:41:46     INFO - GECKO(9633) | MEMORY STAT | vsize 3060MB | residentFast 353MB | heapAllocated 114MB
[task 2020-05-06T22:41:46.068Z] 22:41:46     INFO - TEST-OK | gfx/layers/apz/test/mochitest/browser_test_hittest_svg_over_iframe.js | took 1728ms
[task 2020-05-06T22:41:46.136Z] 22:41:46     INFO - checking window state
[task 2020-05-06T22:41:46.179Z] 22:41:46     INFO - GECKO(9633) | [Child 10391, Main Thread] WARNING: could not set real-time limit at process startup: file /builds/worker/checkouts/gecko/dom/ipc/ContentChild.cpp, line 1669
[task 2020-05-06T22:41:46.187Z] 22:41:46     INFO - GECKO(9633) | ###!!! [Parent][RunMessage] Error: Channel closing: too late to send/recv, messages will be lost
[task 2020-05-06T22:41:46.204Z] 22:41:46     INFO - GECKO(9633) | [Child 10391: Main Thread]: I/DocShellAndDOMWindowLeak ++DOCSHELL 0x7f86dd1d4000 == 1 [pid = 10391] [id = {9f88f898-ab98-49c5-b93c-f40d81431d10}]
[task 2020-05-06T22:41:46.232Z] 22:41:46     INFO - GECKO(9633) | [Parent 9633, Main Thread] WARNING: NS_ENSURE_SUCCESS(rv, rv) failed with result 0x80004005 (NS_ERROR_FAILURE): file /builds/worker/checkouts/gecko/dom/base/nsFrameLoader.cpp, line 683
[task 2020-05-06T22:41:46.240Z] 22:41:46     INFO - GECKO(9633) | [Parent 9633: Main Thread]: I/DocShellAndDOMWindowLeak ++DOMWINDOW == 17 (0x7fc39c298800) [pid = 9633] [serial = 18] [outer = 0x7fc3a77978c0]
...
[task 2020-05-06T22:41:51.056Z] 22:41:51     INFO - GECKO(9633) | Completed ShutdownLeaks collections in process 9757
[task 2020-05-06T22:41:51.514Z] 22:41:51     INFO - GECKO(9633) | Completed ShutdownLeaks collections in process 9868
[task 2020-05-06T22:41:51.675Z] 22:41:51     INFO - GECKO(9633) | Completed ShutdownLeaks collections in process 9773
[task 2020-05-06T22:41:52.114Z] 22:41:52     INFO - GECKO(9633) | [Parent 9633: Main Thread]: I/DocShellAndDOMWindowLeak --DOMWINDOW == 13 (0x7fc39d6ad430) [pid = 9633] [serial = 12] [outer = (nil)] [url = chrome://browser/content/browser.xhtml]
[task 2020-05-06T22:41:52.116Z] 22:41:52     INFO - GECKO(9633) | [Parent 9633: Main Thread]: I/DocShellAndDOMWindowLeak --DOMWINDOW == 12 (0x7fc3a515c800) [pid = 9633] [serial = 6] [outer = (nil)] [url = about:blank]
[task 2020-05-06T22:41:52.117Z] 22:41:52     INFO - GECKO(9633) | [Parent 9633: Main Thread]: I/DocShellAndDOMWindowLeak --DOMWINDOW == 11 (0x7fc39eaa7000) [pid = 9633] [serial = 13] [outer = (nil)] [url = about:blank]
[task 2020-05-06T22:41:52.743Z] 22:41:52     INFO - GECKO(9633) | ### XPCOM_MEM_BLOAT_LOG defined -- logging bloat/leaks to /tmp/tmpYfgevm.mozrunner/runtests_leaks_tab_pid10413.log
[task 2020-05-06T22:41:52.743Z] 22:41:52     INFO - GECKO(9633) | [10413, Main Thread] WARNING: XPCOM_MEM_BLOAT_LOG is set, disabling native allocations.: file /builds/worker/checkouts/gecko/tools/profiler/core/platform.cpp, line 225
[task 2020-05-06T22:41:52.980Z] 22:41:52     INFO - GECKO(9633) | [Child 10413, Main Thread] WARNING: could not set real-time limit at process startup: file /builds/worker/checkouts/gecko/dom/ipc/ContentChild.cpp, line 1669
[task 2020-05-06T22:41:55.254Z] 22:41:55     INFO - GECKO(9633) | [Parent 9633: Main Thread]: I/DocShellAndDOMWindowLeak --DOMWINDOW == 10 (0x7fc39c298800) [pid = 9633] [serial = 18] [outer = (nil)] [url = about:blank]
[task 2020-05-06T22:41:55.808Z] 22:41:55     INFO - GECKO(9633) | Completed ShutdownLeaks collections in process 9633
[task 2020-05-06T22:41:55.808Z] 22:41:55     INFO - TEST-START | Shutdown
[task 2020-05-06T22:41:55.808Z] 22:41:55     INFO - Browser Chrome Test Summary
[task 2020-05-06T22:41:55.808Z] 22:41:55     INFO - Passed:  34
[task 2020-05-06T22:41:55.808Z] 22:41:55     INFO - Failed:  0
[task 2020-05-06T22:41:55.808Z] 22:41:55     INFO - Todo:    0
[task 2020-05-06T22:41:55.808Z] 22:41:55     INFO - Mode:    e10s
[task 2020-05-06T22:41:55.809Z] 22:41:55     INFO - *** End BrowserChrome Test Results ***
[task 2020-05-06T22:41:56.381Z] 22:41:56     INFO - GECKO(9633) | [Parent 9633, Main Thread] WARNING: NS_ENSURE_TRUE(GetWrapper()) failed: file /builds/worker/checkouts/gecko/dom/ipc/JSActor.cpp, line 90
...
task 2020-05-06T22:41:58.765Z] 22:41:58     INFO - GECKO(9633) | [Parent 9633, Main Thread] WARNING: Extra shutdown CC: 'i < NORMAL_SHUTDOWN_COLLECTIONS', file /builds/worker/checkouts/gecko/xpcom/base/nsCycleCollector.cpp, line 3359
[task 2020-05-06T22:41:58.837Z] 22:41:58     INFO - TEST-INFO | Main app process: exit 0
[task 2020-05-06T22:41:58.838Z] 22:41:58     INFO - TEST-INFO | Confirming we saw 46 DOCSHELL created and 46 destroyed log strings.
[task 2020-05-06T22:41:58.839Z] 22:41:58     INFO - TEST-INFO | Confirming we saw 121 DOMWINDOW created and 121 destroyed log strings.
[task 2020-05-06T22:41:58.840Z] 22:41:58    ERROR - TEST-UNEXPECTED-FAIL | gfx/layers/apz/test/mochitest/browser_test_hittest_svg_over_iframe.js | leaked 1 window(s) until shutdown [url = data:text/html;charset=UTF-8,%3Ciframe%20title%3D%22OOP%20IFrame%22%20src%3D%22http%3A%2F%2Fexample.net%2Fdocument-builder.sjs%3Fhtml%3D%253Chtml%253E%250A%2B%2B%2B%2B%253Chead%253E%250A%2B%2B%2B%2B%2B%2B%253Cmeta%2Bcharset%253D%2522utf-8%2522%252F%253E%250A%2B%2B%2B%2B%2B%2B%253Ctitle%253EOOP%2BDocument%253C%252Ftitle%253E%250A%2B%2B%2B%2B%253C%252Fhead%253E%250A%2B%2B%2B%2B%253Cbody%253E%253C%252Fbody%253E%250A%2B%2B%253C%252Fhtml%253E%22%2F%3E]
[task 2020-05-06T22:41:58.841Z] 22:41:58     INFO - TEST-INFO | gfx/layers/apz/test/mochitest/browser_test_hittest_svg_over_iframe.js | windows(s) leaked: [pid = 10337] [serial = 1]
[task 2020-05-06T22:41:58.841Z] 22:41:58     INFO - TEST-INFO | gfx/layers/apz/test/mochitest/browser_test_hittest_svg_over_iframe.js | This test created 1 hidden window(s)
[task 2020-05-06T22:41:58.842Z] 22:41:58     INFO - TEST-INFO | gfx/layers/apz/test/mochitest/browser_test_hittest_svg_over_iframe.js | This test created 1 hidden docshell(s)
[task 2020-05-06T22:41:58.842Z] 22:41:58     INFO - TEST-INFO | gfx/layers/apz/test/mochitest/browser_test_group_fission.js | This test created 1 hidden window(s)
[task 2020-05-06T22:41:58.842Z] 22:41:58     INFO - TEST-INFO | gfx/layers/apz/test/mochitest/browser_test_group_fission.js | This test created 1 hidden docshell(s)
[task 2020-05-06T22:41:58.842Z] 22:41:58     INFO - runtests.py | Application ran for: 0:01:08.861910
Flags: needinfo?(yzenevich)
No longer depends on: 1542020
Whiteboard: [apz:fission:8:M]

Tentatively tracking APZ Fission bugs for Fission Beta milestone (M7).

Fission Milestone: --- → M7
Pushed by yura.zenevich@gmail.com: https://hg.mozilla.org/integration/autoland/rev/37c23ef47c31 test hittest with SVG in parent over OOP iframe. r=kats
Flags: needinfo?(yzenevich)

btw, we plan to allow Fission on macOS and Linux without WR (and may need to support Fission on Windows without WR), so we will want to test APZ bugs both with and without WR.

I filed bug 1675358 to get the test landed. I'm going to close this bug as the actual patches landed a long time ago.

Assignee: yzenevich → kats
Status: ASSIGNED → RESOLVED
Closed: 4 years ago
Flags: needinfo?(yzenevich)
Resolution: --- → FIXED
Target Milestone: --- → mozilla77
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: