1# 2# This file describes all Blink IDL extended attributes and allowed values. 3# If any IDL file uses an extended attribute or values not listed below, the 4# build will fail. 5# If you would like to add a new extended attribute or value, please: 6# (1) add the extended attribute or value to this file 7# (2) add an explanation to the Blink IDL extended attributes document: 8# http://www.chromium.org/blink/webidl/blink-idl-extended-attributes 9# (3) add appropriate test cases to run-bindings-tests 10# 11# The syntax of this file is as follows: 12# - One extended attribute per one line: Name and (optionally) Values. 13# - "Attr" means that the Attr does not take a value, i.e. [Attr]. 14# - "Attr=X" means that Attr takes a required value, which must be X; 15# i.e. [Attr=X]. 16# - "Attr=X|Y|Z" means that Attr takes a required value, and the valid 17# values are X, Y, and Z, and combinations thereof; 18# e.g. [Attr=X], [Attr=Y], [Attr=X|Z]. 19# The separator must be | or &, so [Attr=X&Z] is also valid; the 20# separator makes a difference for Conditional, but otherwise is simply 21# a style convention. 22# - "Attr=|X|Y|Z" means that Attr takes an optional value, whose valid 23# values (if present) are X, Y, and Z, and combinations thereof; e.g. 24# [Attr], [Attr=X], [Attr=Y], [Attr=X|Z], [Attr=X|Y|Z], [Attr=X&Z]. 25# Note that including an empty value in the list, as in [Attr=X||Y], 26# is NOT valid: the value is optional, but empty values are not allowed. 27# - "Attr=*" means that Attr takes a required value, which can be 28# arbitrary, and combinations thereof, e.g. [Attr=IndexedDB], 29# [Attr=DeleteFunction], [Attr=X|Y]. 30# - "Attr=|*" means that Attr takes an optional value, which can be 31# arbitrary, e.g. [Attr], [Attr=X]. 32# - "Attr=X|*" means that Attr takes an required value, which can be 33# arbitrary, but that "X" is standard, e.g. [Attr=X], [Attr=Foo]. 34# 35 36ActiveDOMObject 37CachedAttribute=* 38CallWith=ExecutionContext|ScriptState|ScriptArguments|ActiveWindow|FirstWindow|ThisValue 39CheckSecurity=Frame|Node|Window 40Clamp 41Conditional=* 42Constructor 43# FIXME: remove [ConstructorCallWith=Document], as can instead use 44# [ConstructorCallWith=ExecutionContext] + toDocument(executionContext) 45ConstructorCallWith=ExecutionContext|Document 46Custom=|Getter|Setter|LegacyCallAsFunction|ToV8|VisitDOMWrapper|Wrap|PropertyGetter|PropertyEnumerator|PropertyQuery 47CustomConstructor 48CustomElementCallbacks 49Default=Undefined 50DependentLifetime 51DeprecateAs=* 52DoNotCheckConstants 53DoNotCheckSecurity=|Setter 54DoNotCheckSignature 55EnforceRange 56EventConstructor 57ExposeJSAccessors 58Exposed=* 59GarbageCollected 60Global=|* 61Immutable 62ImplementedAs=* 63ImplementedInPrivateScript 64InitializedByEventConstructor 65Iterable 66LegacyTreatAsPartialInterface 67LogActivity=|GetterOnly|SetterOnly 68LogAllWorlds 69MeasureAs=* 70NamedConstructor=* 71NoImplHeader 72NoInterfaceObject 73NotEnumerable 74NotScriptWrappable 75OnlyExposedToPrivateScript 76OverrideBuiltins 77PartialInterfaceImplementedAs=* 78# Valid values for [PerContextEnabled] are Context Features, in 79# ContextFeatures::FeatureType in Source/core/dom/ContextFeatures.h 80PerContextEnabled=* 81PerWorldBindings 82PrimaryGlobal=|* 83PutForwards=* 84RaisesException=|Getter|Setter|Constructor 85Reflect=|* 86ReflectEmpty=* 87ReflectInvalid=* 88ReflectMissing=* 89ReflectOnly=* 90Replaceable 91# Valid values for [RuntimeEnabled] are the Runtime Enabled Features, listed in 92# Source/core/page/RuntimeEnabledFeatures.in 93RuntimeEnabled=* 94SetWrapperReferenceFrom=* 95SetWrapperReferenceTo=* 96SetterCallWith=ExecutionContext|ScriptArguments|ActiveWindow|FirstWindow 97SpecialWrapFor=* 98TreatNullAs=NullString|EmptyString 99TreatReturnedNullStringAs=Null|Undefined 100TreatUndefinedAs=NullString 101TypeChecking=Interface|Unrestricted 102URL 103Unforgeable 104WillBeGarbageCollected 105