[Fission] Enable tests: test_input_files_not_nsIFile.html, test_inputmode.html, test_nestediframe.html and test_viewport_resize.html
Categories
(Core :: DOM: Navigation, defect, P3)
Tracking
()
Tracking | Status | |
---|---|---|
firefox88 | --- | fixed |
People
(Reporter: smaug, Assigned: peterv)
References
(Blocks 1 open bug)
Details
Attachments
(1 file, 1 obsolete file)
I can't reproduce any failures with Fission.
It was disabled because there was one intermittent with SHIP at some point, but the test doesn't seem to do anything session history related.
However, the test has very rarely failed even without Fission.
So, hopefully it works also in CI.
Reporter | ||
Comment 1•4 years ago
|
||
Updated•4 years ago
|
![]() |
||
Comment 3•4 years ago
|
||
Backed out changeset 27cf2fe77ed0 (bug 1672964) for test_viewport_resize.html failures.
Backout link: https://hg.mozilla.org/integration/autoland/rev/37c06b9b29a3f3663c265ea0516344052838ea51
Failure log: https://treeherder.mozilla.org/logviewer.html#/jobs?job_id=319615464&repo=autoland&lineNumber=18390
Reporter | ||
Comment 4•4 years ago
|
||
uh, yet another intermittent which is impossible to reproduce locally.
Updated•4 years ago
|
Updated•4 years ago
|
Updated•4 years ago
|
Updated•4 years ago
|
Comment 5•4 years ago
|
||
Getting re-enabled in Bug 1677483. We can close this bug once that patch lands and sticks.
Comment 6•4 years ago
|
||
The re-enablement in Bug 1677483 failed and this got re-skipped in Bug 1677799.
Comment 7•4 years ago
|
||
Adding all 4 tests in this bug as we expect the fix will be the same for all. Peter, Nika and Olli and I discussed these test failures briefly in a call today and these seem to be affected by some previous test(s) state. These don't fail locally and are intermittent failures on the tree.
The failure may be because of some focus failures in previous test(s) as we saw
Error: Unable to restore focus, expect failures and timeouts
in https://treeherder.mozilla.org/logviewer?job_id=319615464&repo=autoland&lineNumber=18390 . NI'ing Henri.
Or they could also be from sandboxing assertions also seen in one of the test failure logs. NI'ing Peter.
Try run with my in-progress patches and without the tests before test_inputmode.html
in the same .ini
:
https://treeherder.mozilla.org/#/jobs?repo=try&revision=1412ca63cf1903a13272e214ef74106e592358b5
Comment 9•4 years ago
|
||
Moving fixing these tests to M7 as this seems to be a test-issue, these tests aren't failing on their own.
(In reply to Henri Sivonen (:hsivonen) from comment #8)
Try run with my in-progress patches and without the tests before
test_inputmode.html
in the same.ini
:
https://treeherder.mozilla.org/#/jobs?repo=try&revision=1412ca63cf1903a13272e214ef74106e592358b5
It indeed looks like the cause is in some test is the same .ini
file before test_inputmode.html
. Here's a try run with only tests before test_bug595429.html
disabled:
https://treeherder.mozilla.org/#/jobs?repo=try&revision=e6296a74d3f951f6a99c539df0eed7e451670d6f
(In reply to Henri Sivonen (:hsivonen) from comment #8)
Try run with my in-progress patches and without the tests before
test_inputmode.html
in the same.ini
:
https://treeherder.mozilla.org/#/jobs?repo=try&revision=1412ca63cf1903a13272e214ef74106e592358b5
Oops. That, but for real this time:
https://treeherder.mozilla.org/#/jobs?repo=try&revision=3a56eae0cac594d03f7658eed7b1e8ea34948483
Enabled tests from test_hidden
until test_inputmode
. This is not a proper bisect but a guess based on other annotations that hopefully will be more informative than an actual bisect:
https://treeherder.mozilla.org/#/jobs?repo=try&revision=25d5ec02fd149b5394dcba709584c8a0760ae4b7
From test_iframe_sandbox_redirect.html
:
https://treeherder.mozilla.org/#/jobs?repo=try&revision=b5325c1d02c500118f3b21d5acfda3e2a19438e3
From test_iframe_sandbox_popups_inheritance.html
:
https://treeherder.mozilla.org/#/jobs?repo=try&revision=a0b1f3f7c02f83a29e05c4b1c0de4e885f9abbe2
From test_iframe_sandbox_popups.html
:
https://treeherder.mozilla.org/#/jobs?repo=try&revision=f2aa8318abadfbb144be2cdc5aab2291810227cb
Updated•4 years ago
|
From test_iframe_sandbox_general.html
:
https://treeherder.mozilla.org/#/jobs?repo=try&revision=c82bf9808a5718931a58592c0b863c7eb092cd39
Really from test_iframe_sandbox_general.html
:
https://treeherder.mozilla.org/#/jobs?repo=try&revision=b3385369f388c1c6c6d8cd40adc51273b5f40916
From test_htmlcollection.html
:
https://treeherder.mozilla.org/#/jobs?repo=try&revision=4e11db0dc90dc2016f61d1688b0989dca645adb8
test_htmlcollection.html
implicated.
test_htmlcollection.html
followed immediately by test_inputmode.html
:
https://treeherder.mozilla.org/#/jobs?repo=try&revision=7efe2dcbb282af9f875cd3847384238b73ef87fa
(In reply to Henri Sivonen (:hsivonen) from comment #20)
test_htmlcollection.html
followed immediately bytest_inputmode.html
:
https://treeherder.mozilla.org/#/jobs?repo=try&revision=7efe2dcbb282af9f875cd3847384238b73ef87fa
This combination doesn't fail, which suggests this is an interaction of three tests.
[test_htmlcollection.html]
[test_iframe_sandbox_general.html]
tags = openwindow
[test_inputmode.html]
https://treeherder.mozilla.org/jobs?repo=try&revision=28cb8435fd4e96c41ee74480b4a9b778f6076289
(In reply to Henri Sivonen (:hsivonen) from comment #24)
https://treeherder.mozilla.org/#/jobs?repo=try&revision=1b2a394da417cb61c9b620964915c2206f37f890
Well, that not failing is strange.
Given that, maybe these in the pipeline are useless, but here they are:
https://treeherder.mozilla.org/#/jobs?repo=try&revision=51c09f1c68db529efef43a744e763645de497141
https://treeherder.mozilla.org/#/jobs?repo=try&revision=56ad05dac7e8356a1fd76f10375afa1c260e38dc
https://treeherder.mozilla.org/#/jobs?repo=try&revision=d67145d796f8266012bc25dc4c7c0b1ab0750615
Enable one test after test_inputmode:
https://treeherder.mozilla.org/#/jobs?repo=try&revision=e8769a650e5cfdb2045b7757a5a3fa0284e05e9e
https://treeherder.mozilla.org/#/jobs?repo=try&revision=2a9cc59420481ddd8b0c583a96262bbb5fa019db
https://treeherder.mozilla.org/#/jobs?repo=try&revision=77acc3e3034c6d3edc46f5d4ffa74228e49cadd7
https://treeherder.mozilla.org/#/jobs?repo=try&revision=9f7d435736f4949b13039925b8048833b4387661
https://treeherder.mozilla.org/#/jobs?repo=try&revision=f6d9e2f9d4d8eb212032f7ce67b6953c9622a50f
https://treeherder.mozilla.org/#/jobs?repo=try&revision=1cd6ec19b0651f361519203e11b5213bdae6e603
https://treeherder.mozilla.org/#/jobs?repo=try&revision=24e844f7063bcdd35f742f4453ab44f890f21b63
https://treeherder.mozilla.org/#/jobs?repo=try&revision=7657ad1c8d101d750ff4ff2748eb2570f5834c86
https://treeherder.mozilla.org/#/jobs?repo=try&revision=4a20cf07ed8eb9aea98365406d1246cbf34b6109
https://treeherder.mozilla.org/#/jobs?repo=try&revision=89a5c1a42c28e2ae3d4e3f09875bc2c03619bf0d
https://treeherder.mozilla.org/#/jobs?repo=try&revision=0c5b03d83b9c08fe73e817bfce67d009a5c53536
https://treeherder.mozilla.org/#/jobs?repo=try&revision=23956975394c6bfba502a7774432204204ca2e02
https://treeherder.mozilla.org/#/jobs?repo=try&revision=f69f68da20868829fb2f2cfe8b8ba8b1b15854a6
OK, so with this cohort of tests remaining in the run, failure is intermittent, which is why trying to narrow the range doesn't work logically.
Going to re-run this many times so see if that's enough to repro:
https://treeherder.mozilla.org/#/jobs?repo=try&revision=6b61dcc2cd9254cd3a826ae00ea2cae09b771f32
In the latest attempt of repeats, the failure rate was only 19%, which explains a lot about why things didn't make sense previously.
I think I have a local rr trace of a repro where two tabs for the test for bug 341604 are left behind as the next tests run.
Specifically, it looks like test_iframe_sandbox_popups.html
sometimes fails to close its tabs.
(In reply to Henri Sivonen (:hsivonen) from comment #34)
Specifically, it looks like
test_iframe_sandbox_popups.html
sometimes fails to close its tabs.
No, that's not it.
It's either test_iframe_sandbox_navigation.html
or test_iframe_sandbox_navigation2.html
.
Tests 22 and 23 in test_iframe_sandbox_navigation2.html
don't get their window.open
ed tabs closed with SHIP. I don't yet know what causes the Fission vs. non-Fission difference more precisely.
The problem isn't the close()
call. The problem is that before the close()
call, there's an attempt to call window.opener.postMessage
but window.opener
is null
, because in BrowsingContext::GetOpener()
the opener is discarded.
The opener becomes discarded with this stack:
::Document::DispatchContentLoadedEvents () at Document.cpp:7583::Document::UnblockOnload () at Document.cpp:11019
::Document::DoUnblockOnload () at Document.cpp:11089::nsLoadGroup::RemoveRequest () at nsLoadGroup.cpp:523
::nsLoadGroup::NotifyRemovalObservers () at nsLoadGroup.cpp:616{virtual override thunk({offset(-8)},
nsDocLoader::OnStopRequest)} () at nsDocLoader.cpp:1406nsDocLoader::OnStopRequest () at nsDocLoader.cpp:640
nsDocLoader::DocLoaderIsEmpty () at nsDocLoader.cpp:757nsDocLoader::doStopDocumentLoad () at nsDocLoader.cpp:938
nsDocLoader::DoFireOnStateChange () at nsDocLoader.cpp:1332{virtual override thunk({offset(-448)},
nsDocShell::OnStateChange)} () at nsDocShell.cpp:6603
nsDocShell::OnStateChange () at nsDocShell.cpp:5867
nsDocShell::EndPageLoad () at nsDocShell.cpp:6510
nsDocumentViewer::LoadComplete () at nsDocumentViewer.cpp:969
::PresShell::FlushPendingNotifications () at PresShell.h:1413
::PresShell::DoFlushPendingNotifications () at PresShell.cpp:4048
::PresShell::FlushPendingNotifications () at PresShell.h:1422
::PresShell::DoFlushPendingNotifications () at PresShell.cpp:4257
::PresShell::ProcessReflowCommands () at PresShell.cpp:9846
::PresShell::DidDoReflow () at PresShell.cpp:9450
::PresShell::HandlePostedReflowCallbacks () at PresShell.cpp:4016
::PresShell::FlushPendingNotifications () at PresShell.h:1413
::PresShell::DoFlushPendingNotifications () at PresShell.cpp:4048
::PresShell::FlushPendingNotifications () at PresShell.h:1422
::PresShell::DoFlushPendingNotifications () at PresShell.cpp:4257
::PresShell::ProcessReflowCommands () at PresShell.cpp:9878
::PresShell::UnsuppressAndInvalidate () at PresShell.cpp:3890
nsPresContext::EnsureVisible () at nsPresContext.cpp:1716
nsDocumentViewer::Show () at nsDocumentViewer.cpp:2073
nsDocumentViewer::Destroy () at nsDocumentViewer.cpp:1807
nsAutoScriptBlocker::~nsAutoScriptBlocker () at nsContentUtils.h:3478
nsContentUtils::RemoveScriptBlocker () at nsContentUtils.cpp:5581
::RunnableMethodImpl<>::Run () at nsThreadUtils.h:1201
mozilla::detail::RunnableMethodArguments<>::apply<> () at nsThreadUtils.h:1154
mozilla::detail::RunnableMethodArguments<>::applyImpl<> () at nsThreadUtils.h:1148
::Document::MaybeInitializeFinalizeFrameLoaders () at Document.cpp:8827
nsFrameLoaderDestroyRunnable::Run () at nsFrameLoader.cpp:1939
nsFrameLoader::DestroyDocShell () at nsFrameLoader.cpp:2008
::BrowsingContext::Detach () at BrowsingContext.cpp:810
With SHIP, mSHEntry
is null here: https://searchfox.org/mozilla-central/rev/0379f315c75a2875d716b4f5e1a18bf27188f1e6/layout/base/nsDocumentViewer.cpp#1656
My best guess so far is that something in the steps in that if
block makes it so that we don't end up marking the opener BrowsingContext
discarded when we destroy the nsDocumentViewer
for http://mochi.test:8888/tests/dom/html/test/file_iframe_sandbox_e_if9.html
when we show the nsDocumentViewer
for http://mochi.test:8888/tests/dom/html/test/file_iframe_sandbox_top_navigation_pass.html?Test%2022:%20Navigate%20_top%20with%20window.open():%20
.
smaug, does something in those steps stand out to you as something that we should do in the SHIP case, or should I continue debugging to find it?
For reference:
- We open a window containing
file_iframe_sandbox_e_if9.html
. This is the window we need to close. - Upon its
onload
that document navigates a sandboxed iframe tofile_iframe_sandbox_e_if11.html
. - That file uses
window.open
to navigate_top
tofile_iframe_sandbox_top_navigation_pass.html?Test%2022:%20Navigate%20_top%20with%20window.open():%20
. I.e.file_iframe_sandbox_e_if9.html
navigates tofile_iframe_sandbox_top_navigation_pass.html?Test%2022:%20Navigate%20_top%20with%20window.open():%20
. file_iframe_sandbox_top_navigation_pass.html?Test%2022:%20Navigate%20_top%20with%20window.open():%20
runs into an attempt to invoke a JS method onnull
, because itsopener
BrowsingContext
has become discarded as part of destroying thensDocumentViewer
forfile_iframe_sandbox_e_if9.html
. The JS error stops the script, so it never gets far enough to close its own window (opened in step 1).
(Anyway, at this point, it's pretty clear that this isn't a focus bug.)
Assignee | ||
Updated•4 years ago
|
Updated•4 years ago
|
Updated•4 years ago
|
Assignee | ||
Comment 42•4 years ago
|
||
Comment 43•4 years ago
|
||
![]() |
||
Comment 44•4 years ago
|
||
bugherder |
Description
•