-
Notifications
You must be signed in to change notification settings - Fork 75
Proposal: Add tabGroups.tabGroup.shared #761
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
dpenning
wants to merge
7
commits into
w3c:main
Choose a base branch
from
dpenning:main
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Changes from 2 commits
Commits
Show all changes
7 commits
Select commit
Hold shift + click to select a range
298e26a
Create tab_group_shared_state.md
dpenning 314de7e
Merge pull request #1 from dpenning/shared_proposal
dpenning 82890d8
Update proposals/tab_group_shared_state.md
dpenning e160f49
Update proposals/tab_group_shared_state.md
dpenning 8f181a8
Update tab_group_shared_state.md
dpenning 4367f01
Update tab_group_shared_state.md
dpenning 0f9ff2b
Apply suggestions from code review
oliverdunk File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change | ||||
|---|---|---|---|---|---|---|
| @@ -0,0 +1,41 @@ | ||||||
| # Proposal: Add tabGroups.tabGroup.shared | ||||||
| **Summary** | ||||||
| Chromium is adding the concept of a shared group. Shared groups allow users of the browser to share a collection of tabs in their tabstrip with other users. | ||||||
| On Chrome this feature will update tabs in realtime across multiple logged in users and across all clients for these users. | ||||||
| In its current state we only plan for extensions to access information about whether the group is shared or not. | ||||||
| **Document Metadata** | ||||||
| **Author:** dpenning@google.com | ||||||
| **Sponsoring Browser:** Chrome | ||||||
| **Contributors:** dljames@google.com | ||||||
| **Created:** 2025-01-15 | ||||||
| **Related Issues:** | ||||||
| ## Motivation | ||||||
| ### Objective | ||||||
| Some browsers may want to restrict access to certain parts of the api as a result of the tabs affiliation with a shared group. Without the extensions knowledge of this shared state, the extension developer will not have an understanding of why querys or commands failed. | ||||||
| #### Use Cases | ||||||
| Extensions that provide heavy interaction/mutation on tab groups may want to exclude access to shared groups through their extensions. | ||||||
| ## Specification | ||||||
| ### Schema | ||||||
| [chrome.tabGroups.tabGroup](https://developer.chrome.com/docs/extensions/reference/api/tabGroups#type-TabGroup)`.shared` | ||||||
oliverdunk marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||||||
| a boolean field which will denote whether the group is in a shared state or not. | ||||||
| [chrome.tabGroups.query](https://developer.chrome.com/docs/extensions/reference/api/tabGroups#method-query) | ||||||
oliverdunk marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||||||
| the `queryInfo` parameter will accept a new field`shared bool optional` | ||||||
oliverdunk marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||||||
| When provided the tab groups query will filter based on the shared states of the group. | ||||||
| [chrome.tabGroups.onUpdated](https://developer.chrome.com/docs/extensions/reference/api/tabGroups#event-onUpdated) | ||||||
oliverdunk marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||||||
| a method that is currently fired when a group is udated, will also fire when the group's shared state changes. | ||||||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
|
||||||
| ### Behavior | ||||||
| New restrictions may be placed on shared groups for security and privacy purposes. This is not limited to the tabGroups API and could extend to chrome.tabs and other related API surfaces. The restriction would result in an error that "the action can not be performed due to the object being in a shared state." or a similar error message. | ||||||
dpenning marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||||||
| ### New Permissions | ||||||
| no new permissions | ||||||
dpenning marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||||||
| ### Manifest File Changes | ||||||
| no new manifest fields | ||||||
| ## Security and Privacy | ||||||
| ### Exposed Sensitive Data, Abuse Mitigations, and Additional Security Considerations | ||||||
| This proposal only exposes existing state for a given group. All exposing of sensitive data, abuse mitigations and additional security considerations should be applied to the "shared" feature itself, and this is something likely to be different per browser vendor. | ||||||
| ## Alternatives | ||||||
| ### Existing Workarounds | ||||||
| Extensions developers currently need to rely on error handling in order to handle issues that arise from restrictions on "saved and synced" groups. These will also apply, and more restrictions may be put in place for "shared" groups | ||||||
| ### Open Web API | ||||||
| the tabGroups functionality is purely a browser feature, which is why we only expose this information through the extensions API | ||||||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
|
||||||
| ## Implementation Notes | ||||||
| Other browser vendors have similar implementations of groups, however im not currently aware of any implementation of this shared state exposure for extensions. | ||||||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
|
||||||
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.