Browse Source

Import XULRunner and make it produce the generic stub

pull/1/head
NTD 4 years ago committed by Roy Tam
parent
commit
d3be0506a0
  1. 13
      application/xulrunner/README.xulrunner
  2. 13
      application/xulrunner/app.mozbuild
  3. 75
      application/xulrunner/app/Makefile.in
  4. BIN
      application/xulrunner/app/default16.png
  5. BIN
      application/xulrunner/app/default32.png
  6. BIN
      application/xulrunner/app/default48.png
  7. BIN
      application/xulrunner/app/document.ico
  8. 221
      application/xulrunner/app/install_app.py
  9. 31
      application/xulrunner/app/macbuild/Info.plist.in
  10. BIN
      application/xulrunner/app/macbuild/InfoPlist.strings
  11. 70
      application/xulrunner/app/moz.build
  12. 294
      application/xulrunner/app/nsXULRunnerApp.cpp
  13. 22
      application/xulrunner/app/splash.rc
  14. 38
      application/xulrunner/app/xulrunner.exe.manifest
  15. BIN
      application/xulrunner/app/xulrunner.ico
  16. 26
      application/xulrunner/app/xulrunner.js
  17. 9
      application/xulrunner/config/mozconfig
  18. 7
      application/xulrunner/config/mozconfigs/common
  19. 8
      application/xulrunner/config/mozconfigs/common.override
  20. 9
      application/xulrunner/config/mozconfigs/linux32/xulrunner
  21. 15
      application/xulrunner/config/mozconfigs/linux32/xulrunner-qt
  22. 9
      application/xulrunner/config/mozconfigs/linux64/xulrunner
  23. 9
      application/xulrunner/config/mozconfigs/macosx-universal/xulrunner
  24. 16
      application/xulrunner/config/mozconfigs/win32/xulrunner
  25. 15
      application/xulrunner/config/mozconfigs/win64/xulrunner
  26. 11
      application/xulrunner/configure.in
  27. 28
      application/xulrunner/confvars.sh
  28. 7
      application/xulrunner/examples/moz.build
  29. 43
      application/xulrunner/examples/simple/application.ini
  30. 7
      application/xulrunner/examples/simple/components/moz.build
  31. 13
      application/xulrunner/examples/simple/components/public/moz.build
  32. 15
      application/xulrunner/examples/simple/components/public/nsISimpleTest.idl
  33. 54
      application/xulrunner/examples/simple/components/src/SimpleTest.cpp
  34. 27
      application/xulrunner/examples/simple/components/src/SimpleTest.js
  35. 2
      application/xulrunner/examples/simple/components/src/SimpleTest.manifest
  36. 21
      application/xulrunner/examples/simple/components/src/moz.build
  37. 0
      application/xulrunner/examples/simple/content/contents.rdf
  38. 17
      application/xulrunner/examples/simple/content/simple.js
  39. 20
      application/xulrunner/examples/simple/content/simple.xul
  40. BIN
      application/xulrunner/examples/simple/icons/simple.ico
  41. 12
      application/xulrunner/examples/simple/jar.mn
  42. 7
      application/xulrunner/examples/simple/locale/simple.dtd
  43. 22
      application/xulrunner/examples/simple/moz.build
  44. 6
      application/xulrunner/examples/simple/simple-prefs.js
  45. 148
      application/xulrunner/installer/Makefile.in
  46. 7
      application/xulrunner/installer/debian/changelog.in
  47. 1
      application/xulrunner/installer/debian/compat
  48. 48
      application/xulrunner/installer/debian/control
  49. 36
      application/xulrunner/installer/debian/icon_base64
  50. 2
      application/xulrunner/installer/debian/menu
  51. 42
      application/xulrunner/installer/debian/postinst.in
  52. 29
      application/xulrunner/installer/debian/prerm.in
  53. 2
      application/xulrunner/installer/debian/xulrunner.links.in
  54. 4
      application/xulrunner/installer/debian/xulrunner.service.in
  55. 10
      application/xulrunner/installer/libxul-embedding.pc.in
  56. 11
      application/xulrunner/installer/libxul.pc.in
  57. 6
      application/xulrunner/installer/moz.build
  58. 10
      application/xulrunner/installer/mozilla-js.pc.in
  59. 11
      application/xulrunner/installer/mozilla-nspr.pc.in
  60. 10
      application/xulrunner/installer/mozilla-nss.pc.in
  61. 8
      application/xulrunner/installer/mozilla-plugin.pc.in
  62. 39
      application/xulrunner/locales/all-locales
  63. 11
      application/xulrunner/moz.build
  64. 7
      application/xulrunner/moz.configure
  65. 11
      application/xulrunner/stub/Makefile.in
  66. 51
      application/xulrunner/stub/moz.build
  67. 445
      application/xulrunner/stub/nsXULStub.cpp
  68. 38
      application/xulrunner/stub/xulrunner-stub.exe.manifest
  69. 6
      application/xulrunner/stub/xulrunner-stub.rc
  70. 11
      application/xulrunner/tools/redit/Makefile.in
  71. 15
      application/xulrunner/tools/redit/moz.build
  72. 187
      application/xulrunner/tools/redit/redit.cpp
  73. 10
      old-configure.in

13
application/xulrunner/README.xulrunner

@ -0,0 +1,13 @@
XULRunner is a package which can be used to run applications written in HTML
or XUL. It can also be used to embed the gecko rendering engine into
binary applications.
XULRunner is not a product; it is a tool which can be used to create products.
It is a byproduct of Firefox development and the Mozilla community does not
have a strong commitment to support XULRunner development apart from Firefox
development.
For more information about using XULRunner or how to use this binary package,
see the Mozilla Developer Center article:
https://developer.mozilla.org/en/XULRunner

13
application/xulrunner/app.mozbuild

@ -0,0 +1,13 @@
# vim: set filetype=python:
# 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('/toolkit/toolkit.mozbuild')
if CONFIG['MOZ_EXTENSIONS']:
DIRS += ['/extensions']
DIRS += [
'/application/xulrunner',
]

75
application/xulrunner/app/Makefile.in

@ -0,0 +1,75 @@
# vim:set ts=8 sw=8 sts=8 et:
# 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/.
GARBAGE += $(addprefix $(DIST)/bin/defaults/pref/,xulrunner.js)
ifeq (cocoa,$(MOZ_WIDGET_TOOLKIT))
TK_LIBS := -framework Cocoa $(TK_LIBS)
endif
ifndef MOZ_WINCONSOLE
ifdef MOZ_DEBUG
MOZ_WINCONSOLE = 1
else
MOZ_WINCONSOLE = 0
endif
endif
# This switches $(INSTALL) to copy mode, like $(SYSINSTALL), so things that
# shouldn't get 755 perms need $(IFLAGS1) for either way of calling nsinstall.
NSDISTMODE = copy
include $(topsrcdir)/config/config.mk
include $(topsrcdir)/config/rules.mk
DEFINES += -DXULRUNNER_ICO='"$(DIST)/branding/xulrunner.ico"' -DDOCUMENT_ICO='"$(DIST)/branding/document.ico"'
ifdef MOZ_WIDGET_GTK
libs::
$(INSTALL) $(IFLAGS1) $(DIST)/branding/default16.png $(DIST)/bin/chrome/icons/default
$(INSTALL) $(IFLAGS1) $(DIST)/branding/default32.png $(DIST)/bin/chrome/icons/default
$(INSTALL) $(IFLAGS1) $(DIST)/branding/default48.png $(DIST)/bin/chrome/icons/default
endif
# XXX applications would need to supply this file
#export:: brand.dtd.in
# $(call py_action,preprocessor,$(DEFINES) $(ACDEFINES) $^ -o brand.dtd)
ifeq (cocoa,$(MOZ_WIDGET_TOOLKIT))
FRAMEWORK_NAME = XUL
FRAMEWORK_VERSION = $(MOZILLA_VERSION)
FRAMEWORK_DIR = \
$(DIST)/$(FRAMEWORK_NAME).framework/Versions/$(FRAMEWORK_VERSION)
$(FRAMEWORK_DIR)/Resources:
$(NSINSTALL) -D $@
tools:: $(PROGRAM) $(FRAMEWORK_DIR)/Resources
$(NSINSTALL) $(srcdir)/macbuild/InfoPlist.strings $(FRAMEWORK_DIR)/Resources
sed -e 's/APP_VERSION/$(APP_VERSION)/' $(srcdir)/macbuild/Info.plist.in > $(FRAMEWORK_DIR)/Info.plist
rsync -av $(DIST)/bin/ $(FRAMEWORK_DIR) --exclude mangle --exclude shlibsign
rm -f $(DIST)/$(FRAMEWORK_NAME).framework/Versions/Current \
$(DIST)/$(FRAMEWORK_NAME).framework/libxpcom.dylib \
$(DIST)/$(FRAMEWORK_NAME).framework/XUL \
$(DIST)/$(FRAMEWORK_NAME).framework/xulrunner
ln -s $(FRAMEWORK_VERSION) $(DIST)/$(FRAMEWORK_NAME).framework/Versions/Current
ln -s Versions/Current/libxpcom.dylib $(DIST)/$(FRAMEWORK_NAME).framework/libxpcom.dylib
ln -s Versions/Current/XUL $(DIST)/$(FRAMEWORK_NAME).framework/XUL
ln -s Versions/Current/xulrunner $(DIST)/$(FRAMEWORK_NAME).framework/xulrunner
clean clobber::
rm -rf $(DIST)/$(FRAMEWORK_NAME).framework
endif
README_FILE = $(srcdir)/../README.xulrunner
libs::
$(INSTALL) $(IFLAGS1) $(README_FILE) $(DIST)/bin
$(INSTALL) $(IFLAGS1) $(topsrcdir)/LICENSE $(DIST)/bin
$(INSTALL) $(IFLAGS1) $(srcdir)/install_app.py $(DIST)/bin

BIN
application/xulrunner/app/default16.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 744 B

BIN
application/xulrunner/app/default32.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

BIN
application/xulrunner/app/default48.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 KiB

BIN
application/xulrunner/app/document.ico

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

221
application/xulrunner/app/install_app.py

@ -0,0 +1,221 @@
#!/usr/bin/env python
# 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/.
# Min version of python is 2.7
import sys
if ((sys.version_info.major != 2) or (sys.version_info.minor < 7)):
raise Exception("You need to use Python version 2.7 or higher")
import os, shutil, re, zipfile
from ConfigParser import SafeConfigParser
# Platform-specific support
# see https://developer.mozilla.org/en/XULRunner/Deploying_XULRunner_1.8
if sys.platform.startswith('linux') or sys.platform == "win32":
def installApp(appLocation, installDir, appName, greDir):
zipApp, iniParser, appName = validateArguments(appLocation, installDir, appName, greDir)
if (zipApp):
zipApp.extractAll(installDir)
else:
shutil.copytree(appLocation, installDir)
shutil.copy2(os.path.join(greDir, xulrunnerStubName),
os.path.join(installDir, appName))
copyGRE(greDir, os.path.join(installDir, "xulrunner"))
if sys.platform.startswith('linux'):
xulrunnerStubName = "xulrunner-stub"
def makeAppName(leafName):
return leafName.lower()
elif sys.platform == "win32":
xulrunnerStubName = "xulrunner-stub.exe"
def makeAppName(leafName):
return leafName + ".exe"
elif sys.platform == "darwin":
xulrunnerStubName = "xulrunner-stub"
def installApp(appLocation, installDir, appName, greDir):
zipApp, iniparser, appName = validateArguments(appLocation, installDir, appName, greDir)
installDir += "/" + appName + ".app"
resourcesDir = os.path.join(installDir, "Contents/Resources")
if (zipApp):
zipApp.extractAll(resourcesDir)
else:
shutil.copytree(appLocation, resourcesDir)
MacOSDir = os.path.join(installDir, "Contents/MacOS")
os.makedirs(MacOSDir)
shutil.copy2(os.path.join(greDir, xulrunnerStubName), MacOSDir)
copyGRE(greDir,
os.path.join(installDir, "Contents/Frameworks/XUL.framework"))
# Contents/Info.plist
contents = """<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleExecutable</key>
<string>xulrunner</string>
<key>NSAppleScriptEnabled</key>
<true/>
<key>CFBundleGetInfoString</key>
<string>$infoString</string>
<key>CFBundleName</key>
<string>$appName</string>
<key>CFBundleShortVersionString</key>
<string>$version</string>
<key>CFBundleVersion</key>
<string>$version.$buildID</string>
<key>CFBundleIdentifier</key>
<string>$reverseVendor</string>
</dict>
</plist>
"""
version = iniparser.get("App", "Version")
buildID = iniparser.get("App", "BuildID")
infoString = appName + " " + version
reverseVendor = "com.vendor.unknown"
appID = iniparser.get("App", "ID")
colonIndex = appID.find("@") + 1
if (colonIndex != 0):
vendor = appID[colonIndex:]
reverseVendor = ".".join(vendor.split(".")[::-1])
contents = contents.replace("$infoString", infoString)
contents = contents.replace("$appName", appName)
contents = contents.replace("$version", version)
contents = contents.replace("$buildID", buildID)
contents = contents.replace("$reverseVendor", reverseVendor)
infoPList = open(os.path.join(installDir, "Contents/Info.plist"), "w+b")
infoPList.write(contents)
infoPList.close()
def makeAppName(leafName):
return leafName
else:
# Implement xulrunnerStubName, installApp and makeAppName as above.
raise Exception("This operating system isn't supported for install_app.py yet!")
# End platform-specific support
def resolvePath(path):
return os.path.realpath(path)
def requireINIOption(iniparser, section, option):
if not (iniparser.has_option(section, option)):
raise Exception("application.ini must have a " + option + " option under the " + section + " section")
def checkAppINI(appLocation):
if (os.path.isdir(appLocation)):
zipApp = None
appINIPath = os.path.join(appLocation, "application.ini")
if not (os.path.isfile(appINIPath)):
raise Exception(appINIPath + " does not exist")
appINI = open(appINIPath)
elif (zipfile.is_zipfile(appLocation)):
zipApp = zipfile.ZipFile(appLocation)
if not ("application.ini" in zipApp.namelist()):
raise Exception("jar:" + appLocation + "!/application.ini does not exist")
appINI = zipApp.open("application.ini")
else:
raise Exception("appLocation must be a directory containing application.ini or a zip file with application.ini at its root")
# application.ini verification
iniparser = SafeConfigParser()
iniparser.readfp(appINI)
if not (iniparser.has_section("App")):
raise Exception("application.ini must have an App section")
if not (iniparser.has_section("Gecko")):
raise Exception("application.ini must have a Gecko section")
requireINIOption(iniparser, "App", "Name")
requireINIOption(iniparser, "App", "Version")
requireINIOption(iniparser, "App", "BuildID")
requireINIOption(iniparser, "App", "ID")
requireINIOption(iniparser, "Gecko", "MinVersion")
return zipApp, iniparser
pass
def copyGRE(greDir, targetDir):
shutil.copytree(greDir, targetDir, symlinks=True)
def validateArguments(appLocation, installDir, appName, greDir):
# application directory / zip verification
appLocation = resolvePath(appLocation)
# target directory
installDir = resolvePath(installDir)
if (os.path.exists(installDir)):
raise Exception("installDir must not exist: " + cmds.installDir)
greDir = resolvePath(greDir)
xulrunnerStubPath = os.path.isfile(os.path.join(greDir, xulrunnerStubName))
if not xulrunnerStubPath:
raise Exception("XULRunner stub executable not found: " + os.path.join(greDir, xulrunnerStubName))
# appName
zipApp, iniparser = checkAppINI(appLocation)
if not appName:
appName = iniparser.get("App", "Name")
appName = makeAppName(appName)
pattern = re.compile("[\\\/\:*?\"<>|\x00]")
if pattern.search(appName):
raise Exception("App name has illegal characters for at least one operating system")
return zipApp, iniparser, appName
def handleCommandLine():
import argparse
# Argument parsing.
parser = argparse.ArgumentParser(
description="XULRunner application installer",
usage="""install_app.py appLocation installDir greDir [--appName APPNAME]
install_app.py -h
install_app.py --version
"""
)
parser.add_argument(
"appLocation",
action="store",
help="The directory or ZIP file containing application.ini as a top-level child file"
)
parser.add_argument(
"installDir",
action="store",
help="The directory to install the application to"
)
parser.add_argument(
"--greDir",
action="store",
help="The directory containing the Gecko SDK (usually where this Python script lives)",
default=os.path.dirname(sys.argv[0])
)
parser.add_argument(
"--appName",
action="store",
help="The name of the application to install"
)
parser.add_argument("--version", action="version", version="%(prog)s 1.0")
# The command code.
cmds = parser.parse_args()
try:
installApp(cmds.appLocation, cmds.installDir, cmds.appName, cmds.greDir)
except exn:
shutil.rmtree(cmds.installDir)
raise exn
print cmds.appName + " application installed to " + cmds.installDir
if __name__ == '__main__':
handleCommandLine()

31
application/xulrunner/app/macbuild/Info.plist.in

@ -0,0 +1,31 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>English</string>
<key>CFBundleExecutable</key>
<string>xulrunner-bin</string>
<key>CFBundleIdentifier</key>
<string>org.mozilla.xulrunner</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>XULRunner</string>
<key>CFBundlePackageType</key>
<string>FMWK</string>
<key>CFBundleSignature</key>
<string>MOZB</string>
<key>CFBundleVersion</key>
<string>APP_VERSION</string>
<key>LSMinimumSystemVersion</key>
<string>10.5</string>
<key>LSMinimumSystemVersionByArchitecture</key>
<dict>
<key>i386</key>
<string>10.5.0</string>
<key>x86_64</key>
<string>10.6.0</string>
</dict>
</dict>
</plist>

BIN
application/xulrunner/app/macbuild/InfoPlist.strings

Binary file not shown.

70
application/xulrunner/app/moz.build

@ -0,0 +1,70 @@
# -*- Mode: python; c-basic-offset: 4; indent-tabs-mode: nil; tab-width: 40 -*-
# vim: set filetype=python:
# 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/.
GeckoProgram('xulrunner')
SOURCES += [
'nsXULRunnerApp.cpp',
]
DEFINES['XULRUNNER_PROGNAME'] = '"xulrunner"'
if CONFIG['MOZ_DEBUG']:
DEFINES['DEBUG'] = True
LOCAL_INCLUDES += [
'/toolkit/profile',
'/toolkit/xre',
'/xpcom/base',
'/xpcom/build',
]
if CONFIG['_MSC_VER']:
# Always enter a Windows program through wmain, whether or not we're
# a console application.
WIN32_EXE_LDFLAGS += ['-ENTRY:wmainCRTStartup']
# Control the default heap size.
# This is the heap returned by GetProcessHeap().
# As we use the CRT heap, the default size is too large and wastes VM.
#
# The default heap size is 1MB on Win32.
# The heap will grow if need be.
#
# Set it to 256k. See bug 127069.
if CONFIG['OS_ARCH'] == 'WINNT' and not CONFIG['GNU_CC']:
LDFLAGS += ['/HEAP:0x40000']
if CONFIG['OS_ARCH'] == 'WINNT':
RCINCLUDE = 'splash.rc'
OS_LIBS += [
'comctl32',
'comdlg32',
'uuid',
'shell32',
'ole32',
'oleaut32',
'version',
'winspool',
]
DISABLE_STL_WRAPPING = True
JS_PREFERENCE_PP_FILES += [
'xulrunner.js',
]
if CONFIG['OS_ARCH'] == 'WINNT':
BRANDING_FILES += [
'document.ico',
'xulrunner.ico',
]
if CONFIG['MOZ_WIDGET_GTK']:
BRANDING_FILES += [
'default16.png',
'default32.png',
'default48.png',
]

294
application/xulrunner/app/nsXULRunnerApp.cpp

@ -0,0 +1,294 @@
/* 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 "nsXULAppAPI.h"
#include "nsXPCOMGlue.h"
#include <stdio.h>
#include <stdlib.h>
#ifdef XP_WIN
#include <windows.h>
#if defined(_MSC_VER) && _MSC_VER < 1900
#define snprintf _snprintf
#endif
#define strcasecmp _stricmp
#endif
#include "nsAppRunner.h"
#include "nsIFile.h"
#include "nsCOMPtr.h"
#include "nsMemory.h"
#include "nsCRTGlue.h"
#include "nsStringAPI.h"
#include "nsServiceManagerUtils.h"
#include "plstr.h"
#include "prprf.h"
#include "prenv.h"
#include "nsINIParser.h"
#ifdef XP_WIN
#define XRE_DONT_SUPPORT_XPSP2 // See https://bugzil.la/1023941#c32
#include "nsWindowsWMain.cpp"
#endif
#include "BinaryPath.h"
#include "nsXPCOMPrivate.h" // for MAXPATHLEN and XPCOM_DLL
using namespace mozilla;
/**
* Output a string to the user. This method is really only meant to be used to
* output last-ditch error messages designed for developers NOT END USERS.
*
* @param isError
* Pass true to indicate severe errors.
* @param fmt
* printf-style format string followed by arguments.
*/
static void Output(bool isError, const char *fmt, ... )
{
va_list ap;
va_start(ap, fmt);
#if (defined(XP_WIN) && !MOZ_WINCONSOLE)
wchar_t msg[2048];
_vsnwprintf(msg, sizeof(msg)/sizeof(msg[0]), NS_ConvertUTF8toUTF16(fmt).get(), ap);
UINT flags = MB_OK;
if (isError)
flags |= MB_ICONERROR;
else
flags |= MB_ICONINFORMATION;
MessageBoxW(nullptr, msg, L"XULRunner", flags);
#else
vfprintf(stderr, fmt, ap);
#endif
va_end(ap);
}
/**
* Return true if |arg| matches the given argument name.
*/
static bool IsArg(const char* arg, const char* s)
{
if (*arg == '-')
{
if (*++arg == '-')
++arg;
return !strcasecmp(arg, s);
}
#if defined(XP_WIN)
if (*arg == '/')
return !strcasecmp(++arg, s);
#endif
return false;
}
static nsresult
GetGREVersion(const char *argv0,
nsACString *aMilestone,
nsACString *aVersion)
{
if (aMilestone)
aMilestone->AssignLiteral("<Error>");
if (aVersion)
aVersion->AssignLiteral("<Error>");
nsCOMPtr<nsIFile> iniFile;
nsresult rv = BinaryPath::GetFile(argv0, getter_AddRefs(iniFile));
if (NS_FAILED(rv))
return rv;
iniFile->SetNativeLeafName(NS_LITERAL_CSTRING("platform.ini"));
nsINIParser parser;
rv = parser.Init(iniFile);
if (NS_FAILED(rv))
return rv;
if (aMilestone) {
rv = parser.GetString("Build", "Milestone", *aMilestone);
if (NS_FAILED(rv))
return rv;
}
if (aVersion) {
rv = parser.GetString("Build", "BuildID", *aVersion);
if (NS_FAILED(rv))
return rv;
}
return NS_OK;
}
static void Usage(const char *argv0)
{
nsAutoCString milestone;
GetGREVersion(argv0, &milestone, nullptr);
// display additional information (XXX make localizable?)
Output(false,
"Mozilla XULRunner %s\n\n"
"Usage: " XULRUNNER_PROGNAME " [OPTIONS]\n"
" " XULRUNNER_PROGNAME " APP-FILE [APP-OPTIONS...]\n"
"\n"
"OPTIONS\n"
" --app specify APP-FILE (optional)\n"
" -h, --help show this message\n"
" -v, --version show version\n"
" --gre-version print the GRE version string on stdout\n"
"\n"
"APP-FILE\n"
" Application initialization file.\n"
"\n"
"APP-OPTIONS\n"
" Application specific options.\n",
milestone.get());
}
XRE_GetFileFromPathType XRE_GetFileFromPath;
XRE_CreateAppDataType XRE_CreateAppData;
XRE_FreeAppDataType XRE_FreeAppData;
XRE_mainType XRE_main;
static const nsDynamicFunctionLoad kXULFuncs[] = {
{ "XRE_GetFileFromPath", (NSFuncPtr*) &XRE_GetFileFromPath },
{ "XRE_CreateAppData", (NSFuncPtr*) &XRE_CreateAppData },
{ "XRE_FreeAppData", (NSFuncPtr*) &XRE_FreeAppData },
{ "XRE_main", (NSFuncPtr*) &XRE_main },
{ nullptr, nullptr }
};
class AutoAppData
{
public:
AutoAppData(nsIFile* aINIFile) : mAppData(nullptr) {
nsresult rv = XRE_CreateAppData(aINIFile, &mAppData);
if (NS_FAILED(rv))
mAppData = nullptr;
}
~AutoAppData() {
if (mAppData)
XRE_FreeAppData(mAppData);
}
operator nsXREAppData*() const { return mAppData; }
nsXREAppData* operator -> () const { return mAppData; }
private:
nsXREAppData* mAppData;
};
int main(int argc, char* argv[])
{
char exePath[MAXPATHLEN];
nsresult rv = mozilla::BinaryPath::Get(argv[0], exePath);
if (NS_FAILED(rv)) {
Output(true, "Couldn't calculate the application directory.\n");
return 255;
}
char *lastSlash = strrchr(exePath, XPCOM_FILE_PATH_SEPARATOR[0]);
if (!lastSlash || (size_t(lastSlash - exePath) > MAXPATHLEN - sizeof(XPCOM_DLL) - 1))
return 255;
strcpy(++lastSlash, XPCOM_DLL);
rv = XPCOMGlueStartup(exePath);
if (NS_FAILED(rv)) {
Output(true, "Couldn't load XPCOM.\n");
return 255;
}
if (argc > 1 && (IsArg(argv[1], "h") ||
IsArg(argv[1], "help") ||
IsArg(argv[1], "?")))
{
Usage(argv[0]);
return 0;
}
if (argc == 2 && (IsArg(argv[1], "v") || IsArg(argv[1], "version")))
{
nsAutoCString milestone;
nsAutoCString version;
GetGREVersion(argv[0], &milestone, &version);
Output(false, "Mozilla XULRunner %s - %s\n",
milestone.get(), version.get());
return 0;
}
rv = XPCOMGlueLoadXULFunctions(kXULFuncs);
if (NS_FAILED(rv)) {
Output(true, "Couldn't load XRE functions.\n");
return 255;
}
if (argc > 1) {
nsAutoCString milestone;
rv = GetGREVersion(argv[0], &milestone, nullptr);
if (NS_FAILED(rv))
return 2;
if (IsArg(argv[1], "gre-version")) {
if (argc != 2) {
Usage(argv[0]);
return 1;
}
printf("%s\n", milestone.get());
return 0;
}
if (IsArg(argv[1], "install-app")) {
Output(true, "--install-app support has been removed. Use 'python install-app.py' instead.\n");
return 1;
}
}
const char *appDataFile = getenv("XUL_APP_FILE");
if (!(appDataFile && *appDataFile)) {
if (argc < 2) {
Usage(argv[0]);
return 1;
}
if (IsArg(argv[1], "app")) {
if (argc == 2) {
Usage(argv[0]);
return 1;
}
argv[1] = argv[0];
++argv;
--argc;
}
appDataFile = argv[1];
argv[1] = argv[0];
++argv;
--argc;
static char kAppEnv[MAXPATHLEN];
snprintf(kAppEnv, MAXPATHLEN, "XUL_APP_FILE=%s", appDataFile);
putenv(kAppEnv);
}
nsCOMPtr<nsIFile> appDataLF;
rv = XRE_GetFileFromPath(appDataFile, getter_AddRefs(appDataLF));
if (NS_FAILED(rv)) {
Output(true, "Error: unrecognized application.ini path.\n");
return 2;
}
AutoAppData appData(appDataLF);
if (!appData) {
Output(true, "Error: couldn't parse application.ini.\n");
return 2;
}
return XRE_main(argc, argv, appData, 0);
}

22
application/xulrunner/app/splash.rc

@ -0,0 +1,22 @@
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* 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 <windows.h>
#include "nsNativeAppSupportWin.h"
1 24 "xulrunner.exe.manifest"
IDI_APPICON ICON XULRUNNER_ICO
IDI_DOCUMENT ICON DOCUMENT_ICO
IDI_APPLICATION ICON XULRUNNER_ICO
STRINGTABLE DISCARDABLE
BEGIN
#ifdef DEBUG
IDS_STARTMENU_APPNAME, "Firefox Debug"
#else
IDS_STARTMENU_APPNAME, "Firefox"
#endif
END

38
application/xulrunner/app/xulrunner.exe.manifest

@ -0,0 +1,38 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity
version="1.0.0.0"
processorArchitecture="*"
name="Mozilla.XULRunner"
type="win32"
/>
<description>Mozilla XULRunner</description>
<dependency>
<dependentAssembly>
<assemblyIdentity
type="win32"
name="Microsoft.Windows.Common-Controls"
version="6.0.0.0"
processorArchitecture="*"
publicKeyToken="6595b64144ccf1df"
language="*"
/>
</dependentAssembly>
</dependency>
<ms_asmv3:trustInfo xmlns:ms_asmv3="urn:schemas-microsoft-com:asm.v3">
<ms_asmv3:security>
<ms_asmv3:requestedPrivileges>
<ms_asmv3:requestedExecutionLevel level="asInvoker" uiAccess="false" />
</ms_asmv3:requestedPrivileges>
</ms_asmv3:security>
</ms_asmv3:trustInfo>
<compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
<application>
<supportedOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}"/>
<supportedOS Id="{1f676c76-80e1-4239-95bb-83d0f6d0da78}"/>
<supportedOS Id="{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}"/>
<supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}"/>
<supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}"/>
</application>
</compatibility>
</assembly>

BIN
application/xulrunner/app/xulrunner.ico

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

26
application/xulrunner/app/xulrunner.js

@ -0,0 +1,26 @@
/* 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/. */
#filter substitution
// We need to override the default values of these preferences since all.js
// assumes these are in the navigator package, which for us is nonexistent.
// XXX(darin): perhaps all.js should not be seamonkey specific
pref("general.useragent.locale", "@AB_CD@");
pref("xpinstall.dialog.confirm", "chrome://mozapps/content/xpinstall/xpinstallConfirm.xul");
pref("xpinstall.dialog.progress.chrome", "chrome://mozapps/content/extensions/extensions.xul");
pref("xpinstall.dialog.progress.skin", "chrome://mozapps/content/extensions/extensions.xul");
pref("xpinstall.dialog.progress.type.chrome", "Extension:Manager");
pref("xpinstall.dialog.progress.type.skin", "Extension:Manager");
pref("xpinstall.enabled", true);
#ifdef XP_WIN
pref("browser.preferences.instantApply", false);
#else
pref("browser.preferences.instantApply", true);
#endif
#ifdef XP_MACOSX
pref("browser.preferences.animateFadeIn", true);
#else
pref("browser.preferences.animateFadeIn", false);
#endif

9
application/xulrunner/config/mozconfig

@ -0,0 +1,9 @@
# 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/.
# This file specifies the build flags for XULRunner. You can use it by adding:
# . $topsrcdir/xulrunner/config/mozconfig
# to the top of your mozconfig file.
ac_add_options --enable-application=xulrunner

7
application/xulrunner/config/mozconfigs/common

@ -0,0 +1,7 @@
# 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/.
# This file is included at the top of all xulrunner mozconfigs
. "$topsrcdir/build/mozconfig.common"

8
application/xulrunner/config/mozconfigs/common.override

@ -0,0 +1,8 @@
# 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/.
# This file is included at the bottom of all xulrunner mozconfigs
. "$topsrcdir/build/mozconfig.common.override"
. "$topsrcdir/build/mozconfig.cache"

9
application/xulrunner/config/mozconfigs/linux32/xulrunner

@ -0,0 +1,9 @@
export MOZILLA_OFFICIAL=1
export JAVA_HOME=/tools/jdk
ac_add_options --enable-application=xulrunner
ac_add_options --disable-tests
. $topsrcdir/build/unix/mozconfig.linux32
. "$topsrcdir/xulrunner/config/mozconfigs/common.override"

15
application/xulrunner/config/mozconfigs/linux32/xulrunner-qt

@ -0,0 +1,15 @@
export MOZILLA_OFFICIAL=1
export JAVA_HOME=/tools/jdk
ac_add_options --enable-application=xulrunner
ac_add_options --disable-tests
. $topsrcdir/build/unix/mozconfig.linux32
# QT Options
export PKG_CONFIG_PATH=/tools/qt-4.6.3/qt/lib/pkgconfig
ac_add_options --with-qtdir=/tools/qt-4.6.3/qt
ac_add_options --enable-default-toolkit=cairo-qt
ac_add_options --disable-crashreporter
. "$topsrcdir/xulrunner/config/mozconfigs/common.override"

9
application/xulrunner/config/mozconfigs/linux64/xulrunner

@ -0,0 +1,9 @@
export MOZILLA_OFFICIAL=1
export JAVA_HOME=/tools/jdk
ac_add_options --enable-application=xulrunner
ac_add_options --disable-tests
. $topsrcdir/build/unix/mozconfig.linux
. "$topsrcdir/xulrunner/config/mozconfigs/common.override"

9
application/xulrunner/config/mozconfigs/macosx-universal/xulrunner

@ -0,0 +1,9 @@
. $topsrcdir/build/macosx/universal/mozconfig
export MOZILLA_OFFICIAL=1
ac_add_options --enable-application=xulrunner
ac_add_options --disable-tests
ac_add_options --with-xulrunner-stub-name=xulrunner-stub
. "$topsrcdir/xulrunner/config/mozconfigs/common.override"

16
application/xulrunner/config/mozconfigs/win32/xulrunner

@ -0,0 +1,16 @@
. "$topsrcdir/xulrunner/config/mozconfigs/common"
export MOZILLA_OFFICIAL=1
export JAVA_HOME=/d/jdk1.6.0_14
ac_add_options --enable-application=xulrunner
ac_add_options --enable-jemalloc
ac_add_options --disable-tests
if test "$PROCESSOR_ARCHITECTURE" = "AMD64" -o "$PROCESSOR_ARCHITEW6432" = "AMD64"; then
. $topsrcdir/build/win32/mozconfig.vs2013-win64
else
. $topsrcdir/build/win32/mozconfig.vs2010
fi
. "$topsrcdir/xulrunner/config/mozconfigs/common.override"

15
application/xulrunner/config/mozconfigs/win64/xulrunner

@ -0,0 +1,15 @@
. "$topsrcdir/xulrunner/config/mozconfigs/common"
ac_add_options --target=x86_64-pc-mingw32
ac_add_options --host=x86_64-pc-mingw32
export MOZILLA_OFFICIAL=1
export JAVA_HOME=/d/jdk1.6.0_14
ac_add_options --enable-application=xulrunner
ac_add_options --enable-jemalloc
ac_add_options --disable-tests
. $topsrcdir/build/win64/mozconfig.vs2013
. "$topsrcdir/xulrunner/config/mozconfigs/common.override"

11
application/xulrunner/configure.in

@ -0,0 +1,11 @@
dnl -*- Mode: Autoconf; tab-width: 2; indent-tabs-mode: nil; -*-
dnl vi: set tabstop=2 shiftwidth=2 expandtab:
dnl This Source Code Form is subject to the terms of the Mozilla Public
dnl License, v. 2.0. If a copy of the MPL was not distributed with this
dnl file, You can obtain one at http://mozilla.org/MPL/2.0/.
dnl Things we need to carry from confvars.sh
AC_SUBST(MOZ_XULRUNNER)
AC_DEFINE(MOZ_XULRUNNER)
dnl Optional parts of the build.

28
application/xulrunner/confvars.sh

@ -0,0 +1,28 @@
#! /bin/sh
# 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/.
MOZ_XULRUNNER=1
MC_OFFICIAL=1
MOZ_APP_NAME=xulrunner
MOZ_APP_DISPLAYNAME=XULRunner
MOZ_APP_VERSION=$MOZILLA_VERSION
MOZ_CHROME_FILE_FORMAT=omni
MOZ_UPDATER=1
if test "$OS_ARCH" = "WINNT"; then
MOZ_MAINTENANCE_SERVICE=
fi
MOZ_PLACES=1
MOZ_WEBRTC=1
MOZ_WEBGL_CONFORMANT=1
MOZ_EXTENSIONS_DEFAULT=" gio"
MOZ_SERVICES_COMMON=1
MOZ_SERVICES_SYNC=1
MOZ_SERVICES_HEALTHREPORT=

7
application/xulrunner/examples/moz.build

@ -0,0 +1,7 @@
# -*- Mode: python; c-basic-offset: 4; indent-tabs-mode: nil; tab-width: 40 -*-
# vim: set filetype=python:
# 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/.
DIRS += ['simple']

43
application/xulrunner/examples/simple/application.ini

@ -0,0 +1,43 @@
#filter substitution
[App]
;
; This field specifies your organization's name. This field is recommended,
; but optional.
Vendor=MozillaTest
;
; This field specifies your application's name. This field is required.
Name=Simple
;
; This field specifies your application's version. This field is required.
Version=0.1
;
; This field specifies your application's build ID (timestamp). This field is
; required.
BuildID=20070625
;
; This field specifies a compact copyright notice for your application. This
; field is optional.
Copyright=Copyright (c) 2004 Mozilla.org
;
; This ID is just an example. Every XUL app ought to have it's own unique ID.
; You can use the microsoft "guidgen" or "uuidgen" tools, or go on
; irc.mozilla.org and /msg botbot uuid. This field is optional.
ID={3aea3f07-ffe3-4060-bb03-bff3a5365e90}
[Gecko]
;
; This field is required. It specifies the minimum Gecko version that this
; application requires.
MinVersion=@MOZILLA_VERSION_U@
;
; This field is optional. It specifies the maximum Gecko version that this
; application requires. It should be specified if your application uses
; unfrozen interfaces.
MaxVersion=@MOZILLA_VERSION_U@
[Shell]
;
; This field specifies the location of your application's main icon with file
; extension excluded. NOTE: Unix style file separators are required. This
; field is optional.
Icon=chrome/icons/default/simple

7
application/xulrunner/examples/simple/components/moz.build

@ -0,0 +1,7 @@
# -*- Mode: python; c-basic-offset: 4; indent-tabs-mode: nil; tab-width: 40 -*-
# vim: set filetype=python:
# 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/.
DIRS += ['public', 'src']

13
application/xulrunner/examples/simple/components/public/moz.build

@ -0,0 +1,13 @@
# -*- Mode: python; c-basic-offset: 4; indent-tabs-mode: nil; tab-width: 40 -*-
# vim: set filetype=python:
# 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/.
XPIDL_SOURCES += [
'nsISimpleTest.idl',
]
XPIDL_MODULE = 'simple'
XPI_NAME = 'simple'

15
application/xulrunner/examples/simple/components/public/nsISimpleTest.idl

@ -0,0 +1,15 @@
/* vim:set ts=2 sw=2 sts=2 et cin: */
/* 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"
[scriptable, uuid(f2f71d91-0451-47ec-aaa0-166663a7711a)]
interface nsISimpleTest : nsISupports
{
/**
* This interface adds two numbers together and returns the result.
*/
long add(in long a, in long b);
};

54
application/xulrunner/examples/simple/components/src/SimpleTest.cpp

@ -0,0 +1,54 @@
/* vim:set ts=2 sw=2 sts=2 et cin: */
/* 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 <stdio.h>
#include "nsISimpleTest.h"
#include "mozilla/ModuleUtils.h"
class SimpleTest : public nsISimpleTest
{
~SimpleTest() {}
public:
NS_DECL_ISUPPORTS
NS_DECL_NSISIMPLETEST
};
NS_IMPL_ISUPPORTS(SimpleTest, nsISimpleTest)
NS_IMETHODIMP
SimpleTest::Add(int32_t a, int32_t b, int32_t *r)
{
printf("add(%d,%d) from C++\n", a, b);
*r = a + b;
return NS_OK;
}
NS_GENERIC_FACTORY_CONSTRUCTOR(SimpleTest)
// 5e14b432-37b6-4377-923b-c987418d8429
#define SIMPLETEST_CID \
{ 0x5e14b432, 0x37b6, 0x4377, \
{ 0x92, 0x3b, 0xc9, 0x87, 0x41, 0x8d, 0x84, 0x29 } }
NS_DEFINE_NAMED_CID(SIMPLETEST_CID);
static const mozilla::Module::CIDEntry kSimpleCIDs[] = {
{ &kSIMPLETEST_CID, false, nullptr, SimpleTestConstructor },
{ nullptr }
};
static const mozilla::Module::ContractIDEntry kSimpleContracts[] = {
{ "@test.mozilla.org/simple-test;1?impl=c++", &kSIMPLETEST_CID },
{ nullptr }
};
static const mozilla::Module kSimpleModule = {
mozilla::Module::kVersion,
kSimpleCIDs,
kSimpleContracts
};
NSMODULE_DEFN(SimpleTestModule) = &kSimpleModule;

27
application/xulrunner/examples/simple/components/src/SimpleTest.js

@ -0,0 +1,27 @@
/* vim:set ts=2 sw=2 sts=2 et cin: */
/* 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/. */
Components.utils.import("resource://gre/modules/XPCOMUtils.jsm");
function SimpleTest() {
}
SimpleTest.prototype = {
classID: Components.ID("{4177e257-a0dc-49b9-a774-522a000a49fa}"),
QueryInterface: function(iid) {
if (iid.equals(Components.interfaces.nsISimpleTest) ||
iid.equals(Components.interfaces.nsISupports))
return this;
throw Components.results.NS_ERROR_NO_INTERFACE;
},
add: function(a, b) {
dump("add(" + a + "," + b + ") from JS\n");
return a + b;
}
};
this.NSGetFactory = XPCOMUtils.generateNSGetFactory([SimpleTest]);

2
application/xulrunner/examples/simple/components/src/SimpleTest.manifest

@ -0,0 +1,2 @@
component {4177e257-a0dc-49b9-a774-522a000a49fa} SimpleTest.js
contract @test.mozilla.org/simple-test;1?impl=js {4177e257-a0dc-49b9-a774-522a000a49fa}

21
application/xulrunner/examples/simple/components/src/moz.build

@ -0,0 +1,21 @@
# -*- Mode: python; c-basic-offset: 4; indent-tabs-mode: nil; tab-width: 40 -*-
# vim: set filetype=python:
# 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/.
SOURCES += [
'SimpleTest.cpp',
]
XPCOMBinaryComponent('simpletest')
EXTRA_COMPONENTS += [
'SimpleTest.js',
'SimpleTest.manifest',
]
XPI_NAME = 'simple'
if CONFIG['GNU_CXX']:
CXXFLAGS += ['-Wshadow']

0
application/xulrunner/examples/simple/content/contents.rdf

17
application/xulrunner/examples/simple/content/simple.js

@ -0,0 +1,17 @@
/* vim:set ts=2 sw=2 sts=2 et cin: */
/* 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/. */
function onButtonClick() {
var textbox = document.getElementById("textbox");
var contractid = (textbox.value % 2 == 0) ?
"@test.mozilla.org/simple-test;1?impl=js" :
"@test.mozilla.org/simple-test;1?impl=c++";
var test = Components.classes[contractid].
createInstance(Components.interfaces.nsISimpleTest);
textbox.value = test.add(textbox.value, 1);
}

20
application/xulrunner/examples/simple/content/simple.xul

@ -0,0 +1,20 @@
<?xml version="1.0"?>
# vim:set ts=8 sw=8 sts=8 noet:
# 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/.
<?xml-stylesheet href="chrome://global/skin/" type="text/css"?>
<!DOCTYPE window SYSTEM "chrome://simple/locale/simple.dtd">
<window
id = "simple"
title = "&simple.title;"
xmlns = "http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
<script src="chrome://simple/content/simple.js"/>
<vbox>
<textbox id="textbox" value="&simple.textValue;" flex="1"/>
<button id="button" label="&simple.buttonLabel;" oncommand="onButtonClick();"/>
</vbox>
</window>

BIN
application/xulrunner/examples/simple/icons/simple.ico

Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

12
application/xulrunner/examples/simple/jar.mn

@ -0,0 +1,12 @@
# 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/.
simple.jar:
% content simple %content/
content/simple.xul (content/simple.xul)
content/simple.js (content/simple.js)
en-US.jar:
% locale simple en-US %locale/en-US/
locale/en-US/simple.dtd (locale/simple.dtd)

7
application/xulrunner/examples/simple/locale/simple.dtd

@ -0,0 +1,7 @@
<!-- 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/. -->
<!ENTITY simple.title "Simple App">
<!ENTITY simple.textValue "0">
<!ENTITY simple.buttonLabel "Increment">

22
application/xulrunner/examples/simple/moz.build

@ -0,0 +1,22 @@
# -*- Mode: python; c-basic-offset: 4; indent-tabs-mode: nil; tab-width: 40 -*-
# vim: set filetype=python:
# 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/.
DIRS += ['components']
XPI_NAME = 'simple'
JAR_MANIFESTS += ['jar.mn']
JS_PREFERENCE_FILES += [
'simple-prefs.js',
]
FINAL_TARGET_PP_FILES += [
'application.ini',
]
if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'windows':
FINAL_TARGET_FILES.chrome.icons.default += ['icons/simple.ico']

6
application/xulrunner/examples/simple/simple-prefs.js

@ -0,0 +1,6 @@
/* 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/. */
pref("toolkit.defaultChromeURI", "chrome://simple/content/simple.xul");
pref("general.useragent.extra.simple", "SimpleApp/0.1");

148
application/xulrunner/installer/Makefile.in

@ -0,0 +1,148 @@
# 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/.
STANDALONE_MAKEFILE := 1
NO_PKG_FILES = \
xulrunner-config \
regchrome* \
regxpcom* \
$(NULL)
# We want xpcshell, run-mozilla and install_app.py in the SDK but not in the binary package.
ifndef STAGE_SDK
NO_PKG_FILES += \
xpcshell* \
run-mozilla* \
install_app.py \
$(NULL)
endif
# If we're on mac, we don't want an end-user-facing DMG, we want a .tar.bz2
# which developers then use to package their application.
ifeq (cocoa,$(MOZ_WIDGET_TOOLKIT))
MOZ_PKG_FORMAT = BZ2
_APPNAME = XUL.framework
_BINPATH = /$(_APPNAME)/Versions/Current
_RESPATH := $(_BINPATH)
endif
include $(topsrcdir)/config/rules.mk
INSTALL_SDK = 1
include $(topsrcdir)/toolkit/mozapps/installer/signing.mk
include $(topsrcdir)/toolkit/mozapps/installer/packager.mk
# Add pkg-config files to the install:: target
pkg_config_files = \
libxul.pc \
libxul-embedding.pc \
mozilla-js.pc \
mozilla-plugin.pc \
$(NULL)
ifdef MOZ_NATIVE_NSPR
NSPR_NAME=nspr
NSPR_VERSION=$(shell $(NSPR_CONFIG) --version)
else
pkg_config_files += mozilla-nspr.pc
NSPR_NAME=mozilla-nspr
FULL_NSPR_CFLAGS=-I\$${includedir}
FULL_NSPR_LIBS=$(subst $(prefix),\$${sdkdir},$(shell $(DEPTH)/nsprpub/config/nspr-config --libs))
NSPR_VERSION=$(shell $(DEPTH)/nsprpub/config/nspr-config --version)
endif
MOZ_XUL_LINK = -lxpcomglue_s -lxul
ifdef JS_SHARED_LIBRARY
MOZ_JS_LINK = -lmozjs
else
MOZ_JS_LINK = $(MOZ_XUL_LINK)
endif
$(warning FULL_NSPR_CFLAGS=$(FULL_NSPR_CFLAGS))
ifndef MOZ_NATIVE_NSS
pkg_config_files += mozilla-nss.pc
endif