| # | 
 | # This file describes all Blink IDL extended attributes and allowed values. | 
 | # If any IDL file uses an extended attribute or values not listed below, the | 
 | # build will fail. | 
 | # If you would like to add a new extended attribute or value, please: | 
 | #     (1) add the extended attribute or value to this file | 
 | #     (2) add an explanation to the Blink IDL extended attributes document: | 
 | #         http://www.chromium.org/blink/webidl/blink-idl-extended-attributes | 
 | #     (3) add appropriate test cases to run-bindings-tests | 
 | # | 
 | # The syntax of this file is as follows: | 
 | #     - One extended attribute per one line: Name and (optionally) Values. | 
 | #     - "Attr" means that the Attr does not take a value, i.e. [Attr]. | 
 | #     - "Attr=X" means that Attr takes a required value, which must be X; | 
 | #       i.e. [Attr=X]. | 
 | #     - "Attr=X|Y|Z" means that Attr takes a required value, and the valid | 
 | #       values are X, Y, and Z, and combinations thereof; | 
 | #       e.g. [Attr=X], [Attr=Y], [Attr=X|Z]. | 
 | #       The separator must be | or &, so [Attr=X&Z] is also valid; the | 
 | #       separator makes a difference for Conditional, but otherwise is simply | 
 | #       a style convention. | 
 | #     - "Attr=|X|Y|Z" means that Attr takes an optional value, whose valid | 
 | #       values (if present) are X, Y, and Z, and combinations thereof; e.g. | 
 | #       [Attr], [Attr=X], [Attr=Y], [Attr=X|Z], [Attr=X|Y|Z], [Attr=X&Z]. | 
 | #       Note that including an empty value in the list, as in [Attr=X||Y], | 
 | #       is NOT valid: the value is optional, but empty values are not allowed. | 
 | #     - "Attr=*" means that Attr takes a required value, which can be | 
 | #       arbitrary, and combinations thereof, e.g. [Attr=IndexedDB], | 
 | #       [Attr=DeleteFunction], [Attr=X|Y]. | 
 | #     - "Attr=|*" means that Attr takes an optional value, which can be | 
 | #       arbitrary, e.g. [Attr], [Attr=X]. | 
 | #     - "Attr=X|*" means that Attr takes an required value, which can be | 
 | #       arbitrary, but that "X" is standard, e.g. [Attr=X], [Attr=Foo]. | 
 | # | 
 |  | 
 | ActiveDOMObject | 
 | CachedAttribute=* | 
 | CallWith=ExecutionContext|ScriptState|ScriptArguments|ActiveWindow|FirstWindow|ThisValue | 
 | CheckSecurity=Frame|Node|Window | 
 | Clamp | 
 | Conditional=* | 
 | Constructor | 
 | # FIXME: remove [ConstructorCallWith=Document], as can instead use | 
 | # [ConstructorCallWith=ExecutionContext] + toDocument(executionContext) | 
 | ConstructorCallWith=ExecutionContext|Document | 
 | Custom=|Getter|Setter|LegacyCallAsFunction|ToV8|VisitDOMWrapper|Wrap|PropertyGetter|PropertyEnumerator|PropertyQuery | 
 | CustomConstructor | 
 | CustomElementCallbacks | 
 | Default=Undefined | 
 | DependentLifetime | 
 | DeprecateAs=* | 
 | DoNotCheckConstants | 
 | DoNotCheckSecurity=|Setter | 
 | DoNotCheckSignature | 
 | EnforceRange | 
 | EventConstructor | 
 | ExposeJSAccessors | 
 | Exposed=* | 
 | GarbageCollected | 
 | Global=|* | 
 | Immutable | 
 | ImplementedAs=* | 
 | ImplementedInPrivateScript | 
 | InitializedByEventConstructor | 
 | Iterable | 
 | LegacyTreatAsPartialInterface | 
 | LogActivity=|GetterOnly|SetterOnly | 
 | LogAllWorlds | 
 | MeasureAs=* | 
 | NamedConstructor=* | 
 | NoImplHeader | 
 | NoInterfaceObject | 
 | NotEnumerable | 
 | NotScriptWrappable | 
 | OnlyExposedToPrivateScript | 
 | OverrideBuiltins | 
 | PartialInterfaceImplementedAs=* | 
 | # Valid values for [PerContextEnabled] are Context Features, in | 
 | # ContextFeatures::FeatureType in Source/core/dom/ContextFeatures.h | 
 | PerContextEnabled=* | 
 | PerWorldBindings | 
 | PrimaryGlobal=|* | 
 | PutForwards=* | 
 | RaisesException=|Getter|Setter|Constructor | 
 | Reflect=|* | 
 | ReflectEmpty=* | 
 | ReflectInvalid=* | 
 | ReflectMissing=* | 
 | ReflectOnly=* | 
 | Replaceable | 
 | # Valid values for [RuntimeEnabled] are the Runtime Enabled Features, listed in | 
 | # Source/core/page/RuntimeEnabledFeatures.in | 
 | RuntimeEnabled=* | 
 | SetWrapperReferenceFrom=* | 
 | SetWrapperReferenceTo=* | 
 | SetterCallWith=ExecutionContext|ScriptArguments|ActiveWindow|FirstWindow | 
 | TreatNullAs=NullString|EmptyString | 
 | TreatReturnedNullStringAs=Null|Undefined | 
 | TreatUndefinedAs=NullString | 
 | TypeChecking=Interface|Unrestricted | 
 | URL | 
 | Unforgeable | 
 | WillBeGarbageCollected |