Skip to content

Manifest & Permissions

Toxc edited this page May 10, 2026 · 1 revision

Manifest & Permissions

ReelScroller uses Manifest Version 2 and requests only the permissions it strictly needs.


Key manifest fields

{
  "manifest_version": 2,
  "name": "Reel Scroller (Instagram Auto-Scroll)",
  "version": "0.2.1",
  "description": "Automatically scroll Instagram Reels, skip sponsored Reels, and toggle globally from the toolbar.",

  "permissions": [
    "storage",
    "tabs",
    "activeTab",
    "*://instagram.com/*",
    "*://*.instagram.com/*"
  ],

  "background": {
    "scripts": ["background.js"],
    "persistent": false
  },

  "browser_action": {
    "default_title": "Reel Scroller",
    "default_icon": { "48": "icon-48.png" }
  },

  "content_scripts": [
    {
      "matches": ["*://instagram.com/*", "*://*.instagram.com/*"],
      "js": ["content_script_clean.js"],
      "run_at": "document_idle"
    }
  ],

  "browser_specific_settings": {
    "gecko": {
      "id": "reelscroller@example.com",
      "strict_min_version": "140.0",
      "data_collection_permissions": {
        "required": ["none"]
      }
    },
    "gecko_android": {
      "strict_min_version": "142.0"
    }
  }
}

Permission rationale

Permission Why it's needed
storage Saves the single on/off preference (reelScrollerEnabled) locally in Firefox extension storage. Nothing is synced or sent remotely.
tabs Lets the background script enumerate open Instagram tabs and send ENABLE/DISABLE messages when the toolbar button is clicked.
activeTab Allows interaction with the currently focused tab when the toolbar button is pressed.
*://instagram.com/* *://*.instagram.com/* Scopes content script injection to Instagram URLs only. No other domains are ever accessed.

Notable manifest settings

  • "persistent": false — The background script is non-persistent. Firefox can unload it when idle, reducing memory usage.
  • "run_at": "document_idle" — The content script is injected after the page has finished loading, so the DOM is ready.
  • "data_collection_permissions": { "required": ["none"] } — Explicitly declares that the extension collects no data, as required by Firefox's manifest policy for extensions that collect no user data.
  • "strict_min_version": "140.0" — Minimum supported Firefox desktop version. Android requires 142.0.

Clone this wiki locally