Граф коммитов

257 Коммитов

Автор SHA1 Сообщение Дата
Barret Rennie 2217e5192a Bug 1510569 - Reimplement RemoteWebProgressRequest as an XPCOM component in C++ r=Ehsan
Differential Revision: https://phabricator.services.mozilla.com/D24940

--HG--
extra : moz-landing-system : lando
2019-04-03 17:31:07 +00:00
Barret Rennie 611cae7854 Bug 1510569 - Reimplement RemoteWebProgress as an XPCOM component in C++ r=Ehsan
Differential Revision: https://phabricator.services.mozilla.com/D24811

--HG--
extra : moz-landing-system : lando
2019-04-03 17:30:40 +00:00
Alex Gaynor 177fb00eba Bug 1375863 - fold MOZ_CONTENT_SANDBOX and MOZ_GMP_SANDBOX into MOZ_SANDBOX; r=jld,firefox-build-system-reviewers
Differential Revision: https://phabricator.services.mozilla.com/D22975

--HG--
extra : moz-landing-system : lando
2019-03-18 22:31:59 +00:00
Thomas Nguyen 33d78105b7 Bug 1528695 - Part 1 : Use referrerInfo in openWindow, cpp file r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D21910

--HG--
extra : moz-landing-system : lando
2019-03-15 05:11:43 +00:00
Ryan Hunt c39b1f89d0 Bug 1532725 - Rename PRemoteFrame to PBrowserBridge. r=nika
Differential Revision: https://phabricator.services.mozilla.com/D22132

--HG--
rename : dom/ipc/RemoteFrameChild.cpp => dom/ipc/BrowserBridgeChild.cpp
rename : dom/ipc/RemoteFrameChild.h => dom/ipc/BrowserBridgeChild.h
rename : dom/ipc/RemoteFrameParent.cpp => dom/ipc/BrowserBridgeParent.cpp
rename : dom/ipc/RemoteFrameParent.h => dom/ipc/BrowserBridgeParent.h
rename : dom/ipc/PRemoteFrame.ipdl => dom/ipc/PBrowserBridge.ipdl
extra : rebase_source : d5ca117b96c0d266041d23d80f0f4ab9b0471fb6
2019-03-04 20:15:58 -06:00
Nika Layzell dec9708f74 Bug 1522579 - Part 6: Completely remove nsIContent{Parent,Child}, r=mccr8
Depends on D20553

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

--HG--
extra : moz-landing-system : lando
2019-02-25 20:04:55 +00:00
Nika Layzell b399ffc113 Bug 1522579 - Part 5: Reduce nsIContent{Parent,Child} to thin IIDs, r=mccr8
This devirutalizes a bunch of methods, and moves the entire implementation into
`Content{Parent,Child}` proper. The only purpose left for these types is as a
collection of interfaces and an IID for casting. They should likely be removed
entirely in a follow-up.

Depends on D20552

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

--HG--
extra : moz-landing-system : lando
2019-02-25 20:04:53 +00:00
Nika Layzell f3274c2fd2 Bug 1522579 - Part 1: Remove PContentBridge, r=mccr8
This actor won't be being used anymore, and acts only as a maintenance burden
for people working on this code (which we're doing pretty often these days!).

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

--HG--
extra : moz-landing-system : lando
2019-02-25 20:04:45 +00:00
Andreea Pavel cd1b27ad4d Backed out 6 changesets (bug 1522579) for build bustages on a CLOSED TREE
Backed out changeset 3c8320baa230 (bug 1522579)
Backed out changeset 0a288a3d85cd (bug 1522579)
Backed out changeset ecfd27e7d150 (bug 1522579)
Backed out changeset eda40fca0758 (bug 1522579)
Backed out changeset 5c7aafa32a0a (bug 1522579)
Backed out changeset a3c5a2c16411 (bug 1522579)
2019-02-25 18:19:38 +02:00
Nika Layzell 072dbde694 Bug 1522579 - Part 6: Completely remove nsIContent{Parent,Child}, r=mccr8
Depends on D20553

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

--HG--
extra : moz-landing-system : lando
2019-02-25 15:51:25 +00:00
Nika Layzell d1ccffdf53 Bug 1522579 - Part 5: Reduce nsIContent{Parent,Child} to thin IIDs, r=mccr8
This devirutalizes a bunch of methods, and moves the entire implementation into
`Content{Parent,Child}` proper. The only purpose left for these types is as a
collection of interfaces and an IID for casting. They should likely be removed
entirely in a follow-up.

Depends on D20552

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

--HG--
extra : moz-landing-system : lando
2019-02-25 15:51:23 +00:00
Nika Layzell 7924bfa435 Bug 1522579 - Part 1: Remove PContentBridge, r=mccr8
This actor won't be being used anymore, and acts only as a maintenance burden
for people working on this code (which we're doing pretty often these days!).

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

--HG--
extra : moz-landing-system : lando
2019-02-25 15:51:10 +00:00
Christoph Kerschbaumer 7c441f1bcb Bug 1518454: Part 1, backend changes, add CSP to loadURIOptions dictionary and pass CSP explicitly from frontend to docshell. r=bz 2019-02-21 16:00:32 +01:00
Ryan Hunt 590bdf0728 Bug 1500257 part 2 - Add PRemoteFrame stub implementation. r=qdot
This commit adds a PRemoteFrame actor which is managed by PBrowser. It will
be created in a child process nsFrameLoader when loading a remote subframe.

This actor will mostly just bounce messages from a nsFrameLoader in the child
process to the actor in the parent process which will redirect the messages
to the TabParent of the remote subframe.

The piece in the parent actor to create the proxied PBrowser actors is
deferred to the next commit.

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

--HG--
extra : source : e72d9d31a8bc15e0d3e17d3bdae0b5717465c4b9
extra : intermediate-source : 12d7dba3473315edbdc2d73e3febec3ca9e987ae
2019-01-23 10:38:09 -06:00
Jan Varga d0270542f0 Bug 1525291 - LSNG: Chrome observer notifications for session storage are not distributed to content processes; r=asuth,froydnj
Differential Revision: https://phabricator.services.mozilla.com/D18809
2019-02-06 06:09:57 +01:00
Oana Pop Rus f9cf535efc Backed out changeset 04eecadabb48 (bug 1525291) for build bustages at build/src/obj-firefox/ipc/ipdl/PSessionStorageObserverChild.cpp on a CLOSED TREE 2019-02-07 11:33:00 +02:00
Jan Varga 93f5a88427 Bug 1525291 - LSNG: Chrome observer notifications for session storage are not distributed to content processes; r=asuth
Differential Revision: https://phabricator.services.mozilla.com/D18809
2019-02-06 06:09:57 +01:00
John Dai 7b1dd6aef8 Bug 1513878 - Part 2: Implement a getter method to WindowGlobalParent/WindowGlobalChild. r=nika
Depends on D16844

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

--HG--
extra : moz-landing-system : lando
2019-01-28 19:02:02 +00:00
Dorel Luca 2702a37d2c Backed out 3 changesets (bug 1513878) for build bustage. CLOSED TREE
Backed out changeset a480d92de046 (bug 1513878)
Backed out changeset 0333640041bb (bug 1513878)
Backed out changeset 48b36980fe1c (bug 1513878)
2019-01-25 21:16:50 +02:00
John Dai bb99ebce70 Bug 1513878 - Part 2: Implement a getter method to WindowGlobalParent/WindowGlobalChild. r=nika
Depends on D16844

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

--HG--
extra : moz-landing-system : lando
2019-01-25 18:45:28 +00:00
Nika Layzell be5f88174d Bug 1467223 - Part 1: Move CrossProcessRedirect Message to PContent, r=valentin
This is needed because early in a content process's lifecycle, NeckoParent may
not have been created yet. This leads to issues when trying to redirect into a
fresh process which hasn't performed network loads yet. By sending the message
over PContent, we can be sure the APIs are available.

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

--HG--
extra : moz-landing-system : lando
2019-01-23 21:27:44 +00:00
Kershaw Chang 0b336d5545 Bug 1513057 - P1: Start the new socket process basics (prefs, full xpcom init, logging, no sandboxing) r=mayhemer,dragana
Differential Revision: https://phabricator.services.mozilla.com/D14148

--HG--
extra : moz-landing-system : lando
2019-01-11 18:57:23 +00:00
Andreea Pavel 21ad33d612 Backed out 10 changesets (bug 1513057) for build bustages on a CLOSED TREE
Backed out changeset 56329b5f1844 (bug 1513057)
Backed out changeset 46411c5de3da (bug 1513057)
Backed out changeset de65c456aad6 (bug 1513057)
Backed out changeset f648b5f1a7c2 (bug 1513057)
Backed out changeset 460bbf0849e1 (bug 1513057)
Backed out changeset 86032a14d26f (bug 1513057)
Backed out changeset a81f83df08d5 (bug 1513057)
Backed out changeset edbda5ee5fd5 (bug 1513057)
Backed out changeset c900ac2519f5 (bug 1513057)
Backed out changeset 4e94bbb90315 (bug 1513057)
2019-01-11 17:02:44 +02:00
Kershaw Chang 0c2943008a Bug 1513057 - P1: Start the new socket process basics (prefs, full xpcom init, logging, no sandboxing) r=mayhemer,dragana
Differential Revision: https://phabricator.services.mozilla.com/D14148

--HG--
extra : moz-landing-system : lando
2019-01-11 14:07:47 +00:00
John Dai e65b6abd33 Bug 1513876 - Implement register a toplevel window global actor. r=nika
Implement register a toplevel window global actor.

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

--HG--
extra : moz-landing-system : lando
2019-01-03 16:45:42 +00:00
Kyle Machulis ef297735b5 Bug 1478742 - IPDLize nsDocShellLoadState; r=nika
Differential Revision: https://phabricator.services.mozilla.com/D13958

--HG--
extra : moz-landing-system : lando
2018-12-19 22:22:09 +00:00
Tom Ritter 04ad4da5ff Bug 1512690 - Introduce a MesageManager log topic for MM topics and data r=tjr
This logging topic will output the topic of MEssageManager data at log
level 4 (debug); and will output the entire content of the data at level
5 (verbose).

--HG--
extra : histedit_source : 7be60b456a1652f9a9985fd4a01571b207a5f9e6
2018-12-11 11:31:24 -06:00
Nika Layzell 4e07a0c5f9 Bug 1487249 - Part 3: Add the WindowGlobal actor representing a single window global, r=bzbarsky
This actor can be used for communicating with individual frames, without
depending on walking the tree in the content process.

This is not yet complete. No tests have been written for it, the
WindowGlobalParent objects need to be exposed to chrome JS, and a form of JS
actors should be installed under them.

In addition, BrowsingContextChrome objects should be updated to allow access to
the current WindowGlobalParent in that context.

Differential Revision: https://phabricator.services.mozilla.com/D4623
2018-12-05 10:18:31 -05:00
Jed Davis 231d5adb97 Bug 1446161 - Remove the earlier attempt at async launch. r=spohl,mccr8
The first attempt at async launch tried to hide the asynchrony inside
IPC, by making the process seem to be launched enough to construct new
channels and send it messages, and lazily blocking on the pid/handle.
Unfortunately, in practice we wind up needing the pid/handle immediately,
and this requirement is too deeply embedded in IPC for that to be viable.

(The alternative that will be used instead -- exposing process launch via
an explicitly asynchronous promise interface -- is made simpler by
Project Fission's upcoming rewrite of how the DOM requests new content
processes.)

Depends on D8941

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

--HG--
extra : moz-landing-system : lando
2018-11-28 20:42:24 +00:00
Andreea Pavel 74cd2bf73e Backed out 8 changesets (bug 1446161, bug 1487287, bug 1488993, bug 1474991, bug 1496608) for very frequent automation.py crashes on a CLOSED TREE
Backed out changeset 8b1f88d7bfeb (bug 1487287)
Backed out changeset 8fa5e81ad801 (bug 1487287)
Backed out changeset 7a480161fa0f (bug 1474991)
Backed out changeset 80116391b7fe (bug 1446161)
Backed out changeset 1bdf64b29121 (bug 1446161)
Backed out changeset 37bf52f0e9cf (bug 1446161)
Backed out changeset 8ede2ebe6b7a (bug 1496608)
Backed out changeset cea43bc88c7a (bug 1488993)
2018-11-27 08:53:18 +02:00
Jed Davis 5379e8a375 Bug 1446161 - Remove the earlier attempt at async launch. r=spohl,mccr8
The first attempt at async launch tried to hide the asynchrony inside
IPC, by making the process seem to be launched enough to construct new
channels and send it messages, and lazily blocking on the pid/handle.
Unfortunately, in practice we wind up needing the pid/handle immediately,
and this requirement is too deeply embedded in IPC for that to be viable.

(The alternative that will be used instead -- exposing process launch via
an explicitly asynchronous promise interface -- is made simpler by
Project Fission's upcoming rewrite of how the DOM requests new content
processes.)

Depends on D8941

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

--HG--
extra : moz-landing-system : lando
2018-11-22 00:06:14 +00:00
shindli 87009004b2 Backed out changeset 58f0722012cd (bug 1475415) for force-cargo-library-build bustages CLOSED TREE 2018-09-24 19:37:49 +03:00
Tristan Bourvon 4db0a2f5a0 Bug 1475415 - Add first version of IPDL-JS API r=mrbkap,mccr8
Add the first version of the IPDL-JS API, which allow chrome JS to load IPDL files and use them to communicate accross Content processes.
See IPDLProtocol.h for more information regarding how to use the API.

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

--HG--
rename : ipc/moz.build => ipc/ipdl_new/moz.build
extra : moz-landing-system : lando
2018-09-24 14:13:20 +00:00
Kris Maglione 2ab798f156 Bug 1472491: Part 5κ - Add ManifestMessagesChild actor. r=mconley
MozReview-Commit-ID: 20toouW9YzT

--HG--
rename : dom/ipc/ManifestMessages.jsm => dom/ipc/ManifestMessagesChild.jsm
extra : rebase_source : 204b5e01e5a2bd15a077e763e27155016c886818
2018-07-30 11:39:52 -07:00
Kris Maglione d5418d7fd0 Bug 1479313: Don't load manifestMessages.js until needed. r=felipe
MozReview-Commit-ID: s2fq6XcgQ7

--HG--
rename : dom/ipc/manifestMessages.js => dom/ipc/ManifestMessages.jsm
extra : source : f5d647fae9733c5a19f53539fc6702de2a7fbbab
2018-07-29 13:18:26 -07:00
Cosmin Sabou 901f34bef4 Backed out 12 changesets (bug 1479309, bug 1479312, bug 1479313, bug 1479310, bug 1479235, bug 1479945, bug 1479241, bug 1479318) for causing a big performance regression on OS X. a=backout
Backed out changeset 915862a355e9 (bug 1479318)
Backed out changeset f150e62dcbbd (bug 1479241)
Backed out changeset a68daa762119 (bug 1479312)
Backed out changeset 2a5aa9de1fd9 (bug 1479945)
Backed out changeset 163276881d35 (bug 1479945)
Backed out changeset 20a1a11b4d0b (bug 1479945)
Backed out changeset ca43bd11f431 (bug 1479945)
Backed out changeset 71700b368132 (bug 1479945)
Backed out changeset f5d647fae973 (bug 1479313)
Backed out changeset 3583823171de (bug 1479310)
Backed out changeset 2d46e1fe3121 (bug 1479309)
Backed out changeset 8f9c9580f687 (bug 1479235)

--HG--
rename : browser/components/uitour/ContentUITour.jsm => browser/components/uitour/content-UITour.js
rename : dom/ipc/ManifestMessages.jsm => dom/ipc/manifestMessages.js
rename : toolkit/components/normandy/content/ShieldFrameListener.jsm => toolkit/components/normandy/content/shield-content-frame.js
rename : toolkit/components/normandy/shield-content-process.js => toolkit/components/normandy/content/shield-content-process.js
2018-08-07 17:30:52 +03:00
Kris Maglione fb8f4c7562 Bug 1479313: Don't load manifestMessages.js until needed. r=felipe
MozReview-Commit-ID: s2fq6XcgQ7

--HG--
rename : dom/ipc/manifestMessages.js => dom/ipc/ManifestMessages.jsm
extra : rebase_source : be3c8b11dac18219b2e4b8aafa8d213cd1435c80
2018-07-29 13:18:26 -07:00
Jed Davis a6cb3c4d18 Bug 1475382 - Turn off async content process launching, pending better error handling. r=spohl
At the moment this isn't actually async because we immediately require
the pid and block on launch anyway.  It also crashes the entire browser
on otherwise recoverable launch errors, because code that wants the pid
isn't set up to handle that operation failing.

MozReview-Commit-ID: 5favGu34QCv

--HG--
extra : rebase_source : 3c81c53e1eb8ead353ef3477ed3ceea0f5edcbbe
2018-07-13 15:20:25 -06:00
Kris Maglione 82bc4d713f Bug 1471025: Part 2 - Add a helper class creating and accessing shared preference map snapshots. r=njn,erahm
This is based on the SharedStringMap that's currently used for shared memory
string bundles.

When the parent process is ready to launch its first content process, it
creates a snapshot of the current state of the preference database, maps that
as read-only, and shares it with each content process. Look-ups in the
snapshotted map are done entirely using data in the shared memory region. It
doesn't require any additional per-process state data.

MozReview-Commit-ID: BdTUhak7dmS

--HG--
extra : intermediate-source : 434106f1b75e3ba900912f261bd22a1b7f5c931d
extra : absorb_source : 647ad37590448ad3c1eb8eb512bf671f262fa96e
extra : source : 68bb03c63b3cee1d47cbddfd3abf919f5783c04b
extra : histedit_source : 2228a9f8395929f5072a3c5ebda6ae3221e4a62d
2018-07-01 18:28:31 -07:00
Brindusan Cristian fe91a8922e Backed out 13 changesets (bug 1471025) for reftest failures on variation-format-hint-1a.html; bc failures performance/browser_preferences_usage.js; wpt failures on format-specifiers-variations.html. CLOSED TREE
Backed out changeset 6b672d70f335 (bug 1471025)
Backed out changeset 200bec7e766a (bug 1471025)
Backed out changeset 6c72dc1bff88 (bug 1471025)
Backed out changeset 7f4cc96fae12 (bug 1471025)
Backed out changeset b4f9178f132d (bug 1471025)
Backed out changeset 8eff817d2f7e (bug 1471025)
Backed out changeset f9362cf1add4 (bug 1471025)
Backed out changeset ce379eaab179 (bug 1471025)
Backed out changeset 7c03b7dd00e9 (bug 1471025)
Backed out changeset ff41551f5ff1 (bug 1471025)
Backed out changeset 46a6f9d0773b (bug 1471025)
Backed out changeset 434106f1b75e (bug 1471025)
Backed out changeset c490838c8329 (bug 1471025)
2018-07-14 01:16:06 +03:00
Kris Maglione 7f2567e3d9 Bug 1471025: Part 2 - Add a helper class creating and accessing shared preference map snapshots. r=njn,erahm
This is based on the SharedStringMap that's currently used for shared memory
string bundles.

When the parent process is ready to launch its first content process, it
creates a snapshot of the current state of the preference database, maps that
as read-only, and shares it with each content process. Look-ups in the
snapshotted map are done entirely using data in the shared memory region. It
doesn't require any additional per-process state data.

MozReview-Commit-ID: BdTUhak7dmS

--HG--
extra : source : 68bb03c63b3cee1d47cbddfd3abf919f5783c04b
2018-07-01 18:28:31 -07:00
Brindusan Cristian a68383b333 Backed out 12 changesets (bug 1471025) for build bustages on dom/ipc/ContentProcess.cpp. CLOSED TREE
Backed out changeset 398ccedc20dc (bug 1471025)
Backed out changeset 599895de063e (bug 1471025)
Backed out changeset dc7ec17179d1 (bug 1471025)
Backed out changeset 5051f15fc200 (bug 1471025)
Backed out changeset faef4df47b20 (bug 1471025)
Backed out changeset d344247b8706 (bug 1471025)
Backed out changeset 83d98ea5ebac (bug 1471025)
Backed out changeset 38f690f30e78 (bug 1471025)
Backed out changeset 4b7a8a35ed95 (bug 1471025)
Backed out changeset e3bbc87b71af (bug 1471025)
Backed out changeset 68bb03c63b3c (bug 1471025)
Backed out changeset 4a8fbb472c91 (bug 1471025)
2018-07-13 22:11:24 +03:00
Kris Maglione 68c9610957 Bug 1471025: Part 2 - Add a helper class creating and accessing shared preference map snapshots. r=njn,erahm
This is based on the SharedStringMap that's currently used for shared memory
string bundles.

When the parent process is ready to launch its first content process, it
creates a snapshot of the current state of the preference database, maps that
as read-only, and shares it with each content process. Look-ups in the
snapshotted map are done entirely using data in the shared memory region. It
doesn't require any additional per-process state data.

MozReview-Commit-ID: BdTUhak7dmS

--HG--
extra : rebase_source : e7cb96dd52380f2ed2fbd79b4e157e4efab65cb0
extra : absorb_source : ed95ed85388875353458eb65e41727e606ebf097
2018-07-01 18:28:31 -07:00
Kris Maglione d4c925129d Bug 1463587: Part 5 - Add tests for SharedMap. r=erahm
MozReview-Commit-ID: 2ou8N30Omie

--HG--
extra : rebase_source : deca28badf3b27e0263e7880bc4412afd2f7c9bd
extra : source : c052042a66cf721b67b679f932fe08b96abd6f2f
2018-06-27 16:43:36 -07:00
Kris Maglione 8316d5a0c0 Bug 1463587: Part 3 - Add bindings for SharedMap, and expose it via process message managers. r=erahm,baku,bz
This is the first basic implementation of a shared-memory key-value store for
JS message managers. It has one read-write endpoint in the parent process, and
separate read-only endpoints for each child-process message manager.

Changes to the parent endpoint are broadcast to the children as snapshots.
Each snapshot triggers a "change" event with a list of changed keys.

It currently has the following limitations:

- It only supports basic structured clone data. There's no support for blobs,
  input streams, message ports... Blob support will be added in a follow-up
  patch.

- Changes are currently only broadcast to child endpoints when flush() is
  explicitly called in the parent, or when new child processes are launched.
  In a follow-up, this will be changed to automatically flush after changes
  when the event loop is idle.

- All set operations clone their inputs synchronously, which means that
  there's no trivial way for callers to batch multiple changes to a single key
  without some additional effort. It might be useful to add a
  delayed-serialization option to the .set() call in a follow-up, for callers
  who are sure they know what they're doing.

MozReview-Commit-ID: IM8a3UgejXU

--HG--
extra : rebase_source : 66c92d538a5485349bc789028fdc3a6806bc5d5a
extra : source : 2ebaf5f8c6055b11b11d7ec334d54ee941115d48
2018-06-29 14:55:27 -07:00
Kris Maglione 03bf0b5bdd Bug 1463587: Part 2 - Add a shared-memory structured clone key-value store. r=erahm,bz
This class allows one read-write copy of a map in the parent process to share
data with multiple read-only copies in child processes. The maps only hold
onto data as structured clone blobs, and deserialize them each time a key is
read.

This commit only provides the bare-bones data structures. Follow-ups will add
bindings, change events, and automatic flushes.

MozReview-Commit-ID: LimwfmFBNOi

--HG--
extra : rebase_source : e43985c39bd1cfd05a2ad536b0d7f74db494a753
extra : source : c27295337b4c16e2a178106a3aa873d2a0e5a1f4
2018-06-22 20:35:49 -07:00
Margareta Eliza Balazs 7b416abaf1 Backed out 10 changesets (bug 1470783, bug 1463587) for causing multiple leakcheck failures on a CLOSED TREE
Backed out changeset cd2080bd727a (bug 1463587)
Backed out changeset 5866137afd9a (bug 1463587)
Backed out changeset d64e1c150db2 (bug 1463587)
Backed out changeset 669f084e8914 (bug 1463587)
Backed out changeset 8074c985095c (bug 1470783)
Backed out changeset 49ed13196e9f (bug 1463587)
Backed out changeset c052042a66cf (bug 1463587)
Backed out changeset cebf1f055d1d (bug 1463587)
Backed out changeset 2ebaf5f8c605 (bug 1463587)
Backed out changeset c27295337b4c (bug 1463587)
2018-07-12 11:27:45 +03:00
Kris Maglione bb78a2116c Bug 1463587: Part 5 - Add tests for SharedMap. r=erahm
MozReview-Commit-ID: 2ou8N30Omie

--HG--
extra : rebase_source : c5e4d5919fc93c46f764579e6b3728a63c109349
2018-06-27 16:43:36 -07:00
Kris Maglione 47c200749a Bug 1463587: Part 3 - Add bindings for SharedMap, and expose it via process message managers. r=erahm,baku,bz
This is the first basic implementation of a shared-memory key-value store for
JS message managers. It has one read-write endpoint in the parent process, and
separate read-only endpoints for each child-process message manager.

Changes to the parent endpoint are broadcast to the children as snapshots.
Each snapshot triggers a "change" event with a list of changed keys.

It currently has the following limitations:

- It only supports basic structured clone data. There's no support for blobs,
  input streams, message ports... Blob support will be added in a follow-up
  patch.

- Changes are currently only broadcast to child endpoints when flush() is
  explicitly called in the parent, or when new child processes are launched.
  In a follow-up, this will be changed to automatically flush after changes
  when the event loop is idle.

- All set operations clone their inputs synchronously, which means that
  there's no trivial way for callers to batch multiple changes to a single key
  without some additional effort. It might be useful to add a
  delayed-serialization option to the .set() call in a follow-up, for callers
  who are sure they know what they're doing.

MozReview-Commit-ID: IM8a3UgejXU

--HG--
extra : rebase_source : 8e8b7891ca48e61b2d6ba3c05912064a909d9698
2018-06-29 14:55:27 -07:00
Kris Maglione 830989c99a Bug 1463587: Part 2 - Add a shared-memory structured clone key-value store. r=erahm,bz
This class allows one read-write copy of a map in the parent process to share
data with multiple read-only copies in child processes. The maps only hold
onto data as structured clone blobs, and deserialize them each time a key is
read.

This commit only provides the bare-bones data structures. Follow-ups will add
bindings, change events, and automatic flushes.

MozReview-Commit-ID: LimwfmFBNOi

--HG--
extra : rebase_source : a6959c9f3186af7252ac2899f6801d5e02b62222
2018-06-22 20:35:49 -07:00