Commit Graph

173 Commits

Author SHA1 Message Date
Simon Giesecke
a7ea0ac973 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
46908cfb51 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
4bf0bd451e 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
68b806d604 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
a6e7dcc53f Backed out changeset c0adbf7522dc (bug 1674637) for bustage on GMPParent.cpp. CLOSED TREE 2020-11-04 10:54:36 +02:00
Sylvestre Ledru
8f709b39e8 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
05adafa9ef 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
f472116032 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
2020-03-26 00:29:48 +00:00
Lars T Hansen
3bc7b6a026 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
2020-02-19 09:25:52 +00:00
Tom Tung
3e48d4e79b 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
2020-02-14 13:45:47 +00:00
Andreea Pavel
6b44596d7e Backed out changeset 5a4eb6758bed (bug 1609916) for hazard bustages on a CLOSED TREE 2020-02-07 20:20:10 +02:00
Lars T Hansen
84938168ff 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
2020-02-07 16:54:48 +00:00
Daniel Varga
f74db2c018 Backed out changeset 1dc5c3074b57 (bug 1609916) for causing spidermonkey bustage
CLOSED TREE
2020-02-07 18:35:30 +02:00
Lars T Hansen
14d9a19b8d 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
2020-02-07 15:42:37 +00:00
Andrea Marchesini
d297b8329a 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
2020-02-06 13:47:08 +00:00
Andrea Marchesini
8dcb4fe84b 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
2020-02-06 13:46:25 +00:00
Narcis Beleuzu
f00579517d 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)
2020-02-06 12:31:36 +02:00
Andrea Marchesini
0a614288cb 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
2020-02-05 22:08:39 +00:00
Andrea Marchesini
b87fea304b 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
2020-02-05 22:07:34 +00:00
Andrea Marchesini
05efe281e1 Bug 1609990 - AgentCluster comparison in MessagePort and BroadcastChannel - part 3 - CloneDataPolicy, r=smaug,sfink,lth
Differential Revision: https://phabricator.services.mozilla.com/D60485
2020-01-24 16:31:21 +00:00
Noemi Erli
5fee1020e5 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
ea77f4cf0d Bug 1609990 - AgentCluster comparison in MessagePort and BroadcastChannel - part 3 - CloneDataPolicy, r=smaug,sfink,lth
Differential Revision: https://phabricator.services.mozilla.com/D60485
2020-01-24 15:25:24 +00:00
Andrea Marchesini
fd4d4d12be Bug 1605566 - MessagePort + wasm - part 2 - implement JS::StructuredCloneScope::UnknownDestination, r=sfink
Differential Revision: https://phabricator.services.mozilla.com/D59613
2020-01-24 07:57:56 +00:00
Andrea Marchesini
a400a16297 Bug 1604694 - Disallow serializing and transferring non-origin-clean ImageBitmap, r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D60664
2020-01-22 16:24:00 +00:00
Narcis Beleuzu
3005d9b206 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
1f6d931de7 Bug 1605566 - MessagePort + wasm - part 2 - implement JS::StructuredCloneScope::UnknownDestination, r=sfink
Differential Revision: https://phabricator.services.mozilla.com/D59613
2020-01-22 09:32:48 +00:00
Andrea Marchesini
26e1adb0b9 Bug 1607791 - Get rid of IDBMutableFile.getFile() - part 3 - Rename SameProcessDifferentThread to SameProcess, r=asuth,sfink
Differential Revision: https://phabricator.services.mozilla.com/D59142
2020-01-15 12:02:17 +00:00
Andrea Marchesini
8135215f86 Bug 1607791 - Get rid of IDBMutableFile.getFile() - part 2 - Remove SameProcessSameThread, r=asuth,sfink
Differential Revision: https://phabricator.services.mozilla.com/D59141
2020-01-15 12:02:19 +00:00
Andrea Marchesini
3b15153d5e Bug 1607791 - Get rid of IDBMutableFile.getFile() - part 1, r=asuth,janv
Differential Revision: https://phabricator.services.mozilla.com/D59140
2020-01-15 12:02:21 +00:00
Mihai Alexandru Michis
de0cc7e19b 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
7c1f11e981 Bug 1605566 - MessagePort + wasm - part 2 - implement JS::StructuredCloneScope::UnknownDestination, r=sfink
Differential Revision: https://phabricator.services.mozilla.com/D59613
2020-01-15 10:00:59 +00:00
Andrea Marchesini
3bf15479ce Bug 1607791 - Get rid of IDBMutableFile.getFile() - part 3 - Rename SameProcessDifferentThread to SameProcess, r=asuth,sfink
Differential Revision: https://phabricator.services.mozilla.com/D59142
2020-01-15 09:59:16 +00:00
Andrea Marchesini
f078e9045f Bug 1607791 - Get rid of IDBMutableFile.getFile() - part 2 - Remove SameProcessSameThread, r=asuth,sfink
Differential Revision: https://phabricator.services.mozilla.com/D59141
2020-01-15 09:58:59 +00:00
Andrea Marchesini
a87f7d5e94 Bug 1607791 - Get rid of IDBMutableFile.getFile() - part 1, r=asuth,janv
Differential Revision: https://phabricator.services.mozilla.com/D59140
2020-01-15 09:58:39 +00:00
Andrea Marchesini
546c197101 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
2020-01-07 15:02:00 +00:00
Brindusan Cristian
4156a74796 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
dbb0802ad0 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
2020-01-07 12:37:12 +00:00
Kris Maglione
9482a453b5 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
2019-12-07 18:59:14 +00:00
Ciure Andrei
ea6f2e46e4 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
c01ba6d81d 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
2019-12-07 04:43:24 +00:00
Karl Tomlinson
cef89fa008 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
2019-12-03 00:37:23 +00:00
Coroiu Cristina
dac5c891f1 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
55ffe9a0b9 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
2019-12-03 00:07:33 +00:00
Tom Tung
ded1981ea7 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
2019-10-23 07:20:18 +00:00
Tom Tung
55d62167d0 Bug 1583251 - P2 - Fix some format nits or naming nits for StructuredClone::Write; r=nika,lth
Differential Revision: https://phabricator.services.mozilla.com/D48348
2019-10-23 07:20:05 +00:00
Andrea Marchesini
b80e4fd342 Bug 1585284 - Force global in Blob CTOR, r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D49629
2019-10-21 05:33:19 +00:00
Andrea Marchesini
e5c5bd4530 Bug 1585284 - Use nsIGlobalObject in any Blob/File CTOR, r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D49392
2019-10-21 05:33:33 +00:00
Razvan Maries
495feee7f1 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
e971befb04 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
2019-10-15 13:42:25 +00:00
Tom Tung
0d8ea4b5e5 Bug 1583251 - P2 - Fix some format nits or naming nits for StructuredClone::Write; r=nika,lth
Differential Revision: https://phabricator.services.mozilla.com/D48348
2019-10-15 13:49:26 +00:00