Commit Graph

75 Commits

Author SHA1 Message Date
Andrew McCreight
44f182bf3b Bug 1539261, part 2 - Mark various JSStructuredCloneData methods MOZ_MUST_USE. r=sfink
Also, fix up various places that call these methods.

Depends on D24991

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

--HG--
extra : moz-landing-system : lando
2019-03-27 20:41:17 +00:00
arthur.iakab
7ae8fb76e1 Backed out 2 changesets (bug 1539261) for multiple build bustages on /fuzz-tests/testStructuredCloneReader.cpp CLOSED TREE
Backed out changeset 526daf87fff9 (bug 1539261)
Backed out changeset 5b070b6ae224 (bug 1539261)
2019-03-27 21:59:29 +02:00
Andrew McCreight
c5ae898857 Bug 1539261, part 2 - Mark various JSStructuredCloneData methods MOZ_MUST_USE. r=sfink
Also, fix up various places that call these methods.

Depends on D24991

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

--HG--
extra : moz-landing-system : lando
2019-03-27 19:34:46 +00:00
Tooru Fujisawa
7983faeb5d Bug 1511393 - Use c-basic-offset: 2 in Emacs mode line for C/C++ code. r=nbp 2018-12-01 04:52:05 +09:00
Benjamin Bouvier
a7f1d173a0 Bug 1511383: Update vim modelines after clang-format; r=sylvestre
- modify line wrap up to 80 chars; (tw=80)
- modify size of tab to 2 chars everywhere; (sts=2, sw=2)

--HG--
extra : rebase_source : 7eedce0311b340c9a5a1265dc42d3121cc0f32a0
extra : amend_source : 9cb4ffdd5005f5c4c14172390dd00b04b2066cd7
2018-11-30 16:39:55 +01:00
Sylvestre Ledru
265e672179 Bug 1511181 - Reformat everything to the Google coding style r=ehsan a=clang-format
# ignore-this-changeset

--HG--
extra : amend_source : 4d301d3b0b8711c4692392aa76088ba7fd7d1022
2018-11-30 11:46:48 +01:00
Jan de Mooij
bccfe7c569 Bug 1508065 - Change JS_PUBLIC_{API,DATA} and JS_FRIEND_{API,DATA} to be more like similar macros to avoid confusing clang-format. r=tcampbell
Differential Revision: https://phabricator.services.mozilla.com/D12256

--HG--
extra : moz-landing-system : lando
2018-11-19 17:02:47 +00:00
Jan de Mooij
ab644b087f Bug 1488698 - Always use braces for if/for/while statements in js/public. r=jandem
--HG--
extra : rebase_source : 075f0747c9256fee67925853b501b7a3549cebba
2018-09-06 12:11:07 +02:00
Emilio Cobos Álvarez
fffb25b74f Bug 1465585: Switch from mozilla::Move to std::move. r=froydnj
This was done automatically replacing:

  s/mozilla::Move/std::move/
  s/ Move(/ std::move(/
  s/(Move(/(std::move(/

Removing the 'using mozilla::Move;' lines.

And then with a few manual fixups, see the bug for the split series..

MozReview-Commit-ID: Jxze3adipUh
2018-06-01 10:45:27 +02:00
Steve Fink
e1fedf5974 Bug 1442722 - Move scope into JSStructuredData, r=baku,jorendorff
--HG--
extra : topic : clone.refactor
extra : rebase_source : 657bfd1a4c87de0a27c99e685adbf739c907ed6c
2018-04-03 11:17:33 -07:00
Steve Fink
bc4f45a9ba Bug 1456604 - Add DifferentProcessForIndexedDB scope to handle backwards compatibility with SameProcessSameThread clones, r=jorendorff
--HG--
extra : topic : clone.refactor
extra : rebase_source : 7920e35fb4b2370ce6a06cd27579824faabe7bd9
2018-04-24 15:21:47 -07:00
Steve Fink
c9d4e5e153 Bug 1456858 - structured clone comment fixups, r=jorendorff
--HG--
extra : topic : clone.refactor
extra : rebase_source : f56d3789d0f8fa3f7a903f6d5ea079ac75492cd6
2018-04-25 12:15:51 -07:00
Steve Fink
2cdf0a6db9 Bug 1433642 - Do not free transferables in synthetic clone buffers, r=jorendorff
--HG--
extra : rebase_source : b9b92559fc1b3b226636d24f316fd56da4445233
extra : source : 6b7d7b8605ea2240498f01eab16c0940f6e0cc30
2018-04-19 22:46:53 -07:00
Steve Fink
dca82594a8 Backed out changeset 6b7d7b8605ea (bug 1433642)
--HG--
extra : rebase_source : 960fe894f8f095f58d640c9821627cdbc544c5a6
extra : histedit_source : 7141bd5860f17d4717bb0b87272b40a4a7eacaa2
2018-04-24 16:01:56 -07:00
Steve Fink
1e4199c9d6 Bug 1433642 - Do not free transferables in synthetic clone buffers, r=jorendorff
--HG--
extra : rebase_source : 6d550298aa19bb19645fd02004eaaeb3e132afaf
2018-04-19 22:46:53 -07:00
Steve Fink
c92957a424 Bug 1455071 - Use delegation rather than inheritance for the BufferList in JSStructuredCloneData, r=jorendorff,r=baku
--HG--
extra : rebase_source : 1620d0a2d99d9aeddd7d06b4f29251907311ef86
extra : histedit_source : 59145661383b920085164eff3586a78da41c420b
2018-03-15 16:56:09 -07:00
Steve Fink
185250e668 Bug 1455071 - Remove unused JSAutoStructuredCloneBuffer::copy, r=jorendorff
--HG--
extra : rebase_source : 59dd8139542fa3761fc2b343cfc88d2a3036059e
2018-03-15 20:09:09 -07:00
Steve Fink
bbfc47ea95 Bug 1455071 - Comment the purpose of JSAutoStructuredCloneBuffer, r=jorendorff
--HG--
extra : rebase_source : ce0d972b8b67bde5932606e5ae1bba8eade7b005
2018-03-15 20:08:58 -07:00
Steve Fink
b30ce6e292 Bug 1455071 - Remove unused alternate callback option to JSAutoStructuredCloneBuffer::clear, r=jorendorff
--HG--
extra : rebase_source : 274cdaca9fc7f59c16a3e2ef1f979695eea30a3b
2018-03-15 17:11:31 -07:00
Steve Fink
d1d9f3cca9 Bug 1455071 - Bulk up SCOutput by changing it from storing a bare BufferList to a full JSStructuredCloneData, r=jorendorff
Then move JSStructuredCloneWriter's callbacks, callback data, and refsHeld into its SCOutput's JSStructuredCloneData. This removes the loose fields from JSStructuredCloneWriter and allows using move construction to remove a bunch of code.

--HG--
extra : rebase_source : 37cb0d4a15ffd0155bb7a55cd0fbefc358e649a8
2018-03-15 14:04:24 -07:00
Andrea Marchesini
cb4b451b23 Bug 1441141 - Update the StructuredCloneAlgorithm to follow the latest version of the spec, r=smaug, r=sfink 2018-03-28 09:23:17 +02:00
Jason Orendorff
63e9540554 Bug 1440372 - StructuredClone comments. r=sfink.
--HG--
extra : rebase_source : c712672413c3e001667d3fc30c88f2aeae891563
extra : histedit_source : 137a842d21598a72f6aa4027041ffc99f0b27e8b
2018-02-20 21:40:49 -06:00
Jason Orendorff
f5bc70ac9c Bug 1429206 - Part 1: Use js/TypeDecls.h instead of redeclaring certain types. r=jandem.
This adds JS::Zone to TypeDecls.h. Arguably that is pretty borderline, but
even though the Zone type is only used in a dozen or so places in Gecko,
it's a central concept.

--HG--
extra : rebase_source : 2267ad26c8888f3db9213acdb64ce7a56b1c16e5
extra : source : 7f7eb82a83f47c8e1a4b67527c42f88e35f9ff4a
2017-12-18 14:45:06 -06:00
Lars T Hansen
1ccda3f5bc Bug 1427130 - Add guard to SAB structured clone. r=jorendorff
This demotes a MOZ_RELEASE_ASSERT in the SAB case for SC write to a
run-time check.  The reason is that the clone policy must conform to
the clone scope, specifically, if the scope is DifferentProcess then
the policy must deny SAB.

The check was an assert previously because we mistakenly thought that
we controlled all the callers, but we do not - the TestingFunction
serialize() has a permissive API and instead of adding a lot of
complexity there we should change the assert to a run-time check.  The
code is more resilient as a result anyway.

Also document this quirk in the SC header file.

--HG--
extra : rebase_source : 4b632fe57bc9ebf3f38210b1ffad11fde57befa6
2018-01-15 11:31:35 +01:00
Lars T Hansen
3f9a90d355 Bug 1412852 - Structured clone WebAssembly.Memory objects. r=sfink
--HG--
extra : rebase_source : 0f96caf022c5d0ec51e5c9710468ed8015acf4aa
2017-10-31 13:38:28 +01:00
Kris Maglione
8683b183cd Bug 1382645: Part 1 - Add memory reporter for StructuredCloneHolder binding implementation. r=billm
MozReview-Commit-ID: aK3ljfCJVi

--HG--
extra : rebase_source : d788c6c686cc72b423ca100795a379d343c398db
2017-07-25 14:53:41 -07:00
Kris Maglione
02d405ec1f Bug 1373579: Part 1 - Initialize all members when using an inherited constructor. r=billm
MozReview-Commit-ID: Dr4Zm2OJclo

--HG--
extra : rebase_source : e514665262135cec08afd19cbf602078ac2a201e
2017-06-19 16:48:03 -07:00
Lars T Hansen
c86b9cb593 Bug 1352681 - Make SAB rawBuffer refcounting for structured clone more sophisticated. r=sfink
--HG--
extra : rebase_source : f5c97970013daab78075e2fe68c9704cda7064cd
2017-04-03 14:18:15 +02:00
Boris Zbarsky
746467862d Bug 1346389. Make --enable-shared-js link again, at least for an opt mac build with intl api disabled. r=sfink, a=waldo on the gcc-specific bits. 2017-03-10 23:52:55 -05:00
Boris Zbarsky
d6b2fc9b4d Backed out changeset c1978f7d49c4 for build failures.
MozReview-Commit-ID: FOwcGtykkXR
2017-03-11 00:10:36 -05:00
Boris Zbarsky
160b2e80e9 Bug 1346389. Make --enable-shared-js link again, at least for an opt mac build with intl api disabled. r=sfink
MozReview-Commit-ID: 264vsCvhh9Z
2017-03-10 23:52:55 -05:00
Lars T Hansen
58483a5212 Bug 1302037 - Don't allow SAB in transfer map. r=shu
--HG--
extra : rebase_source : 5f3e2b8ea633a7dd504fa2bdab91bc5c36957e1b
extra : amend_source : 50cae6b6d5b04f8484051d469aef5b2898a6fe2a
2017-02-10 10:02:18 +01:00
Lars T Hansen
5666e2e102 Bug 1302036 - Make structured clone accept argument that controls serialization of some data types. r=sfink
--HG--
extra : rebase_source : c082dcc82adccba47a7bd0e18fb59d87b072ae3d
2016-10-24 14:22:47 +02:00
Kan-Ru Chen
b4cf4bec61 Bug 1264642 - Part 6. Mark JSStructuredCloneData as MOZ_NON_MEMMOVABLE and add specializations in nsTArray.h. r=froydnj
MozReview-Commit-ID: HltgzBnxMsn
2016-08-23 00:40:47 +08:00
Kan-Ru Chen
506dfe6ea3 Bug 1264642 - Part 4. Use BufferList to replace raw buffers in StructuredClone. r=baku r=billm r=jorendorff
In JS StructuredClone BufferList<SystemAllocPolicy> is typedef'd to
JSStructuredCloneData and use everywhere in gecko that stores structured
clone data.

This patch changed some raw pointers to UniquePtr<JSStructuredCloneData>
and some to stack allocated JSStructuredCloneData for better life time
management. Some parameters or methods are deleted because of changing
to the new data structure.

MessagePortMessage now has the exactly same structure with
ClonedMessageData. Maybe in the future they can be consolidated.

MozReview-Commit-ID: 1IY9p5eKLgv
2016-08-23 00:40:46 +08:00
Andrea Marchesini
248823da76 Bug 1264053 - MessagePort should support transferable objects in multi-e10s - part 2, r=sfink 2016-08-17 07:54:00 +02:00
Andrea Marchesini
a183983968 Bug 1264053 - MessagePort should support transferable objects in multi-e10s, r=sfink, r=smaug, r=jorendorff, r=janv 2016-07-21 15:29:42 +02:00
Andrea Marchesini
3f22b78a94 Bug 1274362 - a Symbol passed to postMessage should throw DataCloneException, r=sfink 2016-06-04 09:24:28 +02:00
Pip
4e12ba331b Bug 1264613 - Allow object-to-nonobject serialization. r=baku
Fix the Structured Clone API to avoid assigning a numeric back-reference
id to objects that are serialized as non-objects; in particular, this
fixes incorrect serialization and crashes upon deserialization when a
DedicatedWorkerGlobalScope is serialized twice in the same serialization
packet.
2016-04-19 10:26:00 +02:00
Michael Wu
ed4b205b47 Bug 1212663 - Use doxygen style comments in jsapi, r=Waldo 2015-10-17 13:27:16 -04:00
Nick Fitzgerald
f3032c8c01 Bug 1201620 - Make SavedFrame stacks structured cloneable; r=sfink 2015-10-12 13:29:48 -07:00
Morris Tseng
6c0c249c5a Bug 709490 - Part 3: Transfer OffscreenCanvas from mainthread to workers. r=baku, r=sfink
Thanks Jon Morton [:jmorton] (jonanin@gmail.com) for polishing patches.

--HG--
extra : rebase_source : 5cbf8b9f53b7d1978c6371dbdb3771f80b94a171
2015-10-12 11:21:03 +08:00
Wes Kocher
c1750b75c7 Backed out 11 changesets (bug 709490) for webgl-color-test.html failures a=backout
Backed out changeset fc04c5d43550 (bug 709490)
Backed out changeset cd8f9410d335 (bug 709490)
Backed out changeset 6e687c9143c1 (bug 709490)
Backed out changeset 9b20f2c833c4 (bug 709490)
Backed out changeset f9d130aea88e (bug 709490)
Backed out changeset fc513b410949 (bug 709490)
Backed out changeset acf6220b431a (bug 709490)
Backed out changeset 9bceaf913791 (bug 709490)
Backed out changeset 37fba20111e2 (bug 709490)
Backed out changeset 2285ce1596b8 (bug 709490)
Backed out changeset fb4e09920569 (bug 709490)
2015-10-05 08:28:25 -07:00
Morris Tseng
0e4c914203 Bug 709490 - Part 3: Transfer OffscreenCanvas from mainthread to workers. r=baku, r=sfink
Thanks Jon Morton [:jmorton] (jonanin@gmail.com) for polishing patches.

--HG--
extra : rebase_source : 8ee6656a9c2008482967962fed280ef78d0ff991
2015-10-05 10:50:16 +08:00
Andrea Marchesini
83c3255308 Bug 1203920 - Get rid of JS_SetStructuredCloneCallbacks, r=sfink 2015-09-29 21:40:16 +01:00
Wes Kocher
8631de9c2b Backed out 13 changesets (bug 709490) for android webgl-color-test.html failures
Backed out changeset 5be7514914b6 (bug 709490)
Backed out changeset 04b6f94fbe8a (bug 709490)
Backed out changeset 00c0e85dd8cd (bug 709490)
Backed out changeset 221385b7b81a (bug 709490)
Backed out changeset ecc38c18734f (bug 709490)
Backed out changeset 22878c936384 (bug 709490)
Backed out changeset 0edcbb60eee3 (bug 709490)
Backed out changeset 5feceec2014b (bug 709490)
Backed out changeset 835b655cb873 (bug 709490)
Backed out changeset 6fbb4a3f8cf7 (bug 709490)
Backed out changeset a5f8646fa156 (bug 709490)
Backed out changeset 2ae1386916b3 (bug 709490)
Backed out changeset 6b29a2a0a8fb (bug 709490)
2015-09-29 08:57:36 -07:00
Morris Tseng
5bfbf77ee0 Bug 709490 - Part 3: Transfer OffscreenCanvas from mainthread to workers., r=baku, r=sfink 2015-09-29 11:51:24 +01:00
Andrea Marchesini
01049623d7 Bug 1188612 - Transferable errors should become NS_DOM_DATA_CLONE_ERR, r=sfink 2015-08-10 16:13:24 +01:00
Andrea Marchesini
0bb0e9c317 Bug 1176034 - Implement JSAutoStructuredCloneBuffer::clear(with callbacks and closure), r=sfink 2015-07-06 12:22:08 +01:00
Andrea Marchesini
8372e7d29d Bug 911972 - MessagePort and MessageChannel in workers, r=smaug, r=bent
--HG--
rename : dom/base/MessageChannel.cpp => dom/messagechannel/MessageChannel.cpp
rename : dom/base/MessageChannel.h => dom/messagechannel/MessageChannel.h
rename : dom/base/MessagePort.cpp => dom/messagechannel/MessagePort.cpp
rename : dom/base/MessagePort.h => dom/messagechannel/MessagePort.h
rename : dom/base/MessagePortList.cpp => dom/messagechannel/MessagePortList.cpp
rename : dom/base/MessagePortList.h => dom/messagechannel/MessagePortList.h
rename : dom/base/test/iframe_messageChannel_chrome.html => dom/messagechannel/tests/iframe_messageChannel_chrome.html
rename : dom/base/test/iframe_messageChannel_cloning.html => dom/messagechannel/tests/iframe_messageChannel_cloning.html
rename : dom/base/test/iframe_messageChannel_pingpong.html => dom/messagechannel/tests/iframe_messageChannel_pingpong.html
rename : dom/base/test/iframe_messageChannel_post.html => dom/messagechannel/tests/iframe_messageChannel_post.html
rename : dom/base/test/test_messageChannel.html => dom/messagechannel/tests/test_messageChannel.html
rename : dom/base/test/test_messageChannel.xul => dom/messagechannel/tests/test_messageChannel.xul
rename : dom/base/test/test_messageChannel_cloning.html => dom/messagechannel/tests/test_messageChannel_cloning.html
rename : dom/base/test/test_messageChannel_pingpong.html => dom/messagechannel/tests/test_messageChannel_pingpong.html
rename : dom/base/test/test_messageChannel_post.html => dom/messagechannel/tests/test_messageChannel_post.html
rename : dom/base/test/test_messageChannel_pref.html => dom/messagechannel/tests/test_messageChannel_pref.html
rename : dom/base/test/test_messageChannel_start.html => dom/messagechannel/tests/test_messageChannel_start.html
rename : dom/base/test/test_messageChannel_transferable.html => dom/messagechannel/tests/test_messageChannel_transferable.html
rename : dom/base/test/test_messageChannel_unshipped.html => dom/messagechannel/tests/test_messageChannel_unshipped.html
2015-06-17 11:44:27 +01:00