Assertion failure: !mPendingReadyPromises.Contains(window), at dom/workers/ServiceWorkerManager.cpp:1414

ASSIGNED
Assigned to

Status

()

Core
DOM: Service Workers
P2
normal
ASSIGNED
a month ago
a month ago

People

(Reporter: mats, Assigned: edenchuang)

Tracking

(Blocks: 2 bugs, {assertion})

58 Branch
x86_64
Linux
assertion
Points:
---
Dependency tree / graph

Firefox Tracking Flags

(firefox58 affected)

Details

(Reporter)

Description

a month ago
STR
1. create a new profile, then disable "Block pop-up windows" in Preferences
2. restart the browser, then load
http://lcamtuf.coredump.cx/cross_fuzz/cross_fuzz_randomized_20110105_seed.html

NOTE: this test may open a lot of windows, so I suggest you run it in a VM,
or if you're on Linux run it with a separate X server like Xephyr.
(Reporter)

Updated

a month ago
Blocks: 581539

Updated

a month ago
Blocks: 1328631
Component: DOM: Workers → DOM: Service Workers

Comment 1

a month ago
My guess is the mReadyPromise is being cycle collected just before we try to access the promise again somehow.  Or somehow we are getting another ServiceWorkerContainer created somehow.

The safest fix here is to probably change this assert:

https://searchfox.org/mozilla-central/source/dom/workers/ServiceWorkerManager.cpp#1415

Into code that returns the existing promise if there is an entry for the window.

Probably can't easily write a test for this one.

Eden, do you want to look at this one as well after your current assertion fix bug?
Flags: needinfo?(echuang)
Priority: -- → P2
(Assignee)

Comment 2

a month ago
Yes, I will work on this bug after fix the current assertion bug.
Assignee: nobody → echuang
Status: NEW → ASSIGNED
Flags: needinfo?(echuang)
(Assignee)

Updated

a month ago
Duplicate of this bug: 1411128
You need to log in before you can comment on or make changes to this bug.