No blobURL broadcasting
Categories
(Core :: DOM: File, enhancement, P2)
Tracking
()
Tracking | Status | |
---|---|---|
firefox74 | --- | fixed |
People
(Reporter: baku, Assigned: baku)
References
(Blocks 2 open bugs)
Details
Attachments
(8 files, 8 obsolete files)
(deleted),
patch
|
smaug
:
review-
|
Details | Diff | Splinter Review |
(deleted),
patch
|
smaug
:
review-
|
Details | Diff | Splinter Review |
(deleted),
patch
|
smaug
:
review+
|
Details | Diff | Splinter Review |
(deleted),
patch
|
smaug
:
review-
|
Details | Diff | Splinter Review |
(deleted),
patch
|
smaug
:
review-
|
Details | Diff | Splinter Review |
(deleted),
patch
|
smaug
:
review+
|
Details | Diff | Splinter Review |
(deleted),
patch
|
smaug
:
review-
|
Details | Diff | Splinter Review |
(deleted),
text/x-phabricator-request
|
Details |
Assignee | ||
Comment 1•6 years ago
|
||
Assignee | ||
Comment 2•6 years ago
|
||
Assignee | ||
Comment 3•6 years ago
|
||
Assignee | ||
Comment 4•6 years ago
|
||
Updated•6 years ago
|
Assignee | ||
Comment 5•6 years ago
|
||
Assignee | ||
Comment 6•6 years ago
|
||
Assignee | ||
Comment 7•6 years ago
|
||
Assignee | ||
Comment 8•6 years ago
|
||
Assignee | ||
Comment 9•6 years ago
|
||
Assignee | ||
Comment 10•6 years ago
|
||
Assignee | ||
Comment 11•6 years ago
|
||
Assignee | ||
Comment 12•6 years ago
|
||
Assignee | ||
Comment 13•6 years ago
|
||
Assignee | ||
Comment 14•6 years ago
|
||
Assignee | ||
Comment 15•6 years ago
|
||
Comment 16•6 years ago
|
||
Comment 17•6 years ago
|
||
Updated•6 years ago
|
Comment 18•6 years ago
|
||
Comment 19•6 years ago
|
||
Updated•6 years ago
|
Comment 20•6 years ago
|
||
Updated•6 years ago
|
Comment 22•6 years ago
|
||
Comment 23•6 years ago
|
||
Assignee | ||
Comment 24•6 years ago
|
||
Comment 27•5 years ago
|
||
Baku, what is the current state of your BlobURL patches here?
We're tracking this bug as a potential blocker for Fission Nightly (M6).
Assignee | ||
Comment 28•5 years ago
|
||
Comment 29•5 years ago
|
||
Comment 30•5 years ago
|
||
bugherder |
Assignee | ||
Updated•5 years ago
|
Comment 32•5 years ago
|
||
Backed out changeset 26694602791a (bug 1472158) for causing Bug 1583000
backout: https://hg.mozilla.org/integration/autoland/rev/76a5cf41007c190e1c5ab515b4e274fb74043674
Comment 33•5 years ago
|
||
Backout got merged: https://hg.mozilla.org/mozilla-central/rev/76a5cf41007c
Comment 34•5 years ago
|
||
The implementation that landed seems to only pay attention to window clients, and since ServiceWorkers are intentionally randomly allocated across all eligible processes, the test fails with high probability with a NetworkError when fetch
fails to map the blob URL. (If ServiceWorkers used the same process-selection affinity as SharedWorkers, the test would have passed, but the patch would not handle SharedWorkers or ServiceWorkers correctly.)
The ClientManagerService already knows about all clients (which includes ServiceWorkers), and would be a better source of the information.
Note that I think there is also inherently a PContent/PBackground race in the broadcast mechanism given that the test already has some expected failures per https://searchfox.org/mozilla-central/source/testing/web-platform/meta/service-workers/service-worker/postmessage-blob-url.https.html.ini. (That is, the blob URL broadcast is sent over PContent, but the postMessage in the test goes via PBackground.)
Updated•5 years ago
|
Updated•5 years ago
|
Updated•5 years ago
|
Comment 35•5 years ago
|
||
As a follow-up to my comment 34, baku and I discussed the options via slack and decided that expanding the existing patch approach to also be aware of RemoteWorkers was the most pragmatic solution. (Especially given that fission largely moots the entire problem space.)
The ClientManagerService and Clients API exist on PBackground and the IPC actors exist on a per-global basis, when the semantics we want are really per-process. That would suggest creating something like the oft-discussed background-service-in-the-child mechanism which the "DOM File" thread and RemoteWorkerService and its "Worker Launcher" thread approximate. However, even that complexity would still run into propagation races between PContent and PBackground (via multiple paths). Using the Clients API and making sure that the blobs are relayed to every top-level actor at least once (and therefore all PBackground connection pairs between content threads and PBackground in the parent) in addition to PContent would address the problem, but creates coordination problems from receiving N updates. Plus, it massively multiplies the impact of a badly behaving site.
Also clearing the needinfo for :baku since the problem is understood and addressed and a fixed patch is up.
Comment 36•5 years ago
|
||
Comment 37•5 years ago
|
||
bugherder |
Comment 38•5 years ago
|
||
bugherder |
Comment 39•5 years ago
|
||
Hi Adrian, as this bug is already resolved as FIXED, what does this dependency to bug 1636823 actually mean? (I interpret a dependency as "something that needs to be done before we can complete this work here" - which already has been completed in the past in this case.) Should we reopen this one? I'd prefer to just fix bug 1636823 as a normal defect of something we believed to work some time in the past.
If the intent is to say, the feature we implemented here once is now broken, I fear we have no consistent handling of "enhancement"s being "identifiable features" we could track defects against. I'd say, the most fine grained level we have for this in a quite consistent manner is the component itself (which we don't need to track as dependency, anyway) ?
Maybe a "see also" relation is more appropriate here to provide the wanted context? Am I missing something?
Comment 40•5 years ago
|
||
So basically the block means that this fix introduced bug 1636823, which I'm uncertain if it is a regression or it is intended behavior. If it's a regression, then bug 1636823 will be treated separately from this one and fixed accordingly. Even If it's not a regression, but a follow-up, then it will also be treated separately.
Let's wait for :baku to weight in on bug 1636823 as this bug will remain fixed regardless of the resolution of bug 1636823.
Updated•4 years ago
|
Description
•