mozilla

Compare Revisions

Monitoring plugins

Change Revisions

Revision 166789:

Revision 166789 by Xrayon on

Revision 166790:

Revision 166790 by Kohei on

Title:
Monitoring plugins
Monitoring plugins
Slug:
Monitoring_plugins
Monitoring_plugins
Tags:
Add-ons, Plugins, "Firefox 3"
Add-ons, Plugins, "Firefox 3"
Content:

Revision 166789
Revision 166790
n14      A new component of the plugin system is now available to men14      A new component of the plugin system is now available to me
>asure how long it takes plugins (e.g., Macromedia Flash) to execu>asure how long it takes plugins (e.g., Adobe Flash) to execute th
>te their calls. This component then reports the plugin runtime us>eir calls. This component then reports the plugin runtime using t
>ing the <a href="en/NsIObserverService">observer service</a> to a>he <a href="en/NsIObserverService">observer service</a> to anyone
>nyone registered to receive the notifications. This article discu> registered to receive the notifications. This article discusses 
>sses how developers can make use of this new feature.>how developers can make use of this new feature.
n31    <dl>n31    <h4 name="Registration">
32      <dt>
33        Registration32      Registration
34      </dt>
35    </dl>33    </h4>
36    <dl>34    <p>
37      <dd>
38        To register for runtime notifications with the observer s35      To register for runtime notifications with the observer ser
>ervice you must create a class with an 'observe' method which rec>vice you must create a class with an 'observe' method which recei
>eives 3 parameters (subject, topic and data) as well as a 'regist>ves 3 parameters (subject, topic and data) as well as a 'register
>er' method that contains the following code:>' method that contains the following code:
39      </dd>
40    </dl>36    </p>
n49    <dl>n45    <h4 name="Observing">
50      <dt>
51        Observing46      Observing
52      </dt>
53    </dl>47    </h4>
54    <dl>48    <p>
55      <dd>
56        As discussed above, to specify what you want done when a 49      As discussed above, to specify what you want done when a no
>notification arrives your class must have an 'observe' method, re>tification arrives your class must have an 'observe' method, rece
>ceiving 3 parameters (subject, topic and data). The topic contain>iving 3 parameters (subject, topic and data). The topic contains 
>s the notification's topic - 'experimental-notify-plugin-call' in>the notification's topic - 'experimental-notify-plugin-call' in t
> this case, the data is the runtime in milliseconds and the subje>his case, the data is the runtime in milliseconds and the subject
>ct is always 'null' and should not be used.> is always 'null' and should not be used.
57      </dd>
58    </dl>50    </p>
59    <dl>51    <p>
60      <dd>
61        Here is an example that shows the runtime in an alert box52      Here is an example that shows the runtime in an alert box t
> to the user if the runtime exceeds half a second in length:>o the user if the runtime exceeds half a second in length:
62      </dd>
63    </dl>53    </p>
n73    <dl>n63    <p>
74      <dd>
75        <b>NOTE: This is just a simplified example and the use of64      <b>NOTE: This is just a simplified example and the use of a
> alert() is discouraged as the component can send hundreds of not>lert() is discouraged as the component can send hundreds of notif
>ifications each second and could potentially cause your browser t>ications each second and could potentially cause your browser to 
>o crash if an excessive number of alert boxes are displayed.</b>>crash if an excessive number of alert boxes are displayed.</b>
76      </dd>
77    </dl>65    </p>
78    <dl>66    <p>
79      <dd>
80        Also note that in the example above an if statement first67      Also note that in the example above an if statement first c
> checks to see that the arriving notification's topic is the corr>hecks to see that the arriving notification's topic is the correc
>ect one. This is useful in cases where your class is registered t>t one. This is useful in cases where your class is registered to 
>o receive notifications for more than one topic with the observer>receive notifications for more than one topic with the observer s
> service.>ervice.
81      </dd>
82    </dl>68    </p>
n86    <dl>n72    <h4 name="Clean_Up">
87      <dt>
88        Clean Up73      Clean Up
89      </dt>
90    </dl>74    </h4>
91    <dl>75    <p>
92      <dd>
93        To unregister your class with the observer service - when76      To unregister your class with the observer service - when y
> you no longer want to be listening to runtime notifications - yo>ou no longer want to be listening to runtime notifications - your
>ur class must include an 'unregister' method that contains the fo> class must include an 'unregister' method that contains the foll
>llowing code:>owing code:
94      </dd>
95    </dl>77    </p>
n104    <dl>n86    <h4 name="Skeleton_Observer_Class">
105      <dt>
106        Skeleton Observer Class87      Skeleton Observer Class
107      </dt>
108    </dl>88    </h4>
109    <dl>89    <p>
110      <dd>
111        Below is a skeleton class that you may use to listen to r90      Below is a skeleton class that you may use to listen to run
>untime notifications:>time notifications:
112      </dd>
113    </dl>91    </p>
n154      More information on the observer service <a href="en/NsIObsn132      More information on the observer service:
>erverService">here</a> and <a href="en/NsIObserver">here</a>. 
tt134    <ul>
135      <li>
136        <a href="en/NsIObserverService">nsIObserverService</a>
137      </li>
138      <li>
139        <a href="en/NsIObserver">nsIObserver</a>
140      </li>
141    </ul>{{ wiki.languages( { "ja": "ja/Monitoring_plugins" } ) }
 >}

Back to History