This test tries to remove profile by rmtree. However, since the "\\?\" prefix
has been applied to QM and its clients on Windows and thus they are able to
create files which exceed the MAX_PATH limitation.
Therefore, we need to prepend the prefix to the remove function in this test as
well.
Note that the problem was caused by an extension that uses IDB which was not
able to create a directory for stored files. The test doesn't check IDB so it
always passed before, despite the IDB failure. However, preceding patches make
it possible to use long file names in QM and QM clients, so IDB implementation
is now able to create the directory and the test needs to be able to delete it
as well.
Depends on D67875
Differential Revision: https://phabricator.services.mozilla.com/D67876
--HG--
extra : moz-landing-system : lando
Initializing OSCrypto can lead to a useless macOS Keychain prompt when there are no logins to import.
Differential Revision: https://phabricator.services.mozilla.com/D46616
--HG--
rename : browser/components/migration/tests/unit/AppData/Local/Google/Chrome/User Data/Default/Login Data => browser/components/migration/tests/unit/AppData/LocalWithNoData/Google/Chrome/User Data/Default/Login Data
rename : browser/components/migration/tests/unit/Library/Application Support/Google/Chrome/Default/Login Data => browser/components/migration/tests/unit/LibraryWithNoData/Application Support/Google/Chrome/Default/Login Data
rename : browser/components/migration/tests/unit/Library/Application Support/Google/Chrome/Local State => browser/components/migration/tests/unit/LibraryWithNoData/Application Support/Google/Chrome/Local State
rename : browser/components/migration/tests/unit/test_Chrome_passwords.js => browser/components/migration/tests/unit/test_Chrome_passwords_emptySource.js
extra : moz-landing-system : lando
Using _getLocalePropertyForBrowser isn't ideal but ideally this patch would get uplifted so I didn't want to do a larger refactoring to fix this.
Differential Revision: https://phabricator.services.mozilla.com/D61104
--HG--
extra : moz-landing-system : lando
Differential Revision: https://phabricator.services.mozilla.com/D45155
--HG--
rename : browser/components/migration/tests/unit/AppData/Local/Google/Chrome/User Data/Default/Login Data => browser/components/migration/tests/unit/Library/Application Support/Google/Chrome/Default/Login Data
extra : moz-landing-system : lando
Rather than aborting adding data, we set the history items to have the current date/time. This seems mildly better than throwing away the history data.
Differential Revision: https://phabricator.services.mozilla.com/D17830
--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
Currently nsAppRunner is responsible for choosing or creating a profile to use
at startup. It then has to create a reset profile if necessary and lock the
selected profile directories. But these latter things are done in different
places of the selection code and done in different ways, sometimes we delay
while trying to get the lock, sometimes we don't.
This patch moves the profile selection part of the code to its own function so
that then we only have to have one place that does the profile reset and
locking logic.
It makes a lot of sense to have the selection code live in the profile service.
It can use information from the database load to help make the choices and it
also means that we can expose the profile selection code through xpcom allowing
it to be easily automatically tested. It will also be more important for future
patches for the dedicated profiles feature.
Differential Revision: https://phabricator.services.mozilla.com/D16116
--HG--
extra : moz-landing-system : lando
assertIn(el, list) should be favored over assertTrue(el in list),
which gives clear details about what is different.
Differential Revision: https://phabricator.services.mozilla.com/D8857
--HG--
extra : moz-landing-system : lando