Closed Bug 1661833 Opened 4 years ago Closed 3 years ago

Perma [fission][tier2] browser/base/content/test/general/browser_alltabslistener.js | Got a notification for the front notifications listener - Got "onStateChange", expected "onLocationChange"

Categories

(Core :: Audio/Video: Playback, defect, P3)

defect

Tracking

()

RESOLVED FIXED
85 Branch
Fission Milestone M6c
Tracking Status
firefox-esr68 --- unaffected
firefox-esr78 --- unaffected
firefox80 --- unaffected
firefox81 --- unaffected
firefox82 --- wontfix
firefox83 --- wontfix
firefox84 --- wontfix
firefox85 --- fixed

People

(Reporter: intermittent-bug-filer, Assigned: annyG)

References

(Regression)

Details

(Keywords: intermittent-failure, regression, Whiteboard: [stockwell disabled])

Attachments

(2 files, 1 obsolete file)

Filed by: nbeleuzu [at] mozilla.com
Parsed log: https://treeherder.mozilla.org/logviewer.html#?job_id=314320248&repo=autoland
Full log: https://firefox-ci-tc.services.mozilla.com/api/queue/v1/task/G0tYNBH1Q8mjeDWitR6ygg/runs/0/artifacts/public/logs/live_backing.log


[task 2020-08-28T21:09:01.074Z] 21:09:01 INFO - TEST-PASS | browser/base/content/test/general/browser_alltabslistener.js | Got an expected notification for the front notifications listener - 2 < 5 -
[task 2020-08-28T21:09:01.074Z] 21:09:01 INFO - Buffered messages finished
[task 2020-08-28T21:09:01.075Z] 21:09:01 INFO - TEST-UNEXPECTED-FAIL | browser/base/content/test/general/browser_alltabslistener.js | Got a notification for the front notifications listener - Got "onStateChange", expected "onLocationChange"
[task 2020-08-28T21:09:01.075Z] 21:09:01 INFO - Stack trace:
[task 2020-08-28T21:09:01.075Z] 21:09:01 INFO - chrome://mochikit/content/browser-test.js:test_is:1332
[task 2020-08-28T21:09:01.075Z] 21:09:01 INFO - chrome://mochitests/content/browser/browser/base/content/test/general/browser_alltabslistener.js:onStateChange:33
[task 2020-08-28T21:09:01.075Z] 21:09:01 INFO - chrome://browser/content/tabbrowser.js:callListeners:832
[task 2020-08-28T21:09:01.076Z] 21:09:01 INFO - chrome://browser/content/tabbrowser.js:_callProgressListeners:846
[task 2020-08-28T21:09:01.076Z] 21:09:01 INFO - chrome://browser/content/tabbrowser.js:_callProgressListeners:5826
[task 2020-08-28T21:09:01.076Z] 21:09:01 INFO - chrome://browser/content/tabbrowser.js:onStateChange:6091
[task 2020-08-28T21:09:01.076Z] 21:09:01 INFO - AllProgress (http://example.org/browser/browser/base/content/test/general/alltabslistener.html): onStateChange 0xf0001
[task 2020-08-28T21:09:01.080Z] 21:09:01 INFO - TEST-PASS | browser/base/content/test/general/browser_alltabslistener.js | onStateChange notification came from the correct browser -
[task 2020-08-28T21:09:01.080Z] 21:09:01 INFO - TEST-PASS | browser/base/content/test/general/browser_alltabslistener.js | Got an expected notification for the all notifications listener - 1 < 4 -
[task 2020-08-28T21:09:01.080Z] 21:09:01 INFO - Not taking screenshot here: see the one that was previously logged
[task 2020-08-28T21:09:01.080Z] 21:09:01 INFO - TEST-UNEXPECTED-FAIL | browser/base/content/test/general/browser_alltabslistener.js | Got a notification for the all notifications listener - Got "onStateChange", expected "onLocationChange"
[task 2020-08-28T21:09:01.080Z] 21:09:01 INFO - Stack trace:
[task 2020-08-28T21:09:01.081Z] 21:09:01 INFO - chrome://mochikit/content/browser-test.js:test_is:1332
[task 2020-08-28T21:09:01.081Z] 21:09:01 INFO - chrome://mochitests/content/browser/browser/base/content/test/general/browser_alltabslistener.js:onStateChange:102
[task 2020-08-28T21:09:01.081Z] 21:09:01 INFO - chrome://browser/content/tabbrowser.js:callListeners:832
[task 2020-08-28T21:09:01.081Z] 21:09:01 INFO - chrome://browser/content/tabbrowser.js:_callProgressListeners:852
[task 2020-08-28T21:09:01.081Z] 21:09:01 INFO - chrome://browser/content/tabbrowser.js:_callProgressListeners:5826
[task 2020-08-28T21:09:01.081Z] 21:09:01 INFO - chrome://browser/content/tabbrowser.js:onStateChange:6099
[task 2020-08-28T21:09:01.081Z] 21:09:01 INFO - GECKO(3767) | [Child 4182, Main Thread] WARNING: NS_ENSURE_TRUE(info) failed: file /builds/worker/checkouts/gecko/extensions/permissions/PermissionDelegateHandler.cpp, line 348
[task 2020-08-28T21:09:01.085Z] 21:09:01 INFO - GECKO(3767) | [Child 4182: Main Thread]: I/DocShellAndDOMWindowLeak ++DOMWINDOW == 3 (0x7f4f34880800) [pid = 4182] [serial = 3] [outer = 0x7f4f4aa93520]
[task 2020-08-28T21:09:01.086Z] 21:09:01 INFO - GECKO(3767) | [Child 4266, Main Thread] WARNING: could not set real-time limit in CubebUtils::InitLibrary: file /builds/worker/checkouts/gecko/dom/media/CubebUtils.cpp, line 626
[task 2020-08-28T21:09:01.086Z] 21:09:01 INFO - FrontProgress: onLocationChange http://example.org/browser/browser/base/content/test/general/alltabslistener.html
[task 2020-08-28T21:09:01.090Z] 21:09:01 INFO - TEST-PASS | browser/base/content/test/general/browser_alltabslistener.js | Got an expected notification for the front notifications listener - 3 < 5 -
[task 2020-08-28T21:09:01.090Z] 21:09:01 INFO - Not taking screenshot here: see the one that was previously logged

Bugbug thinks this bug should belong to this component, but please revert this change in case of error.

Component: General → Audio/Video: Playback
Product: Firefox → Core
Summary: Intermittent browser/base/content/test/general/browser_alltabslistener.js | Got a notification for the front notifications listener - Got "onStateChange", expected "onLocationChange" → Perma Tier 2 browser/base/content/test/general/browser_alltabslistener.js | Got a notification for the front notifications listener - Got "onStateChange", expected "onLocationChange"
Has Regression Range: --- → yes
Keywords: regression
Summary: Perma Tier 2 browser/base/content/test/general/browser_alltabslistener.js | Got a notification for the front notifications listener - Got "onStateChange", expected "onLocationChange" → Perma [fission][tier2] browser/base/content/test/general/browser_alltabslistener.js | Got a notification for the front notifications listener - Got "onStateChange", expected "onLocationChange"

Set release status flags based on info from the regressing bug 1589102

Hi, looking into this!

This is now perma-failing on tier1: https://treeherder.mozilla.org/#/jobs?repo=autoland&group_state=expanded&selectedTaskRun=cCddP1xLS8qNRvgq-dmazA.0&resultStatus=testfailed%2Cbusted%2Cexception&revision=64efed429f67a5f929e044fcc3f3a402101af7dd

If there is no fix here until tomorrow the latest, we will disable it on fission.
Thank you.

Ni Razvan for the fyi.

Flags: needinfo?(rmaries)
Assignee: nobody → rmaries
Status: NEW → ASSIGNED
Assignee: rmaries → nobody
Status: ASSIGNED → NEW
Flags: needinfo?(rmaries)
Assignee: nobody → rmaries
Status: NEW → ASSIGNED
Pushed by rgurzau@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/98c4825fc36c
Disabled browser_alltabslistener.js on fission. r?#intermittent-reviewers
Assignee: rmaries → nobody
Status: ASSIGNED → NEW
Keywords: leave-open
Assignee: nobody → rmaries
Status: NEW → ASSIGNED
Assignee: rmaries → nobody
Status: ASSIGNED → NEW
Whiteboard: [stockwell disabled]
Assignee: nobody → agakhokidze
Flags: needinfo?(agakhokidze)

This potentially might depend on bug 1668864

Status: NEW → ASSIGNED

:kmag suggested that instead of keeping mSuspendedProgressEvents in BrowserParent, we can do the following

So, I'd say we should either store the flag on FrameLoaderOwner and copy it to the BrowserParent when we initialize the remote browser here or add a helper to grab the owner element and cast it to a FrameLoaderOwner in the places where we check the flag such as here though that'll be a bit tricky if we have to handler OOP iframes where we'll have a BrowserBridgeParent rather than a FrameLoaderOwner

Some observations:

  • mSuspendedProgressEvents flag is used in BrowserParent whenever we receive any progress events, in methods BrowserParent::RecvOnStateChange, BrowserParent::RecvOnProgressChange, BrowserParent::RecvOnLocationChange, BrowserParent::RecvOnStatusChange. We can start storing this flag on nsFrameLoaderOwner and BrowserBridgeParent so that whenever BrowserParent needs to access it, it can cast its owner element to either nsFrameLoaderOwner or BrowserBridgeParent and retrieve the flag that way.
  • mSuspendedProgressEvents is modified in the following cases:
    • In nsFrameLoader::StartDestroy. Here if we have a BrowserParent available that means the nsFrameLoader corresponds to the top level document and we are currently in the parent process. Modify the flag on nsFrameLoaderOwner.
    • In nsFrameLoaderOwner::ChangeRemotenessCommon . Same as above
    • In DocumentLoadListener::TriggerProcessSwitch. Before we get the BrowserParent we ensure that WindowGlobalParent::IsProcessRoot returns true. Do the same thing as above.
    • In DocumentLoadListener::OnStartRequest. Depends on what the owner element is.

I will extract setting of the flag into its own function on BrowserParent that will do the right thing based on its owner element.

Attachment #9184104 - Attachment is obsolete: true
See Also: → 1678430
Pushed by agakhokidze@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/6ad5891e7cc0
Fix duplicate OnStateChange events during process switches, r=nika
Pushed by cbrindusan@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/0cc476b645cc
Fix ESlint prettier error. r=nbeleuzu CLOSED TREE
Keywords: leave-open
Status: ASSIGNED → RESOLVED
Closed: 3 years ago
Resolution: --- → FIXED
Fission Milestone: --- → M6c
Priority: P5 → P3
Target Milestone: --- → 85 Branch
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: