Intermittent devtools-fission devtools/shared/resources/tests/browser_target_list_frames.js | The new target should be the newly loaded document - Got "about:blank", expected "https://example.org/document-builder.sjs?html=org "
Categories
(DevTools :: General, defect, P5)
Tracking
(firefox-esr78 unaffected, firefox86 unaffected, firefox87 unaffected, firefox88 fixed)
Tracking | Status | |
---|---|---|
firefox-esr78 | --- | unaffected |
firefox86 | --- | unaffected |
firefox87 | --- | unaffected |
firefox88 | --- | fixed |
People
(Reporter: intermittent-bug-filer, Assigned: jdescottes)
References
(Regression)
Details
(Keywords: intermittent-failure, regression)
Filed by: nbeleuzu [at] mozilla.com
Parsed log: https://treeherder.mozilla.org/logviewer?job_id=332632099&repo=autoland
Full log: https://firefox-ci-tc.services.mozilla.com/api/queue/v1/task/KJbVLBX-SR2w8DyuMh636g/runs/0/artifacts/public/logs/live_backing.log
[task 2021-03-10T03:18:43.395Z] 03:18:43 INFO - TEST-PASS | devtools/shared/resources/tests/browser_target_list_frames.js | isTopLevel property is correct -
[task 2021-03-10T03:18:43.395Z] 03:18:43 INFO - Console message: [JavaScript Error: "The character encoding of the HTML document was not declared. The document will render with garbled text in some browser configurations if the document contains characters from outside the US-ASCII range. The character encoding of the page must be declared in the document or in the transfer protocol." {file: "https://example.org/document-builder.sjs?html=org" line: 0}]
[task 2021-03-10T03:18:43.395Z] 03:18:43 INFO - TEST-PASS | devtools/shared/resources/tests/browser_target_list_frames.js | We are only notified about frame targets -
[task 2021-03-10T03:18:43.395Z] 03:18:43 INFO - TEST-PASS | devtools/shared/resources/tests/browser_target_list_frames.js | retrieved all targets after navigation -
[task 2021-03-10T03:18:43.395Z] 03:18:43 INFO - Buffered messages finished
[task 2021-03-10T03:18:43.396Z] 03:18:43 INFO - TEST-UNEXPECTED-FAIL | devtools/shared/resources/tests/browser_target_list_frames.js | The new target should be the newly loaded document - Got "about:blank", expected "https://example.org/document-builder.sjs?html=org"
[task 2021-03-10T03:18:43.396Z] 03:18:43 INFO - Stack trace:
[task 2021-03-10T03:18:43.396Z] 03:18:43 INFO - chrome://mochikit/content/browser-test.js:test_is:1359
[task 2021-03-10T03:18:43.396Z] 03:18:43 INFO - chrome://mochitests/content/browser/devtools/shared/resources/tests/browser_target_list_frames.js:testTabFrames:235
[task 2021-03-10T03:18:43.396Z] 03:18:43 INFO - chrome://mochitests/content/browser/devtools/shared/resources/tests/browser_target_list_frames.js:null:30
[task 2021-03-10T03:18:43.396Z] 03:18:43 INFO - chrome://mochikit/content/browser-test.js:Tester_execTest/<:1089
[task 2021-03-10T03:18:43.396Z] 03:18:43 INFO - chrome://mochikit/content/browser-test.js:Tester_execTest:1129
[task 2021-03-10T03:18:43.396Z] 03:18:43 INFO - chrome://mochikit/content/browser-test.js:nextTest/<:949
[task 2021-03-10T03:18:43.396Z] 03:18:43 INFO - chrome://mochikit/content/tests/SimpleTest/SimpleTest.js:SimpleTest.waitForFocus/waitForFocusInner/focusedOrLoaded/<:1037
[task 2021-03-10T03:18:43.396Z] 03:18:43 INFO - TEST-PASS | devtools/shared/resources/tests/browser_target_list_frames.js | and should be flagged as a target switching -
[task 2021-03-10T03:18:43.396Z] 03:18:43 INFO - TEST-PASS | devtools/shared/resources/tests/browser_target_list_frames.js | The two existing targets should be destroyed -
[task 2021-03-10T03:18:43.396Z] 03:18:43 INFO - TEST-PASS | devtools/shared/resources/tests/browser_target_list_frames.js | The first destroyed should be the previous top level one -
[task 2021-03-10T03:18:43.397Z] 03:18:43 INFO - TEST-PASS | devtools/shared/resources/tests/browser_target_list_frames.js | the target destruction is flagged as target switching -
[task 2021-03-10T03:18:43.397Z] 03:18:43 INFO - TEST-PASS | devtools/shared/resources/tests/browser_target_list_frames.js | The second destroyed should be the iframe one -
[task 2021-03-10T03:18:43.397Z] 03:18:43 INFO - TEST-PASS | devtools/shared/resources/tests/browser_target_list_frames.js | the target destruction is not flagged as target switching for iframes -
[task 2021-03-10T03:18:43.397Z] 03:18:43 INFO - GECKO(3412) | console.error: "Tried to send a 'target-destroyed-form' event on an already destroyed actor 'watcher'"
[task 2021-03-10T03:18:43.397Z] 03:18:43 INFO - Leaving test bound```
Updated•3 years ago
|
Updated•3 years ago
|
Assignee | ||
Comment 1•3 years ago
|
||
Looks like this spiked on Windows with fission after Bug 1694906 landed.
From what I can see, we get a Target too early, and the URL is still on about:blank and not yet on the real location. I'm not exactly sure why my change messed up the timings for this particular sequence, but I'll take a look.
Some easy options to reduce the breakage:
- skip on windows+fission
- skip the URL assert on Fission for now
I also feel like this will be fixed completely by Bug 1644397. Once all targets are created via JSWindow actors, we should not get the Target while it's temporarily sitting on about:blank
Assignee | ||
Updated•3 years ago
|
Pushed by malexandru@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/de15019f6e77 Disable browser_target_list_frames.js on win10 fission for causing permafailures. a=disable
Assignee | ||
Comment 3•3 years ago
|
||
I think the timing issue boils down to one change from target-list:
- // Fetch the new target from the existing client so that the new target uses the same client.
- const newTarget = await TabTargetFactory.forTab(localTab, client);
+ // Fetch the new target from the descriptor.
+ const newTarget = await this.descriptorFront.getTarget();
This is from TargetCommand::onLocalTabRemotenessChange.
Before we used to go through TabTargetFactory::forTab which would:
- call rootFront::getTab (this would end up returning the existing descriptorFront, but it's still an additional server round trip)
- call descriptor::getTarget
Now we directly reuse the descriptor so we skip the call to getTab, and we call getTarget
earlier, potentially while the target is still on about:blank.
It's not clear to me if the about:blank load happens in the same process as the page being loaded, or if a new process change will occur. Again this will be fixed by server side target switching but I wonder what happens in practice for a toolbox.
Considering that other target-switching tests have not spiked since we landed the target->descriptor change, I'm going to guess that the toolbox behavior is not impacted.
Comment 4•3 years ago
|
||
Set release status flags based on info from the regressing bug 1694906
Assignee | ||
Comment 5•3 years ago
|
||
Couple of try pushes:
- on top of the WIP patches for Bug 1644397 (+ first target support + enabling server side target creation by default): https://treeherder.mozilla.org/jobs?repo=try&revision=252ae280eb5049889319ade08f1bc5fd11bac3e7
- on central: https://treeherder.mozilla.org/jobs?repo=try&revision=5a458f064f340523d2d91b65a5e2331042ba3a17&selectedTaskRun=elhmHHpGSDSpTMCnv5OEnQ.0
It seems that server side target switching indeed fixes this.
Comment 6•3 years ago
|
||
bugherder |
Comment hidden (Intermittent Failures Robot) |
Description
•