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
Also move getDuplicateTabsToClose and getAllDuplicateTabsToClose away from essentials at the top, closer to related methods.
Differential Revision: https://phabricator.services.mozilla.com/D226279
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
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
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
1908418 added tab groups and their tab relationships to each window. This patch will restore tab groups and the tabs within them.
Differential Revision: https://phabricator.services.mozilla.com/D224955
This adds tab groups and their state data to the session store. For any tabs that are in tab groups, this patch adds the group ID into the tab state.
This change has a number of limitations that will be addressed in future bugs. Most notably, tab groups will not be restored from session state -- this change just records the tab group state data. Another important limitation is that when users remove tab groups, they will no longer appear in the session store.
This patch is only intended to lay the initial groundwork for storing tab group data in the session store.
Differential Revision: https://phabricator.services.mozilla.com/D224348
This adds tab groups and their state data to the session store. For any tabs that are in tab groups, this patch adds the group ID into the tab state.
This change has a number of limitations that will be addressed in future bugs. Most notably, tab groups will not be restored from session state -- this change just records the tab group state data. Another important limitation is that when users remove tab groups, they will no longer appear in the session store.
This patch is only intended to lay the initial groundwork for storing tab group data in the session store.
Differential Revision: https://phabricator.services.mozilla.com/D224348
We can rely on the global pref for this. `setPosition` in `browswer-sidebar.js` looks
at the pref `sidebar-position_start` to determine "order" on `init` and on `reversePosition`
Differential Revision: https://phabricator.services.mozilla.com/D219906
These did nothing at the OS level on most OSes (see previous patch), and
were only used on tests, so just remove them.
Note that these were different from the alwaysontop feature, which
remains and is used for stuff like picture-in-picture.
Differential Revision: https://phabricator.services.mozilla.com/D214091
Move style persistence from XULstore to SessionStore.
Follow up bug to fix persistence of sidebar when only a new tab is open and window is closed, and its
accompanying test `browser_sidebar_persist.js`: Bug 1898613
Depends on D207048
Differential Revision: https://phabricator.services.mozilla.com/D207787
* Timestamped log files are written to a `sessionstore-logs` directory in the profile directory
* Errors will always get written to disk, the logOnSuccess pref ensures all logs are saved even if no error has been captured
* The prefs configure how much logging we do. We have more verbose logging by default in nightly/early-beta, and less (errors, warnings) in release.
* Logging statements have been added to the early phases of session restore. We'll add more I'm sure as we troubleshoot specific bugs.
Differential Revision: https://phabricator.services.mozilla.com/D208816
Since we are moving away from XUL for the revamped sidebar, remove persistence off of XULstore.
For now, this involves moving persistence of "sidebar-command" and "positionend" to SessionStore.
A follow up bug 1892033 for moving the style attribute to SessionStore has been filed. This is slightly more involved,
hence the separate patch.
Differential Revision: https://phabricator.services.mozilla.com/D207048
The only tab attribute which is ever persisted by SessionStore is
"customizemode". This patch limits the logic to only allow persisting and
restoring this attribute.
The browser_attributes.js test is also updated to use the "customizemode"
attribute for testing, rather than a custom specified attribute.
Differential Revision: https://phabricator.services.mozilla.com/D205481
In bug 1804140, we shipped SHIP everywhere on desktop. Unfortunately, we
never removed the now-dead code from SessionStore.
This patch removes the easy to identify SessionStore code for non-SHIP,
now that it is a fully unsupported configuration.
Differential Revision: https://phabricator.services.mozilla.com/D205479
The only tab attribute which is ever persisted by SessionStore is
"customizemode". This patch limits the logic to only allow persisting and
restoring this attribute.
The browser_attributes.js test is also updated to use the "customizemode"
attribute for testing, rather than a custom specified attribute.
Differential Revision: https://phabricator.services.mozilla.com/D205481
In bug 1804140, we shipped SHIP everywhere on desktop. Unfortunately, we
never removed the now-dead code from SessionStore.
This patch removes the easy to identify SessionStore code for non-SHIP,
now that it is a fully unsupported configuration.
Differential Revision: https://phabricator.services.mozilla.com/D205479