Megalist is a feature where a user can manage their personal data from one place. This is available as an entry in the browser sidebar by adding the pref “browser.megalist.enabled”.
This initial patch includes:
* Displaying logins, credit cards, and addresses in the browser sidebar
* Editing login, credit card, or address
* Rendering site favicons
* Importing logins
* Copying field values
* Filtering records using search text
* Conceal / reveal password
What’s not included:
* Creating a login, credit card, or address
* Deleting
* Sorting records
* Tests
* Documentation
**Architecture**
At a high-level, the relationship between modules can be outlined as such:
DataSource <—> Aggregator <—> View Model <—> View
The **MegalistViewModel** is responsible for providing the data that will be displayed in the view (MegalistView). It is responsible for organizing data accessed from the Aggregator into a list and send this data as “snapshots” to the view. The MegalistParent/Child actors facilitate the communication between the browser context and content.
The **Aggregator** is responsible for connecting a data source to the ViewModel. It can connect multiple data sources to the ViewModel.
The **data source **defines how the data is fetched and represented in Megalist as a group of “lines”. At this level, we define specific functionality on what commands can act on this data and what is exposed to the ViewModel.
Differential Revision: https://phabricator.services.mozilla.com/D202678
* Flip the component pref to true by default for nightly builds only
* Move the pref check and initialization to a startup idle task
* And be a bit smarter about when we get and disable the addon
* Fix a bug where we try to communicate with the overlay after the window actor is destroyed when
the component pref gets flipped off during use
Differential Revision: https://phabricator.services.mozilla.com/D196888
* Flip the component pref to true by default for nightly builds only
* Move the pref check and initialization to a startup idle task
* And be a bit smarter about when we get and disable the addon
* Fix a bug where we try to communicate with the overlay after the window actor is destroyed when
the component pref gets flipped off during use
Differential Revision: https://phabricator.services.mozilla.com/D196888
* Flip the component pref to true by default for nightly builds only
* Move the pref check and initialization to a startup idle task
* And be a bit smarter about when we get and disable the addon
* Fix a bug where we try to communicate with the overlay after the window actor is destroyed when
the component pref gets flipped off during use
Differential Revision: https://phabricator.services.mozilla.com/D196888
* Flip the component pref to true by default for nightly builds only
* Move the pref check and initialization to a startup idle task
* And be a bit smarter about when we get and disable the addon
* Fix a bug where we try to communicate with the overlay after the window actor is destroyed when
the component pref gets flipped off during use
Differential Revision: https://phabricator.services.mozilla.com/D196888
This creates a new BackupService component that lives under browser/components/backup.
It doesn't do much yet, except allow itself to be instantiated (which currently occurs
using the idle scheduler in BrowserGlue) - but it does set us up to have docs, SphinxJS
exporting for JSDoc, linting, etc.
Differential Revision: https://phabricator.services.mozilla.com/D202753
Patch changes:
- updates the original in-tree callouts 1-3 to run if `autoOpen.enabled` is false, so that they're not affected by the experiment when we flip the pref to true
- adds a revised callout 1 for the experiment, this time targeting not opted-in users and gating it behind `autoOpen.enabled` == true
- adds a revised callout 3 for the experiment which targets not opted-in users that already saw callout 1 and 24 hours have passed
- adds callout 4 that will be used when the user 1) selects "Yes, keep closed" or 2) disables auto-open behaviour via the settings toggle. It is gated behind `autoOpen.enabled` == true
- adds callout 5 that will be used when the user opts out of Review Checker via the opt-out button in settings. It is gated behind `autoOpen.enabled` == true
Differential Revision: https://phabricator.services.mozilla.com/D200072