- Removed unused variables in capture.js (clonedDoc, styles array) - Added explicit return values for message handlers in content.js - Added detailed comment explaining 500ms render delay before PDF conversion - Updated PERMISSIONS.md with comprehensive explanation of host_permissions requirement - Updated test.html with web clipping test scenarios - Improved code consistency and documentation Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
6.9 KiB
Browser Extension Permissions
This document explains the permissions requested by the DocuElevate browser extension.
Requested Permissions
The extension requests the following permissions in manifest.json:
activeTab
- Purpose: Get the URL and content of the currently active tab
- Usage: When you click the extension icon, it reads the current tab's URL and content for clipping
- Privacy: Only accesses the active tab when you explicitly use the extension
- Alternative: Without this, the extension couldn't show you which file you're sending or clip pages
storage
- Purpose: Save your configuration (server URL and session cookie)
- Usage: Stores your DocuElevate server URL and optional session cookie locally
- Privacy: All data stays on your device; nothing is sent to third parties
- Alternative: Without this, you'd need to reconfigure the extension every time
contextMenus
- Purpose: Add context menu options for sending URLs and clipping pages
- Usage: Creates context menu items for quick access (Send URL, Clip Full Page, Clip Selection)
- Privacy: No data access; only adds menu items
- Alternative: Without this, you'd only have the toolbar icon
notifications
- Purpose: Show success/error notifications
- Usage: Displays browser notifications when files are sent or clipped successfully, or when errors occur
- Privacy: Only shows notifications based on your actions
- Alternative: Without this, you wouldn't get feedback from context menu actions
scripting (New in v1.1.0)
- Purpose: Inject content capture code into web pages for clipping
- Usage: When you click "Clip Page" or "Clip Selection", this permission allows the extension to execute code that captures page HTML
- Privacy: Code only executes when you explicitly clip a page; no tracking or monitoring
- Scope: Only runs in the active tab, only when you trigger clipping
- Alternative: Without this, web page clipping wouldn't be possible
Host Permissions (v1.1.0)
<all_urls> - Required for Web Clipping
Why Required: The <all_urls> host permission is necessary for the web clipping feature to work on any website you visit.
Specific Use Cases:
- Page Content Capture: To clip a web page, the extension must access the page's HTML and CSS
- PDF Conversion: The browser's printToPDF API requires host permissions to convert page content
- Dynamic Content: Ensures clipped pages include all styles and content, regardless of the website
Security Safeguards:
- User-Initiated Only: Content access only happens when you explicitly click "Clip Page" or "Clip Selection"
- No Automatic Access: The extension doesn't monitor or track your browsing
- Local Processing: Page content is captured and converted to PDF locally in your browser
- No Third-Party Transmission: Content goes only to your configured DocuElevate server
- Temporary Access: Content is processed immediately and not stored by the extension
Alternative Options:
- activeTab Only: If you only want URL sending (not web clipping), the extension could work with just
activeTabpermission - Manual Permission: You could be prompted per-site, but this would be cumbersome for frequent use
Privacy Guarantee: Even with <all_urls>, the extension:
- Does NOT monitor your browsing
- Does NOT collect page content automatically
- Does NOT track which sites you visit
- Only accesses content when you explicitly clip a page
Permission Justification
| Permission | Required? | Justification |
|---|---|---|
| activeTab | ✅ Yes | Must read current tab URL and content |
| storage | ✅ Yes | Must save configuration to function |
| contextMenus | ⚠️ Optional | Nice to have for quick access |
| notifications | ⚠️ Optional | Nice to have for feedback |
| scripting | ✅ Yes (for clipping) | Required to capture page content for web clipping |
| host_permissions: <all_urls> | ✅ Yes (for clipping) | Required for web clipping to work on any website |
Security Benefits
- User-Initiated Access: Extension only accesses page content when you explicitly click "Clip"
- Local Processing: Pages converted to PDF in your browser, not on a server
- User-Controlled Server: Extension only talks to your configured DocuElevate server
- No Automatic Tracking: Extension doesn't monitor your browsing or collect data in the background
- Transparent Code: All code is visible in the extension folder for audit
How Web Clipping Works Securely
- You Trigger: You click "Clip Page" or "Clip Selection"
- Content Capture: Extension captures page HTML (only when you click)
- Local Conversion: Your browser converts HTML to PDF using built-in API
- Direct Upload: PDF is sent only to your configured DocuElevate server
- Temporary Tab: A hidden tab is created temporarily for PDF conversion, then immediately closed
No data leaves your machine except to your own DocuElevate server.
How to Verify Permissions
Chrome/Edge
- Go to
chrome://extensions/oredge://extensions/ - Find "DocuElevate - Send to Document Processor"
- Click "Details"
- Review "Permissions" section
Firefox
- Go to
about:addons - Find "DocuElevate - Send to Document Processor"
- Click on the extension name
- View "Permissions" tab
Reducing Permissions Further
If you want fewer permissions or don't need web clipping:
-
Disable Web Clipping: Use v1.0.0 instead of v1.1.0
- No scripting permission
- No host_permissions (<all_urls>)
- Trade-off: Can only send URLs, not clip pages
-
Remove contextMenus: Delete the
contextMenuspermission frommanifest.json- Trade-off: Lose right-click menu options
- You'd only have the toolbar icon
-
Remove notifications: Delete the
notificationspermission- Trade-off: No success/error notifications
- You'd only see status in the popup
Privacy Statement
The DocuElevate browser extension (v1.1.0):
- ✅ Does NOT collect any personal data
- ✅ Does NOT track your browsing history
- ✅ Does NOT monitor web pages you visit
- ✅ Does NOT send data to third parties
- ✅ Does NOT modify web page content (except when you explicitly clip)
- ✅ Does NOT inject ads or tracking scripts
- ✅ Only accesses page content when you explicitly click "Clip"
- ✅ Only communicates with YOUR configured DocuElevate server
- ✅ Stores configuration locally on your device only
- ✅ Converts pages to PDF locally in your browser
Questions?
If you have concerns about permissions or privacy, please:
- Review the source code in the
browser-extensionfolder - Open an issue on GitHub
- Check the Browser Extension Guide
- Use v1.0.0 if you don't need web clipping features
Last updated: 2024 (v1.1.0)