Skip to content
GitLab
Projects Groups Topics Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Register
  • Sign in
  • Epiphany Epiphany
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributor statistics
    • Graph
    • Compare revisions
  • Issues 297
    • Issues 297
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 16
    • Merge requests 16
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Packages and registries
    • Packages and registries
    • Container Registry
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • GNOMEGNOME
  • EpiphanyEpiphany
  • Issues
  • #1448
Closed
Open
Issue created Feb 11, 2021 by Michael Catanzaro@mcatanzaroMaintainer

Consider splitting WebExtension implementation into a separate WebKitWebExtension

Currently we have one WebKitWebExtension (web process extensions) that implements (a) internal Epiphany features that existed prior to WebExtension support, and (b) WebExtensions. But this is confusing because WebExtensions probably should not have access to any of Epiphany's preexisting features, and pages running normal web content should probably not have access to any WebExtension features. I wonder if we can split these into two separate WebKitWebExtensions, so that we don't have two unrelated functionalities crammed into the same class.

There are two ways we could do this:

  • Two WebKitWebExtensions used by the same WebKitWebContext. Both shared objects would be installed in the same directory and so would get loaded into the same web processes.
  • Two WebKitWebExtensions used by two (or more) WebKitWebContexts. Both shared objects would need to be installed into separate directories. Only one would be loaded at a time, so normal web content would render in the EphyEmbedShell's WebKitWebContext using the original WebKitWebExtension, while WebExtensions would run in one or more new WebKitWebContexts using the new WebExtension WebKitWebExtension.

The second approach would probably be nicer, if possible.

Assignee
Assign to
Time tracking