diff options
Diffstat (limited to 'dom/webidl/ChromeUtils.webidl')
-rw-r--r-- | dom/webidl/ChromeUtils.webidl | 92 |
1 files changed, 92 insertions, 0 deletions
diff --git a/dom/webidl/ChromeUtils.webidl b/dom/webidl/ChromeUtils.webidl new file mode 100644 index 000000000..a66590e84 --- /dev/null +++ b/dom/webidl/ChromeUtils.webidl @@ -0,0 +1,92 @@ +/* -*- Mode: IDL; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/* 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/. + */ + +/** + * A collection of static utility methods that are only exposed to Chrome. This + * interface is not exposed in workers, while ThreadSafeChromeUtils is. + */ +[ChromeOnly, Exposed=(Window,System)] +interface ChromeUtils : ThreadSafeChromeUtils { + /** + * A helper that converts OriginAttributesDictionary to a opaque suffix string. + * + * @param originAttrs The originAttributes from the caller. + */ + static ByteString + originAttributesToSuffix(optional OriginAttributesDictionary originAttrs); + + /** + * Returns true if the members of |originAttrs| match the provided members + * of |pattern|. + * + * @param originAttrs The originAttributes under consideration. + * @param pattern The pattern to use for matching. + */ + static boolean + originAttributesMatchPattern(optional OriginAttributesDictionary originAttrs, + optional OriginAttributesPatternDictionary pattern); + + /** + * Returns an OriginAttributesDictionary with values from the |origin| suffix + * and unspecified attributes added and assigned default values. + * + * @param origin The origin URI to create from. + * @returns An OriginAttributesDictionary with values from + * the origin suffix and unspecified attributes + * added and assigned default values. + */ + [Throws] + static OriginAttributesDictionary + createOriginAttributesFromOrigin(DOMString origin); + + /** + * Returns an OriginAttributesDictionary that is a copy of |originAttrs| with + * unspecified attributes added and assigned default values. + * + * @param originAttrs The origin attributes to copy. + * @returns An OriginAttributesDictionary copy of |originAttrs| + * with unspecified attributes added and assigned + * default values. + */ + static OriginAttributesDictionary + fillNonDefaultOriginAttributes(optional OriginAttributesDictionary originAttrs); + + /** + * Returns true if the 2 OriginAttributes are equal. + */ + static boolean + isOriginAttributesEqual(optional OriginAttributesDictionary aA, + optional OriginAttributesDictionary aB); +}; + +/** + * Used by principals and the script security manager to represent origin + * attributes. The first dictionary is designed to contain the full set of + * OriginAttributes, the second is used for pattern-matching (i.e. does this + * OriginAttributesDictionary match the non-empty attributes in this pattern). + * + * IMPORTANT: If you add any members here, you need to do the following: + * (1) Add them to both dictionaries. + * (2) Update the methods on mozilla::OriginAttributes, including equality, + * serialization, deserialization, and inheritance. + * (3) Update the methods on mozilla::OriginAttributesPattern, including matching. + */ +dictionary OriginAttributesDictionary { + unsigned long appId = 0; + unsigned long userContextId = 0; + boolean inIsolatedMozBrowser = false; + DOMString addonId = ""; + unsigned long privateBrowsingId = 0; + DOMString firstPartyDomain = ""; +}; +dictionary OriginAttributesPatternDictionary { + unsigned long appId; + unsigned long userContextId; + boolean inIsolatedMozBrowser; + DOMString addonId; + unsigned long privateBrowsingId; + DOMString firstPartyDomain; +}; |