Compare Revisions

WebIDL bindings

Revision 519999:

Revision 519999 by Bzbarsky on

Revision 520145:

Revision 520145 by Ehsan on

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

Revision 519999
Revision 520145
n795      If specified on an interface as a whole, this functions likn795      If specified on an interface as a whole, this functions lik
>e <a href="#PrefControlled" title="#PrefControlled"><code>[PrefCo>e <a href="#" title="#Func"><code>[Func]</code></a> except that t
>ntrolled]</code></a> except that the binding code will automatica>he binding code will automatically check whether the global objec
>lly check whether the global object (Window or worker global) inv>t (Window or worker global) involved is a chrome global instead o
>olved is a chrome global instead of calling into the C++ implemen>f calling into the C++ implementation to determine whether to exp
>tation to determine whether to expose the interface object on the>ose the interface object on the global.&nbsp;&nbsp; Accessing a&n
> global.&nbsp;&nbsp; Accessing a&nbsp; content global via Xrays w>bsp; content global via Xrays will show <code>[ChromeOnly]</code>
>ill show <code>[ChromeOnly]</code> interface objects on it.> interface objects on it.
796    </p>
797    <p>796    </p>
797    <p>
798      This extended attibute can be specified together with <code798      This extended attibute can be specified together with <code
>>[<a href="#AvailableIn">AvailableIn</a>]</code>, <code>[<a href=>>[<a href="#AvailableIn">AvailableIn</a>]</code>, <code>[<a href=
>"#Func">Func</a>]</code>,&nbsp; <code>[<a href="#Pref">Pref</a>]<>"#Func">Func</a>]</code>,&nbsp; and <code>[<a href="#Pref">Pref</
>/code>, and <code>[<a href="#PrefControlled">PrefControlled</a>]<>a>]</code>.&nbsp; If more than one of these is specified, all con
>/code>.&nbsp; If more than one of these is specified, all conditi>ditions will need to test true for the interface or interface mem
>ons will need to test true for the interface or interface member >ber to be exposed.
>to be exposed. 
n816      If specifed on an interface as a whole, this functions liken816      If specifed on an interface as a whole, this functions like
> <a href="#PrefControlled" title="#PrefControlled"><code>[PrefCon> <a href="#" title="#Func"><code>[Func]</code></a> except that th
>trolled]</code></a> except that the binding will check&nbsp;the v>e binding will check&nbsp;the value of the preference directly wi
>alue of the preference directly without calling into the C++ impl>thout calling into the C++ implementation of the interface at all
>ementation of the interface at all. This is useful when the enabl>. This is useful when the enable check is simple and it's desirab
>e check is simple and it's desirable to keep the prefname with th>le to keep the prefname with the WebIDL declaration. The implemen
>e WebIDL declaration. The implementation can call <code>MyInterfa>tation can call <code>MyInterfaceBinding::PrefEnabled()</code> to
>ceBinding::PrefEnabled()</code> to check whether it is enabled or> check whether it is enabled or not.&nbsp; An example of how this
> not.&nbsp; An example of how this can be used:> can be used:
n824      This extended attibute can be specified together with <coden824      This extended attibute can be specified together with <code
>>[<a href="#AvailableIn">AvailableIn</a>]</code>, <code>[<a href=>>[<a href="#AvailableIn">AvailableIn</a>]</code>, <code>[<a href=
>"#ChromeOnly">ChromeOnly</a>]</code>,&nbsp; <code>[<a href="#Func>"#ChromeOnly">ChromeOnly</a>]</code>, and<code>[<a href="#Func">F
>">Func</a>]</code>, and <code>[<a href="#PrefControlled">PrefCont>unc</a>]</code>.&nbsp; If more than one of these is specified, al
>rolled</a>]</code>.&nbsp; If more than one of these is specified,>l conditions will need to test true for the interface or interfac
> all conditions will need to test true for the interface or inter>e member to be exposed.
>face member to be exposed. 
n853      If specified on an interface as a whole, this functions likn853      If specified on an interface as a whole, this functions lik
>e <a href="#PrefControlled" title="#PrefControlled"><code>[PrefCo>e <a href="#" title="#Func"><code>[Func]</code></a> except it wil
>ntrolled]</code></a> except it will call the given function.&nbsp>l call the given function.&nbsp; An example of how it can be used
>; An example of how it can be used:>:
n869      This extended attibute can be specified together with <coden869      This extended attibute can be specified together with <code
>>[<a href="#AvailableIn">AvailableIn</a>]</code>, <code>[<a href=>>[<a href="#AvailableIn">AvailableIn</a>]</code>, <code>[<a href=
>"#ChromeOnly">ChromeOnly</a>]</code>,&nbsp; <code>[<a href="#Pref>"#ChromeOnly">ChromeOnly</a>]</code>, and <code>[<a href="#Pref">
>">Pref</a>]</code>, and <code>[<a href="#PrefControlled">PrefCont>Pref</a>]</code>.&nbsp; If more than one of these is specified, a
>rolled</a>]</code>.&nbsp; If more than one of these is specified,>ll conditions will need to test true for the interface or interfa
> all conditions will need to test true for the interface or inter>ce member to be exposed.
>face member to be exposed. 
870    </p>
871    <h3 id="PrefControlled" name="PrefControlled">
872      <code>[PrefControlled]</code>
873    </h3>
874    <p>
875      This extended attribute can be specified on an interface.&n
>bsp; If it is specified, then lookups for the interface object fo 
>r this interface on a DOM Window will only find it if the static  
><code>PrefEnabled()</code> method on the C++ class corresponding  
>to the interface returns true.&nbsp; For objects that can only be 
> created via a constructor, this allows disabing the functionalit 
>y altogether via a preference and making it look like the feature 
> is not implemented at all.&nbsp; The <code>PrefEnabled()</code>  
>function is invoked with no arguments. 
876    </p>
877    <p>
878      If this is specified on a <code>[NavigatorProperty]</code> 
>interface, it will also control whether the property appears on < 
>code>window.navigator</code>. 
879    </p>
880    <p>
881      This extended attibute can be specified together with <code
>>[<a href="#AvailableIn">AvailableIn</a>]</code>, <code>[<a href= 
>"#ChromeOnly">ChromeOnly</a>]</code>,&nbsp; <code>[<a href="#Func 
>">Func</a>]</code>, and <code>[<a href="#Pref">Pref</a>]</code>.& 
>nbsp; If more than one of these is specified, all conditions will 
> need to test true for the interface or interface member to be ex 
>posed. 
t890      This extended attibute can be specified together with <codet878      This extended attibute can be specified together with <code
>>[<a href="#ChromeOnly">ChromeOnly</a>]</code>,&nbsp; <code>[<a h>>[<a href="#ChromeOnly">ChromeOnly</a>]</code>,&nbsp; <code>[<a h
>ref="#Func">Func</a>]</code>,&nbsp; <code>[<a href="#Pref">Pref</>ref="#Func">Func</a>]</code>, and&nbsp; <code>[<a href="#Pref">Pr
>a>]</code>, and [<a href="#PrefControlled">PrefControlled</a>].&n>ef</a>]</code>.&nbsp; If more than one of these is specified, all
>bsp; If more than one of these is specified, all conditions will > conditions will need to test true for the interface or interface
>need to test true for the interface or interface member to be exp> member to be exposed.
>osed. 

Back to History