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
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 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
This causes the MigrationWizardChild to request the full collection of available
migrators and user profiles, and then based on which resourceTypes those migrators
and user profiles have available, changes the visibility of the checkboxes in the
selection page of the new MigrationWizard component.
Differential Revision: https://phabricator.services.mozilla.com/D167617
This causes the MigrationWizardChild to request the full collection of available
migrators and user profiles, and then based on which resourceTypes those migrators
and user profiles have available, changes the visibility of the checkboxes in the
selection page of the new MigrationWizard component.
Differential Revision: https://phabricator.services.mozilla.com/D167617
It turns out we just had these two values wrong. Using the Keychain Access utility
on macOS, I was able to find the right values for both browsers and then do a
successfull password import from each.
Notably, both Opera and Opera GX share the same Keychain service and account
name despite being two separate products.
Differential Revision: https://phabricator.services.mozilla.com/D165180
This doesn't do a thorough job of actually documenting things, it just makes sure that
the existing documentation abides by the JSDoc formatting rules. I did flesh out some
documentation here and there, but writing new / updating / clarifying documentation is
left as later work.
Differential Revision: https://phabricator.services.mozilla.com/D163133