Commit Graph

4433 Commits

Author SHA1 Message Date
Mark Hammond
cd73a70071 Bug 1340357 - remove all special eslint rules in services/. r=eoger
MozReview-Commit-ID: 6zMOBoWLOhJ

--HG--
extra : rebase_source : cf546abd9a52230746c0c05f7bb716cae42815bf
2017-02-17 12:34:45 +11:00
Edouard Oger
1f7391754c Bug 1337244 - Delete previous device registration when setting-up a new FxA user. r=markh
MozReview-Commit-ID: wp4OJ1nwKH

--HG--
extra : rebase_source : 31cc6e6c40c9f0b0e6efa76032a5ae5c75281306
2017-02-14 20:07:36 +01:00
Carsten "Tomcat" Book
b218b4c6ae merge mozilla-inbound to mozilla-central a=merge 2017-02-16 13:15:55 +01:00
Wes Kocher
0240235e36 Merge m-c to inbound, a=merge
MozReview-Commit-ID: 2KYT7x0b6I1
2017-02-15 19:17:03 -08:00
Phil Ringnalda
8f2ba061cd Backed out changeset 63d0ef447e81 (bug 1224528) for Android permaorange in test_blocklist_certificates.js 2017-02-15 19:07:26 -08:00
Wes Kocher
3797956aa6 Merge m-c to inbound a=merge
MozReview-Commit-ID: BemR756HJnR
2017-02-15 16:33:03 -08:00
Mayank Srivastav
dcffae55e6 Bug 1337188 - Remove unused return statement from EngineManager::register. r=kit
--HG--
extra : rebase_source : a8eea63dc3b2c208ed8ffc3ac6d0ae36e8ec8489
2017-02-15 00:42:10 +05:30
Wes Kocher
ed4e580ba8 Merge m-c to autoland, a=merge
MozReview-Commit-ID: LcH4J3J7fcL
2017-02-15 19:17:26 -08:00
Ethan Glasser-Camp
b228d5b47d Bug 1321570 - use dependency injection for fxAccounts, r=kmag
Get rid of the ugly hack where test code monkeypatches a singleton to
convince the rest of the ExtensionStorageSync code that a fake user is
logged in. Instead, take a handle to the fxAccounts service at
construction time. Test code can provide any kind of fxAccounts it
wants, including one that has a hard-coded user.

This provokes a bunch of changes:

- ExtensionStorageSync is now no longer a singleton, but a class. You
  have to instantiate it in order to do anything with it. A global
  instance extensionStorageSync is provided for use by Sync code as
  well as WebExtension code.

- CryptoCollection is now also a class, and each ExtensionStorageSync
  instance has its own CryptoCollection. This dependency should maybe
  also be injected, but for the time being it doesn't provide us any
  value to do so.

- Converting singletons with asynchronous methods to classes is a pain
  in the neck. We convert async method foo from `foo:
  Task.async(....)` to `async foo() { .... }`. While we're here,
  convert KeyRingEncryptionRemoteTransformer#decode to async/await to
  eliminate a need for `let self = this`.

- Update Sync code and WebExtension code to use extensionStorageSync.

- There's a cyclic dependency where CryptoCollection#sync depends on
  ExtensionStorageSync#_syncCollection which depends on
  CryptoCollection#getKeyRing. As a short-term hack, we now require an
  ExtensionStorageSync argument to CryptoCollection#sync.

- KeyRingEncryptionRemoteTransformer now takes a handle to fxAccounts
  on construction time as well. Because this is the only
  EncryptionRemoteTransformer subclass that accesses fxAccounts, we
  can get rid of the hack where the tests monkeypatch something in the
  EncryptionRemoteTransformer prototype.

- CollectionKeyEncryptionRemoteTransformer now takes a handle to a
  CryptoCollection, rather than relying on a global one.

- A bunch of methods that previously assumed access to fxAccounts now
  check if fxAccounts is present (i.e. if we're on Android). Strictly
  speaking, this isn't required by this change, but it helps make
  certain kinds of failure a little easier to diagnose.

- Update tests, including extracting a domain-specific helper method
  to hide the use of CollectionKeyEncryptionRemoteTransformer. We now
  no longer monkeypatch in our mock fxaService, but pass it to the
  test so that it can do whatever it wants with it. We also provide an
  ExtensionStorageSync instance for convenience. Access to the global
  cryptoCollection is now done through an ExtensionStorageSync
  instance.

To summarize, we've gone from a situation where a bunch of singletons
had implicit dependencies on other singletons in a shared global
namespace, to a situation where dependencies are provided explicitly
using method/constructor arguments. This highlights some of the
dependencies present:

- ExtensionStorageSync depends on CryptoCollection and fxAccounts if
  it needs to sync

- Every collection created via openCollection needs a handle to
  CryptoCollection so it can correctly create its remote transformers

- CryptoCollection needs a handle to fxAccounts so it can create its
  own remote transformer for its special collection

Most of this is only possible, or at least much easier, because we no
longer try to juggle Sqlite connections but just keep one around
forever.

However, please note:

- CryptoCollection needs a handle to ExtensionStorageSync to actually
  perform syncing logic because that's where we foolishly put the
  logic to make requests

- There's still a backing Sqlite store which is shared by everything

- There's still a singleton tracking contexts that opened extensions
  which we manage to try to clean contexts up correctly

MozReview-Commit-ID: DGIzyRTdYZ1

--HG--
extra : rebase_source : 305a98b8e1ece3ae7a5e8a2fdb5c58d8e7c496d9
2017-01-10 16:44:01 -05:00
Ethan Glasser-Camp
4f7afb05a6 Bug 1321570 - Move ExtensionStorageSync crypto out of services/sync, r=kmag
Since services/sync doesn't ship on Android, this meant
conditionally-defining some variables such as `cryptoCollection` and
`CollectionKeyEncryptionRemoteTransformer` depending on whether or not
we were on Android. However, none of these definitions really rely on
functionality that isn't present on Android (although you can't really
use them yet either). Move the dependency together with the dependant
code so we can simplify a bit. This lets us remove conditional uses of
`cryptoCollection` and `CollectionKeyEncryptionRemoteTransformer`.

Because the WebExtensions source directory has more stringent eslint
rules, we end up reformatting and commenting a bit in addition to
moving.

MozReview-Commit-ID: 2ddDeymYFNi

--HG--
rename : services/sync/tests/unit/test_extension_storage_crypto.js => toolkit/components/extensions/test/xpcshell/test_ext_storage_sync_crypto.js
extra : rebase_source : f84c0810b6a447f2104f96c9dc9d6139743f269c
2017-02-13 15:06:02 -05:00
Jonathan Hao
ef8f78b212 Bug 1336867 - Remove unsafeProcessHeader and isSecureHost in nsISiteSecurityService r=keeler,mgoodwin,past
--HG--
extra : rebase_source : e4a69e18154adf22e045c820ae2b3fd8a77877a6
2017-02-08 11:17:29 +08:00
Mathieu Leplatre
870ef630b6 Bug 1224528 - Load initial JSON files for blocklist r=mgoodwin
MozReview-Commit-ID: D53xoTa0PZu

--HG--
extra : rebase_source : 48481994fc4aa6afcd7ef46ac62861fc1ad6b281
2016-12-11 14:37:22 -10:00
Wes Kocher
3e40dccbed Backed out changeset 174570c9ca6b (bug 1321740) for browser_sanitizeDialog.js failures a=backout
MozReview-Commit-ID: 8zmWz4JBCVk
2017-02-15 15:02:59 -08:00
Thom Chiovoloni
f38291dc93 Bug 1321740 - Avoid a full sync after signing in due to fxa reauthentication. r=markh
MozReview-Commit-ID: 8wVq1RYojUS

--HG--
extra : rebase_source : 1ed0c32fa992c7248b096bdd05e9c255930f3746
2017-02-08 16:35:00 -05:00
Phil Ringnalda
aa72959f4e Bug 1338439 followup, placate eslint 2017-02-12 20:50:46 -08:00
Mark Hammond
e23f30ffed Bug 1338439 - Sync event telemetry should use the same flowID when sending a command to multiple clients, and should include a reason for some commands. r=tcsc
MozReview-Commit-ID: 7a6qjRUswGL

--HG--
extra : rebase_source : a6112f4fb8762f3cde4a85aaa5ef4a8d11b15947
2017-02-10 16:49:33 +11:00
Kit Cambridge
e73b9cdef7 Bug 1338668 - Ignore tag query folder IDs when comparing client and server bookmark records. r=tcsc
MozReview-Commit-ID: 2Mz9fTsTou5

--HG--
extra : rebase_source : e2030c91a20356d61677a212fa57f88d680bfb90
2017-02-10 15:03:34 -08:00
Ethan Glasser-Camp
3a3e213b7d Bug 1333810: Hash record IDs during encryption, r=kmag,rnewman
This does a sha256 of record IDs, the same way we do for collection
IDs, during encryption.

The way we compute the new ID (using an overridden method) is a little
bit of a hack, but we use the new ID as part of the HMAC. This also
invalidates a previous assumption, which is that we kept record IDs
the same during decryption.

MozReview-Commit-ID: Gbzlo9OE1he

--HG--
extra : rebase_source : 3a303cce50e60ecf0cd709da4ebef5ff98bff314
extra : intermediate-source : 033163eeac84466553d4f9636093c3b824d7cf2b
extra : source : c5c115baff4a729b064e74e87821f7ee3b9d3edb
2017-01-31 13:09:38 -05:00
Ethan Glasser-Camp
e9fb891837 Bug 1333810: Encrypt record deletes, r=kmag,rnewman
Camouflage deletes as updates, according to the rules given by the new
RemoteTransformer contract.

MozReview-Commit-ID: CwVJSs2jOil

--HG--
extra : rebase_source : 88f8e1b4db0b6b7aea4ae5dcfc67af906cb01009
2017-01-27 19:27:10 -05:00
Ethan Glasser-Camp
6128dd8aef Bug 1333810: Update kinto.js version to 8.0.0, r=MattN
This allows us to transform deletes. See
https://github.com/Kinto/kinto.js/pull/640/.

MozReview-Commit-ID: 3EWcxW4Ny6s

--HG--
extra : rebase_source : 67cd78dcde8a220c7939486599f315c93b9092dc
2017-01-27 19:23:05 -05:00
Phil Ringnalda
b5acb9b812 Backed out 2 changesets (bug 1336867) for (at least) eslint failures
CLOSED TREE

Backed out changeset 0a4f283638cb (bug 1336867)
Backed out changeset 837766805d75 (bug 1336867)

--HG--
rename : security/manager/ssl/tests/unit/test_sts_parser.js => security/manager/ssl/tests/gtest/STSParserTest.cpp
2017-02-09 19:02:32 -08:00
Jonathan Hao
e28cb314a8 Bug 1336867 - Remove unsafeProcessHeader and isSecureHost in nsISiteSecurityService r=keeler,mgoodwin,past
--HG--
extra : rebase_source : 3b14ddfcb4107eeeb15ba5498d0b516310847c58
2017-02-08 11:17:29 +08:00
Wes Kocher
30d9ef4d29 Merge m-c to autoland, a=merge
MozReview-Commit-ID: D76dMYwFRUQ
2017-02-09 17:06:59 -08:00
Aman Dwivedi
8596d20f5f Bug 876002 - Remove nsIFormHistory2 so no synchronous form history code remains, r=markh.
MozReview-Commit-ID: 4hNAqttRddP

--HG--
extra : rebase_source : a206e30f11e8a625c29898f04498e2da628c2b91
2017-02-08 22:50:00 +01:00
Wes Kocher
6ff8201ffe Merge inbound to central, a=merge
MozReview-Commit-ID: 4mN7daXzULJ
2017-02-08 16:08:42 -08:00
Edouard Oger
5aba6580c8 Bug 1332556 - Set correct passwords' timestamps on first Sync. r=markh
MozReview-Commit-ID: Izg9sIeGNJo

--HG--
extra : rebase_source : 079f73e0e09bf9969989bb72d82736291dbe83dc
2017-02-07 12:56:56 -05:00
Ahsan
39fbeac36e Bug 1336282 - Moved bookmark frecency query into PlacesSyncUtils. r=kitcambridge
MozReview-Commit-ID: 4DDXOUQ2C8N

--HG--
extra : rebase_source : b4d1785e126b87672fc064dee329a791977b1372
2017-02-09 12:28:26 -08:00
Mayank Srivastav
ccf5a4ca8d Bug 1333431 - Fixed ERROR_PARSE thrown on 304 response when fetching profile. r=eoger
MozReview-Commit-ID: KJPvZeU10xP

--HG--
extra : rebase_source : faaa2f7bc49d0aefd85e0f0846076290f71998c8
2017-02-07 23:25:01 +05:30
Phil Ringnalda
3063243dfc Bug 1323867 followup, placate eslint 2017-02-07 16:20:31 -08:00
Kit Cambridge
1e92ba873d Bug 1323867 - Bump bookmark validation threshold to 1k. r=tcsc
This patch also refactors `compareServerWithClient` and
`inspectServerRecords` to periodically yield back to the main thread,
since validating a large number of bookmarks in a tight loop causes
jank. Yielding every 50 records for 50ms is somewhat arbitrary, but
keeps things snappy for my profile (2947 records).

MozReview-Commit-ID: 99DJtNvNeHI

--HG--
extra : rebase_source : cc0991106c17ce906b8779afbe9eced0e27cc4b4
2017-01-12 14:02:45 -07:00
Kit Cambridge
912d625cf7 Bug 1325523 - Persist tracked IDs on finalization, and don't persist IDs in Sync tests. r=markh
MozReview-Commit-ID: CpQP2aM1DO

--HG--
extra : rebase_source : 02fa555cc44bd9d94a6c3beedf00fa1746f0c637
2017-02-07 11:51:06 -08:00
Sebastian Hengst
0264cdf6be Bug 1336311 - Change code comments with http://hg.mozilla.org to https://. r=gps
For components also referencing it in code, see the blockers of bug 1336311.

MozReview-Commit-ID: 4tUZ24HKBWy

--HG--
extra : rebase_source : ec16149f525b9b7eaca7f96f1369929d21497121
2017-02-07 17:52:56 +01:00
Mark Hammond
f02fca824e Bug 1310065 - use more reliable preferences for calculating the client count in the sync scheduler. r=eoger
This patch switches to using preferences written by the clients engine to
determine the number of clients so it's correct before the first sync for
a browser session.

It also fixes another bug I discovered - if a mobile device dropped from the
client list, the preference for the number of mobile devices would remain at
1 rather than resetting to zero.

MozReview-Commit-ID: IPythSQcorx

--HG--
extra : rebase_source : 4ce465e3958d037f90312553a0c353cdc161c0fe
2017-01-25 18:11:05 +11:00
Edouard Oger
809b455084 Bug 1332858 - Alternate wording for Sync new device connected notification when device name missing. r=markh
MozReview-Commit-ID: DdwrRGjwI3

--HG--
extra : rebase_source : 9740cd1fb21fd411c73d8a29e5c3ae31bf11bcb0
2017-02-02 15:49:03 -05:00
Mathieu Leplatre
7c91ae078a Bug 1331629 - Handle Backoff header in blocklist updater (r=mossop)
MozReview-Commit-ID: 21KOLxvCC4W

--HG--
extra : rebase_source : fec6948ea0f2cbb18be1fe5f799353ec09e4aa33
2017-01-19 15:40:26 +01:00
Mathieu Leplatre
0291baa3c0 Bug 1331629 - Reuse the same kinto client instance accross syncs (r=mgoodwin)
MozReview-Commit-ID: F8Fhy9TzPTG

--HG--
extra : rebase_source : 039b099e3c6d1a7f312e3cd209e8cea317f58a32
2017-02-06 10:35:26 +01:00
Edouard Oger
cfc8f37c1b Bug 1317667 - Use async bookmark methods in test_bookmark_duping. r=kitcambridge
MozReview-Commit-ID: CpvcDXKkfcl

--HG--
extra : rebase_source : 4d143bdf9af7727933a74a9f05c7a56baa5c321b
2017-02-03 13:52:39 -05:00
stefanh@inbox.com
3e60e56c26 Bug 1333485 - Remove LogUtils.jsm from services/crypto/modules/. r=markh. 2017-02-01 20:55:09 +01:00
Edouard Oger
f7e895d911 Bug 1329850 - Sync records creation failures are reported to telemetry. r=markh
MozReview-Commit-ID: AEOlmkmyIvY

--HG--
extra : rebase_source : 71c2a627bd0291fa2b9448710e6b0eb1fae36719
2017-01-24 17:05:12 -05:00
Sebastian Hengst
573326d526 Backed out changeset 20863de3b8f4 (bug 1329850) for eslint failure: redeclaration of collection in deeper scope in test_syncengine_sync.js. r=backout 2017-01-31 18:46:39 +01:00
Edouard Oger
ecdeb55693 Bug 1329850 - Sync records creation failures are reported to telemetry. r=markh
MozReview-Commit-ID: AEOlmkmyIvY

--HG--
extra : rebase_source : bce1d12bf1fdb7867ac0f290fdfe4e6b5d761bcc
2017-01-24 17:05:12 -05:00
Mark Banner
8cf0d4744c Bug 1333044 - Enable no-undef eslint rule for services/. r=markh
MozReview-Commit-ID: IrtWclENDth

--HG--
extra : rebase_source : 72df6ddc457431ae77f953a00712462e4902b5f1
2017-01-23 15:15:05 +00:00
Mark Banner
df3fdf012f Bug 1333044 - Fix no-shadow issues in services/. r=markh
MozReview-Commit-ID: KqYfpjdR7QS

--HG--
extra : rebase_source : b93a673073045ddfec6e4b4b347b4e8494425310
2017-01-23 14:07:55 +00:00
Mark Banner
2ecc79b536 Bug 1333044 - Prepare services/ for enabling no-undef eslint rule. r=jaws
MozReview-Commit-ID: 29KwwyZH2jn

--HG--
extra : rebase_source : c4b19fe3714b19b445011ae1c413ca0e624cb46e
2017-01-17 12:25:43 +00:00
Wes Kocher
7cd28f7e5d Merge inbound to central, a=merge
MozReview-Commit-ID: HvoljuLV6Gj
2017-01-27 16:37:18 -08:00
Edouard Oger
1d38375171 Bug 1296767 part 13 - Repair Weave Service getStorageInfo. r=markh
MozReview-Commit-ID: E4S5xYTNDIH
2017-01-27 13:31:58 -05:00
Edouard Oger
ffa8a4f046 Bug 1296767 part 12 - Remove Weave.fxAccountsEnabled. r=markh
MozReview-Commit-ID: L4dM9xN2ELp
2017-01-27 13:31:58 -05:00
Edouard Oger
ad36606986 Bug 1296767 part 11 - Remove Weave.Service.serverURL and friends. r=markh
MozReview-Commit-ID: Kmsxn10sA2X
2017-01-27 13:31:58 -05:00
Edouard Oger
7314dabc8c Bug 1296767 part 10 - Remove FxA Migration code. r=markh
MozReview-Commit-ID: DamrbblcMmZ
2017-01-27 13:31:58 -05:00
Edouard Oger
3844e92a36 Bug 1296767 part 8 - Remove legacy Sync in-content pref screens. r=markh
MozReview-Commit-ID: Blpdd3jeeww
2017-01-27 13:31:58 -05:00