Fixes several issues related to pinned tab restoration and
favicon display:
- Ensures pinned tabs are not loaded in private windows.
- Improves favicon caching and setting for pinned tabs.
- Fixes an issue where the tab state was not properly
restored, leading to incorrect icons and titles.
- Uses base64 encoded favicon data to prevent issues with
favicon loading and updates the favicon loading logic to
be more robust.
- Adds a call to `gBrowser._updateTabBarForPinnedTabs` to
ensure the tab bar is updated correctly after restoring
pinned tabs, which fixes a UI issue where the tab bar
wouldn't refresh properly until interacted with.
- Improves tab initialization by explicitly calling
`newTab.initialize()` after restoring a pinned tab. This
fixes an issue with tabs not rendering
icon and label after being restored.
The changes improve the reliability of pinned tab
restoration and ensure that favicons are displayed
correctly.
Add to Essentials is displayed before Pin tab context menu item so it follows the order in which the tabs are displayed in the sidebar as essentials are above pinned tabs.
If there are no pinned tabs in the database on startup,
assume it's a migration from an older version and save all
currently pinned tabs to the database. Previously, Zen
would remove any pinned tabs that didn't have a `zen-pin-id`
attribute, which would occur during migration. This change
ensures that pinned tabs are preserved during upgrades.
This commit fixes an issue where the user context ID was not being parsed correctly when pinning tabs.
Previously, the user context ID was being stored as a string, which could lead to unexpected behavior. This commit ensures that the user context ID is parsed as an integer, which is the correct data type.
This change will ensure that pinned tabs are stored and retrieved correctly.