forked from mirrors/gecko-dev
		
	Backed out changeset 9f46e7d52b9b (bug 1442931) Backed out changeset 608e21fcd167 (bug 1442931) --HG-- rename : dom/chrome-webidl/ChannelWrapper.webidl => dom/webidl/ChannelWrapper.webidl rename : dom/chrome-webidl/ChromeUtils.webidl => dom/webidl/ChromeUtils.webidl rename : dom/chrome-webidl/DominatorTree.webidl => dom/webidl/DominatorTree.webidl rename : dom/chrome-webidl/HeapSnapshot.webidl => dom/webidl/HeapSnapshot.webidl rename : dom/chrome-webidl/InspectorUtils.webidl => dom/webidl/InspectorUtils.webidl rename : dom/chrome-webidl/MatchGlob.webidl => dom/webidl/MatchGlob.webidl rename : dom/chrome-webidl/MatchPattern.webidl => dom/webidl/MatchPattern.webidl rename : dom/chrome-webidl/MozStorageAsyncStatementParams.webidl => dom/webidl/MozStorageAsyncStatementParams.webidl rename : dom/chrome-webidl/MozStorageStatementParams.webidl => dom/webidl/MozStorageStatementParams.webidl rename : dom/chrome-webidl/MozStorageStatementRow.webidl => dom/webidl/MozStorageStatementRow.webidl rename : dom/chrome-webidl/PrecompiledScript.webidl => dom/webidl/PrecompiledScript.webidl rename : dom/chrome-webidl/PromiseDebugging.webidl => dom/webidl/PromiseDebugging.webidl rename : dom/chrome-webidl/StructuredCloneHolder.webidl => dom/webidl/StructuredCloneHolder.webidl rename : dom/chrome-webidl/WebExtensionContentScript.webidl => dom/webidl/WebExtensionContentScript.webidl rename : dom/chrome-webidl/WebExtensionPolicy.webidl => dom/webidl/WebExtensionPolicy.webidl
		
			
				
	
	
		
			163 lines
		
	
	
	
		
			5 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			163 lines
		
	
	
	
		
			5 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
/* This Source Code Form is subject to the terms of the Mozilla Public
 | 
						|
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 | 
						|
 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 | 
						|
 | 
						|
interface LoadInfo;
 | 
						|
interface URI;
 | 
						|
interface WindowProxy;
 | 
						|
 | 
						|
/**
 | 
						|
 * Describes the earliest point in the load cycle at which a script should
 | 
						|
 * run.
 | 
						|
 */
 | 
						|
enum ContentScriptRunAt {
 | 
						|
  /**
 | 
						|
   * The point in the load cycle just after the document element has been
 | 
						|
   * inserted, before any page scripts have been allowed to run.
 | 
						|
   */
 | 
						|
  "document_start",
 | 
						|
  /**
 | 
						|
   * The point after which the page DOM has fully loaded, but before all page
 | 
						|
   * resources have necessarily been loaded. Corresponds approximately to the
 | 
						|
   * DOMContentLoaded event.
 | 
						|
   */
 | 
						|
  "document_end",
 | 
						|
  /**
 | 
						|
   * The first point after the page and all of its resources has fully loaded
 | 
						|
   * when the event loop is idle, and can run scripts without delaying a paint
 | 
						|
   * event.
 | 
						|
   */
 | 
						|
  "document_idle",
 | 
						|
};
 | 
						|
 | 
						|
[Constructor(WebExtensionPolicy extension, WebExtensionContentScriptInit options), ChromeOnly, Exposed=System]
 | 
						|
interface WebExtensionContentScript {
 | 
						|
  /**
 | 
						|
   * Returns true if the script's match and exclude patterns match the given
 | 
						|
   * URI, without reference to attributes such as `allFrames`.
 | 
						|
   */
 | 
						|
  boolean matchesURI(URI uri);
 | 
						|
 | 
						|
  /**
 | 
						|
   * Returns true if the script matches the given URI and LoadInfo objects.
 | 
						|
   * This should be used to determine whether to begin pre-loading a content
 | 
						|
   * script based on network events.
 | 
						|
   */
 | 
						|
  boolean matchesLoadInfo(URI uri, LoadInfo loadInfo);
 | 
						|
 | 
						|
  /**
 | 
						|
   * Returns true if the script matches the given window. This should be used
 | 
						|
   * to determine whether to run a script in a window at load time.
 | 
						|
   */
 | 
						|
  boolean matchesWindow(WindowProxy window);
 | 
						|
 | 
						|
  /**
 | 
						|
   * The policy object for the extension that this script belongs to.
 | 
						|
   */
 | 
						|
  [Constant]
 | 
						|
  readonly attribute WebExtensionPolicy extension;
 | 
						|
 | 
						|
  /**
 | 
						|
   * If true, this script runs in all frames. If false, it only runs in
 | 
						|
   * top-level frames.
 | 
						|
   */
 | 
						|
  [Constant]
 | 
						|
  readonly attribute boolean allFrames;
 | 
						|
 | 
						|
  /**
 | 
						|
   * If true, this (misleadingly-named, but inherited from Chrome) attribute
 | 
						|
   * causes the script to run in frames with URLs which inherit a principal
 | 
						|
   * that matches one of the match patterns, such as about:blank or
 | 
						|
   * about:srcdoc. If false, the script only runs in frames with an explicit
 | 
						|
   * matching URL.
 | 
						|
   */
 | 
						|
  [Constant]
 | 
						|
  readonly attribute boolean matchAboutBlank;
 | 
						|
 | 
						|
  /**
 | 
						|
   * The earliest point in the load cycle at which this script should run. For
 | 
						|
   * static content scripts, in extensions which were present at browser
 | 
						|
   * startup, the browser makes every effort to make sure that the script runs
 | 
						|
   * no later than this point in the load cycle. For dynamic content scripts,
 | 
						|
   * and scripts from extensions installed during this session, the scripts
 | 
						|
   * may run at a later point.
 | 
						|
   */
 | 
						|
  [Constant]
 | 
						|
  readonly attribute ContentScriptRunAt runAt;
 | 
						|
 | 
						|
  /**
 | 
						|
   * The outer window ID of the frame in which to run the script, or 0 if it
 | 
						|
   * should run in the top-level frame. Should only be used for
 | 
						|
   * dynamically-injected scripts.
 | 
						|
   */
 | 
						|
  [Constant]
 | 
						|
  readonly attribute unsigned long long? frameID;
 | 
						|
 | 
						|
  /**
 | 
						|
   * The set of match patterns for URIs of pages in which this script should
 | 
						|
   * run. This attribute is mandatory, and is a prerequisite for all other
 | 
						|
   * match patterns.
 | 
						|
   */
 | 
						|
  [Constant]
 | 
						|
  readonly attribute MatchPatternSet matches;
 | 
						|
 | 
						|
  /**
 | 
						|
   * A set of match patterns for URLs in which this script should not run,
 | 
						|
   * even if they match other include patterns or globs.
 | 
						|
   */
 | 
						|
  [Constant]
 | 
						|
  readonly attribute MatchPatternSet? excludeMatches;
 | 
						|
 | 
						|
  /**
 | 
						|
   * A set of glob matchers for URLs in which this script should run. If this
 | 
						|
   * list is present, the script will only run in URLs which match the
 | 
						|
   * `matches` pattern as well as one of these globs.
 | 
						|
   */
 | 
						|
  [Cached, Constant, Frozen]
 | 
						|
  readonly attribute sequence<MatchGlob>? includeGlobs;
 | 
						|
 | 
						|
  /**
 | 
						|
   * A set of glob matchers for URLs in which this script should not run, even
 | 
						|
   * if they match other include patterns or globs.
 | 
						|
   */
 | 
						|
  [Cached, Constant, Frozen]
 | 
						|
  readonly attribute sequence<MatchGlob>? excludeGlobs;
 | 
						|
 | 
						|
  /**
 | 
						|
   * A set of paths, relative to the extension root, of CSS sheets to inject
 | 
						|
   * into matching pages.
 | 
						|
   */
 | 
						|
  [Cached, Constant, Frozen]
 | 
						|
  readonly attribute sequence<DOMString> cssPaths;
 | 
						|
 | 
						|
  /**
 | 
						|
   * A set of paths, relative to the extension root, of JavaScript scripts to
 | 
						|
   * execute in matching pages.
 | 
						|
   */
 | 
						|
  [Cached, Constant, Frozen]
 | 
						|
  readonly attribute sequence<DOMString> jsPaths;
 | 
						|
};
 | 
						|
 | 
						|
dictionary WebExtensionContentScriptInit {
 | 
						|
  boolean allFrames = false;
 | 
						|
 | 
						|
  boolean matchAboutBlank = false;
 | 
						|
 | 
						|
  ContentScriptRunAt runAt = "document_idle";
 | 
						|
 | 
						|
  unsigned long long? frameID = null;
 | 
						|
 | 
						|
  boolean hasActiveTabPermission = false;
 | 
						|
 | 
						|
  required MatchPatternSet matches;
 | 
						|
 | 
						|
  MatchPatternSet? excludeMatches = null;
 | 
						|
 | 
						|
  sequence<MatchGlob>? includeGlobs = null;
 | 
						|
 | 
						|
  sequence<MatchGlob>? excludeGlobs = null;
 | 
						|
 | 
						|
  sequence<DOMString> cssPaths = [];
 | 
						|
 | 
						|
  sequence<DOMString> jsPaths = [];
 | 
						|
};
 |