Changes between Version 67 and Version 68 of WebKitIDL


Ignore:
Timestamp:
Mar 27, 2012 4:07:42 PM (12 years ago)
Author:
abarth@webkit.org
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • WebKitIDL

    v67 v68  
    4545 - [#CustomEnumerateProperty CustomEnumerateProperty(i), CustomDeleteProperty(i)][[br]]
    4646 - [#IsWorkerContext IsWorkerContext(i)][[br]]
     47 - [#TransferList TransferList(p)][[br]]
    4748 - [#CustomCall CustomCall(i)][[br]]
    4849 - [#JSCustomToNativeObject JSCustomToNativeObject(i), JSCustomFinalize(i), JSCustomIsReachable(i), JSCustomMarkFunction(i), JSCustomNamedGetterOnPrototype(i), JSCustomPushEventHandlerScope(i), JSCustomDefineOwnProperty(i), JSCustomDefineOwnPropertyOnPrototype(i), JSCustomGetOwnPropertySlotAndDescriptor(i)][[br]]
     
    14261427}}}
    14271428
     1429== [TransferList](p) == #TransferList
     1430
     1431Summary: [TransferList] allows a SerializedScriptValue parameter used
     1432with the structured clone algorithm to specify another parameter used
     1433to pass the transfer list.
     1434
     1435Usage: The possible usage is [TransferList=XXX] where XXX is another
     1436parameter in the same method signature as the SerializedScriptValue
     1437parameter on which the modifier is placed. The referenced parameter
     1438should be of type "Array" to be compatible with the Web Messaging
     1439standard.
     1440
     1441When this modifier is used, the code generation automatically creates
     1442a MessagePortArray and completes the structured clone algorithm using
     1443the input data from the JavaScript caller. The resulting
     1444MessagePortArray is then passed to the implementation's method
     1445signature in place of the Array parameter referenced.
     1446
     1447Example:
     1448{{{
     1449    interface Worker {
     1450        void postMessage(in [TransferList=transfer] SerializedScriptValue data, in [Optional=DefaultIsUndefined] Array transfer);
     1451    }
     1452}}}
     1453And in the implementation:
     1454{{{
     1455    class Worker {
     1456        virtual void postMessage(PassRefPtr<SerializedScriptValue> data, const MessagePortArray& ports);
     1457    }
     1458}}}
     1459
    14281460== [CustomCall](i) == #CustomCall
    14291461