Setting a key/value pair on the parent process message manager's `sharedData`
initiates a pending runnable that runs at **idle priority**. If the current
thread never gets a chance to idle, then those registry changes will never be
synchronized.
This patch adds an explicit flush so that `_synchronizeSharedData` does indeed
actually synchronize.
We replace the scalar `registerSource`, `updateSource`, and `removeSource` with
variants that accept arrays instead. This allows us to process multiple
registration changes while deferring the synchronization until the entire list
has been processed. The scalar variants were removed to future-proof against
perf issues.
Differential Revision: https://phabricator.services.mozilla.com/D81243
This patch was generated with a script. It doesn't include all files:
- Files that use the preprocessor or fail to parse are skipped
- Files that are loaded as JSMs but don't use the .jsm extension are skipped (those will be renamed in Bug 1609269)
It was generated with the following command using d855222aa2/no-this-property-read.js:
```
hg revert --all &&
cp .gitignore .rgignore &&
rg --files-without-match -g '*.jsm' '^#endif|^#include|^#filter' | jscodeshift --stdin --transform ~/Code/jsm-rewrites/no-this-property-read.js --ignore-pattern ./mobile/android/modules/Sanitizer.jsm --ignore-pattern ./js/xpconnect/tests/unit/syntax_error.jsm &&
./mach eslint `hg st | rg '^M ' | sed 's/^M //'`
```
Differential Revision: https://phabricator.services.mozilla.com/D60187
--HG--
extra : moz-landing-system : lando
***
Bug 1514594: Part 3a - Change ChromeUtils.import to return an exports object; not pollute global. r=mccr8
This changes the behavior of ChromeUtils.import() to return an exports object,
rather than a module global, in all cases except when `null` is passed as a
second argument, and changes the default behavior not to pollute the global
scope with the module's exports. Thus, the following code written for the old
model:
ChromeUtils.import("resource://gre/modules/Services.jsm");
is approximately the same as the following, in the new model:
var {Services} = ChromeUtils.import("resource://gre/modules/Services.jsm");
Since the two behaviors are mutually incompatible, this patch will land with a
scripted rewrite to update all existing callers to use the new model rather
than the old.
***
Bug 1514594: Part 3b - Mass rewrite all JS code to use the new ChromeUtils.import API. rs=Gijs
This was done using the followng script:
https://bitbucket.org/kmaglione/m-c-rewrites/src/tip/processors/cu-import-exports.jsm
***
Bug 1514594: Part 3c - Update ESLint plugin for ChromeUtils.import API changes. r=Standard8
Differential Revision: https://phabricator.services.mozilla.com/D16747
***
Bug 1514594: Part 3d - Remove/fix hundreds of duplicate imports from sync tests. r=Gijs
Differential Revision: https://phabricator.services.mozilla.com/D16748
***
Bug 1514594: Part 3e - Remove no-op ChromeUtils.import() calls. r=Gijs
Differential Revision: https://phabricator.services.mozilla.com/D16749
***
Bug 1514594: Part 3f.1 - Cleanup various test corner cases after mass rewrite. r=Gijs
***
Bug 1514594: Part 3f.2 - Cleanup various non-test corner cases after mass rewrite. r=Gijs
Differential Revision: https://phabricator.services.mozilla.com/D16750
--HG--
extra : rebase_source : 359574ee3064c90f33bf36c2ebe3159a24cc8895
extra : histedit_source : b93c8f42808b1599f9122d7842d2c0b3e656a594%2C64a3a4e3359dc889e2ab2b49461bab9e27fc10a7
Switch to cache FTLResources per FileSource. This allows us to minimize
the memory impact of dynamic additions/removals of l10n resources to
a context on fly.
MozReview-Commit-ID: B9fxbkaU3oX
--HG--
extra : rebase_source : bc268352965c721b5692f2062a063f7fba091136
Switch to cache FTLResources per FileSource. This allows us to minimize
the memory impact of dynamic additions/removals of l10n resources to
a context on fly.
MozReview-Commit-ID: B9fxbkaU3oX
--HG--
extra : rebase_source : efad7ec156baea0924e848acb29b62a1fe0aff40
`generateContextsForLocale` didn't have a condition for when `resolvedLength`
equals `resourcesLength` which triggeres an infinite recursion when `resourceIds` is
empty.
MozReview-Commit-ID: Csy1ROTfbE2
--HG--
extra : rebase_source : 587477279ed89bf17cd3243ae291222ecd9d34b4
In order to allow localizations to produce different string depending on the
platform, we need to add a Gecko-specific built-in function to the MessageContext.
I'm explicitly listing the variables which we pass, rather than just passing the value
in order to ensure we don't start returning values we didn't plan for in case
the AppConstants.platform gets updated.
MozReview-Commit-ID: 1KZ6bf6zIY2
--HG--
extra : rebase_source : ce75c2c32bfb29b10b6ddbcaf6a71e2bf4cd4315
This was done using the following script:
37e3803c7a/processors/chromeutils-import.jsm
MozReview-Commit-ID: 1Nc3XDu0wGl
--HG--
extra : source : 12fc4dee861c812fd2bd032c63ef17af61800c70
extra : intermediate-source : 34c999fa006bffe8705cf50c54708aa21a962e62
extra : histedit_source : b2be2c5e5d226e6c347312456a6ae339c1e634b0