WARNING: Most of this content (with the exception of the Mozilla 1.9 XPCOM reference) is very old, and can be expected to be out of date and possibly obsolete. For better XUL documentation, please visit the XUL hub at the Mozilla Developer Center.

nsIAppShell

IID:95f1f2b3-051b-4603-bb91-7058191dfc1e
Inherits From:nsISupports

Interface for the native event system layer. This interface is designed to be used on the main application thread only.


Methods

void exit ( ) void favorPerformanceHint ( PRBool favorPerfOverStarvation , PRUint32 starvationDelay ) void resumeNative ( ) void run ( ) void suspendNative ( )

void exit ( )

Exit the handle event loop


void favorPerformanceHint ( PRBool favorPerfOverStarvation , PRUint32 starvationDelay )

Give hint to native event queue notification mechanism. If the native platform needs to tradeoff performance vs. native event starvation this hint tells the native dispatch code which to favor. The default is to prevent native event starvation.

Calls to this function may be nested. When the number of calls that pass PR_TRUE is subtracted from the number of calls that pass PR_FALSE is greater than 0, performance is given precedence over preventing event starvation.

The starvationDelay arg is only used when favorPerfOverStarvation is PR_FALSE. It is the amount of time in milliseconds to wait before the PR_FALSE actually takes effect.

Arguments:
favorPerfOverStarvation
starvationDelay

void resumeNative ( )

Resumes the use of additional platform-specific methods to run Gecko events on the main application thread. Calls to suspendNative() and resumeNative() may be nested. On some platforms this will be a no-op.


void run ( )

Enter an event loop. Don't leave until exit() is called.


void suspendNative ( )

Suspends the use of additional platform-specific methods (besides the nsIAppShell->run() event loop) to run Gecko events on the main application thread. Under some circumstances these "additional methods" can cause Gecko event handlers to be re-entered, sometimes leading to hangs and crashes. Calls to suspendNative() and resumeNative() may be nested. On some platforms (those that don't use any "additional methods") this will be a no-op. Does not (in itself) stop Gecko events from being processed on the main application thread. But if the nsIAppShell->run() event loop is blocked when this call is made, Gecko events will stop being processed until resumeNative() is called (even if a plugin or library is temporarily processing events on a nested event loop).


References

This interface is passed as an argument to the following methods:

nsIAppShellService.createHiddenWindow, nsIAppShellService.createTopLevelWindow, nsIXULWindow.createNewWindow

Reference documentation is generated from Mozilla's source.