DXR is a code search and navigation tool aimed at making sense of large projects. It supports full-text and regex searches as well as structural queries.

Mercurial (d8847129d134)

VCS Links

Line Code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159
/* 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"

%{C++

namespace mozilla {
// Simple C++ getter for nsIXULRuntime::browserTabsRemoteAutostart
// This getter is a temporary function that checks for special
// conditions in which e10s support is not great yet, and should
// therefore be disabled. Bug 1065561 tracks its removal.
bool BrowserTabsRemoteAutostart();
}

%}

/**
 * Provides information about the XUL runtime.
 * @status UNSTABLE - This interface is not frozen and will probably change in
 *                    future releases. If you need this functionality to be
 *                    stable/frozen, please contact Benjamin Smedberg.
 */

[scriptable, uuid(15b0e6cf-83da-4672-814e-cfa0b06ba31b)]
interface nsIXULRuntime : nsISupports
{
  /**
   * Whether the application was launched in safe mode.
   */
  readonly attribute boolean inSafeMode;

  /**
   * Whether to write console errors to a log file. If a component
   * encounters startup errors that might prevent the app from showing
   * proper UI, it should set this flag to "true".
   */
  attribute boolean logConsoleErrors;

  /**
   * A string tag identifying the current operating system. This is taken
   * from the OS_TARGET configure variable. It will always be available.
   */
  readonly attribute AUTF8String OS;

  /**
   * A string tag identifying the binary ABI of the current processor and
   * compiler vtable. This is taken from the TARGET_XPCOM_ABI configure
   * variable. It may not be available on all platforms, especially
   * unusual processor or compiler combinations.
   *
   * The result takes the form <processor>-<compilerABI>, for example:
   *   x86-msvc
   *   ppc-gcc3
   *
   * This value should almost always be used in combination with "OS".
   *
   * @throw NS_ERROR_NOT_AVAILABLE if not available.
   */
  readonly attribute AUTF8String XPCOMABI;

  /**
   * A string tag identifying the target widget toolkit in use.
   * This is taken from the MOZ_WIDGET_TOOLKIT configure variable.
   */
  readonly attribute AUTF8String widgetToolkit;

  /**
   * The legal values of processType.
   */
  const unsigned long PROCESS_TYPE_DEFAULT = 0;
  const unsigned long PROCESS_TYPE_PLUGIN = 1;
  const unsigned long PROCESS_TYPE_CONTENT = 2;
  const unsigned long PROCESS_TYPE_IPDLUNITTEST = 3;
  const unsigned long PROCESS_TYPE_GMPLUGIN = 4;

  /**
   * The type of the caller's process.  Returns one of the values above.
   */
  readonly attribute unsigned long processType;

  /**
   * The system process ID of the caller's process.
   */
  readonly attribute unsigned long processID;

  /**
   * If true, browser tabs may be opened by default in a different process
   * from the main browser UI.
   */
  readonly attribute boolean browserTabsRemoteAutostart;

  /**
   * If true, the accessibility service is running.
   */
  readonly attribute boolean accessibilityEnabled;

  /**
   * This returns a very rough approximation of whether IME is likely
   * to be used for the browser session. DO NOT USE! This is temporary
   * and will be removed.
   */
  readonly attribute boolean keyboardMayHaveIME;

  /**
   * Signal the apprunner to invalidate caches on the next restart.
   * This will cause components to be autoregistered and all
   * fastload data to be re-created.
   */
  void invalidateCachesOnRestart();

  /**
   * Starts a child process. This method is intented to pre-start a
   * content child process so that when it is actually needed, it is
   * ready to go.
   *
   * @throw NS_ERROR_NOT_AVAILABLE if not available.
   */
  void ensureContentProcess();

  /**
   * Modification time of the profile lock before the profile was locked on
   * this startup. Used to know the last time the profile was used and not
   * closed cleanly. This is set to 0 if there was no existing profile lock.
   */
  readonly attribute PRTime replacedLockTime;

  /**
   * Local ID of the minidump generated when the process crashed
   * on the previous run. Can be passed directly to CrashSubmit.submit.
   */
  readonly attribute DOMString lastRunCrashID;

  /**
   * True if this is a RELEASE_BUILD.
   */
  readonly attribute boolean isReleaseBuild;

  /**
   * True if this build uses official branding (MOZ_OFFICIAL_BRANDING).
   */
  readonly attribute boolean isOfficialBranding;

  /**
   * The default update channel (MOZ_UPDATE_CHANNEL).
   */
  readonly attribute AUTF8String defaultUpdateChannel;

  /**
   * The distribution ID for this build (MOZ_DISTRIBUTION_ID).
   */
  readonly attribute AUTF8String distributionID;

  /**
   * True if this is an official build (MOZILLA_OFFICIAL).
   */
  readonly attribute boolean isOfficial;
};