- Move resize observer (setting max width) logic over to SidebarState.
- Add `command` property to SidebarState.
- Handle receiving legacy session restore data.
- Add unit tests along with mocking structures to get a better idea of state/controller coupling (which we should ultimately reduce).
Differential Revision: https://phabricator.services.mozilla.com/D232730
Any menu items that were added after `viewCustomizeSidebar` in `this.sidebars`, such as extensions, were previous ignored in `selectMenuItem` thus resulting in an incorrect checked state in the menu.
Differential Revision: https://phabricator.services.mozilla.com/D232648
- Ensure that init() does not clear existing state.
- Keep tab container's "expanded" attribute up to date, as that controls the tab styling.
Differential Revision: https://phabricator.services.mozilla.com/D232259
*Update SidebarState logic so that opening and closing panels reverts to the correct launcher visibility for the show and hide setting
*Add a test
Differential Revision: https://phabricator.services.mozilla.com/D231838
- Adds a remote content browser to contain `about:shoppingsidebar` in `review-checker.xhtml` and update the Review Checker sidebar to use that wrapper document.
- Adds ReviewChecker actors for the sidebar Review Checker panel.
- ReviewCheckerParent is a simplified version of the ShoppingSidebarParent as it does not need to handle the state of the sidebar opening or closing.
- ReviewCheckerChild is just extends ShoppingSidebarChild for now, though it will need to be separate in the future.
- Adds a browser.shopping.experience2023.shoppingSidebar boolean pref to disable ShoppingSidebar actors when they are not needed.
- Fixes `AbortError` error handling when the outer sidebar browser is removed.
Note that any auto-opening or closing behavior will need to be added afterwards, as these actors are not around to check product urls when the sidebar is closed.
Differential Revision: https://phabricator.services.mozilla.com/D222840
* Update nimbus variable and browser-sidebar to avoid resetting pref after experiment end
* Allow use of sidebar visibility as a set pref multi-action from spotlight modal
Differential Revision: https://phabricator.services.mozilla.com/D231387
We want the nav-bar customizations to be the same across vertical and horizontal tabs mode, minus the Fxview, "list all tabs" buttons, and any other tab strip widgets moved to the nav-bar.
- If the Fxview and "list all tabs" buttons and tab-strip widgets are removed in the nav-bar in vertical mode, they are removed from the tab-strip when switching back to horizontal mode.
- If the Fxview and "list all tabs" buttons and tab-strip widgets are moved in the nav-bar in vertical mode, this should be remembered for vertical mode. Their positions in horizontal mode should remain as they were in horizontal mode.
Differential Revision: https://phabricator.services.mozilla.com/D227555
- Created a SidebarState API to manage reactive properties for the controller.
- Replaced usages of sidebarMain.hidden with state.launcherVisible.
- Replaced usages of sidebarMain.expanded with state.launcherExpanded.
- Removed toggleExpanded() and toggleHide(), replaced with equivalent state toggles.
Differential Revision: https://phabricator.services.mozilla.com/D229558
We want the nav-bar customizations to be the same across vertical and horizontal tabs mode, minus the Fxview, "list all tabs" buttons, and any other tab strip widgets moved to the nav-bar.
- If the Fxview and "list all tabs" buttons and tab-strip widgets are removed in the nav-bar in vertical mode, they are removed from the tab-strip when switching back to horizontal mode.
- If the Fxview and "list all tabs" buttons and tab-strip widgets are moved in the nav-bar in vertical mode, this should be remembered for vertical mode. Their positions in horizontal mode should remain as they were in horizontal mode.
Differential Revision: https://phabricator.services.mozilla.com/D227555
We want the nav-bar customizations to be the same across vertical and horizontal tabs mode, minus the Fxview, "list all tabs" buttons, and any other tab strip widgets moved to the nav-bar.
- If the Fxview and "list all tabs" buttons and tab-strip widgets are removed in the nav-bar in vertical mode, they are removed from the tab-strip when switching back to horizontal mode.
- If the Fxview and "list all tabs" buttons and tab-strip widgets are moved in the nav-bar in vertical mode, this should be remembered for vertical mode. Their positions in horizontal mode should remain as they were in horizontal mode.
Differential Revision: https://phabricator.services.mozilla.com/D227555
This is probably also a better reflection of reality now that we can
have vertical tabs which would by definition not be in the titlebar.
Differential Revision: https://phabricator.services.mozilla.com/D229767
This is probably also a better reflection of reality now that we can
have vertical tabs which would by definition not be in the titlebar.
Differential Revision: https://phabricator.services.mozilla.com/D229767
- Add a splitter that can be used to resize the launcher by dragging.
- Add "snapping points" to allow dragging to expand or collapse the launcher.
- Total sidebar width (launcher + panel) cannot exceed 75vw.
- Styling updates to show ellipses if labels are cut off due to resizing.
Differential Revision: https://phabricator.services.mozilla.com/D228705
- Add a splitter that can be used to resize the launcher by dragging.
- Add "snapping points" to allow dragging to expand or collapse the launcher.
- Total sidebar width (launcher + panel) cannot exceed 75vw.
- Styling updates to show ellipses if labels are cut off due to resizing.
Differential Revision: https://phabricator.services.mozilla.com/D228705
* Adds a `remoteType` attribute to the config when registering a sidebar to opt-in to using a remote content process when displaying that sidebar panel.
* Moves loading URLs into a `SidebarController._loadUrl` method, which can be passed a remoteType if the sidebar contents should be displayed in a remote content process. If needed it will replace the sidebar browser element with a remote or non-remote browser to match the remoteType passed.
* Adds browser load listeners methods, a `SidebarController._hasLoaded` promise for non-remote loading and a `SidebarController._hasProgressStopped` promise if the browser is remote.
* Adds a setter for `SidebarController.browser`.
* Adds a `shopping-sidebar` message manager group to avoid actor conflict.
Differential Revision: https://phabricator.services.mozilla.com/D223961