Changes between Version 33 and Version 34 of WebKitIDL


Ignore:
Timestamp:
02/16/12 00:27:22 (3 years ago)
Author:
haraken@chromium.org
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • WebKitIDL

    v33 v34  
    283283Summary: It checks if a given Node access is allowed in terms of security. 
    284284 
    285 Usage: It can be specified on methods and attributes: 
     285Usage: [CheckAccessToNode] can be specified on methods and attributes: 
    286286{{{ 
    287287    attribute [CheckAccessToNode] Node contentDocument; 
     
    308308Summary: It controls whether WebCore can return a cached wrapper object or not. 
    309309 
    310 Usage: It can be specified on methods or attributes: 
     310Usage: [ReturnNewObject] can be specified on methods or attributes: 
    311311{{{ 
    312312    attribute [ReturnNewObject] Node node; 
     
    333333Summary: It specifies a method name in WebCore implementation, if the IDL method name and the WebCore method name are different. 
    334334 
    335 Usage: The possible usage is [ImplementedAs=XXX], where XXX is a method name of the WebCore implementation. It can be specified on methods: 
     335Usage: The possible usage is [ImplementedAs=XXX], where XXX is a method name of the WebCore implementation. [ImplementedAs] can be specified on methods: 
    336336{{{ 
    337337    [ImplementedAs=deleteFunction] void delete(); 
     
    360360Summary: It controls if a given attribute is "replaceable" or not. 
    361361 
    362 Usage: It can be specified on attributes: 
     362Usage: [Replaceable] can be specified on attributes: 
    363363{{{ 
    364364    interface DOMWindow { 
     
    412412Summary: For performance optimization, it indicates to cache a wrapped object in a DOM object. 
    413413 
    414 Usage: It can be specified on attributes: 
     414Usage: [CachedAttribute] can be specified on attributes: 
    415415{{{ 
    416416    interface HTMLFoo { 
     
    487487Summary: It indicates that a given DOMString is a URL. 
    488488 
    489 Usage: It can be specified on DOMString attributes: 
     489Usage: [URL] can be specified on DOMString attributes: 
    490490{{{ 
    491491    attribute [Reflect, V8URL] DOMString url; 
     
    749749Summary: It inserts "#if ENABLE(SOME_FLAG) ... #endif" into the generated code. 
    750750 
    751 Usage: It can be specified on interfaces, methods and attributes: 
     751Usage: [Conditional] can be specified on interfaces, methods and attributes: 
    752752{{{ 
    753753    interface [ 
     
    775775Usage: The possible usage is [V8EnabledAtRuntime] or [V8EnabledAtRuntime=X], 
    776776where X is an arbitrary string which you want to use for identifying the flag getter. 
    777 It can be specified on interfaces, methods and attributes: 
     777[V8EnabledAtRuntime] can be specified on interfaces, methods and attributes: 
    778778{{{ 
    779779    interface [ 
     
    824824 
    825825By default, toJS() and toV8() are automatically generated in JSXXX.h and JSXXX.cpp or V8XXX.h and V8XXX.cpp. 
    826 With [CustomToJSObject]/[JSCustomToJSObject]/[V8CustomToJSObject], 
    827 you can write custom toJS() or toV8() in WebCore/bindings/js/JSXXXCustom.cpp or WebCore/bindings/v8/custom/V8XXXCustom.cpp. 
     826With [CustomToJSObject] or [JSCustomToJSObject], you can write custom toJS() WebCore/bindings/js/JSXXXCustom.cpp: 
     827{{{ 
     828    JSValue toJS(ExecState* exec, JSDOMGlobalObject* globalObject, XXX* impl) 
     829    { 
     830        ...; 
     831    } 
     832}}} 
     833With [CustomToJSObject] or [V8CustomToJSObject], you can write custom toV8() WebCore/bindings/v8/custom/V8XXXCustom.cpp: 
     834{{{ 
     835    v8::Handle<v8::Value> toV8(XXX* impl, bool forceNewObject) 
     836    { 
     837        ...; 
     838    } 
     839}}} 
    828840 
    829841=== * [CheckDomainSecurity](i), [DoNotCheckDomainSecurity](m,a), [DoNotCheckDomainSecurityOnGetter](a), [DoNotCheckDomainSecurityOnSetter](a) === 
     
    845857Summary: It indicates that the interface is a WorkerContext-related interface. 
    846858 
    847 Usage: It can be specified on WorkerContext-related interfaces: 
     859Usage: [IsWorkerContext] can be specified on WorkerContext-related interfaces: 
    848860{{{ 
    849861    interface [ 
     
    894906    } 
    895907}}} 
    896 * With [JSCustomIsReachable], you can write custom JSXXXOwner::isReachableFromOpaqueRoots(...): 
     908 * With [JSCustomIsReachable], you can write custom JSXXXOwner::isReachableFromOpaqueRoots(...): 
    897909{{{ 
    898910    bool JSXXXOwner::isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown> handle, void* context, SlotVisitor& visitor) 
     
    949961}}} 
    950962 
     963=== * [JSGenerateToJSObject](i), [JSGenerateIsReachable](i), [JSGenerateToNativeObject](i) === 
     964 
     965Summary: They force JavaScriptCore bindings to generate JavaScriptCore specific methods even if a given interface has a parent interface. 
     966 
     967Usage: They can be specified on interfaces which do not have a parent interface: 
     968{{{ 
     969    interface [ 
     970        JSGenerateToJSObject, 
     971        JSGenerateIsReachable, 
     972        JSGenerateToNativeObject 
     973    ] XXX { 
     974    } 
     975}}} 
     976 
     977toJS(...), isReachableFromOpaqueRoots(...) or toXXX() are not generated if the interface has a parent interface. 
     978If you want to generate it even if the interface does not have a parent interface, you can specify 
     979[JSGenerateToJSObject], [JSGenerateIsReachable] or [JSGenerateToNativeObject], respectively. 
     980 
    951981=== * [JSCustomHeader](i) === 
    952982 
    953 === * [JSGenerateToJSObject](i), [JSGenerateIsReachable](i), [JSGenerateToNativeObject](i) === 
     983Summary: It allows us to write a custom header for a given interface. 
     984 
     985Usage: [JSCustomHeader] can be specified on interfaces: 
     986{{{ 
     987    interface [ 
     988        JSCustomHeader 
     989    ] XXX { 
     990    } 
     991}}} 
     992 
     993By default, JSXXX.h and JSXXX.cpp are generated automatically, and if you need, 
     994you can write custom bindings in WebCore/bindings/js/JSXXXCustom.cpp. 
     995On the other hand, [JSCustomHeader] allows us to write WebCore/bindings/js/JSXXXCustom.h, which is included by JSXXX.h. 
     996 
    954997 
    955998=== * [JSLegacyParent](i) === 
    956999 
     1000Summary: It explicitly controls the parent interface of a given interface. 
     1001 
     1002Usage: [JSLegacyParent] can be specified on interfaces: 
     1003{{{ 
     1004    interface [ 
     1005        JSLegacyParent=JSDOMWindowBase 
     1006    ] DOMWindow { 
     1007    } 
     1008}}} 
     1009 
     1010Even if a given interface does not have a parent interface, you can specify a parent interface using [JSLegacyParent]. 
     1011 
    9571012=== * [JSInlineGetOwnPropertySlot](i) === 
    9581013 
     1014Summary: It makes getOwnPropertySlot(...) and getOwnPropertyDescriptor(...) an inline method for performance. 
     1015 
     1016Usage: [JSInlineGetOwnPropertySlot] can be specified on interfaces: 
     1017{{{ 
     1018    interface [ 
     1019        JSInlineGetOwnPropertySlot 
     1020    ] XXX { 
     1021    } 
     1022}}} 
     1023 
    9591024=== * [JSNoStaticTables](i) === 
    9601025 
     1026Summary: ADD SUMMARY 
     1027 
     1028Usage: [JSNoStaticTables] can be specified on interfaces. 
     1029{{{ 
     1030    interface [ 
     1031        JSNoStaticTables 
     1032    ] XXX { 
     1033    } 
     1034}}} 
     1035 
     1036ADD EXPLANATIONS 
     1037 
    9611038== IDL attributes used by ObjC, GObject and CPP bindings only == 
    9621039