/* This Source Code Form is subject to the terms of the Mozilla Public
* License , v . 2 . 0 . If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
#include "nsISupports.idl"
/**
* Utilities for running nested event loops , asking them to return , and
* keeping track of which ones are still running .
*/
[scriptable, uuid(
6758 d0d7-e96a-
4 c5c-bca8-
3 bcbe5a15943)]
interface nsIJSInspector : nsISupports
{
/**
* Process the current thread ' s event queue , calling event handlers until
* a call to exitNestedEventLoop , below , asks us to return .
*
* The name ' enterNestedEventLoop ' may be misleading if read too literally .
* This method loops calling event handlers until one asks it to stop , and
* then returns . So by that point , the nested event loop has been not only
* entered , but also run and exited .
*
* When enterNestedEventLoop calls an event handler , that handler may itself
* call enterNestedEventLoop , and so on , so that there may be arbitrarily
* many such calls on the stack at the same time .
*
* We say an enterNestedEventLoop call is " running " if it has not yet been
* asked to return , or " stopped " if it has been asked to return once it has
* finished processing the current event .
*
* @ param requestor A token of the caller ' s choice to identify this event
* loop .
*
* @ return depth The number of running enterNestedEventLoop calls
* remaining , now that this one has returned .
*
* ( Note that not all calls still on the stack are
* necessary running ; exitNestedEventLoop can ask any
* number of enterNestedEventLoop calls to return . )
*/
unsigned long enterNestedEventLoop(in jsval requestor);
/**
* Stop the youngest running enterNestedEventLoop call , asking it to return
* once it has finished processing the current event .
*
* The name ' exitNestedEventLoop ' may be misleading if read too literally .
* The affected event loop does not return immediately when this method is
* called . Rather , this method simply returns to its caller ; the affected
* loop ' s current event handler is allowed to run to completion ; and then
* that loop returns without processing any more events .
*
* This method ignores loops that have already been stopped , and operates on
* the youngest loop that is still running . Each call to this method stops
* another running loop .
*
* @ return depth The number of running enterNestedEventLoop calls
* remaining , now that one has been stopped .
*
* @ throws NS_ERROR_FAILURE if there are no running enterNestedEventLoop calls .
*/
unsigned long exitNestedEventLoop();
/**
* The number of running enterNestedEventLoop calls on the stack .
* This count does not include stopped enterNestedEventLoop calls .
*/
readonly attribute
unsigned long eventLoopNestLevel;
/**
* The | requestor | value that was passed to the youngest running
* enterNestedEventLoop call .
*/
readonly attribute jsval lastNestRequestor;
};
Messung V0.5 in Prozent C=89 H=95 G=91
¤ Dauer der Verarbeitung: 0.5 Sekunden
¤
*© Formatika GbR, Deutschland