Compatibility/System Addon/Initial Planning

From MozillaWiki
Jump to: navigation, search
ARCHIVED
This page has been archived and its contents may be out of date.

Prior Art

Current solutions to use cases

Pros: simple; out of band CDN updates

Cons: only on Fennec, applies to all requests for a given domain, i.e., no conditional spoofing. simple regex tweaks only.

Pros: works.

Cons: has to ride trains. might require a dot release depending on the site and severity.

Pros: Get’s the job done.

Cons: Has to ride trains; Might require a dot release depending on the site and severity.

Requirements

  • Ability for developers to see that a site patch is enabled, with short explanation and link to bug (likely via developer console).
  • Ability to temporarily disable site patch for developers to test fixes.
  • Ability to modify page CSS
  • Ability to mutate page DOM
  • Ability to modify script (inline, external) source before execution
  • Ability to hook into page load lifecycle events (script execution, CSS parsing, event handlers, etc). See http://www.opera.com/docs/userjs/specs/#evlistener
  • Ability for a site patch to target a specific URI rather than entire origin.
  • Ability to define setters and getters for page variables and methods (question for Hallvord: scope?)
  • Injected JS should not have chrome privileges
  • Injected JS should have full access to page
  • Site patches should not run if modified by user.
  • Possibly access/modify HTTP headers? (Unclear how useful this is, Karl is supposed to suggest a use case here.)