Back to index

lightning-sunbird  0.9+nobinonly
Public Member Functions | Public Attributes | Private Member Functions | Private Attributes
nsAppStartup Class Reference

#include <nsAppStartup.h>

Inheritance diagram for nsAppStartup:
Inheritance graph
[legend]
Collaboration diagram for nsAppStartup:
Collaboration graph
[legend]

List of all members.

Public Member Functions

NS_DECL_ISUPPORTS
NS_DECL_NSIAPPSTARTUP
NS_DECL_NSIWINDOWCREATOR
NS_DECL_NSIWINDOWCREATOR2
NS_DECL_NSIOBSERVER 
nsAppStartup ()
nsresult Init ()
NS_DECL_ISUPPORTS
NS_DECL_NSIAPPSTARTUP
NS_DECL_NSIWINDOWCREATOR
NS_DECL_NSIWINDOWCREATOR2
NS_DECL_NSIOBSERVER 
nsAppStartup ()
void createHiddenWindow ()
 Create the hidden window.
void createHiddenWindow ()
 Create the hidden window.
void run ()
 Runs an application event loop: normally the main event pump which defines the lifetime of the application.
void run ()
 Runs an application event loop: normally the main event pump which defines the lifetime of the application.
void enterLastWindowClosingSurvivalArea ()
 During application startup (and at other times!) we may temporarily encounter a situation where all application windows will be closed but we don't want to take this as a signal to quit the app.
void enterLastWindowClosingSurvivalArea ()
 During application startup (and at other times!) we may temporarily encounter a situation where all application windows will be closed but we don't want to take this as a signal to quit the app.
void exitLastWindowClosingSurvivalArea ()
void exitLastWindowClosingSurvivalArea ()
void quit (in PRUint32 aMode)
 Exit the event loop, and shut down the app.
void quit (in PRUint32 aFerocity)
 Exit the event loop, shut down the app.
void initialize (in nsISupports nativeAppSupportOrSplashScreen)
 Required initialization routine.
void doProfileStartup (in nsICmdLineService aCmdLineService, in boolean canInteract)
 Starts up the profile manager with the given arguments.
void hideSplashScreen ()
 Remove the splash screen (if visible).
boolean createStartupState (in long aWindowWidth, in long aWindowHeight)
 Creates the initial state of the application by launching tasks specfied by "general.startup.*" prefs.
void ensure1Window (in nsICmdLineService aCmdLineService)
 Ensures that at least one window exists after creating the startup state.
nsIWebBrowserChrome createChromeWindow2 (in nsIWebBrowserChrome parent, in PRUint32 chromeFlags, in PRUint32 contextFlags, in nsIURI uri, out boolean cancel)
 Create a new window.
nsIWebBrowserChrome createChromeWindow (in nsIWebBrowserChrome parent, in PRUint32 chromeFlags)
 Create a new window.
void observe (in nsISupports aSubject, in string aTopic, in wstring aData)
 Observe will be called when there is a notification for the topic |aTopic|.

Public Attributes

const PRUint32 eConsiderQuit = 0x01
 The following flags may be passed as the aMode parameter to the quit method.
const PRUint32 eAttemptQuit = 0x02
 Try to close all windows, then quit if successful.
const PRUint32 eForceQuit = 0x03
 Quit, damnit!
const PRUint32 eRestart = 0x10
 Restart the application after quitting.
readonly attribute
nsINativeAppSupport 
nativeAppSupport
 Getter for "native app support.".
const unsigned long PARENT_IS_LOADING_OR_RUNNING_TIMEOUT = 0x00000001
 Definitions for contextFlags.

Private Member Functions

 ~nsAppStartup ()
void AttemptingQuit (PRBool aAttempt)
 PR_STATIC_CALLBACK (void *) HandleExitEvent(PLEvent *aEvent)
 PR_STATIC_CALLBACK (void) DestroyExitEvent(PLEvent *aEvent)
 ~nsAppStartup ()
void AttemptingQuit (PRBool aAttempt)
 PR_STATIC_CALLBACK (void *) HandleExitEvent(PLEvent *aEvent)
 PR_STATIC_CALLBACK (void) DestroyExitEvent(PLEvent *aEvent)
nsresult CheckAndRemigrateDefunctProfile ()
nsresult LaunchTask (const char *aParam, PRInt32 height, PRInt32 width, PRBool *windowOpened)
nsresult OpenWindow (const nsAFlatCString &aChromeURL, const nsAFlatString &aAppArgs, PRInt32 aWidth, PRInt32 aHeight)
nsresult OpenBrowserWindow (PRInt32 height, PRInt32 width)

Private Attributes

nsCOMPtr< nsIAppShellmAppShell
PRInt32 mConsiderQuitStopper
PRPackedBool mRunning
PRPackedBool mShuttingDown
PRPackedBool mAttemptingQuit
PRPackedBool mRestart
nsCOMPtr< nsISplashScreenmSplashScreen
nsCOMPtr< nsINativeAppSupportmNativeAppSupport

Detailed Description

Definition at line 58 of file nsAppStartup.h.


Constructor & Destructor Documentation

nsAppStartup::~nsAppStartup ( ) [inline, private]

Definition at line 74 of file nsAppStartup.h.

{ }
NS_DECL_ISUPPORTS NS_DECL_NSIAPPSTARTUP NS_DECL_NSIWINDOWCREATOR NS_DECL_NSIWINDOWCREATOR2 NS_DECL_NSIOBSERVER nsAppStartup::nsAppStartup ( )
nsAppStartup::~nsAppStartup ( ) [inline, private]

Definition at line 75 of file nsAppStartup.h.

{ }

Member Function Documentation

void nsAppStartup::AttemptingQuit ( PRBool  aAttempt) [private]

Definition at line 347 of file nsAppStartup.cpp.

{
#if defined(XP_MAC) || defined(XP_MACOSX)
  if (aAttempt) {
    // now even the Mac wants to quit when the last window is closed
    if (!mAttemptingQuit)
      ExitLastWindowClosingSurvivalArea();
    mAttemptingQuit = PR_TRUE;
  } else {
    // changed our mind. back to normal.
    if (mAttemptingQuit)
      EnterLastWindowClosingSurvivalArea();
    mAttemptingQuit = PR_FALSE;
  }
#else
  mAttemptingQuit = aAttempt;
#endif
}
void nsAppStartup::AttemptingQuit ( PRBool  aAttempt) [private]

Definition at line 421 of file nsAppStartup.cpp.

{
  nsresult rv;

  nsCOMPtr<nsIPrefBranch> prefBranch;
  nsCOMPtr<nsIPrefService> prefs = do_GetService(NS_PREFSERVICE_CONTRACTID, &rv);
  NS_ENSURE_SUCCESS(rv,rv);
  rv = prefs->GetBranch(nsnull, getter_AddRefs(prefBranch));
  NS_ENSURE_SUCCESS(rv,rv);

  PRInt32 secondsBeforeDefunct;
  rv = prefBranch->GetIntPref("profile.seconds_until_defunct", &secondsBeforeDefunct);
  NS_ENSURE_SUCCESS(rv,rv);

  // -1 is the value for "never go defunct"
  // if the pref is set to -1, we'll never prompt the user to remigrate
  // see all.js (and all-ns.js)
  if (secondsBeforeDefunct == -1)
    return NS_OK;

  // used for converting
  // seconds -> millisecs
  // and microsecs -> millisecs
  PRInt64 oneThousand = LL_INIT(0, 1000);
  
  PRInt64 defunctInterval;
  // Init as seconds
  LL_I2L(defunctInterval, secondsBeforeDefunct);
  // Convert secs to millisecs
  LL_MUL(defunctInterval, defunctInterval, oneThousand);
        
  nsCOMPtr<nsIProfileInternal> profileMgr(do_GetService(NS_PROFILE_CONTRACTID, &rv));
  NS_ENSURE_SUCCESS(rv,rv);

  nsXPIDLString profileName;
  PRInt64 lastModTime;
  profileMgr->GetCurrentProfile(getter_Copies(profileName));
  rv = profileMgr->GetProfileLastModTime(profileName.get(), &lastModTime);
  NS_ENSURE_SUCCESS(rv,rv);

  // convert "now" from microsecs to millisecs
  PRInt64 nowInMilliSecs = PR_Now(); 
  LL_DIV(nowInMilliSecs, nowInMilliSecs, oneThousand);
  
  // determine (using the pref value) when the profile would be considered defunct
  PRInt64 defunctIntervalAgo;
  LL_SUB(defunctIntervalAgo, nowInMilliSecs, defunctInterval);

  // if we've used our current 6.x / mozilla profile more recently than
  // when we'd consider it defunct, don't remigrate
  if (LL_CMP(lastModTime, >, defunctIntervalAgo))
    return NS_OK;
  
  nsCOMPtr<nsILocalFile> origProfileDir;
  rv = profileMgr->GetOriginalProfileDir(profileName, getter_AddRefs(origProfileDir));
  // if this fails
  // then the current profile is a new one (not from 4.x) 
  // so we are done.
  if (NS_FAILED(rv))
    return NS_OK;
  
  // Now, we know that a matching 4.x profile exists
  // See if it has any newer files in it than our defunct profile.
  nsCOMPtr<nsISimpleEnumerator> dirEnum;
  rv = origProfileDir->GetDirectoryEntries(getter_AddRefs(dirEnum));
  NS_ENSURE_SUCCESS(rv,rv);
  
  PRBool promptForRemigration = PR_FALSE;
  PRBool hasMore;
  while (NS_SUCCEEDED(dirEnum->HasMoreElements(&hasMore)) && hasMore) {
    nsCOMPtr<nsILocalFile> currElem;
    rv = dirEnum->GetNext(getter_AddRefs(currElem));
    NS_ENSURE_SUCCESS(rv,rv);
    
    PRInt64 currElemModTime;
    rv = currElem->GetLastModifiedTime(&currElemModTime);
    NS_ENSURE_SUCCESS(rv,rv);
    // if this file in our 4.x profile is more recent than when we last used our mozilla / 6.x profile
    // we should prompt for re-migration
    if (LL_CMP(currElemModTime, >, lastModTime)) {
      promptForRemigration = PR_TRUE;
      break;
    }
  }
  
  // If nothing in the 4.x dir is newer than our defunct profile, return.
  if (!promptForRemigration)
    return NS_OK;
 
  nsCOMPtr<nsIStringBundleService> stringBundleService(do_GetService(NS_STRINGBUNDLE_CONTRACTID, &rv));
  NS_ENSURE_SUCCESS(rv,rv);

  nsCOMPtr<nsIStringBundle> migrationBundle, brandBundle;
  rv = stringBundleService->CreateBundle("chrome://communicator/locale/profile/migration.properties", getter_AddRefs(migrationBundle));
  NS_ENSURE_SUCCESS(rv,rv);

  rv = stringBundleService->CreateBundle("chrome://branding/locale/brand.properties", getter_AddRefs(brandBundle));
  NS_ENSURE_SUCCESS(rv,rv);

  nsXPIDLString brandName;
  rv = brandBundle->GetStringFromName(NS_LITERAL_STRING("brandShortName").get(), getter_Copies(brandName));
  NS_ENSURE_SUCCESS(rv,rv);
 
  nsXPIDLString dialogText;
  rv = migrationBundle->GetStringFromName(NS_LITERAL_STRING("confirmRemigration").get(), getter_Copies(dialogText));
  NS_ENSURE_SUCCESS(rv,rv);

  nsCOMPtr<nsIPromptService> promptService(do_GetService(NS_PROMPTSERVICE_CONTRACTID, &rv));
  NS_ENSURE_SUCCESS(rv,rv);
  PRInt32 buttonPressed;
  rv = promptService->ConfirmEx(nsnull, brandName.get(),
    dialogText.get(),
    (nsIPromptService::BUTTON_POS_0 * 
    nsIPromptService::BUTTON_TITLE_YES) + 
    (nsIPromptService::BUTTON_POS_1 * 
    nsIPromptService::BUTTON_TITLE_NO),
    nsnull, nsnull, nsnull, nsnull, nsnull, &buttonPressed);
  NS_ENSURE_SUCCESS(rv,rv);
  
  if (buttonPressed == 0) {
    // Need to shut down the current profile before remigrating it
    profileMgr->ShutDownCurrentProfile(nsIProfile::SHUTDOWN_PERSIST);
    // If this fails, it will restore what was there.
    rv = profileMgr->RemigrateProfile(profileName.get());
    NS_ASSERTION(NS_SUCCEEDED(rv), "Remigration of profile failed.");
    // Whether or not we succeeded or failed, need to reset this.
    profileMgr->SetCurrentProfile(profileName.get());
  }
  return NS_OK;
}   

Here is the call graph for this function:

Create a new window.

Gecko will/may call this method, if made available to it, to create new windows.

Parameters:
parentparent window, if any. null if not. the newly created window should be made a child/dependent window of the parent, if any (and if the concept applies to the underlying OS).
chromeFlagschrome features from nsIWebBrowserChrome
Returns:
the new window
nsIWebBrowserChrome nsIWindowCreator2::createChromeWindow2 ( in nsIWebBrowserChrome  parent,
in PRUint32  chromeFlags,
in PRUint32  contextFlags,
in nsIURI  uri,
out boolean  cancel 
) [inherited]

Create a new window.

Gecko will/may call this method, if made available to it, to create new windows.

Parameters:
parentParent window, if any. Null if not. The newly created window should be made a child/dependent window of the parent, if any (and if the concept applies to the underlying OS).
chromeFlagsChrome features from nsIWebBrowserChrome
contextFlagsFlags about the context of the window being created.
uriThe URL for which this window is intended. It can be null or zero-length. The implementation of this interface may use the URL to help determine what sort of window to open or whether to cancel window creation. It will not load the URL.
cancelReturn |true| to reject window creation. If true the implementation has determined the window should not be created at all. The caller should not default to any possible backup scheme for creating the window.
Returns:
the new window. Will be null if canceled or an error occurred.

Create the hidden window.

Create the hidden window.

Only bootstrap code (nsAppRunner.cpp) should call this method.

boolean nsIAppStartup::createStartupState ( in long  aWindowWidth,
in long  aWindowHeight 
) [inherited]

Creates the initial state of the application by launching tasks specfied by "general.startup.*" prefs.

Parameters:
aWindowWidththe width to make the initial window(s) opened
aWindowHeightthe height to make the initial window(s) opened
Note:
SIZE_TO_CONTENT may be used for width or height.
Returns:
TRUE if a window was opened
void nsIAppStartup::doProfileStartup ( in nsICmdLineService  aCmdLineService,
in boolean  canInteract 
) [inherited]

Starts up the profile manager with the given arguments.

Parameters:
aCmdLineServicethe arguments given to the program
canInteractIf FALSE and UI is needed, will fail
void nsIAppStartup::ensure1Window ( in nsICmdLineService  aCmdLineService) [inherited]

Ensures that at least one window exists after creating the startup state.

If one has not been made, this will create a browser window.

Parameters:
aCmdLineServicethe command line from which startup args can be read.

During application startup (and at other times!) we may temporarily encounter a situation where all application windows will be closed but we don't want to take this as a signal to quit the app.

Bracket the code where the last window could close with these. (And at application startup, on platforms that don't normally quit when the last window has closed, call Enter once, but not Exit)

During application startup (and at other times!) we may temporarily encounter a situation where all application windows will be closed but we don't want to take this as a signal to quit the app.

Bracket the code where the last window could close with these. (And at application startup, on platforms that don't normally quit when the last window has closed, call Enter once, but not Exit)

Remove the splash screen (if visible).

This need be called only once per application session.

Definition at line 90 of file nsAppStartup.cpp.

{
  nsresult rv;

  // Create widget application shell
  mAppShell = do_CreateInstance(kAppShellCID, &rv);
  NS_ENSURE_SUCCESS(rv, rv);

  rv = mAppShell->Create(nsnull, nsnull);
  NS_ENSURE_SUCCESS(rv, rv);

  // listen to EventQueues' comings and goings. do this after the appshell
  // has been created, but after the event queue has been created. that
  // latter bit is unfortunate, but we deal with it.
  nsCOMPtr<nsIObserverService> os
    (do_GetService("@mozilla.org/observer-service;1", &rv));
  NS_ENSURE_SUCCESS(rv, rv);

  os->AddObserver(this, "nsIEventQueueActivated", PR_TRUE);
  os->AddObserver(this, "nsIEventQueueDestroyed", PR_TRUE);
  os->AddObserver(this, "profile-change-teardown", PR_TRUE);
  os->AddObserver(this, "xul-window-registered", PR_TRUE);
  os->AddObserver(this, "xul-window-destroyed", PR_TRUE);

  return NS_OK;
}

Here is the call graph for this function:

void nsIAppStartup::initialize ( in nsISupports  nativeAppSupportOrSplashScreen) [inherited]

Required initialization routine.

Parameters:
aNativeAppSupportOrSplashScreenThis is an object that can be QI'd to either an nsINativeAppSupport or nsISplashScreen; this object will be used to implement HideSplashScreen.
nsresult nsAppStartup::LaunchTask ( const char *  aParam,
PRInt32  height,
PRInt32  width,
PRBool windowOpened 
) [private]

Definition at line 702 of file nsAppStartup.cpp.

{
  nsresult rv;

  nsCOMPtr <nsICmdLineService> cmdLine =
    do_GetService(NS_COMMANDLINESERVICE_CONTRACTID, &rv);
  if (NS_FAILED(rv)) return rv;

  nsCOMPtr <nsICmdLineHandler> handler;
  rv = cmdLine->GetHandlerForParam(aParam, getter_AddRefs(handler));
  if (NS_FAILED(rv)) return rv;

  nsXPIDLCString chromeUrlForTask;
  rv = handler->GetChromeUrlForTask(getter_Copies(chromeUrlForTask));
  if (NS_FAILED(rv)) return rv;

  PRBool handlesArgs = PR_FALSE;
  rv = handler->GetHandlesArgs(&handlesArgs);
  if (handlesArgs) {
    nsXPIDLString defaultArgs;
    rv = handler->GetDefaultArgs(getter_Copies(defaultArgs));
    if (NS_FAILED(rv)) return rv;
    rv = OpenWindow(chromeUrlForTask, defaultArgs,
                    nsIAppShellService::SIZE_TO_CONTENT,
                    nsIAppShellService::SIZE_TO_CONTENT);
  }
  else {
    rv = OpenWindow(chromeUrlForTask, EmptyString(), width, height);
  }
  
  // If we get here without an error, then a window was opened OK.
  if (NS_SUCCEEDED(rv)) {
    *windowOpened = PR_TRUE;
  }

  return rv;
}

Here is the call graph for this function:

void nsIObserver::observe ( in nsISupports  aSubject,
in string  aTopic,
in wstring  aData 
) [inherited]

Observe will be called when there is a notification for the topic |aTopic|.

This assumes that the object implementing this interface has been registered with an observer service such as the nsIObserverService.

If you expect multiple topics/subjects, the impl is responsible for filtering.

You should not modify, add, remove, or enumerate notifications in the implemention of observe.

Parameters:
aSubject: Notification specific interface pointer.
aTopic: The notification topic or subject.
aData: Notification specific wide string. subject event.
nsresult nsAppStartup::OpenBrowserWindow ( PRInt32  height,
PRInt32  width 
) [private]

Definition at line 794 of file nsAppStartup.cpp.

{
  nsresult rv;
  nsCOMPtr<nsICmdLineHandler> handler(
    do_GetService("@mozilla.org/commandlinehandler/general-startup;1?type=browser", &rv));
  if (NS_FAILED(rv)) return rv;

  nsXPIDLCString chromeUrlForTask;
  rv = handler->GetChromeUrlForTask(getter_Copies(chromeUrlForTask));
  if (NS_FAILED(rv)) return rv;

  nsCOMPtr <nsICmdLineService> cmdLine = do_GetService(NS_COMMANDLINESERVICE_CONTRACTID, &rv);
  if (NS_FAILED(rv)) return rv;

  nsXPIDLCString urlToLoad;
  rv = cmdLine->GetURLToLoad(getter_Copies(urlToLoad));
  if (!urlToLoad.IsEmpty()) {

#ifdef DEBUG_CMD_LINE
    printf("url to load: %s\n", urlToLoad.get());
#endif /* DEBUG_CMD_LINE */

    nsAutoString url; 
    // convert the cmdLine URL to Unicode
    rv = NS_CopyNativeToUnicode(nsDependentCString(urlToLoad), url);
    if (NS_FAILED(rv)) {
      NS_ERROR("Failed to convert commandline url to unicode");
      return rv;
    }
    rv = OpenWindow(chromeUrlForTask, url, width, height);

  } else {

    nsXPIDLString defaultArgs;
    rv = handler->GetDefaultArgs(getter_Copies(defaultArgs));
    if (NS_FAILED(rv)) return rv;

#ifdef DEBUG_CMD_LINE
    printf("default args: %s\n", NS_ConvertUTF16toUTF8(defaultArgs).get());
#endif /* DEBUG_CMD_LINE */

    rv = OpenWindow(chromeUrlForTask, defaultArgs, width, height);
  }

  return rv;
}

Here is the call graph for this function:

nsresult nsAppStartup::OpenWindow ( const nsAFlatCString aChromeURL,
const nsAFlatString aAppArgs,
PRInt32  aWidth,
PRInt32  aHeight 
) [private]

Definition at line 741 of file nsAppStartup.cpp.

{
  nsCOMPtr<nsIWindowWatcher> wwatch(do_GetService(NS_WINDOWWATCHER_CONTRACTID));
  nsCOMPtr<nsISupportsString> sarg(do_CreateInstance(NS_SUPPORTS_STRING_CONTRACTID));
  if (!wwatch || !sarg)
    return NS_ERROR_FAILURE;

  // Make sure a profile is selected.

  // We need the native app support object. If this fails, we still proceed.
  // That's because some platforms don't have a native app
  // support implementation.  On those platforms, "ensuring a
  // profile" is moot (because they don't support "-turbo",
  // basically).  Specifically, because they don't do turbo, they will
  // *always* have a profile selected.
  nsCOMPtr<nsINativeAppSupport> nativeApp;
  if (NS_SUCCEEDED(GetNativeAppSupport(getter_AddRefs(nativeApp))))
  {
    nsCOMPtr <nsICmdLineService> cmdLine =
      do_GetService(NS_COMMANDLINESERVICE_CONTRACTID);

    if (cmdLine) {
      // Make sure profile has been selected.
      // At this point, we have to look for failure.  That
      // handles the case where the user chooses "Exit" on
      // the profile manager window.
      if (NS_FAILED(nativeApp->EnsureProfile(cmdLine)))
        return NS_ERROR_NOT_INITIALIZED;
    }
  }

  sarg->SetData(aAppArgs);

  nsCAutoString features("chrome,dialog=no,all");
  if (aHeight != nsIAppShellService::SIZE_TO_CONTENT) {
    features.Append(",height=");
    features.AppendInt(aHeight);
  }
  if (aWidth != nsIAppShellService::SIZE_TO_CONTENT) {
    features.Append(",width=");
    features.AppendInt(aWidth);
  }

  nsCOMPtr<nsIDOMWindow> newWindow;
  return wwatch->OpenWindow(0, aChromeURL.get(), "_blank",
                            features.get(), sarg,
                            getter_AddRefs(newWindow));
}

Here is the call graph for this function:

Here is the caller graph for this function:

void nsIAppStartup::quit ( in PRUint32  aFerocity) [inherited]

Exit the event loop, shut down the app.

void nsIAppStartup::quit ( in PRUint32  aMode) [inherited]

Exit the event loop, and shut down the app.

Parameters:
aModeThis parameter modifies how the app is shutdown, and it is constructed from the constants defined above.
void nsIAppStartup::run ( ) [inherited]

Runs an application event loop: normally the main event pump which defines the lifetime of the application.

NS_SUCCESS_RESTART_APP This return code indicates that the application should be restarted because quit was called with the eRestart flag.

void nsIAppStartup::run ( ) [inherited]

Runs an application event loop: normally the main event pump which defines the lifetime of the application.


Member Data Documentation

Try to close all windows, then quit if successful.

Definition at line 88 of file nsIAppStartup.idl.

The following flags may be passed as the aMode parameter to the quit method.

One and only one of the "Quit" flags must be specified. The eRestart flag may be bit-wise combined with one of the "Quit" flags to cause the application to restart after it quits. Attempt to quit if all windows are closed.

Definition at line 83 of file nsIAppStartup.idl.

Quit, damnit!

Definition at line 93 of file nsIAppStartup.idl.

Restart the application after quitting.

The application will be restarted with the same profile and an empty command line.

Definition at line 99 of file nsIAppStartup.idl.

Definition at line 82 of file nsAppStartup.h.

Definition at line 87 of file nsAppStartup.h.

Definition at line 84 of file nsAppStartup.h.

Definition at line 94 of file nsAppStartup.h.

Definition at line 88 of file nsAppStartup.h.

Definition at line 85 of file nsAppStartup.h.

Definition at line 86 of file nsAppStartup.h.

Definition at line 93 of file nsAppStartup.h.

Getter for "native app support.".

Definition at line 72 of file nsIAppStartup.idl.

Definitions for contextFlags.

Definition at line 64 of file nsIWindowCreator2.idl.


The documentation for this class was generated from the following files: