Commit graph

173 commits

Author SHA1 Message Date
Simon Giesecke
9093e5e1bf Bug 1673424 - Fix includes around JS/StructuredClone.h.
Differential Revision: https://phabricator.services.mozilla.com/D94762

Depends on D93568
2020-11-23 16:06:52 +00:00
Simon Giesecke
971b645fe3 Bug 1660470 - Add missing include directives/forward declarations. r=nika
Differential Revision: https://phabricator.services.mozilla.com/D87865
2020-11-23 16:21:38 +00:00
Simon Giesecke
17eaf9bf3f Bug 1676152 - Generalize StructuredCloneHolder::WriteString to accept a nsAString. r=baku
Differential Revision: https://phabricator.services.mozilla.com/D96415
2020-11-13 07:55:16 +00:00
Sylvestre Ledru
fde06f6d21 Bug 1674637 - Use nested namespaces in dom/ r=sg,andi
Also add some missing namespace qualifications

Done with:
./mach static-analysis check --checks="-*,modernize-concat-nested-namespaces" --fix dom/
./mach clang-format -p $(hg status dom/|grep ^M|awk '{print $2}')

Differential Revision: https://phabricator.services.mozilla.com/D95456
2020-11-04 17:04:01 +00:00
Butkovits Atila
964cca3198 Backed out changeset c0adbf7522dc (bug 1674637) for bustage on GMPParent.cpp. CLOSED TREE 2020-11-04 10:54:36 +02:00
Sylvestre Ledru
5f29324f60 Bug 1674637 - Use nested namespaces in dom/ r=sg,andi
Also add some missing namespace qualifications

Done with:
./mach static-analysis check --checks="-*,modernize-concat-nested-namespaces" --fix dom/
./mach clang-format -p $(hg status dom/|grep ^M|awk '{print $2}')

Differential Revision: https://phabricator.services.mozilla.com/D95456
2020-11-04 08:29:00 +00:00
Jean-Yves Avenard
87438519f0 Bug 1637500 - P2. Rename methods as they are not always dealing with "threads". r=froydnj
Before P1, GetCurrentThreadSerialEventTarget would have always returned the same data as NS_GetCurrentThread, making the comment incorrect Now it will properly return the running TaskQueue if any.

This change of name more clearly exposes what they are doing, as we aren't always dealing with threads directly; but a nsISerialEventTarget

Differential Revision: https://phabricator.services.mozilla.com/D80354
2020-06-23 05:05:36 +00:00
Bas Schouten
6458fb2f4f Bug 1563335 - Part 2: Add a pref for serializing all JS threads that access shared SABs. r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D66953

--HG--
extra : moz-landing-system : lando
2020-03-26 00:29:48 +00:00
Lars T Hansen
5dd2428621 Bug 1609916 - Callback from SC to DOM on SAB cloning. r=luke
When structured clone reads a SAB and creates a new SAB object, or
when it serializes a SAB onto a channel, call a callback that lets the
embedder know.  The embedder can then adjust its policy.  Concretely,
we want to allow the browser to serialize threads in a process that
uses JS shared memory.

Note, for WebAssembly.Memory, reading and writing are delegated to the
cloning operations for SAB, so no special handling is needed.

Differential Revision: https://phabricator.services.mozilla.com/D61455

--HG--
extra : moz-landing-system : lando
2020-02-19 09:25:52 +00:00
Tom Tung
0e080c84cd Bug 1613900 - P2 - Report original JS error message to StructuredCloneCallbacksError; r=baku,sfink
The idea is to propagate error messages defined in js.msg to
StructuredCloneHolder and throw it with a data clone error later. So that
developers can still understand the reason why serialization/deserialization
fails and we don't need to implement two similar set of error messages on JS and
DOM sides.

Note that this patch gave up the original idea (report error message to
console), but developers can stil get the error message by catching the
exception.

Differential Revision: https://phabricator.services.mozilla.com/D62260

--HG--
extra : moz-landing-system : lando
2020-02-14 13:45:47 +00:00
Andreea Pavel
217f810381 Backed out changeset 5a4eb6758bed (bug 1609916) for hazard bustages on a CLOSED TREE 2020-02-07 20:20:10 +02:00
Lars T Hansen
ccea2f09db Bug 1609916 - Callback from SC to DOM on SAB cloning. r=luke
When structured clone reads a SAB and creates a new SAB object, or
when it serializes a SAB onto a channel, call a callback that lets the
embedder know.  The embedder can then adjust its policy.  Concretely,
we want to allow the browser to serialize threads in a process that
uses JS shared memory.

Note, for WebAssembly.Memory, reading and writing are delegated to the
cloning operations for SAB, so no special handling is needed.

Differential Revision: https://phabricator.services.mozilla.com/D61455

--HG--
extra : moz-landing-system : lando
2020-02-07 16:54:48 +00:00
Daniel Varga
0d5be0b49c Backed out changeset 1dc5c3074b57 (bug 1609916) for causing spidermonkey bustage
CLOSED TREE
2020-02-07 18:35:30 +02:00
Lars T Hansen
390dff3ee2 Bug 1609916 - Callback from SC to DOM on SAB cloning. r=luke
When structured clone reads a SAB and creates a new SAB object, or
when it serializes a SAB onto a channel, call a callback that lets the
embedder know.  The embedder can then adjust its policy.  Concretely,
we want to allow the browser to serialize threads in a process that
uses JS shared memory.

Note, for WebAssembly.Memory, reading and writing are delegated to the
cloning operations for SAB, so no special handling is needed.

Differential Revision: https://phabricator.services.mozilla.com/D61455

--HG--
extra : moz-landing-system : lando
2020-02-07 15:42:37 +00:00
Andrea Marchesini
8b2679f24b Bug 1611855 - Worklet must be part of the same parent's agentCluster - part 3 - update the scope after a writing, r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D61183

--HG--
extra : moz-landing-system : lando
2020-02-06 13:47:08 +00:00
Andrea Marchesini
b13b3b72d2 Bug 1611855 - Worklet must be part of the same parent's agentCluster - part 2 - CloneDataPolicy in writing, r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D61182

--HG--
extra : moz-landing-system : lando
2020-02-06 13:46:25 +00:00
Narcis Beleuzu
d259fe38d8 Backed out 13 changesets (bug 1611855) for wpt failures on /audioworklet-postmessage-sharedarraybuffer.https.html . CLOSED TREE
Backed out changeset 2b661d588f96 (bug 1611855)
Backed out changeset 16094fc92bc9 (bug 1611855)
Backed out changeset 3f89bbcaff92 (bug 1611855)
Backed out changeset a906501b6d92 (bug 1611855)
Backed out changeset 54738b88425d (bug 1611855)
Backed out changeset d27de910a6c0 (bug 1611855)
Backed out changeset 261902f6336d (bug 1611855)
Backed out changeset 380d83b61e62 (bug 1611855)
Backed out changeset 39aac60ebf5e (bug 1611855)
Backed out changeset 5ea099787376 (bug 1611855)
Backed out changeset d0f58871f838 (bug 1611855)
Backed out changeset e1be102310a9 (bug 1611855)
Backed out changeset 633357835540 (bug 1611855)

--HG--
rename : dom/base/test/test_postMessages_workers.html => dom/base/test/test_postMessages.html
2020-02-06 12:31:36 +02:00
Andrea Marchesini
94658a20fe Bug 1611855 - Worklet must be part of the same parent's agentCluster - part 3 - update the scope after a writing, r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D61183

--HG--
extra : moz-landing-system : lando
2020-02-05 22:08:39 +00:00
Andrea Marchesini
87b1a8a547 Bug 1611855 - Worklet must be part of the same parent's agentCluster - part 2 - CloneDataPolicy in writing, r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D61182

--HG--
extra : moz-landing-system : lando
2020-02-05 22:07:34 +00:00
Andrea Marchesini
c4cb10712a Bug 1609990 - AgentCluster comparison in MessagePort and BroadcastChannel - part 3 - CloneDataPolicy, r=smaug,sfink,lth
Differential Revision: https://phabricator.services.mozilla.com/D60485

--HG--
extra : moz-landing-system : lando
2020-01-24 16:31:21 +00:00
Noemi Erli
e4b712dcb8 Backed out 4 changesets (bug 1609990) for causing Spidermonkey rust bustage CLOSED TREE
Backed out changeset 81a77bb3772c (bug 1609990)
Backed out changeset d4524885cb97 (bug 1609990)
Backed out changeset c95aac908332 (bug 1609990)
Backed out changeset bae3e50ab64d (bug 1609990)
2020-01-24 18:13:24 +02:00
Andrea Marchesini
ac6024f408 Bug 1609990 - AgentCluster comparison in MessagePort and BroadcastChannel - part 3 - CloneDataPolicy, r=smaug,sfink,lth
Differential Revision: https://phabricator.services.mozilla.com/D60485

--HG--
extra : moz-landing-system : lando
2020-01-24 15:25:24 +00:00
Andrea Marchesini
0077863f8e Bug 1605566 - MessagePort + wasm - part 2 - implement JS::StructuredCloneScope::UnknownDestination, r=sfink
Differential Revision: https://phabricator.services.mozilla.com/D59613

--HG--
extra : moz-landing-system : lando
2020-01-24 07:57:56 +00:00
Andrea Marchesini
7edc7813b5 Bug 1604694 - Disallow serializing and transferring non-origin-clean ImageBitmap, r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D60664

--HG--
extra : moz-landing-system : lando
2020-01-22 16:24:00 +00:00
Narcis Beleuzu
cb54b0227b Backed out 5 changesets (bug 1605566) for wpt failures on shared.html . CLOSED TREE
Backed out changeset 622939cef438 (bug 1605566)
Backed out changeset ab98304e6c84 (bug 1605566)
Backed out changeset 7eab8fd2b62e (bug 1605566)
Backed out changeset 99f61f25ed86 (bug 1605566)
Backed out changeset 77bdf4f86052 (bug 1605566)
2020-01-22 12:58:13 +02:00
Andrea Marchesini
14b6fd8572 Bug 1605566 - MessagePort + wasm - part 2 - implement JS::StructuredCloneScope::UnknownDestination, r=sfink
Differential Revision: https://phabricator.services.mozilla.com/D59613

--HG--
extra : moz-landing-system : lando
2020-01-22 09:32:48 +00:00
Andrea Marchesini
a9cf3442be Bug 1607791 - Get rid of IDBMutableFile.getFile() - part 3 - Rename SameProcessDifferentThread to SameProcess, r=asuth,sfink
Differential Revision: https://phabricator.services.mozilla.com/D59142

--HG--
extra : moz-landing-system : lando
2020-01-15 12:02:17 +00:00
Andrea Marchesini
7af68b55f9 Bug 1607791 - Get rid of IDBMutableFile.getFile() - part 2 - Remove SameProcessSameThread, r=asuth,sfink
Differential Revision: https://phabricator.services.mozilla.com/D59141

--HG--
extra : moz-landing-system : lando
2020-01-15 12:02:19 +00:00
Andrea Marchesini
ce6465d9ea Bug 1607791 - Get rid of IDBMutableFile.getFile() - part 1, r=asuth,janv
Differential Revision: https://phabricator.services.mozilla.com/D59140

--HG--
extra : moz-landing-system : lando
2020-01-15 12:02:21 +00:00
Mihai Alexandru Michis
4345a38d0d Backed out 9 changesets (bug 1607791, bug 1605566) for causing multiple wpt failures.
CLOSED TREE

Backed out changeset 39f34852842e (bug 1605566)
Backed out changeset 3427a92445c8 (bug 1605566)
Backed out changeset 36631ec96f1f (bug 1605566)
Backed out changeset 554b2bdce66c (bug 1605566)
Backed out changeset 37026beadbd8 (bug 1605566)
Backed out changeset f15835338319 (bug 1607791)
Backed out changeset 4c92f506cf62 (bug 1607791)
Backed out changeset 80707bcc8427 (bug 1607791)
Backed out changeset 75bc7533c899 (bug 1607791)
2020-01-15 13:45:33 +02:00
Andrea Marchesini
c5b0781d9f Bug 1605566 - MessagePort + wasm - part 2 - implement JS::StructuredCloneScope::UnknownDestination, r=sfink
Differential Revision: https://phabricator.services.mozilla.com/D59613

--HG--
extra : moz-landing-system : lando
2020-01-15 10:00:59 +00:00
Andrea Marchesini
6d6aa4cc66 Bug 1607791 - Get rid of IDBMutableFile.getFile() - part 3 - Rename SameProcessDifferentThread to SameProcess, r=asuth,sfink
Differential Revision: https://phabricator.services.mozilla.com/D59142

--HG--
extra : moz-landing-system : lando
2020-01-15 09:59:16 +00:00
Andrea Marchesini
3cd17a373a Bug 1607791 - Get rid of IDBMutableFile.getFile() - part 2 - Remove SameProcessSameThread, r=asuth,sfink
Differential Revision: https://phabricator.services.mozilla.com/D59141

--HG--
extra : moz-landing-system : lando
2020-01-15 09:58:59 +00:00
Andrea Marchesini
6c05c922e3 Bug 1607791 - Get rid of IDBMutableFile.getFile() - part 1, r=asuth,janv
Differential Revision: https://phabricator.services.mozilla.com/D59140

--HG--
extra : moz-landing-system : lando
2020-01-15 09:58:39 +00:00
Andrea Marchesini
2616cac8b3 Bug 1030481 - Remove nsIMutable, r=smaug
nsIMutable is used only by DOM Blob/File. But Blobs are immutable by spec.
FileBlobImpl has a couple of lazy member values, but those are called when
the object is cloned in order to be sent to a different thread/process.

Differential Revision: https://phabricator.services.mozilla.com/D58946

--HG--
extra : moz-landing-system : lando
2020-01-07 15:02:00 +00:00
Brindusan Cristian
ed883ce3f4 Backed out changeset 61101e3eebb3 (bug 1030481) for mochitest failures at test_file.xhtml. CLOSED TREE 2020-01-07 16:30:53 +02:00
Andrea Marchesini
4059db5bc7 Bug 1030481 - Remove nsIMutable, r=smaug
nsIMutable is used only by DOM Blob/File. But Blobs are immutable by spec.
FileBlobImpl has a couple of lazy member values, but those are called when
the object is cloned in order to be sent to a different thread/process.

Differential Revision: https://phabricator.services.mozilla.com/D58716

--HG--
extra : moz-landing-system : lando
2020-01-07 12:37:12 +00:00
Kris Maglione
a71c8e64ff Bug 1588839 - Part 1 - Add helper to allow structured cloning Error/Exception objects. r=bzbarsky
In order to be able to reasonably debug error results from things like
JSWindowActor.sendQuery, we need to be able to clone errors across process
boundaries, so that they can be propagated to the caller that initiated a
query. The standard for the structured clone algorithm does not allow cloning
errors directly, so this patch instead adds a chrome-only wrapper object which
supports structured clone writing, and on reading, automatically decodes to
the error object it wraps. Callers who wish to clone an Error or Exception
object simply need to wrap it in a ClonedErrorHolder before sending.

Differential Revision: https://phabricator.services.mozilla.com/D50881

--HG--
extra : moz-landing-system : lando
2019-12-07 18:59:14 +00:00
Ciure Andrei
cbb1fe8008 Backed out 4 changesets (bug 1588839) for causing JSWindowActor.cpp failures CLOSED TREE
Backed out changeset 7cfcd0f5da4f (bug 1588839)
Backed out changeset cde41501372a (bug 1588839)
Backed out changeset 65cc1910918c (bug 1588839)
Backed out changeset 2f8b5b48c896 (bug 1588839)
2019-12-07 19:41:36 +02:00
Kris Maglione
32678cd302 Bug 1588839 - Part 1 - Add helper to allow structured cloning Error/Exception objects. r=bzbarsky
In order to be able to reasonably debug error results from things like
JSWindowActor.sendQuery, we need to be able to clone errors across process
boundaries, so that they can be propagated to the caller that initiated a
query. The standard for the structured clone algorithm does not allow cloning
errors directly, so this patch instead adds a chrome-only wrapper object which
supports structured clone writing, and on reading, automatically decodes to
the error object it wraps. Callers who wish to clone an Error or Exception
object simply need to wrap it in a ClonedErrorHolder before sending.

Differential Revision: https://phabricator.services.mozilla.com/D50881

--HG--
extra : moz-landing-system : lando
2019-12-07 04:43:24 +00:00
Karl Tomlinson
49263a8134 Bug 1599952 Introduce UniqueMessagePortId and use it for CloneAndDisentangle() and Create() r=baku
Also, StructuredCloneHolder::CustomWriteTransferHandler() no longer appends an
unused element to mPortIdentifiers when MessagePort::CanBeCloned() returns
false.

Differential Revision: https://phabricator.services.mozilla.com/D55213

--HG--
extra : moz-landing-system : lando
2019-12-03 00:37:23 +00:00
Coroiu Cristina
679f321343 Backed out 5 changesets (bug 1599952) for failures at webaudio/the-audio-api/the-audioworklet-interface/audioworklet-messageport.https.html.ini
Backed out changeset 78adc22d922a (bug 1599952)
Backed out changeset b07c89cbc212 (bug 1599952)
Backed out changeset 7768d524d914 (bug 1599952)
Backed out changeset 7012927838fe (bug 1599952)
Backed out changeset dbf476d4eab6 (bug 1599952)
2019-12-03 02:33:23 +02:00
Karl Tomlinson
375470f88b Bug 1599952 Introduce UniqueMessagePortId and use it for CloneAndDisentangle() and Create() r=baku
Also, StructuredCloneHolder::CustomWriteTransferHandler() no longer appends an
unused element to mPortIdentifiers when MessagePort::CanBeCloned() returns
false.

Differential Revision: https://phabricator.services.mozilla.com/D55213

--HG--
extra : moz-landing-system : lando
2019-12-03 00:07:33 +00:00
Tom Tung
f24d6deaf7 Bug 1583251 - P3 - Check if it is okay to allow shared memory while deserializing; r=nika,lth
Differential Revision: https://phabricator.services.mozilla.com/D48349

--HG--
extra : moz-landing-system : lando
2019-10-23 07:20:18 +00:00
Tom Tung
a0d1f674b6 Bug 1583251 - P2 - Fix some format nits or naming nits for StructuredClone::Write; r=nika,lth
Differential Revision: https://phabricator.services.mozilla.com/D48348

--HG--
extra : moz-landing-system : lando
2019-10-23 07:20:05 +00:00
Andrea Marchesini
410cb724a7 Bug 1585284 - Force global in Blob CTOR, r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D49629

--HG--
extra : moz-landing-system : lando
2019-10-21 05:33:19 +00:00
Andrea Marchesini
6797e45278 Bug 1585284 - Use nsIGlobalObject in any Blob/File CTOR, r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D49392

--HG--
extra : moz-landing-system : lando
2019-10-21 05:33:33 +00:00
Razvan Maries
f9d8db28af Backed out 5 changesets (bug 1583251) for rust build bustages. CLOSED TREE
Backed out changeset bfe390ad771b (bug 1583251)
Backed out changeset 0113c698b44d (bug 1583251)
Backed out changeset 248ad59168dd (bug 1583251)
Backed out changeset 5d5e3dc17118 (bug 1583251)
Backed out changeset 9e9eaa78c436 (bug 1583251)
2019-10-18 17:59:20 +03:00
Tom Tung
5ba65c0735 Bug 1583251 - P3 - Check if it is okay to allow shared memory while deserializing; r=nika,lth
Differential Revision: https://phabricator.services.mozilla.com/D48349

--HG--
extra : moz-landing-system : lando
2019-10-15 13:42:25 +00:00
Tom Tung
c291baa433 Bug 1583251 - P2 - Fix some format nits or naming nits for StructuredClone::Write; r=nika,lth
Differential Revision: https://phabricator.services.mozilla.com/D48348

--HG--
extra : moz-landing-system : lando
2019-10-15 13:49:26 +00:00