readingList

The readingList permission allows an extension to read and modify items in Chrome's "Reading list" feature.

What it does

  • Read: Query for all entries in the user's reading list.
  • Add: Add new pages to the reading list, including a URL and title.
  • Update: Change the status of an entry (e.g., mark it as read).
  • Remove: Delete entries from the reading list.

When to use it

This is for extensions that want to integrate with or provide an alternative interface for the native Reading List.

Examples:

  • An extension that syncs Chrome's Reading List with a third-party "read it later" service (like Pocket or Instapaper).
  • A custom New Tab Page that displays items from the reading list.
  • An extension that automatically adds links from a specific site to the reading list.

Manifest Declaration

This permission may trigger a warning on installation.

{
  "name": "My Reading List Helper",
  "version": "1.0",
  "manifest_version": 3,
  "permissions": [
    "readingList"
  ],
  "action": {}
}

Security & Privacy

Why is it risky?

The articles and pages you save to your reading list can reveal your personal interests, work projects, and hobbies. This permission gives an extension full access to read, add, and delete items from your list.

A malicious extension could spy on your saved articles to build a profile about you for advertising or other purposes. It could also add spammy links to your list, or replace your list with links to malicious sites. While not as dangerous as accessing your history or passwords, you should still be mindful about which extensions you allow to manage your reading list.

API Usage Example

This example adds the current tab to the reading list when the user clicks the extension's icon.

// background.js

// Add the current tab to the reading list when the action icon is clicked
chrome.action.onClicked.addListener(async (tab) => {
  if (tab.url && tab.title) {
    try {
      await chrome.readingList.addEntry({
        url: tab.url,
        title: tab.title,
        hasBeenRead: false
      });
      console.log(`Added "${tab.title}" to the reading list.`);
      // Optional: Show a visual confirmation to the user
      chrome.action.setBadgeText({ text: 'Added', tabId: tab.id });
      setTimeout(() => chrome.action.setBadgeText({ text: '', tabId: tab.id }), 2000);

    } catch (error) {
      console.error('Failed to add to reading list:', error);
    }
  }
});

// Example function to log all unread items from the reading list
async function logUnreadItems() {
  try {
    const entries = await chrome.readingList.query({ hasBeenRead: false });
    console.log('Unread Reading List Entries:', entries);
  } catch (error) {
    console.error('Failed to query reading list:', error);
  }
}

// You could call this from a popup or another event.
logUnreadItems();

Extensions with the readingList permission

Here are some popular browser extensions that use the "readingList" permission. To explore more, try our Advanced search.

Edge Edge add-ons with "readingList" permission

References


Related Permissions

Permission Metrics

Popularity

Security Risk


Usage by Platform