*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
It seems we were hitting a console error and not reaching the block of code prevents the popup:
`JavaScript error: chrome://browser/content/sidebar/sidebar-main.mjs, line 140: TypeError: can't access property "getAttribute", this.contextMenuTarget is null`
Differential Revision: https://phabricator.services.mozilla.com/D229669
* 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
The motivation for this change is to improve the screen reader user
experience when navigating through moz-checkbox and moz-radio elements.
When a screen reader encounters and focuses a moz-checkbox or
moz-radio element, only the label is announced. Previously the label
and the support-link element would be announced which is confusing since
it is not clear what will happen when activating one of these moz
elements.
Additionally, we remove the display flex and width rules from
sidebar-customize.css to prevent sidebar test breakage and create a
larger click surface for moz-radio and moz-checkbox when used in the
sidebar.
The moz-input-common.css change makes moz-label behave more like XUL
labels where the click area for the label and control span the entire
width unless there is a support link in the moz-label. In this case,
clicking on the other side of the support link will not activate the
respective control.
We needed to add "label: 'A label'" to the verifySupportPage function
otherwise debug assertions would be thrown and cause test_moz_radio.html
to fail. I'm still not entirely sure why there are debug assertions
failing here, someone with a greater depth of knowledge around layout
reflows would need to investigate.
Differential Revision: https://phabricator.services.mozilla.com/D226181
The motivation for this change is to improve the screen reader user
experience when navigating through moz-checkbox and moz-radio elements.
When a screen reader encounters and focuses a moz-checkbox or
moz-radio element, only the label is announced. Previously the label
and the support-link element would be announced which is confusing since
it is not clear what will happen when activating one of these moz
elements.
Additionally, we remove the display flex and width rules from
sidebar-customize.css to prevent sidebar test breakage and create a
larger click surface for moz-radio and moz-checkbox when used in the
sidebar.
The moz-input-common.css change makes moz-label behave more like XUL
labels where the click area for the label and control span the entire
width unless there is a support link in the moz-label. In this case,
clicking on the other side of the support link will not activate the
respective control.
Differential Revision: https://phabricator.services.mozilla.com/D226181
- 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