티스토리 수익 글 보기

티스토리 수익 글 보기

feat: Implement Web Extension Support in Electron with Secure Management UI · Issue #19 · p2plabsxyz/peersky-browser · GitHub
Skip to content

feat: Implement Web Extension Support in Electron with Secure Management UI #19

@akhileshthite

Description

@akhileshthite

Implement web extension support in Electron by leveraging its web extension node modules, pre-installing extensions, and providing a user interface for adding, updating, and securely managing them.

Tasks:

  • 📦 Loading Extensions via Electron Modules:
  • 🔒 Default Pre-installed Extensions:
  • 🧩 User-Installed Extensions UI:
    • Support installing extensions directly via Chrome Web Store URLs using chrome-extension-fetch:
    • Add an option for users to manually update all installed extensions.
      • If “Load from P2P” is off for extensions installed via the Chrome Web Store:
        • Use chrome-extension-fetch to fetch the .crx from the Web Store URL (stored in extension.jsonduring initial install) -> Convert the .crx to .zip and check the version in manifest.json -> Compare the new version with the installed version -> If newer, update the local extension and install it.
      • If “Load from P2P” is on for extensions installed from P2P:
        • Use chrome-extension-fetch to fetch the .crx from the Web Store URL (stored in index.jsonduring initial install) -> same as above

We can use the electron-chrome-web-store‘s updateExtensions()

  • 🧪 Validate and Sandbox Extensions:
    • Check the integrity and manifest structure of the uploaded extensions to ensure they meet Chrome Manifest V3 requirements.
    • Apply sandboxing techniques and enforce strict content security policies to mitigate potential risks.
  • 🧰 Extension Management UI:
    • Design a dedicated UI at the top right of the navigation bar to manage extensions, including stack order and pinning functionality for quick access and organization.

Sub-issues

Metadata

Metadata

Assignees

Labels

UI/UXRelated to designelectronRelated to electron.jsenhancementNew feature or requestpriority: highFor important issues that affect many users or major functionality of the project

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions