Refactor sidebar state persistence logic outside of SessionStore and into SidebarController and SidebarManager. Expose an API for session store to update state. If session store data is not available, use the backup state instead. Works for both "Never remember history" and "Use custom settings for history".
Differential Revision: https://phabricator.services.mozilla.com/D225220
- Simplifies the resize tracking logic so that it hooks the splitter, rather than the browser. This removes the need to debounce and solves the issue of reporting automatic resizes.
- Rounds resize event data to the nearest integer.
- Records hide events whenever current panel is switched.
Differential Revision: https://phabricator.services.mozilla.com/D225435
Refactor sidebar state persistence logic outside of SessionStore and into SidebarController and SidebarManager. Expose an API for session store to update state. If session store data is not available, use the backup state instead. Works for both "Never remember history" and "Use custom settings for history".
Differential Revision: https://phabricator.services.mozilla.com/D225220
- different sidebar button icons for expanded, collapsed sidebar states
- move sidebar-button to beginning of navbar strip, to the left of back button
- update tests to reflect new sidebar button positioning
- add hover animation to button
Differential Revision: https://phabricator.services.mozilla.com/D223406
- different sidebar button icons for expanded, collapsed and hidden sidebar states
- move sidebar-button to beginning of navbar strip, to the left of back button
- update tests to reflect new sidebar button positioning
Differential Revision: https://phabricator.services.mozilla.com/D223406
- different sidebar button icons for expanded, collapsed and hidden sidebar states
- move sidebar-button to beginning of navbar strip, to the left of back button
Differential Revision: https://phabricator.services.mozilla.com/D223406
- Registers the a new review checker sidebar using `registerPrefSidebar` that will display if `browser.shopping.experience2023.integratedSidebar` is enabled.
- Hides any open review checker sidebars if the pref changes.
- Adds `reviewchecker` to the sidebar revamp tools pref.
Note: this only adds the sidebar tool, it will not load anything as the actors aren't setup yet.
Differential Revision: https://phabricator.services.mozilla.com/D221362
This:
* Works around the WebRender issue from bug 1916599.
* Might be a bit simpler to reason about (the sidebar special-cases to
keep the buttons at the right edge are a bit unfortunate but...).
* Avoids the squishiness that Markus and Sam were discussing in
#gfx-firefox).
There's still some flickering on the <browser> element, but I have a
good idea of how to fix it (basically, we're triggering resizes from
layout, but for remote iframes we really don't want to do that, because
it can cause raciness / flickering as observed).
Differential Revision: https://phabricator.services.mozilla.com/D221351
Depends on D220846
This looks simpler, a lot smoother on my machine, and shouldn't cause
content resizes. It also doesn't set custom properties on the root which
causes an expensive restyle, specially on big documents (like with many
tabs open).
Maybe eventually we can use view transitions for this, seems like a good
use-case.
We need to move the background to `#sidebar-main` rather than the
wrapper because during the shrinking animation the wrapper is small and
the `#sidebar-main` element would be transparent, which we don't want.
Differential Revision: https://phabricator.services.mozilla.com/D220846
This:
* Works around the WebRender issue from bug 1916599.
* Might be a bit simpler to reason about (the sidebar special-cases to
keep the buttons at the right edge are a bit unfortunate but...).
* Avoids the squishiness that Markus and Sam were discussing in
#gfx-firefox).
There's still some flickering on the <browser> element, but I have a
good idea of how to fix it (basically, we're triggering resizes from
layout, but for remote iframes we really don't want to do that, because
it can cause raciness / flickering as observed).
Differential Revision: https://phabricator.services.mozilla.com/D221351
This looks simpler, a lot smoother on my machine, and shouldn't cause
content resizes. It also doesn't set custom properties on the root which
causes an expensive restyle, specially on big documents (like with many
tabs open).
Maybe eventually we can use view transitions for this, seems like a good
use-case.
We need to move the background to `#sidebar-main` rather than the
wrapper because during the shrinking animation the wrapper is small and
the `#sidebar-main` element would be transparent, which we don't want.
Differential Revision: https://phabricator.services.mozilla.com/D220846
* Ensure tabstrip widgets are temporarily removeable at browser init so the CUI placements are correctly applied
* Shuffle placements during initialization to build the correct toolbars for the verticalTabs pref value
* Notify on the 'tabstrip-orientation-change' topic when the verticalTabs pref changes and CUI placements have been updated
* Add tests for switching tabstrip orientation, and for initializing in verticalTabs mode
Differential Revision: https://phabricator.services.mozilla.com/D217161
* Ensure tabstrip widgets are temporarily removeable at browser init so the CUI placements are correctly applied
* Shuffle placements during initialization to build the correct toolbars for the verticalTabs pref value
* Notify on the 'tabstrip-orientation-change' topic when the verticalTabs pref changes and CUI placements have been updated
* Add tests for switching tabstrip orientation, and for initializing in verticalTabs mode
Differential Revision: https://phabricator.services.mozilla.com/D217161
Add new SidebarManager singleton with init on import that allows setting user branch prefs specified in the nimbus variable for sidebar.
Differential Revision: https://phabricator.services.mozilla.com/D219903
gNotificationBox doesn't go there anymore (it goes inside the toolbox),
so we have really no use for that.
Simplify how the devtools theme is set on the browser, so that it is set
on the root.
Differential Revision: https://phabricator.services.mozilla.com/D220769