Changes between Version 33 and Version 34 of WebKitIDL


Ignore:
Timestamp:
Feb 16, 2012 12:27:22 AM (12 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