Bug 728071 part 1 - Move nsXREAppData definition in a separate header, and use it from application.ini.h. r=bsmedberg
authorMike Hommey <mh+mozilla@glandium.org>
Wed, 22 Feb 2012 08:12:15 +0100
changeset 87383 0e2ee581bf9365e8b7f7933c72da7b57a8ecbaf5
parent 87382 fb7252059ce5c3d38c1c6ebda880463fc48a8007
child 87384 9eaacb130b4c9133224b86775e95992b87ce267e
push idunknown
push userunknown
push dateunknown
reviewersbsmedberg
bugs728071
milestone13.0a1
Bug 728071 part 1 - Move nsXREAppData definition in a separate header, and use it from application.ini.h. r=bsmedberg
b2g/app/nsBrowserApp.cpp
browser/app/nsBrowserApp.cpp
build/appini_header.py
mobile/xul/app/nsBrowserApp.cpp
toolkit/xre/nsAndroidStartup.cpp
xpcom/build/Makefile.in
xpcom/build/nsXREAppData.h
xpcom/build/nsXULAppAPI.h
--- a/b2g/app/nsBrowserApp.cpp
+++ b/b2g/app/nsBrowserApp.cpp
@@ -31,16 +31,17 @@
  * use your version of this file under the terms of the MPL, indicate your
  * decision by deleting the provisions above and replace them with the notice
  * and other provisions required by the GPL or the LGPL. If you do not delete
  * the provisions above, a recipient may use your version of this file under
  * the terms of any one of the MPL, the GPL or the LGPL.
  *
  * ***** END LICENSE BLOCK ***** */
 
+#include "nsXULAppAPI.h"
 #include "application.ini.h"
 #include "nsXPCOMGlue.h"
 #if defined(XP_WIN)
 #include <windows.h>
 #include <stdlib.h>
 #elif defined(XP_UNIX)
 #include <sys/time.h>
 #include <sys/resource.h>
--- a/browser/app/nsBrowserApp.cpp
+++ b/browser/app/nsBrowserApp.cpp
@@ -31,16 +31,17 @@
  * use your version of this file under the terms of the MPL, indicate your
  * decision by deleting the provisions above and replace them with the notice
  * and other provisions required by the GPL or the LGPL. If you do not delete
  * the provisions above, a recipient may use your version of this file under
  * the terms of any one of the MPL, the GPL or the LGPL.
  *
  * ***** END LICENSE BLOCK ***** */
 
+#include "nsXULAppAPI.h"
 #include "application.ini.h"
 #include "nsXPCOMGlue.h"
 #if defined(XP_WIN)
 #include <windows.h>
 #include <stdlib.h>
 #elif defined(XP_UNIX)
 #include <sys/time.h>
 #include <sys/resource.h>
--- a/build/appini_header.py
+++ b/build/appini_header.py
@@ -56,17 +56,17 @@ def main(file):
     try:
         if config.getint('Crash Reporter', 'Enabled') == 1:
             flags.add('NS_XRE_ENABLE_CRASH_REPORTER')
     except: pass
     appdata = dict(("%s:%s" % (s, o), config.get(s, o)) for s in config.sections() for o in config.options(s))
     appdata['flags'] = ' | '.join(flags) if flags else '0'
     appdata['App:profile'] = '"%s"' % appdata['App:profile'] if 'App:profile' in appdata else 'NULL'
 
-    print '''#include "nsXULAppAPI.h"
+    print '''#include "nsXREAppData.h"
              static const nsXREAppData sAppData = {
                  sizeof(nsXREAppData),
                  NULL, // directory
                  "%(App:vendor)s",
                  "%(App:name)s",
                  "%(App:version)s",
                  "%(App:buildid)s",
                  "%(App:id)s",
--- a/mobile/xul/app/nsBrowserApp.cpp
+++ b/mobile/xul/app/nsBrowserApp.cpp
@@ -31,16 +31,17 @@
  * use your version of this file under the terms of the MPL, indicate your
  * decision by deleting the provisions above and replace them with the notice
  * and other provisions required by the GPL or the LGPL. If you do not delete
  * the provisions above, a recipient may use your version of this file under
  * the terms of any one of the MPL, the GPL or the LGPL.
  *
  * ***** END LICENSE BLOCK ***** */
 
+#include "nsXULAppAPI.h"
 #include "application.ini.h"
 #include "nsXPCOMGlue.h"
 #if defined(XP_WIN)
 #include <windows.h>
 #include <stdlib.h>
 #elif defined(XP_UNIX)
 #include <sys/time.h>
 #include <sys/resource.h>
--- a/toolkit/xre/nsAndroidStartup.cpp
+++ b/toolkit/xre/nsAndroidStartup.cpp
@@ -34,16 +34,17 @@
  * use your version of this file under the terms of the MPL, indicate your
  * decision by deleting the provisions above and replace them with the notice
  * and other provisions required by the GPL or the LGPL. If you do not delete
  * the provisions above, a recipient may use your version of this file under
  * the terms of any one of the MPL, the GPL or the LGPL.
  *
  * ***** END LICENSE BLOCK ***** */
 
+#include "nsXULAppAPI.h"
 #include "application.ini.h"
 
 #include <android/log.h>
 
 #include <jni.h>
 
 #include <stdlib.h>
 #include <string.h>
--- a/xpcom/build/Makefile.in
+++ b/xpcom/build/Makefile.in
@@ -113,16 +113,17 @@ SDK_HEADERS =  \
   nsXPCOM.h       \
   nsXPCOMCID.h    \
   $(NULL)
 
 EXPORTS	= \
   nsXPCOMCIDInternal.h \
   xrecore.h \
   nsXULAppAPI.h \
+  nsXREAppData.h \
   $(NULL)
 
 EXPORTS_mozilla = \
   XPCOM.h \
   Services.h \
   ServiceList.h \
   Omnijar.h \
   FileLocation.h \
new file mode 100644
--- /dev/null
+++ b/xpcom/build/nsXREAppData.h
@@ -0,0 +1,170 @@
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* ***** BEGIN LICENSE BLOCK *****
+ * Version: MPL 1.1/GPL 2.0/LGPL 2.1
+ *
+ * The contents of this file are subject to the Mozilla Public License Version
+ * 1.1 (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ * http://www.mozilla.org/MPL/
+ *
+ * Software distributed under the License is distributed on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+ * for the specific language governing rights and limitations under the
+ * License.
+ *
+ * The Original Code is mozilla.org code.
+ *
+ * The Initial Developer of the Original Code is
+ * Netscape Communications Corporation.
+ * Portions created by the Initial Developer are Copyright (C) 2002
+ * the Initial Developer. All Rights Reserved.
+ *
+ * Contributor(s):
+ *  Brian Ryner <bryner@brianryner.com>
+ *  Benjamin Smedberg <benjamin@smedbergs.us>
+ *
+ * Alternatively, the contents of this file may be used under the terms of
+ * either the GNU General Public License Version 2 or later (the "GPL"), or
+ * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
+ * in which case the provisions of the GPL or the LGPL are applicable instead
+ * of those above. If you wish to allow use of your version of this file only
+ * under the terms of either the GPL or the LGPL, and not to allow others to
+ * use your version of this file under the terms of the MPL, indicate your
+ * decision by deleting the provisions above and replace them with the notice
+ * and other provisions required by the GPL or the LGPL. If you do not delete
+ * the provisions above, a recipient may use your version of this file under
+ * the terms of any one of the MPL, the GPL or the LGPL.
+ *
+ * ***** END LICENSE BLOCK ***** */
+
+#ifndef nsXREAppData_h
+#define nsXREAppData_h
+
+#include "mozilla/StdInt.h"
+
+class nsILocalFile;
+
+/**
+ * Application-specific data needed to start the apprunner.
+ *
+ * @note When this structure is allocated and manipulated by XRE_CreateAppData,
+ *       string fields will be allocated with NS_Alloc, and interface pointers
+ *       are strong references.
+ */
+struct nsXREAppData
+{
+  /**
+   * This should be set to sizeof(nsXREAppData). This structure may be
+   * extended in future releases, and this ensures that binary compatibility
+   * is maintained.
+   */
+  uint32_t size;
+
+  /**
+   * The directory of the application to be run. May be null if the
+   * xulrunner and the app are installed into the same directory.
+   */
+  nsILocalFile* directory;
+
+  /**
+   * The name of the application vendor. This must be ASCII, and is normally
+   * mixed-case, e.g. "Mozilla". Optional (may be null), but highly
+   * recommended. Must not be the empty string.
+   */
+  const char *vendor;
+
+  /**
+   * The name of the application. This must be ASCII, and is normally
+   * mixed-case, e.g. "Firefox". Required (must not be null or an empty
+   * string).
+   */
+  const char *name;
+
+  /**
+   * The major version, e.g. "0.8.0+". Optional (may be null), but
+   * required for advanced application features such as the extension
+   * manager and update service. Must not be the empty string.
+   */
+  const char *version;
+
+  /**
+   * The application's build identifier, e.g. "2004051604"
+   */
+  const char *buildID;
+
+  /**
+   * The application's UUID. Used by the extension manager to determine
+   * compatible extensions. Optional, but required for advanced application
+   * features such as the extension manager and update service.
+   *
+   * This has traditionally been in the form
+   * "{AAAAAAAA-BBBB-CCCC-DDDD-EEEEEEEEEEEE}" but for new applications
+   * a more readable form is encouraged: "appname@vendor.tld". Only
+   * the following characters are allowed: a-z A-Z 0-9 - . @ _ { } *
+   */
+  const char *ID;
+
+  /**
+   * The copyright information to print for the -h commandline flag,
+   * e.g. "Copyright (c) 2003 mozilla.org".
+   */
+  const char *copyright;
+
+  /**
+   * Combination of NS_XRE_ prefixed flags (defined below).
+   */
+  uint32_t flags;
+
+  /**
+   * The location of the XRE. XRE_main may not be able to figure this out
+   * programatically.
+   */
+  nsILocalFile* xreDirectory;
+
+  /**
+   * The minimum/maximum compatible XRE version.
+   */
+  const char *minVersion;
+  const char *maxVersion;
+
+  /**
+   * The server URL to send crash reports to.
+   */
+  const char *crashReporterURL;
+
+  /**
+   * The profile directory that will be used. Optional (may be null). Must not
+   * be the empty string, must be ASCII. The path is split into components
+   * along the path separator characters '/' and '\'.
+   *
+   * The application data directory ("UAppData", see below) is normally
+   * composed as follows, where $HOME is platform-specific:
+   *
+   *   UAppData = $HOME[/$vendor]/$name
+   *
+   * If present, the 'profile' string will be used instead of the combination of
+   * vendor and name as follows:
+   *
+   *   UAppData = $HOME/$profile
+   */
+  const char *profile;
+};
+
+/**
+ * Indicates whether or not the profile migrator service may be
+ * invoked at startup when creating a profile.
+ */
+#define NS_XRE_ENABLE_PROFILE_MIGRATOR (1 << 1)
+
+/**
+ * Indicates whether or not the extension manager service should be
+ * initialized at startup.
+ */
+#define NS_XRE_ENABLE_EXTENSION_MANAGER (1 << 2)
+
+/**
+ * Indicates whether or not to use Breakpad crash reporting.
+ */
+#define NS_XRE_ENABLE_CRASH_REPORTER (1 << 3)
+
+#endif // nsXREAppData_h
--- a/xpcom/build/nsXULAppAPI.h
+++ b/xpcom/build/nsXULAppAPI.h
@@ -16,17 +16,17 @@
  *
  * The Initial Developer of the Original Code is
  * Netscape Communications Corporation.
  * Portions created by the Initial Developer are Copyright (C) 2002
  * the Initial Developer. All Rights Reserved.
  *
  * Contributor(s):
  *  Brian Ryner <bryner@brianryner.com>
- *  Benjamin Smedberg <bsmedberg@covad.net>
+ *  Benjamin Smedberg <benjamin@smedbergs.us>
  *
  * Alternatively, the contents of this file may be used under the terms of
  * either the GNU General Public License Version 2 or later (the "GPL"), or
  * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
  * in which case the provisions of the GPL or the LGPL are applicable instead
  * of those above. If you wish to allow use of your version of this file only
  * under the terms of either the GPL or the LGPL, and not to allow others to
  * use your version of this file under the terms of the MPL, indicate your
@@ -41,139 +41,17 @@
 #define _nsXULAppAPI_h__
 
 #include "prtypes.h"
 #include "nsID.h"
 #include "xrecore.h"
 #include "nsXPCOM.h"
 #include "nsISupports.h"
 #include "prlog.h"
-
-/**
- * Application-specific data needed to start the apprunner.
- *
- * @note When this structure is allocated and manipulated by XRE_CreateAppData,
- *       string fields will be allocated with NS_Alloc, and interface pointers
- *       are strong references.
- */
-struct nsXREAppData
-{
-  /**
-   * This should be set to sizeof(nsXREAppData). This structure may be
-   * extended in future releases, and this ensures that binary compatibility
-   * is maintained.
-   */
-  PRUint32 size;
-
-  /**
-   * The directory of the application to be run. May be null if the
-   * xulrunner and the app are installed into the same directory.
-   */
-  nsILocalFile* directory;
-
-  /**
-   * The name of the application vendor. This must be ASCII, and is normally
-   * mixed-case, e.g. "Mozilla". Optional (may be null), but highly
-   * recommended. Must not be the empty string.
-   */
-  const char *vendor;
-
-  /**
-   * The name of the application. This must be ASCII, and is normally
-   * mixed-case, e.g. "Firefox". Required (must not be null or an empty
-   * string).
-   */
-  const char *name;
-
-  /**
-   * The major version, e.g. "0.8.0+". Optional (may be null), but
-   * required for advanced application features such as the extension
-   * manager and update service. Must not be the empty string.
-   */
-  const char *version;
-
-  /**
-   * The application's build identifier, e.g. "2004051604"
-   */
-  const char *buildID;
-
-  /**
-   * The application's UUID. Used by the extension manager to determine
-   * compatible extensions. Optional, but required for advanced application
-   * features such as the extension manager and update service.
-   *
-   * This has traditionally been in the form
-   * "{AAAAAAAA-BBBB-CCCC-DDDD-EEEEEEEEEEEE}" but for new applications
-   * a more readable form is encouraged: "appname@vendor.tld". Only
-   * the following characters are allowed: a-z A-Z 0-9 - . @ _ { } *
-   */
-  const char *ID;
-
-  /**
-   * The copyright information to print for the -h commandline flag,
-   * e.g. "Copyright (c) 2003 mozilla.org".
-   */
-  const char *copyright;
-
-  /**
-   * Combination of NS_XRE_ prefixed flags (defined below).
-   */
-  PRUint32 flags;
-
-  /**
-   * The location of the XRE. XRE_main may not be able to figure this out
-   * programatically.
-   */
-  nsILocalFile* xreDirectory;
-
-  /**
-   * The minimum/maximum compatible XRE version.
-   */
-  const char *minVersion;
-  const char *maxVersion;
-
-  /**
-   * The server URL to send crash reports to.
-   */
-  const char *crashReporterURL;
-
-  /**
-   * The profile directory that will be used. Optional (may be null). Must not
-   * be the empty string, must be ASCII. The path is split into components
-   * along the path separator characters '/' and '\'.
-   *
-   * The application data directory ("UAppData", see below) is normally
-   * composed as follows, where $HOME is platform-specific:
-   *
-   *   UAppData = $HOME[/$vendor]/$name
-   *
-   * If present, the 'profile' string will be used instead of the combination of
-   * vendor and name as follows:
-   *
-   *   UAppData = $HOME/$profile
-   */
-  const char *profile;
-};
-
-/**
- * Indicates whether or not the profile migrator service may be
- * invoked at startup when creating a profile.
- */
-#define NS_XRE_ENABLE_PROFILE_MIGRATOR (1 << 1)
-
-/**
- * Indicates whether or not the extension manager service should be
- * initialized at startup.
- */
-#define NS_XRE_ENABLE_EXTENSION_MANAGER (1 << 2)
-
-/**
- * Indicates whether or not to use Breakpad crash reporting.
- */
-#define NS_XRE_ENABLE_CRASH_REPORTER (1 << 3)
+#include "nsXREAppData.h"
 
 /**
  * A directory service key which provides the platform-correct "application
  * data" directory as follows, where $name and $vendor are as defined above and
  * $vendor is optional:
  *
  * Windows:
  *   HOME = Documents and Settings\$USER\Application Data