From 4f615e064429e0ff52d96beaf4cbfc875c64f2fb Mon Sep 17 00:00:00 2001 From: afrojun <1935642+afrojun@users.noreply.github.com> Date: Thu, 5 Nov 2026 02:56:05 +0000 Subject: [PATCH] Release ProfileBar 1.6.0 and ProfileBar for Chrome 1.2.0 ProfileBar 1.6.0 passes split views through to the destination profile. ProfileBar for Chrome 1.2.0 keeps reopened tabs and split-view links in their profile, adds the toolbar icon menu, keeps split views together when they move, and uses the new panel icon. The store listing describes the toolbar menu and split views, with what a split needs to arrive split, and discloses the active-tab check behind the toolbar menu, as does the privacy policy. The test instructions ask for ProfileBar 1.6, cover the new behaviour, and include the condensed text for the Dashboard. The testing guide gains the same checks. Co-Authored-By: Claude Opus 5.5 --- Info.plist | 4 ++-- docs/testing.md | 5 ++++- extension/PRIVACY.md | 13 +++++++---- extension/STORE_LISTING.md | 44 +++++++++++++++++++++++++++++++------- extension/manifest.json | 2 +- 5 files changed, 52 insertions(+), 16 deletions(-) diff --git a/Info.plist b/Info.plist index 4902ad6..0d8f3b0 100644 --- a/Info.plist +++ b/Info.plist @@ -17,9 +17,9 @@ CFBundlePackageType APPL CFBundleShortVersionString - 1.5.0 + 1.6.0 CFBundleVersion - 12 + 13 LSMinimumSystemVersion 14.0 LSUIElement diff --git a/docs/testing.md b/docs/testing.md index 19be4ad..e6bc38f 100644 --- a/docs/testing.md +++ b/docs/testing.md @@ -32,7 +32,7 @@ If two profiles share a name, repeat these checks for each of them. Chrome title For settings or shortcut changes, also check that repeated **Settings…** actions reuse one window, a hidden menu-bar avatar does not disable its shortcut, and shortcut conflicts leave the previous assignment intact. Restore only settings changed for the test. Close only windows the test created, and do not remove Chrome profile data. -For tab moves, load the ProfileBar for Chrome development build and move an HTTP page to another Chrome profile. Check that the source tab closes only after the destination opens, and that the setup page and menu give a useful setup path when ProfileBar is unavailable. +For tab moves, load the ProfileBar for Chrome development build and move an HTTP page to another Chrome profile. Check that the source tab closes only after the destination opens, and that the setup page and menu give a useful setup path when ProfileBar is unavailable. Right-click the toolbar icon too: its move items act on the active tab, their destinations grey out on pages such as `chrome://extensions` while **Set up** and **Refresh profiles** stay available, and **Move group to profile** appears only on a tab in a group. With a Chrome window focused, confirm its own profile is absent from the extension's page and tab destination menus. When Accessibility access is unavailable or the focused window cannot be matched uniquely, confirm all profiles remain visible. For a group move, right-click a tab inside a group. With the extension installed @@ -42,12 +42,15 @@ group closes. Repeat with the extension absent or disabled in the destination: the URLs should open without a group. If the receiver claims a handoff but cannot create the group, the source group must stay open. The group items should appear only in windows that have a tab group. +In Chrome 155 or later, move either half of a split view from the tab strip, then a group that contains a split. Both halves should move, and with the extension in the destination they should arrive split. Without it, or in older Chrome, they arrive as separate tabs. + If two profiles share a name, the extension's setup page should show a **Rename** button for each. A button should open `chrome://settings/manageProfile` in that profile when the extension is installed there, and otherwise explain how to rename it by hand. For link routing, load the development extension in at least two profiles, choose **Identify profiles**, and use ProfileBar Dev's own rules file (`~/Library/Application Support/ProfileBar Dev/link-routing.json`) with throwaway sites such as `example.com`. Then check that: - A link from another app (`open -a "Google Chrome" `) that a rule assigns elsewhere opens in that profile, and the source tab closes. - Links that a page opens in new tabs move the same way. Popup windows, navigation inside a tab, and links that match no rule stay put. +- A tab reopened with Cmd+Shift+T, a duplicated tab, and a link opened with **Open link in split view** stay in their profile. - A tab that ProfileBar opens in a profile, whether routed, moved, or part of a moved group, loads once and is never routed again. - With a profile chosen under **Open other links from apps in**, a link from another app that matches no rule opens there, while a link that a page opens with no matching rule stays put. - Clearing **Other apps** or **Web pages** stops routing from that source, and edits in Settings and on the options page reach every profile. diff --git a/extension/PRIVACY.md b/extension/PRIVACY.md index afa1502..55d1411 100644 --- a/extension/PRIVACY.md +++ b/extension/PRIVACY.md @@ -1,13 +1,17 @@ # ProfileBar for Chrome Privacy Policy -Effective date: 2 November 2026 +Effective date: 5 November 2026 ProfileBar for Chrome reads tab URLs when you choose a move action from its right-click menu, and when a new tab opens if you use link routing. For a move, it reads the clicked tab, the highlighted tabs, or the tabs in the chosen group. For a group move, it also reads the group's title, colour, and collapsed state. To show the group actions only when they apply, it -checks whether the focused window has any tab group, which reads no URLs. +checks whether the focused window has any tab group, which reads no URLs. To +show only the toolbar icon's actions that apply, it checks the active tab's URL +and group when you switch tabs or the tab changes, on your Mac. When you move +one half of a split view from the tab strip, it also reads the other half so +both move together. Link routing reads the URL of each new tab, and any redirect in its first moments, and compares it with your rules on your Mac. It never reads the tabs @@ -47,14 +51,15 @@ Store User Data Policy, including the Limited Use requirements. ## Permissions - `contextMenus` adds the move actions and **Always open this site in** to the - right-click menus. + right-click menus and the toolbar icon's menu. - `declarativeNetRequest` holds back a new tab's page load while link routing moves it, so the site is not loaded twice. Its rules come only from your link-routing rules and apply only to new tabs. - `nativeMessaging` connects to ProfileBar on this Mac. - `storage` remembers which profile directory this copy of the extension runs in. - `tabs` reads the URLs of the tabs you choose to move and closes them after a - successful move. + successful move. It also checks the active tab's URL and group to show only + the toolbar actions that apply, and which tabs share a split view. - `tabGroups` reads a chosen group's visible details and recreates them in the destination profile, and checks whether the focused window has a group. - `webNavigation` tells link routing which new tabs a web page opened, so the diff --git a/extension/STORE_LISTING.md b/extension/STORE_LISTING.md index 0df0ff0..313044b 100644 --- a/extension/STORE_LISTING.md +++ b/extension/STORE_LISTING.md @@ -14,13 +14,17 @@ Keep work, personal, and side project pages in the profile where they belong. Right-click a page, choose **Move tab to profile**, and pick a destination. The -page opens there, and the original tab closes once the move succeeds. +page opens there, and the original tab closes once the move succeeds. The +extension's toolbar icon offers the same moves for the tab you're on, including +its whole group. In Chrome 150 and later, right-click a tab to move it, move several selected tabs together in tab order, or move a whole tab group. When this extension is also installed in the destination profile, the group keeps its name, colour, and collapsed state. Otherwise, the pages still open in the chosen profile -without a group. +without a group. Moving either half of a split view from the tab strip moves +both. With ProfileBar 1.6, Chrome 155 or later, and this extension in the +destination profile, they open side by side again. Link routing opens new tabs in the profile you choose for each site, without making anything your default browser. Add rules on the options page, in @@ -61,7 +65,8 @@ own rules, through the local ProfileBar app. **Permission justifications:** - `contextMenus`: Show the move actions and destination profiles in the page - and tab right-click menus, and **Always open this site in** on pages. + and tab right-click menus and the toolbar icon's menu, and **Always open this + site in** on pages. - `declarativeNetRequest`: Hold back the page load of a new tab that a link-routing rule assigns to another profile, so the site does not load in both profiles. The session rules come only from the user's link-routing rules @@ -78,8 +83,10 @@ own rules, through the local ProfileBar app. - `tabs`: Read the URLs of the clicked, selected, or grouped tabs when the user chooses a move action, then close those tabs after a successful move. Read the first URL of each new tab to check it against the user's link-routing - rules, and close it once another profile has opened it. Tabs that were - already open and navigation inside a tab are never read. + rules, and close it once another profile has opened it. Read the active + tab's URL and group to show only the toolbar actions that apply, and which + tabs share a split view so a split moves together. Tabs that were already + open and navigation inside a tab are never read for link routing. - `tabGroups`: Read the chosen group's title, colour, and collapsed state, then recreate them in the destination profile. Check whether the focused window has a tab group, without reading URLs, to show the group actions only when @@ -95,8 +102,9 @@ activity. It reads selected tabs when the user chooses a move action, and the first URL of new tabs to compare with the user's link-routing rules on the device. It sends URLs only to the ProfileBar app on the same device, and only for a move action, a rule that names another profile, or the profile the user -chose for links from other apps that match no rule. Neither component -retains them or collects other user data. +chose for links from other apps that match no rule. To show only the toolbar +actions that apply, it also checks the active tab's URL and group on the +device. Neither component retains them or collects other user data. Certify the limited-use declarations in the Dashboard. Check the Dashboard's current wording before submission because Google may change the available data @@ -118,7 +126,7 @@ Moving tabs needs the ProfileBar app on macOS and at least two Chrome profiles. 1. Install the extension before ProfileBar. The setup page should explain how to connect, and the right-click menu should offer **Set up ProfileBar…**. -2. Install ProfileBar 1.5 or later from https://afrojun.dev/profilebar/ and +2. Install ProfileBar 1.6 or later from https://afrojun.dev/profilebar/ and open it once. Choose **Check again** on the setup page. It should report **Connected**. 3. Right-click a normal HTTPS page, choose **Move tab to profile**, and select @@ -133,6 +141,26 @@ Moving tabs needs the ProfileBar app on macOS and at least two Chrome profiles. options page. Add the rule `example.com` for the other profile, then open `https://example.com` in a new tab. Confirm it opens in the other profile and the new tab closes. +7. In the first profile, type `https://example.com` into an existing tab's + address bar, which link routing leaves alone. Close that tab and press + Cmd+Shift+T. Confirm it reopens in the same profile. +8. Right-click the extension's toolbar icon on an HTTPS page. Confirm **Move + tab to profile** and **Always open this site in** work, that **Move group to + profile** appears only on a tab in a group, and that the destinations are + greyed out on `chrome://extensions`. +9. In Chrome 155 or later, put two HTTPS tabs in a split view, right-click + either half in the tab strip, and move it. Confirm both open side by side in + the other profile. + +Condensed version for the Dashboard: + +> Needs macOS, two Chrome profiles, and ProfileBar 1.6+ from +> https://afrojun.dev/profilebar/ (open it once). Install the extension in both +> profiles and choose Identify profiles on its options page. Right-click a page, +> a tab, or the toolbar icon and choose Move tab to profile. Add the rule +> example.com for the other profile, then open https://example.com in a new tab: +> it opens there. A tab reopened with Cmd+Shift+T stays put. In Chrome 155+, a +> split view moved from the tab strip arrives split. ## Assets diff --git a/extension/manifest.json b/extension/manifest.json index 7310bc0..6ee8c27 100644 --- a/extension/manifest.json +++ b/extension/manifest.json @@ -1,7 +1,7 @@ { "manifest_version": 3, "name": "ProfileBar for Chrome", - "version": "1.1.0", + "version": "1.2.0", "description": "Move tabs and groups to another Chrome profile, and open links in the right profile automatically. Requires ProfileBar for Mac.", "minimum_chrome_version": "116", "icons": {