This is needed for Ubuntu Linux when Firefox is installed as a Snap package.
Under those conditions, Firefox doesn't have the ability to read the contents
of the other browsers' data directories.
We work around by showing the user a native file picker and instructing them
to browse to that data directory in folder picker mode - doing so gives
the Firefox process access to the folder (through a temporary symlink).
Another restriction we must overcome is Sqlite's inability to read from
Sqlite databases through that symlinked folder. We work around this by
copying the databases we're importing from to the system temporary
directory, querying it, and then deleting those copies.
Differential Revision: https://phabricator.services.mozilla.com/D188874
This is needed for Ubuntu Linux when Firefox is installed as a Snap package.
Under those conditions, Firefox doesn't have the ability to read the contents
of the other browsers' data directories.
We work around by showing the user a native file picker and instructing them
to browse to that data directory in folder picker mode - doing so gives
the Firefox process access to the folder (through a temporary symlink).
Another restriction we must overcome is Sqlite's inability to read from
Sqlite databases through that symlinked folder. We work around this by
copying the databases we're importing from to the system temporary
directory, querying it, and then deleting those copies.
Differential Revision: https://phabricator.services.mozilla.com/D188874
This is needed for Ubuntu Linux when Firefox is installed as a Snap package.
Under those conditions, Firefox doesn't have the ability to read the contents
of the other browsers' data directories.
We work around by showing the user a native file picker and instructing them
to browse to that data directory in folder picker mode - doing so gives
the Firefox process access to the folder (through a temporary symlink).
Another restriction we must overcome is Sqlite's inability to read from
Sqlite databases through that symlinked folder. We work around this by
copying the databases we're importing from to the system temporary
directory, querying it, and then deleting those copies.
Differential Revision: https://phabricator.services.mozilla.com/D188874
Originally, we had had the extensions migration success link work by using a normal
anchor element with "about:addons" set as the href. This works on privileged pages like
about:preferences, but not for unprivileged pages like about:welcome - unprivileged
pages are generally unable to directly link to most about: pages.
The solution here is to continue to use an anchor element, but to use an event handler
on it rather than a "href" attribute, and have the MigrationWizardParent hear that
click event and take responsibility for opening about:addons.
As part of this, we're also intentionally choosing to open about:addons in a background
tab so that the user can continue to work through their onboard flow uninterrupted
should they click on the link while on about:welcome.
Differential Revision: https://phabricator.services.mozilla.com/D188116
This patch does two things:
1. It makes it so that a corrupt database doesn't result in several retries to
requery the database, as it's extremely unlikely that a corrupt database is
going to somehow get repaired in the interim.
2. It makes it so that if any Chrome-based browser resource fails to be acquired
properly, it still allows other resources from the same (and other!) profiles
to be imported.
Differential Revision: https://phabricator.services.mozilla.com/D182737
Enables support for migrating extensions from Chrome once we have the
API to match and install extensions from the add-ons store.
Adds a new ProgressState object to delineate between various progress
states. This new object has four properties: value, message, linkURL,
and linkText. See migration-wizard-constants for more information.
MigrationWizard.#onShowingProgress uses the new ProgressState object
to handle the new LOADING, SUCCESS, ERROR and INFO values for progress.
This has the added benefit of updating the UI on error cases for the
existing resource groups.
Adds a new details object parameter to MigratorBase.migrate which is
currently used in the Chrome extensions import case.
See ChromeProfileMigrator.GetExtensionsResource for an example of
creating this details object.
See MigrationWizardParent.#doBrowserMigration for example usage of this
details object.
Adds support-text links under each resource type group in the markup.
This is currently used only by extensions in the partial matching and
no matching extensions cases.
Refactor MigrationUtils.installExtensionsWrapper to return an array
with the progress state (LOADING, SUCCESS, ERROR, INFO) and any
imported extensions.
Depends on D180005
Differential Revision: https://phabricator.services.mozilla.com/D180876
This adds a new behaviour that opens the legacy migration wizard from about:welcome,
and sets the pref to default to that behaviour.
This also adds the behaviour to the FeatureManifest.yaml file so that it can be
instrumented remotely via Nimbus.
Differential Revision: https://phabricator.services.mozilla.com/D181105
Those probes are:
* migration.uninstaller_profile_refresh (scalar)
* migration.discovered_migrators (keyed scalar)
* FX_MIGRATION_SOURCE_BROWSER (histogram)
* FX_MIGRATION_USAGE (histogram)
* FX_MIGRATION_ERRORS (histogram)
Not being ported are the following histograms:
* FX_STARTUP_MIGRATION_BROWSER_COUNT
* FX_STARTUP_MIGRATION_EXISTING_DEFAULT_BROWSER
* FX_STARTUP_MIGRATION_DATA_RECENCY
* FX_STARTUP_MIGRATION_USED_RECENT_BROWSER
as these are all expired.
Differential Revision: https://phabricator.services.mozilla.com/D180231
This tries to retrieve the credit card data from Chrome-based browsers using
SQLite queries and then inserts them into the Firefox database.
Differential Revision: https://phabricator.services.mozilla.com/D168434
This tries to retrieve the credit card data from Chrome-based browsers using
SQLite queries and then inserts them into the Firefox database.
Differential Revision: https://phabricator.services.mozilla.com/D168434
This tries to retrieve the credit card and autofill data from
Chrome using SQLite queries and then insert them into the Firefox
database.
Differential Revision: https://phabricator.services.mozilla.com/D168434
We're intentionally keeping the old FX_MIGRATION_ENTRY_POINT histogram around and
written to in order to have a smooth cutover to the new categorical histogram.
Differential Revision: https://phabricator.services.mozilla.com/D172735
I also renamed migration-dialog.[js|html|css] to migration-dialog-window.[js|html|css] to
make it clearer that those resources are for when the wizard is being shown in a separate
window. I also updated the documentation to reflect this.
Differential Revision: https://phabricator.services.mozilla.com/D169014