Skip to content
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

Add an API proposal for browser.readingList() #420

Merged
merged 5 commits into from
Sep 25, 2023

Conversation

dlbjames
Copy link
Contributor

@dlbjames dlbjames commented Jul 11, 2023

Description

Adds an API proposal for the ReadingList feature in the Chromium browser. Covers the background of the problem, and the initial solution / schema for the API.

Note: The Chromium ReadingList uses the URL of the entries as the key, meaning no duplicate URLs are allowed. This may need to be addressed browser to browser depending on how the feature is implemented.

Links

Tracking Issue: 1421058
Feature Request: 1238372
Chromium API Proposal Doc

@dlbjames dlbjames closed this Jul 11, 2023
@dlbjames dlbjames reopened this Jul 11, 2023
@dotproto
Copy link
Member

dotproto commented Jul 12, 2023

@dlbjames For clarity, what is the status of this API in Chromium? Is Chromium open to discussion and/or iteration on this API design?

It looks like the relevant Chromium tracking issue is 1421058 and the relevant feature request is [1238372](https://crbug.com/1238372. This is the relevant Chromium API proposal doc.

@dlbjames
Copy link
Contributor Author

@dlbjames For clarity, what is the status of this API in Chromium? Is Chromium open to discussion and/or iteration on this API design?

We are very early in the implementation of this API. As such, we are open to some discussion / iteration on the design during implementation. However, after initial implementation, we will be more open to discussion of the design provided the Chromium reading list can support the changes / the discussions do not fundamentally change the feature.

I hope the initial version will suffice for the time being (after some comments / light modifications).

It looks like the relevant Chromium tracking issue is 1421058 and the relevant feature request is 1238372. This is the relevant Chromium API proposal doc.

Yes, this is all correct! I will add these to the initial comment.

Thank you!

@bershanskiy
Copy link
Member

  1. Are reading list entries keyed by the URL internally?
    What happens if extension actually wants to update the URL itself? For example, browser.bookmarks API provides a unique bookmark id for this exact purpose. Source
  2. Can permission readingList be optional?
    The Chromium API Proposal Doc page 5 mentions permission readingList but does not mention whether or not it can be an optional permission.
  3. Is there a way to restrict extension's access to only a subset of reading list (e.g., to have less elevated permissions and hence fewer permission warnings)?
    For example, is there a way to restrict extensions only to reading list entries which extension created? (E.g., "weekly tech news reading list" extension might not need access to all reading list entries if it only wants to add and delete its own entries and might achieve a greater install rate if it was deemed non-intrusive by the privacy-conscious "tech" crowd).

@dpenning
Copy link

dpenning commented Jul 12, 2023

Are reading list entries keyed by the URL internally?

Yes they are keyed by URL, and a unique URL can only be part of the reading list once, it can't be added multiple times.

Can permission readingList be optional?

Yes this permission will be optional.

Is there a way to restrict extension's access to only a subset of reading list (e.g., to have less elevated permissions and hence fewer permission warnings)?

There is currently no way for the reading list entries to be marked as added by a specific extension / action.

Updates the schema to reflect the current state of implementation on the readingList api
Updated description for url properties with a brief description with what urls are allowed in the reading list.

Changes OnEntryWillBeRemoved -> OnEntryRemoved
@yankovichv
Copy link

Hooray, we at Manganum have been waiting for this API for a long time and will implement it as soon as possible.

The document and the API itself looks simple and clear. We wait.

Copy link
Member

@dotproto dotproto left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good to merge

@oliverdunk oliverdunk merged commit 98991ac into w3c:main Sep 25, 2023
2 checks passed
github-actions bot added a commit that referenced this pull request Sep 25, 2023
SHA: 98991ac
Reason: push, by oliverdunk

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
@yankovichv
Copy link

Colleagues, is there any news about when this API may get into the beta and stable channels?

@dlbjames
Copy link
Contributor Author

Oops, apologies for the very delayed response, yankovichv!

Short answer: Included in beta some time next week!

Since we are targeting chrome version 120, beta promotion (the version that should have the reading list api implemented) will release November 1st. Stable will release on December 5th.

More information about the release schedules can be found here: https://chromiumdash.appspot.com/schedule

Additionally, in the future for shorter wait times between what we implement and when you can use it, the Canary and Dev versions of chrome receive these updates much faster (I believe Canary is updated 2x a day, and Dev is once a week).

👍

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

7 participants