This commit also fixes a race in `test_error_reporting.html`, where the
push service would initialize and attach its listeners after
`sessionstore-windows-restored`. Even though the test replaces the real
service with a mock, the former keeps listening for pref changes.
When the test calls `setupPrefs` to enable the push connection, the
real service tries to connect to the push server, which asserts in
automation because non-local connections aren't allowed.
We work around this by ensuring that `replacePushService` and
`restorePushService` always wait for the service to shut down before
replacing it with a mock, or restoring the real implementation.
Finally, this commit removes a test that's no longer relevant, since
we don't need to fetch all subscriptions at startup.
Differential Revision: https://phabricator.services.mozilla.com/D20085
--HG--
extra : moz-landing-system : lando
Also, remove a test that's no longer relevant, since we don't need to
fetch all subscriptions at startup.
Differential Revision: https://phabricator.services.mozilla.com/D20085
--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
The original code had a bug in that going from disabled to enabled
would always connect, whereas actually we want to only connect if
there are records (or alwaysConnect is on).
We maintain the existing behavior that if the user has set
dom.push.connection.enabled to false, we don't connect, figuring that
this is the way a privacy-conscious user might indicate that they
don't want to talk to "the mothership".
MozReview-Commit-ID: ClbhYhnHVog
--HG--
extra : rebase_source : b404f4cf327590d9e55e3d9ceefbd2660715f7b3
This patch was autogenerated by my decomponents.py
It covers almost every file with the extension js, jsm, html, py,
xhtml, or xul.
It removes blank lines after removed lines, when the removed lines are
preceded by either blank lines or the start of a new block. The "start
of a new block" is defined fairly hackily: either the line starts with
//, ends with */, ends with {, <![CDATA[, """ or '''. The first two
cover comments, the third one covers JS, the fourth covers JS embedded
in XUL, and the final two cover JS embedded in Python. This also
applies if the removed line was the first line of the file.
It covers the pattern matching cases like "var {classes: Cc,
interfaces: Ci, utils: Cu, results: Cr} = Components;". It'll remove
the entire thing if they are all either Ci, Cr, Cc or Cu, or it will
remove the appropriate ones and leave the residue behind. If there's
only one behind, then it will turn it into a normal, non-pattern
matching variable definition. (For instance, "const { classes: Cc,
Constructor: CC, interfaces: Ci, utils: Cu } = Components" becomes
"const CC = Components.Constructor".)
MozReview-Commit-ID: DeSHcClQ7cG
--HG--
extra : rebase_source : d9c41878036c1ef7766ef5e91a7005025bc1d72b
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
This was done using the following script:
37e3803c7a/processors/chromeutils-import.jsm
MozReview-Commit-ID: 1Nc3XDu0wGl
--HG--
extra : source : 12fc4dee861c812fd2bd032c63ef17af61800c70
This was done using the following script:
37e3803c7a/processors/chromeutils-import.jsm
MozReview-Commit-ID: 1Nc3XDu0wGl
--HG--
extra : rebase_source : c004a023389f1f6bf3d2f3efe93c13d423b23ccd
We haven't found these probes useful for understanding the value of
Push, and many can be better determined from server metrics.
MozReview-Commit-ID: GM9K59OAbMT
--HG--
extra : rebase_source : b4478fe2aad5ce01ba5955406300973b3e0fb699
Web Crypto returns an unhelpful "operation failed for an
operation-specific reason" error if the actual decryption fails, but
we can report more useful errors for missing and invalid header
values.
MozReview-Commit-ID: JRdGHBUodmb
--HG--
extra : rebase_source : 8f1b047b6f01c89a852aefbb1349a608f1178ab8
Previously, errors thrown by `decodeMsg` and `getCryptoParams` would
bubble up to the catch handler in `receivedPushMessage`, causing us to
report "ACK_NOT_DELIVERED" instead of "ACK_DECRYPTION_ERROR" in the ack
sent to the server.
MozReview-Commit-ID: FZFzYdebQGy
--HG--
extra : rebase_source : b21f15cc9ac12ff11496d4f63ee531c021bd7a29
Previously, we removed records locally, but didn't notify the server.
We can be nice and avoid making the server buffer messages for
subscriptions that the client will never use again.
MozReview-Commit-ID: 5iohGQPHXuz
--HG--
extra : rebase_source : 00639fe1016ffd241c18643049f4b061740025f1
Even if the event handler calls `subscribe()` or `getSubscription()`,
the "readwrite" IDB transactions in `clearIf` and `forEachOrigin`
should execute first.
MozReview-Commit-ID: ETYGmnOIuag
--HG--
extra : rebase_source : 8f8847a825d1fcdb09a421b852e86b81431f7e8e