Bug 1798595 Comment 0 Edit History

Note: The actual edited comment in the bug view page will always show the original commenter’s name and original timestamp.

I'd like to refactor the quick suggest code in preparation for weather suggestions and other future work. Right now we have the following problems:

* UrlbarProviderQuickSuggest does too much. It has a lot of code that isn't related to being a urlbar provider. External consumers use it for things that aren't related to being a urlbar provider.
* UrlbarQuickSuggest does too much. It manages remote settings data but it's also the external quick suggest initialization point for BrowserGlue and it manages the onboarding dialog.

I want to split these two modules into the following modules:

* **QuickSuggest:** The core quick suggest module that is the external initialization point and manages the feature's status (enabled or not), blocked suggestions, impression caps, the onboarding dialog, and general consts and helpers.
* **QuickSuggestRemoteSettingsClient:** Manages quick suggest's remote settings data including configuration and suggestions. Like MerinoClient but for remote settings.
* **UrlbarProviderQuickSuggest:** This is only a urlbar provider and it records related engagement telemetry when a result is picked.
I'd like to refactor the quick suggest code in preparation for weather suggestions and other future work. Right now we have the following problems:

* UrlbarProviderQuickSuggest does too much. It has a lot of code that isn't related to being a urlbar provider. External consumers use it for things that aren't related to being a urlbar provider. It does a lot of the quick suggest feature initialization.
* UrlbarQuickSuggest does too much. It manages remote settings data but it's also the external quick suggest initialization point for BrowserGlue and it manages the onboarding dialog.

I want to split these two modules into the following modules:

* **QuickSuggest:** The core quick suggest module that is the external initialization point and manages the feature's status (enabled or not), blocked suggestions, impression caps, the onboarding dialog, and general consts and helpers.
* **QuickSuggestRemoteSettingsClient:** Manages quick suggest's remote settings data including configuration and suggestions. Like MerinoClient but for remote settings.
* **UrlbarProviderQuickSuggest:** This is only a urlbar provider and it records related engagement telemetry when a result is picked.

Back to Bug 1798595 Comment 0