mozilla

Compare Revisions

WebIDL bindings

Change Revisions

Revision 346203:

Revision 346203 by Bzbarsky on

Revision 346989:

Revision 346989 by Bzbarsky on

Title:
WebIDL bindings
WebIDL bindings
Slug:
Mozilla/WebIDL_bindings
Mozilla/WebIDL_bindings
Tags:
"WebIDL"
"WebIDL"
Content:

Revision 346203
Revision 346989
t384      WebIDL interfaces are represented in C++ as C++ classes.&nbt384      WebIDL interfaces are represented in C++ as C++ classes.&nb
>sp; For non-worker bindings the class involved must inherit from >sp; For non-worker bindings the class involved must either inheri
><code>nsISupports</code>.&nbsp; Furthermore, the canonical <code>>t from <code>nsISupports</code>, in which case the canonical <cod
>nsISupports</code> must be on the primary inheritance chain of th>e>nsISupports</code> must be on the primary inheritance chain of 
>e object.&nbsp; If the interface has a parent interface, the C++ >the object, or must be explicitly annotated in <code>Bindings.con
>class corresponding to the parent must also be on the primary inh>f</code> as being non-nsISupports refcounted or directly by the J
>eritance chain of the object.&nbsp; This guarantees that a <code>>S object.&nbsp; If the interface has a parent interface, the C++ 
>void*</code> corresponding to the canonical <code>nsISupports</co>class corresponding to the parent must be on the primary inherita
>de> can be <code>reinterpret_cast</code> to any of the classes th>nce chain of the object.&nbsp; This guarantees that a <code>void*
>at correspond to interfaces the object implements.&nbsp; The C++ ></code> can be stored in the JSObject which can then be <code>rei
>type to be used should be the <code>nativeType</code> listed for >nterpret_cast</code> to any of the classes that correspond to int
>the interface in the <a href="#Bindings.conf" title="#Bindings.co>erfaces the object implements.&nbsp; The C++ type to be used shou
>nf"><code>Bindings.conf</code></a> file.&nbsp; The exact represen>ld be the <code>nativeType</code> listed for the interface in the
>tation depends on how the type is being used.> <a href="#Bindings.conf" title="#Bindings.conf"><code>Bindings.c
 >onf</code></a> file, or <code>mozilla::dom::InterfaceName</code> 
 >if none is listed (<code>mozilla::dom::workers::InterfaecName</co
 >de> for worker bindings).&nbsp; The exact representation depends 
 >on how the type is being used.

Back to History