diff --git a/config/autoconf.mk.in b/config/autoconf.mk.in index 532851a347bd..97becf183350 100644 --- a/config/autoconf.mk.in +++ b/config/autoconf.mk.in @@ -145,7 +145,6 @@ MOZ_TOOLKIT_SEARCH = @MOZ_TOOLKIT_SEARCH@ MOZ_PLACES = @MOZ_PLACES@ MOZ_STORAGE = @MOZ_STORAGE@ MOZ_SAFE_BROWSING = @MOZ_SAFE_BROWSING@ -MOZ_FASTSTART = @MOZ_FASTSTART@ MOZ_URL_CLASSIFIER = @MOZ_URL_CLASSIFIER@ MOZ_ZIPWRITER = @MOZ_ZIPWRITER@ MOZ_MORK = @MOZ_MORK@ diff --git a/configure.in b/configure.in index 48f6da283c9c..f2c0e36b50ba 100644 --- a/configure.in +++ b/configure.in @@ -4802,7 +4802,6 @@ MOZ_PSM=1 MOZ_RDF=1 MOZ_REFLOW_PERF= MOZ_SAFE_BROWSING= -MOZ_FASTSTART= MOZ_HELP_VIEWER= MOZ_SPELLCHECK=1 MOZ_SPLASHSCREEN= @@ -6771,18 +6770,6 @@ if test -n "$MOZ_SAFE_BROWSING"; then fi AC_SUBST(MOZ_SAFE_BROWSING) -dnl ======================================================== -dnl = Enable faststart component -dnl ======================================================== -MOZ_ARG_ENABLE_BOOL(faststart, -[ --enable-faststart Enable the faststart component], - MOZ_FASTSTART=1, - MOZ_FASTSTART= ) -if test -n "$MOZ_FASTSTART"; then - AC_DEFINE(MOZ_FASTSTART) -fi -AC_SUBST(MOZ_FASTSTART) - dnl ======================================================== dnl = Enable url-classifier dnl ======================================================== diff --git a/mobile/app/Makefile.in b/mobile/app/Makefile.in index 6fb5cb1125e9..1c062dc4a0a9 100644 --- a/mobile/app/Makefile.in +++ b/mobile/app/Makefile.in @@ -135,7 +135,6 @@ REDIT_PATH = $(LIBXUL_DIST)/bin endif APP_BINARY = $(MOZ_APP_NAME)$(BIN_SUFFIX) -APP_BINARY_FASTSTART = $(MOZ_APP_NAME)faststart$(BIN_SUFFIX) ifeq (cocoa,$(MOZ_WIDGET_TOOLKIT)) @@ -183,10 +182,6 @@ libs:: ifdef LIBXUL_SDK cp $(LIBXUL_DIST)/bin/xulrunner-stub$(BIN_SUFFIX) $(DIST)/bin/$(APP_BINARY) endif -ifdef MOZ_FASTSTART -ifdef _MSC_VER -endif -endif ifndef SKIP_COPY_XULRUNNER ifdef LIBXUL_SDK $(NSINSTALL) -D $(DIST)/bin/xulrunner diff --git a/toolkit/Makefile.in b/toolkit/Makefile.in index 4ac7f3a90849..ee06b264475d 100644 --- a/toolkit/Makefile.in +++ b/toolkit/Makefile.in @@ -63,13 +63,6 @@ PARALLEL_DIRS = \ themes \ $(NULL) -ifeq ($(OS_ARCH),WINCE) -ifdef WINCE_WINDOWS_MOBILE -DIRS += mozapps/readstrings -DIRS += mozapps/installer/wince -endif -endif - ifneq (,$(filter gtk2 qt,$(MOZ_WIDGET_TOOLKIT))) PARALLEL_DIRS += system/unixproxy endif diff --git a/toolkit/components/Makefile.in b/toolkit/components/Makefile.in index 52fa4af3bd62..c3e2d8f1bc93 100644 --- a/toolkit/components/Makefile.in +++ b/toolkit/components/Makefile.in @@ -120,10 +120,6 @@ ifdef MOZ_URL_CLASSIFIER PARALLEL_DIRS += url-classifier endif -ifdef MOZ_FASTSTART -PARALLEL_DIRS += faststart -endif - DIRS += \ build \ $(NULL) diff --git a/toolkit/components/alerts/resources/content/alert.js b/toolkit/components/alerts/resources/content/alert.js index 20931b2b78be..40d5ab806728 100644 --- a/toolkit/components/alerts/resources/content/alert.js +++ b/toolkit/components/alerts/resources/content/alert.js @@ -142,7 +142,6 @@ function onAlertLoad() if (window.innerWidth == contentDim.width + 1) --window.innerWidth; -#ifndef WINCE // Start with a 1px width/height, because 0 causes trouble with gtk1/2 gCurrentSize = 1; @@ -157,7 +156,6 @@ function onAlertLoad() gFinalSize = window.outerHeight; window.outerHeight = gCurrentSize; } -#endif // Determine position var x = gOrigin & NS_ALERT_LEFT ? screen.availLeft : @@ -173,11 +171,7 @@ function onAlertLoad() window.moveTo(x, y); -#ifndef WINCE setTimeout(animateAlert, gSlideTime); -#else - setTimeout(closeAlert, gOpenTime); -#endif } function animate(step) diff --git a/toolkit/components/downloads/nsDownloadManager.cpp b/toolkit/components/downloads/nsDownloadManager.cpp index 8559154c58dd..c1055202a562 100644 --- a/toolkit/components/downloads/nsDownloadManager.cpp +++ b/toolkit/components/downloads/nsDownloadManager.cpp @@ -69,7 +69,7 @@ #include "nsEmbedCID.h" #include "nsToolkitCompsCID.h" -#if defined(XP_WIN) && !defined(WINCE) +#ifdef XP_WIN #include #ifdef DOWNLOAD_SCANNER #include "nsDownloadScanner.h" @@ -1139,7 +1139,7 @@ nsDownloadManager::GetDefaultDownloadsDirectory(nsILocalFile **aResult) NS_GET_IID(nsILocalFile), getter_AddRefs(downloadDir)); NS_ENSURE_SUCCESS(rv, rv); -#elif defined(XP_WIN) && !defined(WINCE) +#elif defined(XP_WIN) rv = dirService->Get(NS_WIN_DEFAULT_DOWNLOAD_DIR, NS_GET_IID(nsILocalFile), getter_AddRefs(downloadDir)); @@ -2243,7 +2243,7 @@ nsDownload::SetState(DownloadState aState) } } -#if (defined(XP_WIN) && !defined(WINCE)) || defined(XP_MACOSX) || defined(ANDROID) +#if defined(XP_WIN) || defined(XP_MACOSX) || defined(ANDROID) nsCOMPtr fileURL = do_QueryInterface(mTarget); nsCOMPtr file; nsAutoString path; diff --git a/toolkit/components/faststart/FastStartup.js b/toolkit/components/faststart/FastStartup.js deleted file mode 100644 index ac2aefe86423..000000000000 --- a/toolkit/components/faststart/FastStartup.js +++ /dev/null @@ -1,210 +0,0 @@ -/* -*- Mode: js2; js2-basic-offset: 4; indent-tabs-mode: nil; -*- */ -/* ***** 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 FastStartup.js - * - * The Initial Developer of the Original Code is Mozilla Foundation. - * Portions created by the Initial Developer are Copyright (C) 2009 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * Vladimir Vukicevic - * Brian Crowder - * - * 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 ***** */ - -const Cc = Components.classes; -const Ci = Components.interfaces; -const Cr = Components.results; -const Cu = Components.utils; - -const Timer = Components.Constructor("@mozilla.org/timer;1", "nsITimer", "initWithCallback"); - -Cu.import("resource://gre/modules/XPCOMUtils.jsm"); - -const RESTART_ENV_VAR = "FASTSTART_INITIATED_RESTART"; - -function setenv(key, value) { - let env = Cc["@mozilla.org/process/environment;1"]. - getService(Components.interfaces.nsIEnvironment); - env.set(key, value); -} - -function getenv(key) { - let env = Cc["@mozilla.org/process/environment;1"]. - getService(Components.interfaces.nsIEnvironment); - return env.get(key); -} - -function nsFastStartupObserver() { - let _browserWindowCount = 0; - let _memCleanupTimer; - let _restartTimer; - let _isShuttingDown; - - function stopMemoryCleanup() { - if (_memCleanupTimer) { - _memCleanupTimer.cancel(); - _memCleanupTimer = null; - } - - if (_restartTimer) { - _restartTimer.cancel(); - _restartTimer = null; - } - } - - function scheduleMemoryCleanup() { - if (_isShuttingDown) - return; - - stopMemoryCleanup(); - - function restart() { - setenv(RESTART_ENV_VAR, "1"); - setenv("NO_SPLASH", "1"); - let appstartup = Cc["@mozilla.org/toolkit/app-startup;1"]. - getService(Ci.nsIAppStartup); - appstartup.quit(Ci.nsIAppStartup.eRestart | Ci.nsIAppStartup.eAttemptQuit); - - _restartTimer = null; - } - - function memoryCleanup() { - var os = Cc["@mozilla.org/observer-service;1"].getService(Ci.nsIObserverService); - - // Do this 3 times, because of a comment in TestGtkEmbed that says this - // gives the cycle collector the best chance at purging things. - os.notifyObservers(null, "memory-pressure", "heap-minimize"); - os.notifyObservers(null, "memory-pressure", "heap-minimize"); - os.notifyObservers(null, "memory-pressure", "heap-minimize"); - - _memCleanupTimer = null; - } - - // wait 30s until firing off the memory cleanup, in case the user - // opens another window right away - _memCleanupTimer = new Timer(memoryCleanup, 30000, Ci.nsITimer.TYPE_ONE_SHOT); - - // Also, begin a countdown to restart the stub in 15 minutes - _restartTimer = new Timer(restart, 60000 * 15, Ci.nsITimer.TYPE_ONE_SHOT); - } - - // - // nsIObserver - // - this.observe = function observe(subject, topic, data) { - var win = subject; - - // XXX the window at this point won't actually have its document loaded -- - // win.document.documentURI will pretty much always be about:blank. We need - // to attach a load handler to actually figure out which document gets loaded. - if (topic == "domwindowopened") { - stopMemoryCleanup(); - _browserWindowCount++; - } else if (topic == "domwindowclosed") { - if (_browserWindowCount > 0) - _browserWindowCount--; - if (_browserWindowCount == 0) { - scheduleMemoryCleanup(); - let prefservice = Cc["@mozilla.org/preferences-service;1"].getService(Ci.nsIPrefService); - prefservice.savePrefFile(null); - } - } else if (topic == "quit-application-granted") { - stopMemoryCleanup(); - _isShuttingDown = true; - let appstartup = Cc["@mozilla.org/toolkit/app-startup;1"]. - getService(Ci.nsIAppStartup); - appstartup.exitLastWindowClosingSurvivalArea(); - } - } - - /* - * QueryInterface - * We expect the WindowWatcher service to retain a strong reference to us, so supporting - * weak references is fine. - */ - this.QueryInterface = XPCOMUtils.generateQI([Ci.nsIObserver, Ci.nsISupportsWeakReference]); -} - -function nsFastStartupCLH() { } - -nsFastStartupCLH.prototype = { - // - // nsICommandLineHandler - // - handle: function fs_handle(cmdLine) { - // the rest of this only handles -faststart here - - if (cmdLine.handleFlag("shutdown-faststart", false)) { - cmdLine.preventDefault = true; - // Shutdown this service - let appstartup = Cc["@mozilla.org/toolkit/app-startup;1"].getService(Ci.nsIAppStartup); - appstartup.quit(Ci.nsIAppStartup.eAttemptQuit); - return; - } - - if (cmdLine.handleFlag("faststart-hidden", false) || (getenv(RESTART_ENV_VAR) == "1")) - cmdLine.preventDefault = true; - - try { - // did we already initialize faststart? if so, - // nothing to do here. - if (this.inited) - return; - - this.inited = true; - - // Clear this environment variable for subsequent runs - setenv(RESTART_ENV_VAR, "0"); - - let fsobs = new nsFastStartupObserver(); - let wwatch = Cc["@mozilla.org/embedcomp/window-watcher;1"]. - getService(Ci.nsIWindowWatcher); - wwatch.registerNotification(fsobs); - - let obsService = Cc["@mozilla.org/observer-service;1"].getService(Ci.nsIObserverService); - obsService.addObserver(fsobs, "quit-application-granted", true); - - let appstartup = Cc["@mozilla.org/toolkit/app-startup;1"]. - getService(Ci.nsIAppStartup); - appstartup.enterLastWindowClosingSurvivalArea(); - } catch (e) { - Cu.reportError(e); - } - }, - - helpInfo: " -faststart-hidden Start the FastStart service\n" + - " -shutdown-faststart Shutdown the FastStart service\n", - - // QI - QueryInterface: XPCOMUtils.generateQI([Ci.nsICommandLineHandler]), - - // XPCOMUtils factory - classID: Components.ID("{580c6c51-f690-4ce1-9ecc-b678e0c031c7}"), -}; - -var NSGetFactory = XPCOMUtils.generateNSGetFactory([nsFastStartupCLH]); diff --git a/toolkit/components/faststart/FastStartup.manifest b/toolkit/components/faststart/FastStartup.manifest deleted file mode 100644 index 7ee5d7abc5f9..000000000000 --- a/toolkit/components/faststart/FastStartup.manifest +++ /dev/null @@ -1,3 +0,0 @@ -component {580c6c51-f690-4ce1-9ecc-b678e0c031c7} FastStartup.js -contract @mozilla.org/browser/faststart;1 {580c6c51-f690-4ce1-9ecc-b678e0c031c7} -category command-line-handler 00-faststart @mozilla.org/browser/faststart;1 diff --git a/toolkit/components/faststart/Makefile.in b/toolkit/components/faststart/Makefile.in deleted file mode 100644 index 78d99bb0ca44..000000000000 --- a/toolkit/components/faststart/Makefile.in +++ /dev/null @@ -1,63 +0,0 @@ -# ***** 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 the Mozilla Browser code. -# -# The Initial Developer of the Original Code is the Mozilla Foundation. -# Portions created by the Initial Developer are Copyright (C) 2009 -# the Initial Developer. All Rights Reserved. -# -# Contributor(s): -# Vladimir Vukicevic -# -# 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 ***** - -DEPTH = ../../.. -topsrcdir = @top_srcdir@ -srcdir = @srcdir@ -VPATH = @srcdir@ - -include $(DEPTH)/config/autoconf.mk - -DEFINES += -DMOZ_NO_MOZALLOC - -EXTRA_PP_COMPONENTS = \ - FastStartup.js \ - FastStartup.manifest \ - $(NULL) - -ifdef _MSC_VER -ifdef WINCE -CPPSRCS = \ - faststartstub.cpp \ - $(NULL) - -SIMPLE_PROGRAMS = $(CPPSRCS:.cpp=$(BIN_SUFFIX)) \ - -WIN32_EXE_LDFLAGS += -ENTRY:WinMainCRTStartup -endif -endif - -include $(topsrcdir)/config/rules.mk diff --git a/toolkit/components/faststart/faststartstub.cpp b/toolkit/components/faststart/faststartstub.cpp deleted file mode 100644 index b4f1bceea689..000000000000 --- a/toolkit/components/faststart/faststartstub.cpp +++ /dev/null @@ -1,39 +0,0 @@ -#include -#include -#include -#include - -int WINAPI -WinMain(HINSTANCE hInstance, - HINSTANCE hPrevInstance, - LPTSTR lpCmdLine, - int nCmdShow) -{ - PROCESS_INFORMATION pi; - STARTUPINFOW si = { 0 }; - wchar_t modfilename[MAX_PATH]; - wchar_t execname[MAX_PATH]; - wchar_t args[MAX_PATH]; - wcscpy(args, L"-nosplash -faststart-hidden"); - - HMODULE mod = GetModuleHandle(NULL); - GetModuleFileNameW(mod, modfilename, sizeof(modfilename)/sizeof(modfilename[0])); - wchar_t *chomp = wcsstr(modfilename, L"faststart.exe"); - if (!chomp) { - MessageBoxW(NULL, L"Couldn't figure out how to run the faststart service!", L"Faststart Fail", MB_OK); - return 0; - } - - size_t len = chomp - modfilename; - wcsncpy(execname, modfilename, len); - execname[len] = 0; - wcscat(execname, L".exe"); - - BOOL ok = CreateProcessW(execname, args, NULL, NULL, FALSE, 0, - NULL, NULL, &si, &pi); - if (!ok) { - MessageBoxW(NULL, L"Couldn't figure out how to run the faststart service!", L"Faststart Fail", MB_OK); - return 0; - } - return 0; -} diff --git a/toolkit/components/startup/Makefile.in b/toolkit/components/startup/Makefile.in index a454a38b56f6..3fd35bb3fe20 100644 --- a/toolkit/components/startup/Makefile.in +++ b/toolkit/components/startup/Makefile.in @@ -55,7 +55,7 @@ CPPSRCS = \ ifeq (os2,$(MOZ_WIDGET_TOOLKIT)) CPPSRCS += nsUserInfoOS2.cpp else -ifeq (,$(filter-out WINCE WINNT,$(OS_ARCH))) +ifeq ($(OS_ARCH),WINNT) CPPSRCS += nsUserInfoWin.cpp else ifeq (cocoa,$(MOZ_WIDGET_TOOLKIT)) diff --git a/toolkit/components/startup/nsUserInfoWin.cpp b/toolkit/components/startup/nsUserInfoWin.cpp index 3de31fbabb8f..26d487c0c8ee 100644 --- a/toolkit/components/startup/nsUserInfoWin.cpp +++ b/toolkit/components/startup/nsUserInfoWin.cpp @@ -56,7 +56,6 @@ NS_IMPL_ISUPPORTS1(nsUserInfo,nsIUserInfo) NS_IMETHODIMP nsUserInfo::GetUsername(char **aUsername) { -#ifndef WINCE *aUsername = nsnull; PRUnichar username[256]; @@ -66,9 +65,8 @@ nsUserInfo::GetUsername(char **aUsername) return NS_ERROR_FAILURE; *aUsername = ToNewUTF8String(nsDependentString(username)); - if (*aUsername) return NS_OK; -#endif - return NS_ERROR_FAILURE; + + return (*aUsername) ? NS_OK : NS_ERROR_FAILURE; } NS_IMETHODIMP diff --git a/toolkit/content/license.html b/toolkit/content/license.html index b8fa170a1d18..50711ae8a547 100644 --- a/toolkit/content/license.html +++ b/toolkit/content/license.html @@ -3617,7 +3617,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  • This software is based in part on the work of the Independent JPEG Group.
  • -
  • Portions of the OS/2, Windows Mobile and Android versions +
  • Portions of the OS/2 and Android versions of this software are copyright ©1996-2010 The FreeType Project. All rights reserved.
  • diff --git a/toolkit/library/Makefile.in b/toolkit/library/Makefile.in index dacf2dad82dc..45665ec1e95c 100644 --- a/toolkit/library/Makefile.in +++ b/toolkit/library/Makefile.in @@ -70,10 +70,6 @@ ifeq ($(OS_ARCH)_$(GNU_CC),WINNT_) CPPSRCS += dlldeps-xul.cpp endif -ifeq ($(OS_ARCH),WINCE) -CPPSRCS += dlldeps-xul.cpp -endif - ifeq ($(OS_ARCH),OS2) CPPSRCS += dlldeps-xul.cpp endif @@ -130,7 +126,7 @@ GARBAGE += \ endif endif -ifneq (,$(filter OS2 WINCE WINNT,$(OS_ARCH))) +ifneq (,$(filter OS2 WINNT,$(OS_ARCH))) SDK_LIBRARY = $(IMPORT_LIBRARY) else SDK_LIBRARY = $(SHARED_LIBRARY) @@ -227,13 +223,6 @@ ifdef MOZ_CRASHREPORTER OS_LIBS += $(call EXPAND_LIBNAME,wininet) endif endif # WINNT -ifeq ($(OS_ARCH),WINCE) -OS_LIBS += $(call EXPAND_LIBNAME, aygshell uuid ole32 oleaut32 Ws2 ddraw) -OS_LIBS += $(call EXPAND_LIBNAME, ceosutil libcmt comsuppw) -ifdef WINCE_WINDOWS_MOBILE -OS_LIBS += $(call EXPAND_LIBNAME, cellcore) -endif -endif ifdef MOZ_JPROF EXTRA_DSO_LDOPTS += -ljprof diff --git a/toolkit/library/libxul-config.mk b/toolkit/library/libxul-config.mk index c3a555655348..23a88182c36d 100644 --- a/toolkit/library/libxul-config.mk +++ b/toolkit/library/libxul-config.mk @@ -41,7 +41,7 @@ CPPSRCS += \ nsStaticXULComponents.cpp \ $(NULL) -ifeq (,$(filter-out WINCE WINNT,$(OS_ARCH))) +ifeq ($(OS_ARCH),WINNT) REQUIRES += widget gfx CPPSRCS += \ nsDllMain.cpp \ @@ -115,13 +115,8 @@ STATIC_LIBS += \ xpcom_core \ ucvutil_s \ chromium_s \ - $(NULL) - -ifndef WINCE -STATIC_LIBS += \ mozreg_s \ $(NULL) -endif # component libraries COMPONENT_LIBS += \ diff --git a/toolkit/library/libxul-rules.mk b/toolkit/library/libxul-rules.mk index d30ce5394fa1..16143e2382bc 100644 --- a/toolkit/library/libxul-rules.mk +++ b/toolkit/library/libxul-rules.mk @@ -55,10 +55,8 @@ DEFINES += \ $(NULL) ifeq ($(MOZ_WIDGET_TOOLKIT),windows) -ifneq ($(OS_ARCH),WINCE) OS_LIBS += $(call EXPAND_LIBNAME,usp10 oleaut32) endif -endif export:: dlldeps.cpp diff --git a/toolkit/library/nsDllMain.cpp b/toolkit/library/nsDllMain.cpp index 5380854bcde4..b26dcdd86f0a 100644 --- a/toolkit/library/nsDllMain.cpp +++ b/toolkit/library/nsDllMain.cpp @@ -46,11 +46,7 @@ extern "C" { #endif BOOL APIENTRY DllMain( -#ifdef WINCE - HANDLE hModule, -#else HINSTANCE hModule, -#endif DWORD reason, LPVOID lpReserved ) { diff --git a/toolkit/locales/l10n.mk b/toolkit/locales/l10n.mk index ceab1928705d..ba4b69bf165f 100644 --- a/toolkit/locales/l10n.mk +++ b/toolkit/locales/l10n.mk @@ -155,10 +155,6 @@ endif $(NSINSTALL) -D $(DIST)/l10n-stage/$(PKG_PATH) cd $(DIST)/l10n-stage; \ $(MAKE_PACKAGE) -ifeq (WINCE,$(OS_ARCH)) - cd $(DIST)/l10n-stage; \ - $(MAKE_CAB) -endif ifdef MAKE_COMPLETE_MAR $(MAKE) -C $(MOZDEPTH)/tools/update-packaging full-update AB_CD=$(AB_CD) \ MOZ_PKG_PRETTYNAMES=$(MOZ_PKG_PRETTYNAMES) \ @@ -177,9 +173,6 @@ endif $(MAKE) clobber-zip AB_CD=$(AB_CD) $(NSINSTALL) -D $(DIST)/$(PKG_PATH) mv -f "$(DIST)/l10n-stage/$(PACKAGE)" "$(ZIP_OUT)" -ifeq (WINCE,$(OS_ARCH)) - mv -f "$(DIST)/l10n-stage/$(PKG_BASENAME).cab" "$(DIST)/$(PKG_PATH)$(PKG_BASENAME).cab" -endif repackage-zip-%: $(STAGEDIST) @$(MAKE) repackage-zip AB_CD=$* ZIP_IN="$(ZIP_IN)" diff --git a/toolkit/mozapps/downloads/content/downloads.js b/toolkit/mozapps/downloads/content/downloads.js index d6dc678cb45f..9ddb998f4de9 100644 --- a/toolkit/mozapps/downloads/content/downloads.js +++ b/toolkit/mozapps/downloads/content/downloads.js @@ -295,7 +295,6 @@ function openDownload(aDownload) } catch (e) { } #ifdef XP_WIN -#ifndef WINCE // On Vista and above, we rely on native security prompting for // downloaded content unless it's disabled. try { @@ -306,7 +305,6 @@ function openDownload(aDownload) dontAsk = true; } } catch (ex) { } -#endif #endif if (!dontAsk) { @@ -492,12 +490,10 @@ function Startup() }, false); #ifdef XP_WIN -#ifndef WINCE let tempScope = {}; Cu.import("resource://gre/modules/DownloadTaskbarProgress.jsm", tempScope); tempScope.DownloadTaskbarProgress.onDownloadWindowLoad(window); #endif -#endif } function Shutdown() diff --git a/toolkit/mozapps/installer/packager.mk b/toolkit/mozapps/installer/packager.mk index 2ed05d207a33..97f47c3c934a 100644 --- a/toolkit/mozapps/installer/packager.mk +++ b/toolkit/mozapps/installer/packager.mk @@ -47,7 +47,7 @@ ifndef MOZ_PKG_FORMAT ifeq (cocoa,$(MOZ_WIDGET_TOOLKIT)) MOZ_PKG_FORMAT = DMG else -ifeq (,$(filter-out OS2 WINNT WINCE, $(OS_ARCH))) +ifeq (,$(filter-out OS2 WINNT, $(OS_ARCH))) MOZ_PKG_FORMAT = ZIP else ifeq (,$(filter-out SunOS, $(OS_ARCH))) @@ -67,7 +67,7 @@ endif endif endif # MOZ_PKG_FORMAT -ifneq (,$(filter WINNT WINCE,$(OS_ARCH))) +ifeq ($(OS_ARCH),WINNT) INSTALLER_DIR = windows endif @@ -83,22 +83,8 @@ SDK_SUFFIX = $(PKG_SUFFIX) SDK = $(SDK_PATH)$(PKG_BASENAME).sdk$(SDK_SUFFIX) MAKE_PACKAGE = $(error What is a $(MOZ_PKG_FORMAT) package format?); -MAKE_CAB = $(error Don't know how to make a CAB!); _ABS_DIST = $(call core_abspath,$(DIST)) -ifdef WINCE -ifndef WINCE_WINDOWS_MOBILE -CABARGS += -s -endif -ifdef MOZ_FASTSTART -CABARGS += -faststart -endif -VSINSTALLDIR ?= $(error VSINSTALLDIR not set, must be set to the Visual Studio install directory) -MAKE_CAB = $(PYTHON) $(MOZILLA_DIR)/build/package/wince/make_wince_cab.py \ - $(CABARGS) "$(VSINSTALLDIR)/SmartDevices/SDK/SDKTools/cabwiz.exe" \ - "$(MOZ_PKG_DIR)" "$(MOZ_APP_DISPLAYNAME)" "$(PKG_PATH)$(PKG_BASENAME).cab" -endif - CREATE_FINAL_TAR = $(TAR) -c --owner=0 --group=0 --numeric-owner \ --mode="go-w" -f UNPACK_TAR = tar -xf- @@ -127,11 +113,6 @@ INNER_MAKE_PACKAGE = $(ZIP) -r9D $(PACKAGE) $(MOZ_PKG_DIR) INNER_UNMAKE_PACKAGE = $(UNZIP) $(UNPACKAGE) MAKE_SDK = $(ZIP) -r9D $(SDK) $(MOZ_APP_NAME)-sdk endif -ifeq ($(MOZ_PKG_FORMAT),CAB) -PKG_SUFFIX = .cab -INNER_MAKE_PACKAGE = $(MAKE_CAB) -INNER_UNMAKE_PACKAGE = $(error Unpacking CAB files is not supported) -endif ifeq ($(MOZ_PKG_FORMAT),SFX7Z) PKG_SUFFIX = .exe INNER_MAKE_PACKAGE = rm -f app.7z && \ @@ -535,7 +516,7 @@ ifeq ($(OS_ARCH),OS2) STRIP = $(MOZILLA_DIR)/toolkit/mozapps/installer/os2/strip.cmd endif -ifneq (,$(filter WINNT WINCE OS2,$(OS_ARCH))) +ifneq (,$(filter WINNT OS2,$(OS_ARCH))) PKGCP_OS = dos else PKGCP_OS = unix @@ -698,7 +679,7 @@ make-sourcestamp-file:: # dist/sdk/lib -> prefix/lib/appname-devel-version/lib # prefix/lib/appname-devel-version/* symlinks to the above directories install:: stage-package -ifneq (,$(filter WINNT WINCE,$(OS_ARCH))) +ifeq ($(OS_ARCH),WINNT) $(error "make install" is not supported on this platform. Use "make package" instead.) endif ifeq (bundle,$(MOZ_FS_LAYOUT)) @@ -762,9 +743,6 @@ make-sdk: ifeq ($(OS_TARGET), WINNT) INSTALLER_PACKAGE = $(DIST)/$(PKG_INST_PATH)$(PKG_INST_BASENAME).exe endif -ifeq ($(OS_TARGET), WINCE) -INSTALLER_PACKAGE = $(DIST)/$(PKG_PATH)$(PKG_BASENAME).cab -endif # These are necessary because some of our packages/installers contain spaces # in their filenames and GNU Make's $(wildcard) function doesn't properly diff --git a/toolkit/mozapps/installer/wince/Makefile.in b/toolkit/mozapps/installer/wince/Makefile.in deleted file mode 100644 index 98993c75c024..000000000000 --- a/toolkit/mozapps/installer/wince/Makefile.in +++ /dev/null @@ -1,76 +0,0 @@ -# ***** 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 Fennec Installer for WinCE. -# -# The Initial Developer of the Original Code is The Mozilla Foundation. -# -# Portions created by the Initial Developer are Copyright (C) 2009 -# the Mozilla Foundation . All Rights Reserved. -# -# Contributor(s): -# Alex Pakhotin (original author) -# -# 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 ***** - -DEPTH = ../../../.. -topsrcdir = @top_srcdir@ -srcdir = @srcdir@ -VPATH = @srcdir@ - -include $(DEPTH)/config/autoconf.mk - -export NO_SHUNT = 1 -USE_STATIC_LIBS = 1 - -PROGRAM = xulrunner-stub-installer.sfx - -REQUIRES = lib7z - -CPPSRCS = \ - nsInstaller.cpp \ - nsInstallerDlg.cpp \ - nsArchiveExtractor.cpp \ - ns7zipExtractor.cpp \ - nsSetupStrings.cpp \ - $(NULL) - -LOCAL_INCLUDES += -I$(srcdir)/../../readstrings - -RCINCLUDE = nsInstallerppc.rc - -DEFINES += -D_UNICODE - -LIBS += $(DEPTH)/toolkit/mozapps/readstrings/$(LIB_PREFIX)readstrings.$(LIB_SUFFIX) \ - $(DIST)/lib/7z.lib \ - $(NULL) - -OS_LIBS += aygshell.lib commctrl.lib note_prj.lib oleaut32.lib ole32.lib libcmt.lib coredll.lib corelibc.lib - -WIN32_EXE_LDFLAGS += -ENTRY:WinMain - -DIRS += uninstall - -include $(topsrcdir)/config/rules.mk diff --git a/toolkit/mozapps/installer/wince/ns7zipExtractor.cpp b/toolkit/mozapps/installer/wince/ns7zipExtractor.cpp deleted file mode 100644 index 5e0cb70a6c6d..000000000000 --- a/toolkit/mozapps/installer/wince/ns7zipExtractor.cpp +++ /dev/null @@ -1,84 +0,0 @@ -/* -*- Mode: C++; c-basic-offset: 2; tab-width: 8; indent-tabs-mode: nil; -*- */ -/* ***** 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 Fennec Installer for WinCE. - * - * The Initial Developer of the Original Code is The Mozilla Foundation. - * - * Portions created by the Initial Developer are Copyright (C) 2009 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * Alex Pakhotin (original author) - * - * 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 ***** */ - -#include "wtypes.h" -#include "nsArchiveExtractor.h" -#include "ns7zipExtractor.h" -#include "7zLib.h" - -static nsExtractorProgress *g_pProgress = NULL; - -static void ExtractProgressCallback(int nPercentComplete) -{ - if (g_pProgress) - { - g_pProgress->Progress(nPercentComplete); - } -} - -static void ShowError() -{ - MessageBoxW(GetForegroundWindow(), GetExtractorError(), L"Extractor", MB_OK|MB_ICONERROR); -} - -ns7zipExtractor::ns7zipExtractor(const WCHAR *sArchiveName, DWORD dwSfxStubSize, nsExtractorProgress *pProgress) : - nsArchiveExtractor(sArchiveName, dwSfxStubSize, pProgress) -{ - g_pProgress = pProgress; -} - -ns7zipExtractor::~ns7zipExtractor() -{ - g_pProgress = NULL; -} - -int ns7zipExtractor::Extract(const WCHAR *sDestinationDir) -{ - int res = SzExtractSfx(m_sArchiveName, m_dwSfxStubSize, NULL, sDestinationDir, ExtractProgressCallback); - if (res != 0) - ShowError(); - return res; -} - -int ns7zipExtractor::ExtractFile(const WCHAR *sFileName, const WCHAR *sDestinationDir) -{ - int res = SzExtractSfx(m_sArchiveName, m_dwSfxStubSize, sFileName, sDestinationDir, NULL); - if (res != 0) - ShowError(); - return res; -} diff --git a/toolkit/mozapps/installer/wince/ns7zipExtractor.h b/toolkit/mozapps/installer/wince/ns7zipExtractor.h deleted file mode 100644 index 1e5dc24089d1..000000000000 --- a/toolkit/mozapps/installer/wince/ns7zipExtractor.h +++ /dev/null @@ -1,51 +0,0 @@ -/* -*- Mode: C++; c-basic-offset: 2; tab-width: 8; indent-tabs-mode: nil; -*- */ -/* ***** 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 Fennec Installer for WinCE. - * - * The Initial Developer of the Original Code is The Mozilla Foundation. - * - * Portions created by the Initial Developer are Copyright (C) 2009 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * Alex Pakhotin (original author) - * - * 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 ***** */ - -#pragma once - -#include "nsArchiveExtractor.h" - -class ns7zipExtractor : public nsArchiveExtractor -{ -public: - ns7zipExtractor(const WCHAR *sArchiveName, DWORD dwSfxStubSize, nsExtractorProgress *pProgress); - virtual ~ns7zipExtractor(); - - virtual int Extract(const WCHAR *sDestinationDir); - virtual int ExtractFile(const WCHAR *sFileName, const WCHAR *sDestinationDir); -}; diff --git a/toolkit/mozapps/installer/wince/nsArchiveExtractor.cpp b/toolkit/mozapps/installer/wince/nsArchiveExtractor.cpp deleted file mode 100644 index 79bed63d825a..000000000000 --- a/toolkit/mozapps/installer/wince/nsArchiveExtractor.cpp +++ /dev/null @@ -1,62 +0,0 @@ -/* -*- Mode: C++; c-basic-offset: 2; tab-width: 8; indent-tabs-mode: nil; -*- */ -/* ***** 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 Fennec Installer for WinCE. - * - * The Initial Developer of the Original Code is The Mozilla Foundation. - * - * Portions created by the Initial Developer are Copyright (C) 2009 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * Alex Pakhotin (original author) - * - * 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 ***** */ - -#include "wtypes.h" -#include "nsArchiveExtractor.h" - -nsArchiveExtractor::nsArchiveExtractor(const WCHAR *sArchiveName, DWORD dwSfxStubSize, nsExtractorProgress *pProgress) : - m_sArchiveName(NULL), m_pProgress(pProgress), m_dwSfxStubSize(dwSfxStubSize) -{ - if (sArchiveName) - m_sArchiveName = wcsdup(sArchiveName); -} - -nsArchiveExtractor::~nsArchiveExtractor() -{ - free(m_sArchiveName); -} - -int nsArchiveExtractor::Extract(const WCHAR *sDestinationDir) -{ - return OK; -} - -int nsArchiveExtractor::ExtractFile(const WCHAR *sFileName, const WCHAR *sDestinationDir) -{ - return OK; -} diff --git a/toolkit/mozapps/installer/wince/nsArchiveExtractor.h b/toolkit/mozapps/installer/wince/nsArchiveExtractor.h deleted file mode 100644 index 2c3976739f65..000000000000 --- a/toolkit/mozapps/installer/wince/nsArchiveExtractor.h +++ /dev/null @@ -1,80 +0,0 @@ -/* -*- Mode: C++; c-basic-offset: 2; tab-width: 8; indent-tabs-mode: nil; -*- */ -/* ***** 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 Fennec Installer for WinCE. - * - * The Initial Developer of the Original Code is The Mozilla Foundation. - * - * Portions created by the Initial Developer are Copyright (C) 2009 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * Alex Pakhotin (original author) - * - * 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 ***** */ - -#pragma once - -/** - * Class to show the progress - */ -class nsExtractorProgress -{ -public: - nsExtractorProgress() {} - virtual void Progress(int nPercentComplete) = 0; /* to be overriden to get progress notifications */ -}; - -/** - * Base archive-extractor class. - * Used to derive a specific archive format implementation. - */ -class nsArchiveExtractor -{ -public: - enum - { - OK = 0, - ERR_FAIL = -1, - ERR_PARAM = -2, - ERR_READ = -3, - ERR_WRITE = -4, - ERR_MEM = -5, - ERR_NO_ARCHIVE = -6, - ERR_EXTRACTION = -7, - }; - - nsArchiveExtractor(const WCHAR *sArchiveName, DWORD dwSfxStubSize, nsExtractorProgress *pProgress); - virtual ~nsArchiveExtractor(); - - virtual int Extract(const WCHAR *sDestinationDir); - virtual int ExtractFile(const WCHAR *sFileName, const WCHAR *sDestinationDir); - -protected: - WCHAR *m_sArchiveName; - nsExtractorProgress *m_pProgress; - DWORD m_dwSfxStubSize; -}; diff --git a/toolkit/mozapps/installer/wince/nsInstaller.cpp b/toolkit/mozapps/installer/wince/nsInstaller.cpp deleted file mode 100644 index 7fbd9157992b..000000000000 --- a/toolkit/mozapps/installer/wince/nsInstaller.cpp +++ /dev/null @@ -1,238 +0,0 @@ -/* -*- Mode: C++; c-basic-offset: 2; tab-width: 8; indent-tabs-mode: nil; -*- */ -/* ***** 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 Fennec Installer for WinCE. - * - * The Initial Developer of the Original Code is The Mozilla Foundation. - * - * Portions created by the Initial Developer are Copyright (C) 2009 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * Alex Pakhotin (original author) - * - * 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 ***** */ - -/** - * - * nsInstaller.cpp : Mozilla Fennec Installer - * - */ - -#include -#include -#include "nsSetupStrings.h" -#include "nsInstaller.h" -#include "ns7zipExtractor.h" -#include "nsInstallerDlg.h" - -const WCHAR c_sStringsFile[] = L"setup.ini"; - -// Global Variables: -nsSetupStrings Strings; - -HINSTANCE g_hInst; -WCHAR g_sSourcePath[MAX_PATH]; -WCHAR g_sExeFullFileName[MAX_PATH]; -WCHAR g_sExeFileName[MAX_PATH]; -DWORD g_dwExeSize; - -// Forward declarations of functions included in this code module: -BOOL InitInstance(HINSTANCE, int); -DWORD GetExeSize(); -BOOL PostExtract(); -BOOL LoadStrings(); - -/////////////////////////////////////////////////////////////////////////////// -// -// WinMain -// -/////////////////////////////////////////////////////////////////////////////// -int WINAPI WinMain(HINSTANCE hInstance, - HINSTANCE hPrevInstance, - LPTSTR lpCmdLine, - int nCmdShow) -{ - int nResult = -1; - - if (!InitInstance(hInstance, nCmdShow)) - return nResult; - - nsInstallerDlg::GetInstance()->Init(g_hInst); - nResult = nsInstallerDlg::GetInstance()->DoModal(); - - return nResult; -} - -/////////////////////////////////////////////////////////////////////////////// -// -// InitInstance -// -/////////////////////////////////////////////////////////////////////////////// -BOOL InitInstance(HINSTANCE hInstance, int nCmdShow) -{ - g_hInst = hInstance; - - InitCommonControls(); - - g_sExeFileName[0] = L'\0'; - if (GetModuleFileName(NULL, g_sExeFullFileName, MAX_PATH) == 0) - return FALSE; - - wcscpy(g_sSourcePath, g_sExeFullFileName); - WCHAR *sSlash = wcsrchr(g_sSourcePath, L'\\'); - wcscpy(g_sExeFileName, sSlash + 1); - *sSlash = L'\0'; // cut the file name - - g_dwExeSize = GetExeSize(); - - return LoadStrings(); -} - -/////////////////////////////////////////////////////////////////////////////// -// -// GetExeSize -// -/////////////////////////////////////////////////////////////////////////////// - -DWORD AbsoluteSeek(HANDLE, DWORD); -void ReadBytes(HANDLE, LPVOID, DWORD); - -DWORD GetExeSize() -{ - DWORD dwSize = 0; - HANDLE hImage; - - DWORD dwSectionOffset; - DWORD dwCoffHeaderOffset; - DWORD moreDosHeader[16]; - - ULONG NTSignature; - - IMAGE_DOS_HEADER image_dos_header; - IMAGE_FILE_HEADER image_file_header; - IMAGE_OPTIONAL_HEADER image_optional_header; - IMAGE_SECTION_HEADER image_section_header; - - // Open the EXE file. - hImage = CreateFile(g_sExeFullFileName, GENERIC_READ, FILE_SHARE_READ, NULL, - OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL); - - if (INVALID_HANDLE_VALUE == hImage) - { - ErrorMsg(L"Could not open the EXE"); - return 0; - } - - // Read the MS-DOS image header. - ReadBytes(hImage, &image_dos_header, sizeof(image_dos_header)); - - if (IMAGE_DOS_SIGNATURE != image_dos_header.e_magic) - { - ErrorMsg(L"Unknown file format."); - return 0; - } - - // Read more MS-DOS header. - ReadBytes(hImage, moreDosHeader, sizeof(moreDosHeader)); - - // Get actual COFF header. - dwCoffHeaderOffset = AbsoluteSeek(hImage, image_dos_header.e_lfanew) + sizeof(ULONG); - - ReadBytes (hImage, &NTSignature, sizeof(NTSignature)); - - if (IMAGE_NT_SIGNATURE != NTSignature) - { - ErrorMsg(L"Missing NT signature. Unknown file type."); - return 0; - } - - dwSectionOffset = dwCoffHeaderOffset + IMAGE_SIZEOF_FILE_HEADER + IMAGE_SIZEOF_NT_OPTIONAL_HEADER; - - ReadBytes(hImage, &image_file_header, IMAGE_SIZEOF_FILE_HEADER); - - // Read optional header. - ReadBytes(hImage, &image_optional_header, IMAGE_SIZEOF_NT_OPTIONAL_HEADER); - - WORD nNumSections = image_file_header.NumberOfSections; - - for (WORD i = 0; i < nNumSections; i++) - { - ReadBytes(hImage, &image_section_header, sizeof(IMAGE_SECTION_HEADER)); - - DWORD dwRawData = image_section_header.PointerToRawData + image_section_header.SizeOfRawData; - if (dwRawData > dwSize) - dwSize = dwRawData; - } - - CloseHandle(hImage); - - return dwSize; -} - -DWORD AbsoluteSeek(HANDLE hFile, DWORD offset) -{ - DWORD newOffset; - - if ((newOffset = SetFilePointer(hFile, offset, NULL, FILE_BEGIN)) == 0xFFFFFFFF) - ErrorMsg(L"SetFilePointer failed"); - - return newOffset; -} - -void ReadBytes(HANDLE hFile, LPVOID buffer, DWORD size) -{ - DWORD bytes; - - if (!ReadFile(hFile, buffer, size, &bytes, NULL)) - ErrorMsg(L"ReadFile failed"); - else if (size != bytes) - ErrorMsg(L"Read the wrong number of bytes"); -} - -////////////////////////////////////////////////////////////////////////// -// -// Read strings resource from the attached archive -// -////////////////////////////////////////////////////////////////////////// -BOOL LoadStrings() -{ - WCHAR *sExtractPath = L"\\Temp\\"; - WCHAR sExtractedStringsFile[MAX_PATH]; - _snwprintf(sExtractedStringsFile, MAX_PATH, L"%s%s", sExtractPath, c_sStringsFile); - - ns7zipExtractor archiveExtractor(g_sExeFullFileName, g_dwExeSize, NULL); - - int nResult = archiveExtractor.ExtractFile(c_sStringsFile, sExtractPath); - - if (nResult != 0) - return FALSE; - - BOOL bResult = Strings.LoadStrings(sExtractedStringsFile); - DeleteFile(sExtractedStringsFile); - - return bResult; -} diff --git a/toolkit/mozapps/installer/wince/nsInstaller.h b/toolkit/mozapps/installer/wince/nsInstaller.h deleted file mode 100644 index 0efa979d034f..000000000000 --- a/toolkit/mozapps/installer/wince/nsInstaller.h +++ /dev/null @@ -1,51 +0,0 @@ -/* -*- Mode: C++; c-basic-offset: 2; tab-width: 8; indent-tabs-mode: nil; -*- */ -/* ***** 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 Fennec Installer for WinCE. - * - * The Initial Developer of the Original Code is The Mozilla Foundation. - * - * Portions created by the Initial Developer are Copyright (C) 2009 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * Alex Pakhotin (original author) - * - * 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 ***** */ - -#pragma once -#include "resourceppc.h" - -extern nsSetupStrings Strings; -extern const WCHAR c_sStringsFile[]; - -extern WCHAR g_sSourcePath[MAX_PATH]; -extern WCHAR g_sExeFileName[MAX_PATH]; -extern WCHAR g_sExeFullFileName[MAX_PATH]; -extern DWORD g_dwExeSize; - -#define ErrorMsg(msg) MessageBoxW(GetForegroundWindow(), msg, L"Setup", MB_OK|MB_ICONERROR) -bool ConvertToChar(const WCHAR *wstr, char *str); diff --git a/toolkit/mozapps/installer/wince/nsInstallerDlg.cpp b/toolkit/mozapps/installer/wince/nsInstallerDlg.cpp deleted file mode 100644 index 2f95edf01e82..000000000000 --- a/toolkit/mozapps/installer/wince/nsInstallerDlg.cpp +++ /dev/null @@ -1,524 +0,0 @@ -/* -*- Mode: C++; c-basic-offset: 2; tab-width: 8; indent-tabs-mode: nil; -*- */ -/* ***** 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 Fennec Installer for WinCE. - * - * The Initial Developer of the Original Code is The Mozilla Foundation. - * - * Portions created by the Initial Developer are Copyright (C) 2009 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * Alex Pakhotin (original author) - * - * 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 ***** */ - -/** - * - * nsInstallerDlg.cpp : Mozilla Fennec Installer UI. - * - */ - -#include -#include -#include - -#include "nsSetupStrings.h" -#include "nsInstaller.h" -#include "ns7zipExtractor.h" -#include "nsInstallerDlg.h" - -#define WM_DIALOGCREATED (WM_USER + 1) - -const WCHAR c_sInstallPathTemplate[] = L"%s\\%s"; -const WCHAR c_sExtractCardPathTemplate[] = L"\\%s%s\\%s"; -const WCHAR c_sAppRegKeyTemplate[] = L"Software\\Mozilla\\%s"; -const WCHAR c_sFastStartTemplate[] = L"%s\\%sfaststart.exe"; - -// Message handler for the dialog -BOOL CALLBACK DlgMain(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam) -{ - return nsInstallerDlg::GetInstance()->DlgMain(hDlg, message, wParam, lParam); -} - -/////////////////////////////////////////////////////////////////////////////// -// -// nsInstallerDlg dialog -// -/////////////////////////////////////////////////////////////////////////////// - -nsInstallerDlg::nsInstallerDlg() -{ - m_hInst = NULL; - m_hDlg = NULL; - m_bFastStart = FALSE; - m_sExtractPath[0] = 0; - m_sInstallPath[0] = 0; - m_sProgramFiles[0] = 0; - m_sErrorMsg[0] = 0; -} - -nsInstallerDlg* nsInstallerDlg::GetInstance() -{ - static nsInstallerDlg dlg; - return &dlg; -} - -void nsInstallerDlg::Init(HINSTANCE hInst) -{ - m_hInst = hInst; -} - -int nsInstallerDlg::DoModal() -{ - return (int)DialogBox(m_hInst, (LPCTSTR)IDD_MAIN, 0, ::DlgMain); -} - -BOOL CALLBACK nsInstallerDlg::DlgMain(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam) -{ - switch (message) - { - case WM_INITDIALOG: - return OnInitDialog(hDlg, wParam, lParam); - - case WM_DIALOGCREATED: - return OnDialogCreated(hDlg); - - case WM_COMMAND: - switch (LOWORD(wParam)) - { - case IDOK: - case IDCANCEL: - EndDialog(hDlg, LOWORD(wParam)); - return TRUE; - - case IDC_BTN_INSTALL: - if (OnBtnExtract()) - EndDialog(hDlg, IDOK); - return TRUE; - } - break; - - case WM_CLOSE: - EndDialog(hDlg, message); - return TRUE; - } - return FALSE; -} - -BOOL nsInstallerDlg::OnInitDialog(HWND hDlg, WPARAM wParam, LPARAM lParam) -{ - // Create a Done button and size it. - SHINITDLGINFO shidi; - shidi.dwMask = SHIDIM_FLAGS; - shidi.dwFlags = SHIDIF_DONEBUTTON | SHIDIF_SIPDOWN | SHIDIF_SIZEDLGFULLSCREEN | SHIDIF_EMPTYMENU; - shidi.hDlg = hDlg; - SHInitDialog(&shidi); - - m_hDlg = hDlg; - - SetWindowText(m_hDlg, Strings.GetString(StrID_WindowCaption)); - SetControlWindowText(IDC_STATIC_TITLE, Strings.GetString(StrID_WindowCaption)); - SetControlWindowText(IDC_STATIC_INSTALL, Strings.GetString(StrID_InstallTo)); - SetControlWindowText(IDC_BTN_INSTALL, Strings.GetString(StrID_Install)); - SetControlWindowText(IDCANCEL, Strings.GetString(StrID_Cancel)); - - if (!SHGetSpecialFolderPath(m_hDlg, m_sProgramFiles, CSIDL_PROGRAM_FILES, FALSE)) - wcscpy(m_sProgramFiles, L"\\Program Files"); - - _snwprintf(m_sInstallPath, MAX_PATH, c_sInstallPathTemplate, - m_sProgramFiles, Strings.GetString(StrID_AppShortName)); - - SendMessageToControl(IDC_CMB_PATH, CB_ADDSTRING, 0, (LPARAM)(m_sInstallPath)); - FindMemCards(); - SendMessageToControl(IDC_CMB_PATH, CB_SETCURSEL, 0, 0); - - EnableWindow(GetDlgItem(m_hDlg, IDC_BTN_INSTALL), FALSE); - - PostMessage(m_hDlg, WM_DIALOGCREATED, 0, 0); - - return TRUE; -} - -void nsInstallerDlg::FindMemCards() -{ - WIN32_FIND_DATA fd; - HANDLE hFlashCard = FindFirstFlashCard(&fd); - if (hFlashCard != INVALID_HANDLE_VALUE) - { - WCHAR sPath[MAX_PATH]; - do - { - if (wcslen(fd.cFileName) > 0) - { - _snwprintf(sPath, MAX_PATH, c_sExtractCardPathTemplate, - fd.cFileName, m_sProgramFiles, Strings.GetString(StrID_AppShortName)); - SendMessageToControl(IDC_CMB_PATH, CB_ADDSTRING, 0, (LPARAM)(sPath)); - } - } while(FindNextFlashCard(hFlashCard, &fd) && *fd.cFileName); - } -} - -BOOL nsInstallerDlg::OnDialogCreated(HWND hDlg) -{ - BOOL bUninstallCancelled = FALSE; - if (RunUninstall(&bUninstallCancelled) && bUninstallCancelled) - { - // Cancel installation - PostMessage(hDlg, WM_CLOSE, 0, 0); - } - else - EnableWindow(GetDlgItem(m_hDlg, IDC_BTN_INSTALL), TRUE); - - return TRUE; -} - -BOOL nsInstallerDlg::OnBtnExtract() -{ - BOOL bResult = FALSE; - - EnableWindow(GetDlgItem(m_hDlg, IDC_BTN_INSTALL), FALSE); - EnableWindow(GetDlgItem(m_hDlg, IDCANCEL), FALSE); - - int nPathIndex = SendMessageToControl(IDC_CMB_PATH, CB_GETCURSEL, 0, 0); - if (nPathIndex >= 0) - SendMessageToControl(IDC_CMB_PATH, CB_GETLBTEXT, nPathIndex, (LPARAM)(m_sInstallPath)); - - wcscpy(m_sExtractPath, m_sInstallPath); - - // Remove the last directory ("Fennec") from the path as it is already in the archive - WCHAR *sSlash = wcsrchr(m_sExtractPath, L'\\'); - if (sSlash) - *sSlash = 0; - - ns7zipExtractor archiveExtractor(g_sExeFullFileName, g_dwExeSize, this); - - SendMessageToControl(IDC_PROGRESS, PBM_SETRANGE, 0, (LPARAM) MAKELPARAM (0, 100)); // progress in percents - SendMessageToControl(IDC_PROGRESS, PBM_SETPOS, 0, 0); - - int nResult = archiveExtractor.Extract(m_sExtractPath); - if (nResult == 0) - { - Progress(100); // 100% - bResult = PostExtract(); - } - - EnableWindow(GetDlgItem(m_hDlg, IDC_BTN_INSTALL), TRUE); - EnableWindow(GetDlgItem(m_hDlg, IDCANCEL), TRUE); - - if (bResult) - { - MessageBoxW(m_hDlg, Strings.GetString(StrID_InstalledSuccessfully), - Strings.GetString(StrID_WindowCaption), MB_OK|MB_ICONINFORMATION); - } - else - { - WCHAR sMsg[c_nMaxErrorLen]; - if (nResult != 0) - _snwprintf(sMsg, c_nMaxErrorLen, L"%s %d", Strings.GetString(StrID_ExtractionError), nResult); - else - _snwprintf(sMsg, c_nMaxErrorLen, L"%s\n%s", Strings.GetString(StrID_ThereWereErrors), m_sErrorMsg); - - MessageBoxW(m_hDlg, sMsg, Strings.GetString(StrID_WindowCaption), MB_OK|MB_ICONERROR); - } - - return bResult; -} - -LRESULT nsInstallerDlg::SendMessageToControl(int nCtlID, UINT Msg, WPARAM wParam /*= 0*/, LPARAM lParam /*= 0*/) -{ - return SendMessage(GetDlgItem(m_hDlg, nCtlID), Msg, wParam, lParam); -} - -void nsInstallerDlg::SetControlWindowText(int nCtlID, const WCHAR *sText) -{ - SetWindowText(GetDlgItem(m_hDlg, nCtlID), sText); -} - -/////////////////////////////////////////////////////////////////////////////// -// -// ZipProgress member override -// -/////////////////////////////////////////////////////////////////////////////// -void nsInstallerDlg::Progress(int n) -{ - SendMessageToControl(IDC_PROGRESS, PBM_SETPOS, (WPARAM)n, 0); -} - -////////////////////////////////////////////////////////////////////////// -// -// PostExtract - additional step after extraction -// -////////////////////////////////////////////////////////////////////////// - -#define RUN_AND_CHECK(fn) \ - if (!fn()) { \ - bResult = FALSE; \ - AddErrorMsg(L ## #fn ## L" failed"); \ - } - -BOOL nsInstallerDlg::PostExtract() -{ - BOOL bResult = TRUE; - - m_bFastStart = FastStartFileExists(); - - RUN_AND_CHECK(CreateShortcut) - - RUN_AND_CHECK(StoreInstallPath) - - MoveSetupStrings(); - - RUN_AND_CHECK(SilentFirstRun) - - RUN_AND_CHECK(RunSetupCab) - - return bResult; -} - -BOOL nsInstallerDlg::StoreInstallPath() -{ - HKEY hKey; - WCHAR sRegFennecKey[MAX_PATH]; - _snwprintf(sRegFennecKey, MAX_PATH, c_sAppRegKeyTemplate, Strings.GetString(StrID_AppShortName)); - - // Store the installation path - to be used by the uninstaller - LONG result = RegCreateKeyEx(HKEY_LOCAL_MACHINE, sRegFennecKey, 0, REG_NONE, - REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS, NULL, &hKey, NULL); - if (result == ERROR_SUCCESS) - { - result = RegSetValueEx(hKey, L"Path", 0, REG_SZ, (BYTE* const)m_sInstallPath, (wcslen(m_sInstallPath)+1)*sizeof(WCHAR)); - RegCloseKey(hKey); - } - - return (result == ERROR_SUCCESS); -} - -// Creates shortcuts for Fennec and (optionally) FastStart service. -// Note: The shortcut names have to be in sync with DeleteShortcut in Uninstaller.cpp -BOOL nsInstallerDlg::CreateShortcut() -{ - BOOL result = FALSE; - - WCHAR sFennecPath[MAX_PATH]; - _snwprintf(sFennecPath, MAX_PATH, L"\"%s\\%s.exe\"", m_sInstallPath, Strings.GetString(StrID_AppShortName)); - - WCHAR sProgramsPath[MAX_PATH]; - if (SHGetSpecialFolderPath(m_hDlg, sProgramsPath, CSIDL_PROGRAMS, FALSE)) - { - WCHAR sShortcutPath[MAX_PATH]; - _snwprintf(sShortcutPath, MAX_PATH, L"%s\\%s.lnk", sProgramsPath, Strings.GetString(StrID_AppShortName)); - - // Delete the old shortcut if it exists - if(SetFileAttributes(sShortcutPath, FILE_ATTRIBUTE_NORMAL)) - DeleteFile(sShortcutPath); - - result = SHCreateShortcut(sShortcutPath, sFennecPath); - } - - if (m_bFastStart) - { - WCHAR sFastStartPath[MAX_PATH]; - _snwprintf(sFastStartPath, MAX_PATH, L"\"%s\\%sfaststart.exe\"", m_sInstallPath, Strings.GetString(StrID_AppShortName)); - - WCHAR sStartupPath[MAX_PATH]; - if (SHGetSpecialFolderPath(m_hDlg, sStartupPath, CSIDL_STARTUP, FALSE)) - { - WCHAR sStartupShortcutPath[MAX_PATH]; - _snwprintf(sStartupShortcutPath, MAX_PATH, L"%s\\%sFastStart.lnk", sStartupPath, Strings.GetString(StrID_AppShortName)); - - if(SetFileAttributes(sStartupShortcutPath, FILE_ATTRIBUTE_NORMAL)) - DeleteFile(sStartupShortcutPath); - - result = SHCreateShortcut(sStartupShortcutPath, sFastStartPath) && result; - } - } - - return result; -} - -BOOL nsInstallerDlg::MoveSetupStrings() -{ - WCHAR sExtractedStringsFile[MAX_PATH]; - _snwprintf(sExtractedStringsFile, MAX_PATH, L"%s\\%s", m_sExtractPath, c_sStringsFile); - - WCHAR sNewStringsFile[MAX_PATH]; - _snwprintf(sNewStringsFile, MAX_PATH, L"%s\\%s", m_sInstallPath, c_sStringsFile); - - return MoveFile(sExtractedStringsFile, sNewStringsFile); -} - -BOOL nsInstallerDlg::SilentFirstRun() -{ - SetControlWindowText(IDC_STATUS_TEXT, Strings.GetString(StrID_CreatingUserProfile)); - UpdateWindow(m_hDlg); // make sure the text is drawn - - WCHAR sCmdLine[MAX_PATH]; - WCHAR *sParams = NULL; - if (m_bFastStart) - { - // Run fast start exe instead - it will create the profile and stay in the background - _snwprintf(sCmdLine, MAX_PATH, c_sFastStartTemplate, m_sInstallPath, Strings.GetString(StrID_AppShortName)); - } - else - { - _snwprintf(sCmdLine, MAX_PATH, L"%s\\%s.exe", m_sInstallPath, Strings.GetString(StrID_AppShortName)); - sParams = L"-silent -nosplash"; - } - PROCESS_INFORMATION pi; - BOOL bResult = CreateProcess(sCmdLine, sParams, - NULL, NULL, FALSE, 0, NULL, NULL, NULL, &pi); - if (bResult) - { - // Wait for it to finish (since the system is likely to be busy - // while it launches anyways). The process may never terminate - // if FastStart is enabled, so don't wait longer than 10 seconds. - WaitForSingleObject(pi.hProcess, 10000); - } - - if (m_bFastStart) - { - // When the FastStart is enabled, Fennec is being loaded in the background, - // user cannot launch it with a shortcut, and the system is busy at the moment, - // so we'll just wait here. - - // Class name: appName + "MessageWindow" - WCHAR sClassName[MAX_PATH]; - _snwprintf(sClassName, MAX_PATH, L"%s%s", Strings.GetString(StrID_AppShortName), L"MessageWindow"); - - // Wait until the hidden window gets created or for some timeout (~10s seems to be reasonable) - HWND handle = NULL; - for (int i = 0; i < 20 && !handle; i++) - { - handle = ::FindWindowW(sClassName, NULL); - Sleep(500); - } - } - - SetWindowText(GetDlgItem(m_hDlg, IDC_STATUS_TEXT), L""); - return bResult; -} - -BOOL nsInstallerDlg::RunSetupCab() -{ - BOOL bResult = FALSE; - - WCHAR sCabPath[MAX_PATH]; - WCHAR sParams[MAX_PATH + 20]; - _snwprintf(sCabPath, MAX_PATH, L"%s\\setup.cab", m_sInstallPath); - - // Run "wceload.exe /noui Fennec.cab" - _snwprintf(sParams, MAX_PATH, L"/noui \"%s\"", sCabPath); - PROCESS_INFORMATION pi; - bResult = CreateProcess(L"\\Windows\\wceload.exe", - sParams, NULL, NULL, FALSE, 0, NULL, NULL, NULL, &pi); - if (bResult) - { - // Wait for it to finish - WaitForSingleObject(pi.hProcess, INFINITE); - } - - return bResult; -} - -void nsInstallerDlg::AddErrorMsg(WCHAR* sErr) -{ - WCHAR sMsg[c_nMaxErrorLen]; - _snwprintf(sMsg, c_nMaxErrorLen, L"%s. LastError = %d\n", sErr, GetLastError()); - wcsncat(m_sErrorMsg, sMsg, c_nMaxErrorLen - wcslen(m_sErrorMsg)); -} - -////////////////////////////////////////////////////////////////////////// -// -// Uninstall previous installation -// -////////////////////////////////////////////////////////////////////////// - -BOOL nsInstallerDlg::GetInstallPath(WCHAR *sPath) -{ - HKEY hKey; - WCHAR sRegFennecKey[MAX_PATH]; - _snwprintf(sRegFennecKey, MAX_PATH, c_sAppRegKeyTemplate, Strings.GetString(StrID_AppShortName)); - - LONG result = RegOpenKeyEx(HKEY_LOCAL_MACHINE, sRegFennecKey, 0, KEY_ALL_ACCESS, &hKey); - if (result == ERROR_SUCCESS) - { - DWORD dwType = NULL; - DWORD dwCount = MAX_PATH * sizeof(WCHAR); - result = RegQueryValueEx(hKey, L"Path", NULL, &dwType, (LPBYTE)sPath, &dwCount); - - RegCloseKey(hKey); - } - - return (result == ERROR_SUCCESS); -} - -BOOL nsInstallerDlg::RunUninstall(BOOL *pbCancelled) -{ - BOOL bResult = FALSE; - WCHAR sUninstallPath[MAX_PATH]; - if (GetInstallPath(sUninstallPath)) - { - if (wcslen(sUninstallPath) > 0 && sUninstallPath[wcslen(sUninstallPath)-1] != '\\') - wcscat(sUninstallPath, L"\\"); - - WCHAR sParam[MAX_PATH+10]; - _snwprintf(sParam, MAX_PATH+9, L"[remove] %s", sUninstallPath); - - wcscat(sUninstallPath, L"uninstall.exe"); - - PROCESS_INFORMATION pi; - bResult = CreateProcess(sUninstallPath, sParam, - NULL, NULL, FALSE, 0, NULL, NULL, NULL, &pi); - if (bResult) - { - // Wait for it to finish - WaitForSingleObject(pi.hProcess, INFINITE); - - if (pbCancelled != NULL) - { - DWORD dwExitCode = 0; - GetExitCodeProcess(pi.hProcess, &dwExitCode); - *pbCancelled = (dwExitCode == IDCANCEL); - } - } - } - return bResult; -} - -////////////////////////////////////////////////////////////////////////// -// -// Helper functions -// -////////////////////////////////////////////////////////////////////////// - -BOOL nsInstallerDlg::FastStartFileExists() -{ - WCHAR sFastStartPath[MAX_PATH]; - _snwprintf(sFastStartPath, MAX_PATH, c_sFastStartTemplate, m_sInstallPath, Strings.GetString(StrID_AppShortName)); - // Check if file exists - return (GetFileAttributes(sFastStartPath) != INVALID_FILE_ATTRIBUTES); -} diff --git a/toolkit/mozapps/installer/wince/nsInstallerDlg.h b/toolkit/mozapps/installer/wince/nsInstallerDlg.h deleted file mode 100644 index 80e52c5bee9e..000000000000 --- a/toolkit/mozapps/installer/wince/nsInstallerDlg.h +++ /dev/null @@ -1,85 +0,0 @@ -/* -*- Mode: C++; c-basic-offset: 2; tab-width: 8; indent-tabs-mode: nil; -*- */ -/* ***** 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 Fennec Installer for WinCE. - * - * The Initial Developer of the Original Code is The Mozilla Foundation. - * - * Portions created by the Initial Developer are Copyright (C) 2009 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * Alex Pakhotin (original author) - * - * 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 ***** */ - -#pragma once - -/** - * nsInstallerDlg dialog - */ -class nsInstallerDlg : public nsExtractorProgress -{ -public: - static nsInstallerDlg* GetInstance(); - void Init(HINSTANCE hInst); - int DoModal(); - virtual void Progress(int n); // gets progress notifications - INT_PTR DlgMain(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam); - const WCHAR* GetExtractPath() { return m_sInstallPath; } - -private: - nsInstallerDlg(); - BOOL OnInitDialog(HWND hDlg, WPARAM wParam, LPARAM lParam); - void FindMemCards(); - BOOL OnDialogCreated(HWND hDlg); - BOOL OnBtnExtract(); - LRESULT SendMessageToControl(int nCtlID, UINT Msg, WPARAM wParam = 0, LPARAM lParam = 0); - void SetControlWindowText(int nCtlID, const WCHAR *sText); - - BOOL PostExtract(); - BOOL StoreInstallPath(); - BOOL CreateShortcut(); - BOOL MoveSetupStrings(); - BOOL SilentFirstRun(); - BOOL RunSetupCab(); - - BOOL GetInstallPath(WCHAR *sPath); - BOOL RunUninstall(BOOL *pbCancelled); - - void AddErrorMsg(WCHAR* sErr); - BOOL FastStartFileExists(); - - static const int c_nMaxErrorLen = 2048; - - HINSTANCE m_hInst; - HWND m_hDlg; - BOOL m_bFastStart; - WCHAR m_sProgramFiles[MAX_PATH]; - WCHAR m_sExtractPath[MAX_PATH]; - WCHAR m_sInstallPath[MAX_PATH]; - WCHAR m_sErrorMsg[c_nMaxErrorLen]; -}; diff --git a/toolkit/mozapps/installer/wince/nsInstallerppc.rc b/toolkit/mozapps/installer/wince/nsInstallerppc.rc deleted file mode 100644 index 13c4112acc29..000000000000 --- a/toolkit/mozapps/installer/wince/nsInstallerppc.rc +++ /dev/null @@ -1,162 +0,0 @@ -/* ***** 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 Fennec Installer for WinCE. - * - * The Initial Developer of the Original Code is The Mozilla Foundation. - * - * Portions created by the Initial Developer are Copyright (C) 2009 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * Alex Pakhotin (original author) - * - * 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 ***** */ - -// Microsoft Visual C++ generated resource script. -// -#include "resourceppc.h" - -#define APSTUDIO_READONLY_SYMBOLS -///////////////////////////////////////////////////////////////////////////// -// -// Generated from the TEXTINCLUDE 2 resource. -// -#define APSTUDIO_HIDDEN_SYMBOLS -#include "resdefce.h" -#undef APSTUDIO_HIDDEN_SYMBOLS - -///////////////////////////////////////////////////////////////////////////// -#undef APSTUDIO_READONLY_SYMBOLS - -///////////////////////////////////////////////////////////////////////////// -// English (U.S.) resources - -#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) -#ifdef _WIN32 -LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US -#pragma code_page(1252) -#endif //_WIN32 - -///////////////////////////////////////////////////////////////////////////// -// -// Icon -// - -// Icon with lowest ID value placed first to ensure application icon -// remains consistent on all systems. -IDI_NSINSTALLER ICON "xulrunnerinstaller.ico" - -///////////////////////////////////////////////////////////////////////////// -// -// Dialog -// - -IDD_MAIN DIALOG 0, 0, 156, 129 -STYLE DS_SETFONT | DS_SETFOREGROUND | DS_FIXEDSYS | WS_POPUP | WS_VISIBLE | WS_CAPTION -EXSTYLE 0x80000000L -CAPTION "Mozilla Setup" -FONT 8, "MS Shell Dlg" -BEGIN - ICON IDI_NSINSTALLER,IDC_STATIC,7,3,20,20,SS_REALSIZEIMAGE - LTEXT "XULRunner Setup",IDC_STATIC_TITLE,39,8,106,8,SS_NOPREFIX - LTEXT "Install XULRunner to",IDC_STATIC_INSTALL,2,26,142,11 - PUSHBUTTON "Install",IDC_BTN_INSTALL,2,57,70,20 - PUSHBUTTON "Cancel",IDCANCEL,84,57,70,20 - CONTROL "",IDC_PROGRESS,"msctls_progress32",WS_BORDER,2,84,152,9 - COMBOBOX IDC_CMB_PATH,2,37,152,30,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP - LTEXT "",IDC_STATUS_TEXT,2,98,152,19 -END - - -#ifdef APSTUDIO_INVOKED -///////////////////////////////////////////////////////////////////////////// -// -// TEXTINCLUDE -// - -1 TEXTINCLUDE -BEGIN - "resourceppc.h\0" -END - -2 TEXTINCLUDE -BEGIN - "#define APSTUDIO_HIDDEN_SYMBOLS\r\n" - "#include ""resdefce.h""\r\n" - "#undef APSTUDIO_HIDDEN_SYMBOLS\r\n" - "\0" -END - -3 TEXTINCLUDE -BEGIN - "\r\n" - "#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)\r\n" - "LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US\r\n" - "#pragma code_page(1252)\r\n" - "#include ""nsInstallerppc.rc2"" // non-Microsoft Visual C++ edited resources\r\n" - "#endif\r\n" - "\0" -END - -#endif // APSTUDIO_INVOKED - - -///////////////////////////////////////////////////////////////////////////// -// -// DESIGNINFO -// - -#ifdef APSTUDIO_INVOKED -GUIDELINES DESIGNINFO -BEGIN - IDD_MAIN, DIALOG - BEGIN - LEFTMARGIN, 2 - RIGHTMARGIN, 154 - END -END -#endif // APSTUDIO_INVOKED - -#endif // English (U.S.) resources -///////////////////////////////////////////////////////////////////////////// - - - -#ifndef APSTUDIO_INVOKED -///////////////////////////////////////////////////////////////////////////// -// -// Generated from the TEXTINCLUDE 3 resource. -// - -#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) -LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US -#pragma code_page(1252) -#include "nsInstallerppc.rc2" // non-Microsoft Visual C++ edited resources -#endif - -///////////////////////////////////////////////////////////////////////////// -#endif // not APSTUDIO_INVOKED - diff --git a/toolkit/mozapps/installer/wince/nsInstallerppc.rc2 b/toolkit/mozapps/installer/wince/nsInstallerppc.rc2 deleted file mode 100644 index 8dc2f2828d2d..000000000000 --- a/toolkit/mozapps/installer/wince/nsInstallerppc.rc2 +++ /dev/null @@ -1,17 +0,0 @@ -// -// nsInstallerPPC.rc2 - resources Microsoft Visual C++ does not edit directly -// - -#ifdef APSTUDIO_INVOKED -#error this file is not editable by Microsoft Visual C++ -#endif //APSTUDIO_INVOKED - - -///////////////////////////////////////////////////////////////////////////// -// Add manually edited resources here... - -///////////////////////////////////////////////////////////////////////////// -HI_RES_AWARE CEUX {1} // turn off the emulation layer - // Remove this resource to enable pixel- - // doubling on platforms that support it -///////////////////////////////////////////////////////////////////////////// diff --git a/toolkit/mozapps/installer/wince/nsSetupStrings.cpp b/toolkit/mozapps/installer/wince/nsSetupStrings.cpp deleted file mode 100644 index e7676f791b59..000000000000 --- a/toolkit/mozapps/installer/wince/nsSetupStrings.cpp +++ /dev/null @@ -1,107 +0,0 @@ -/* -*- Mode: C++; c-basic-offset: 2; tab-width: 8; indent-tabs-mode: nil; -*- */ -/* ***** 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 Fennec Installer for WinCE. - * - * The Initial Developer of the Original Code is The Mozilla Foundation. - * - * Portions created by the Initial Developer are Copyright (C) 2009 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * Alex Pakhotin (original author) - * - * 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 ***** */ - -/** - * - * Class to work with localizable string resources - * - */ - -#include -#include "nsSetupStrings.h" -#include "readstrings.h" -#include "errors.h" - -#define STR_KEY(x) #x "\0" -const char *kSetupStrKeys = -#include "nsSetupStrings.inc" -; -#undef STR_KEY - -nsSetupStrings::nsSetupStrings() -{ - m_sBuf = NULL; - memset(m_arrStrings, 0, sizeof(m_arrStrings)); -} - -nsSetupStrings::~nsSetupStrings() -{ - delete[] m_sBuf; -} - -BOOL nsSetupStrings::LoadStrings(WCHAR *sFileName) -{ - if (!sFileName) - return FALSE; - - BOOL bResult = FALSE; - char strings[kNumberOfStrings][MAX_TEXT_LEN]; - if (ReadStrings(sFileName, kSetupStrKeys, kNumberOfStrings, strings) == OK) - { - int nSize = 0; - for (int i = 0; i < kNumberOfStrings; i++) - { - nSize += strlen(strings[i]) + 1; - } - - m_sBuf = new WCHAR[nSize]; - if (!m_sBuf) - return FALSE; - - WCHAR *p = m_sBuf; - for (int i = 0; i < kNumberOfStrings; i++) - { - int len = strlen(strings[i]) + 1; - MultiByteToWideChar(CP_UTF8, 0, strings[i], len, p, len); - m_arrStrings[i] = p; - p += len; - } - - bResult = TRUE; - } - - return bResult; -} - -const WCHAR* nsSetupStrings::GetString(int nID) -{ - if (nID >= kNumberOfStrings) - return L""; - else - return m_arrStrings[nID]; -} diff --git a/toolkit/mozapps/installer/wince/nsSetupStrings.h b/toolkit/mozapps/installer/wince/nsSetupStrings.h deleted file mode 100644 index 9c8d19657d68..000000000000 --- a/toolkit/mozapps/installer/wince/nsSetupStrings.h +++ /dev/null @@ -1,69 +0,0 @@ -/* -*- Mode: C++; c-basic-offset: 2; tab-width: 8; indent-tabs-mode: nil; -*- */ -/* ***** 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 Fennec Installer for WinCE. - * - * The Initial Developer of the Original Code is The Mozilla Foundation. - * - * Portions created by the Initial Developer are Copyright (C) 2009 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * Alex Pakhotin (original author) - * - * 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 ***** */ - -/** - * - * Class to work with localizable string resources - * - */ - -#pragma once - -#define STR_KEY(x) StrID_##x, -enum -{ - #include "nsSetupStrings.inc" - StrID_NumberOfStrings -}; -#undef STR_KEY - -class nsSetupStrings -{ -public: - nsSetupStrings(); - ~nsSetupStrings(); - - BOOL LoadStrings(TCHAR *sFileName); - const TCHAR* GetString(int nID); - -private: - - static const int kNumberOfStrings = StrID_NumberOfStrings; - TCHAR* m_sBuf; - TCHAR* m_arrStrings[kNumberOfStrings]; -}; diff --git a/toolkit/mozapps/installer/wince/nsSetupStrings.inc b/toolkit/mozapps/installer/wince/nsSetupStrings.inc deleted file mode 100644 index 396f369a4b65..000000000000 --- a/toolkit/mozapps/installer/wince/nsSetupStrings.inc +++ /dev/null @@ -1,15 +0,0 @@ - STR_KEY(AppShortName) - STR_KEY(AppLongName) - STR_KEY(WindowCaption) - STR_KEY(InstallTo) - STR_KEY(Install) - STR_KEY(Cancel) - STR_KEY(InstalledSuccessfully) - STR_KEY(ExtractionError) - STR_KEY(ThereWereErrors) - STR_KEY(CreatingUserProfile) - STR_KEY(UninstallCaption) - STR_KEY(FilesWillBeRemoved) - STR_KEY(AreYouSure) - STR_KEY(InstallationNotFound) - STR_KEY(UninstalledSuccessfully) diff --git a/toolkit/mozapps/installer/wince/readme.txt b/toolkit/mozapps/installer/wince/readme.txt deleted file mode 100644 index 30d96306fa58..000000000000 --- a/toolkit/mozapps/installer/wince/readme.txt +++ /dev/null @@ -1,13 +0,0 @@ -FennecInstaller implementation to replace CAB installer. - -This version extracts a 7z file appended to the EXE, i.e. works like a -self-extracted archive. - -For example if you want to install fennec-1.0a3pre.en-US.wince-arm.7z, build -the program, run the following command: - - cat fennec_installer.exe fennec-1.0a3pre.en-US.wince-arm.7z >fennec-1.0a3pre.en-US.wince-arm.exe - -Then copy fennec-1.0a3pre.en-US.wince-arm.exe to a device and run it. - -Note: Requires lib7z. diff --git a/toolkit/mozapps/installer/wince/resourceppc.h b/toolkit/mozapps/installer/wince/resourceppc.h deleted file mode 100644 index 22e01ca55a79..000000000000 --- a/toolkit/mozapps/installer/wince/resourceppc.h +++ /dev/null @@ -1,27 +0,0 @@ -//{{NO_DEPENDENCIES}} -// Microsoft Visual C++ generated include file. -// Used by nsInstallerppc.rc -// -#define IDS_APP_TITLE 1 -#define IDI_NSINSTALLER 101 -#define IDR_MENU 102 -#define IDD_MAIN 103 -#define IDC_BTN_INSTALL 1000 -#define IDC_PROGRESS 1001 -#define IDC_CMB_PATH 1002 -#define IDC_STATUS_TEXT 1003 -#define IDC_STATIC_TITLE 1004 -#define IDC_STATIC_INSTALL 1005 -#define IDC_STATIC -1 - -// Next default values for new objects -// -#ifdef APSTUDIO_INVOKED -#ifndef APSTUDIO_READONLY_SYMBOLS -#define _APS_NO_MFC 1 -#define _APS_NEXT_RESOURCE_VALUE 129 -#define _APS_NEXT_COMMAND_VALUE 32771 -#define _APS_NEXT_CONTROL_VALUE 1006 -#define _APS_NEXT_SYMED_VALUE 110 -#endif -#endif diff --git a/toolkit/mozapps/installer/wince/uninstall/Makefile.in b/toolkit/mozapps/installer/wince/uninstall/Makefile.in deleted file mode 100644 index a7f1d29d2fa6..000000000000 --- a/toolkit/mozapps/installer/wince/uninstall/Makefile.in +++ /dev/null @@ -1,66 +0,0 @@ -# ***** 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 Fennec Installer for WinCE. -# -# The Initial Developer of the Original Code is The Mozilla Foundation. -# -# Portions created by the Initial Developer are Copyright (C) 2009 -# the Mozilla Foundation . All Rights Reserved. -# -# Contributor(s): -# Alex Pakhotin (original author) -# -# 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 ***** - -DEPTH = ../../../../.. -topsrcdir = @top_srcdir@ -srcdir = @srcdir@ -VPATH = @srcdir@ - -include $(DEPTH)/config/autoconf.mk - -PROGRAM = uninstall$(BIN_SUFFIX) - -CPPSRCS = \ - Uninstall.cpp \ - ../nsSetupStrings.cpp \ - $(NULL) - -LIBS += $(DEPTH)/toolkit/mozapps/readstrings/$(LIB_PREFIX)readstrings.$(LIB_SUFFIX) - -OS_LIBS += aygshell.lib commctrl.lib - -LOCAL_INCLUDES += -I$(srcdir)/.. -I$(srcdir)/../../../readstrings - -RCINCLUDE = Uninstall.rc - -# Statically link the CRT when possible -USE_STATIC_LIBS = 1 - -WIN32_EXE_LDFLAGS += -ENTRY:WinMain - -include $(topsrcdir)/config/rules.mk - diff --git a/toolkit/mozapps/installer/wince/uninstall/Uninstall.cpp b/toolkit/mozapps/installer/wince/uninstall/Uninstall.cpp deleted file mode 100644 index 84bd5f312eda..000000000000 --- a/toolkit/mozapps/installer/wince/uninstall/Uninstall.cpp +++ /dev/null @@ -1,543 +0,0 @@ -/* -*- Mode: C++; c-basic-offset: 2; tab-width: 8; indent-tabs-mode: nil; -*- */ -/* ***** 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 Fennec Installer for WinCE. - * - * The Initial Developer of the Original Code is The Mozilla Foundation. - * - * Portions created by the Initial Developer are Copyright (C) 2009 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * Alex Pakhotin (original author) - * - * 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 ***** */ - -/** - * - * Uninstall.cpp : Mozilla Fennec Uninstaller - * - */ - -#include -#include -#include - -#include "nsSetupStrings.h" -#include "resource.h" - -#define WM_DIALOGCREATED (WM_USER + 1) - -const WCHAR c_sStringsFile[] = L"setup.ini"; -nsSetupStrings Strings; - -BOOL g_bRunFromSetupDll = FALSE; - -WCHAR g_sInstallPath[MAX_PATH]; -WCHAR g_sUninstallPath[MAX_PATH]; -HWND g_hDlg = NULL; - -const WCHAR c_sAppRegKeyTemplate[] = L"Software\\Mozilla\\%s"; - -const DWORD c_nTempBufSize = MAX_PATH * 2; -const WCHAR c_sRemoveParam[] = L"[remove]"; -const WCHAR c_sSetupParam[] = L"[setup]"; // means executed by Setup.dll - -// Retry counter for the file/directory deletion -int nTotalRetries = 0; -const int c_nMaxTotalRetries = 10; -const int c_nMaxOneFileRetries = 6; -const int c_nRetryDelay = 500; //milliseconds - -int g_nDirsDeleted = 0; -const int c_nMaxDirs = 25; // approximate number of dirs just to show some progress - -enum { - ErrOK = 0, - ErrCancel = IDCANCEL, - ErrNoStrings = -1, - ErrInstallationNotFound = -2, - ErrShutdownFailed = -3, -}; - -int g_nResult = ErrOK; - -// Forward declarations -BOOL GetModulePath(WCHAR *sPath); -BOOL LoadStrings(); -BOOL GetInstallPath(WCHAR *sPath); -BOOL DeleteShortcut(HWND hwndParent); -BOOL DeleteDirectory(const WCHAR* sPathToDelete); -BOOL DeleteRegistryKey(); -BOOL CopyAndLaunch(); -BOOL ShutdownFastStartService(const WCHAR *sInstallPath); -BOOL RunSystemUninstall(); - -BOOL CALLBACK DlgUninstall(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam); -BOOL OnDialogInit(HWND hDlg); -BOOL OnDialogCreated(HWND hDlg); -int OnUninstall(HWND hDlg); -void UpdateProgress(); - -/////////////////////////////////////////////////////////////////////////////// -// Main -// -int WINAPI WinMain(HINSTANCE hInstance, - HINSTANCE hPrevInstance, - LPTSTR lpCmdLine, - int nCmdShow) -{ - HWND hWnd = GetForegroundWindow(); - *g_sUninstallPath = 0; - - WCHAR *sCommandLine = GetCommandLine(); - WCHAR *sRemoveParam = wcsstr(sCommandLine, c_sRemoveParam); - WCHAR g_bRunFromSetupDll = (wcsstr(sCommandLine, c_sSetupParam) != NULL); - if (sRemoveParam != NULL) - { - // Launched from a temp directory with parameters "[remove] \Program Files\Fennec\" - wcscpy(g_sUninstallPath, sRemoveParam + wcslen(c_sRemoveParam) + 1); - } - else - { - // Just copy this EXE and launch it from a temp location with a special parameter - // to delete itself in the installation directory - if (CopyAndLaunch()) - return ErrOK; - } - // Perform uninstallation when executed with a special parameter - // (or in case when CopyAndLaunch failed - just execute in place) - - if (!LoadStrings()) - { - MessageBoxW(hWnd, L"Cannot find the strings file.", L"Uninstall", MB_OK|MB_ICONWARNING); - return ErrNoStrings; - } - - if (GetInstallPath(g_sInstallPath)) - { - int nDlgResult = DialogBox(hInstance, (LPCTSTR)IDD_MAIN, NULL, (DLGPROC)DlgUninstall); - if (nDlgResult != ErrOK) - g_nResult = nDlgResult; - } - else - { - MessageBoxW(hWnd, Strings.GetString(StrID_InstallationNotFound), - Strings.GetString(StrID_UninstallCaption), MB_OK|MB_ICONINFORMATION); - return ErrInstallationNotFound; - } - - return g_nResult; -} - -int Uninstall(HWND hWnd) -{ - // Remove all installed files - DeleteDirectory(g_sInstallPath); - DeleteShortcut(hWnd); - DeleteRegistryKey(); - - if (!g_bRunFromSetupDll) - RunSystemUninstall(); - - // TODO: May probably handle errors during deletion (such as locked directories) - // and notify user. Right now just return OK. - return ErrOK; -} - -/////////////////////////////////////////////////////////////////////////////// -// Dialog -// -BOOL CALLBACK DlgUninstall(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam) -{ - switch (message) - { - case WM_INITDIALOG: - return OnDialogInit(hDlg); - - case WM_DIALOGCREATED: - return OnDialogCreated(hDlg); - - case WM_COMMAND: - switch (LOWORD(wParam)) - { - case IDOK: - EndDialog(hDlg, ErrOK); - return TRUE; - - case IDCANCEL: - EndDialog(hDlg, ErrCancel); - return TRUE; - - case IDC_BTN_UNINSTALL: - g_nResult = OnUninstall(hDlg); - return TRUE; - } - break; - - case WM_CLOSE: - EndDialog(hDlg, ErrCancel); - return TRUE; - } - return FALSE; -} - -BOOL OnDialogCreated(HWND) -{ - ShutdownFastStartService(g_sInstallPath); - // Just continue regardless of the result - return TRUE; -} - -BOOL OnDialogInit(HWND hDlg) -{ - g_hDlg = hDlg; - PostMessage(hDlg, WM_DIALOGCREATED, 0, 0); - - SetWindowText(hDlg, Strings.GetString(StrID_UninstallCaption)); - - SHINITDLGINFO shidi; - shidi.dwMask = SHIDIM_FLAGS; - shidi.dwFlags = SHIDIF_SIPDOWN | SHIDIF_EMPTYMENU; - shidi.hDlg = hDlg; - SHInitDialog(&shidi); - - // Hide the Done button - SHDoneButton(hDlg, SHDB_HIDE); - - // Init controls - WCHAR sMsg[c_nTempBufSize]; - _snwprintf(sMsg, c_nTempBufSize, L"%s %s", Strings.GetString(StrID_FilesWillBeRemoved), g_sInstallPath); - SetWindowText(GetDlgItem(hDlg, IDC_STATIC_TEXT), sMsg); - SetWindowText(GetDlgItem(hDlg, IDC_QUESTION_TEXT), Strings.GetString(StrID_AreYouSure)); - SetWindowText(GetDlgItem(hDlg, IDC_BTN_UNINSTALL), L"OK"); // TODO: Use localized text "Uninstall" - SetWindowText(GetDlgItem(hDlg, IDCANCEL), Strings.GetString(StrID_Cancel)); - ShowWindow(GetDlgItem(hDlg, IDC_PROGRESS), SW_HIDE); - ShowWindow(GetDlgItem(hDlg, IDOK), SW_HIDE); - - return TRUE; -} - -int OnUninstall(HWND hDlg) -{ - SetWindowText(GetDlgItem(hDlg, IDC_QUESTION_TEXT), L""); - ShowWindow(GetDlgItem(hDlg, IDC_BTN_UNINSTALL), SW_HIDE); - ShowWindow(GetDlgItem(hDlg, IDCANCEL), SW_HIDE); - ShowWindow(GetDlgItem(hDlg, IDC_PROGRESS), SW_SHOW); - SendMessage(GetDlgItem(hDlg, IDC_PROGRESS), PBM_SETRANGE, 0, (LPARAM) MAKELPARAM (0, c_nMaxDirs)); - SendMessage(GetDlgItem(hDlg, IDC_PROGRESS), PBM_SETPOS, 0, 0); - - UpdateWindow(hDlg); // make sure the text is drawn - - int ret = Uninstall(hDlg); - - if (ret == ErrOK) - { - SetWindowText(GetDlgItem(hDlg, IDC_STATIC_TEXT), Strings.GetString(StrID_UninstalledSuccessfully)); - } - else - { - //TODO: Localize this message. It might be shown later when the errors will be handled - SetWindowText(GetDlgItem(hDlg, IDC_STATIC_TEXT), L"There were errors during uninstallation."); - } - - ShowWindow(GetDlgItem(hDlg, IDC_PROGRESS), SW_HIDE); - ShowWindow(GetDlgItem(hDlg, IDOK), SW_SHOW); - - return ret; -} - -void UpdateProgress() -{ - SendMessage(GetDlgItem(g_hDlg, IDC_PROGRESS), PBM_SETPOS, (WPARAM)g_nDirsDeleted, 0); -} - -/////////////////////////////////////////////////////////////////////////////// -// Utility functions -// - -BOOL LoadStrings() -{ - // Locate and load the strings file used by installer - if (*g_sUninstallPath == 0) - GetModulePath(g_sUninstallPath); - - WCHAR sStringsFile[MAX_PATH]; - _snwprintf(sStringsFile, MAX_PATH, L"%s\\%s", g_sUninstallPath, c_sStringsFile); - - return Strings.LoadStrings(sStringsFile); -} - -BOOL GetModulePath(WCHAR *sPath) -{ - if (GetModuleFileName(NULL, sPath, MAX_PATH) == 0) - return FALSE; - - WCHAR *sSlash = wcsrchr(sPath, L'\\') + 1; - *sSlash = L'\0'; // cut the file name - - return TRUE; -} - -BOOL GetInstallPath(WCHAR *sPath) -{ - HKEY hKey; - WCHAR sRegFennecKey[MAX_PATH]; - _snwprintf(sRegFennecKey, MAX_PATH, c_sAppRegKeyTemplate, Strings.GetString(StrID_AppShortName)); - - LONG result = RegOpenKeyEx(HKEY_LOCAL_MACHINE, sRegFennecKey, 0, KEY_ALL_ACCESS, &hKey); - if (result == ERROR_SUCCESS) - { - DWORD dwType = NULL; - DWORD dwCount = MAX_PATH * sizeof(WCHAR); - result = RegQueryValueEx(hKey, L"Path", NULL, &dwType, (LPBYTE)sPath, &dwCount); - - RegCloseKey(hKey); - } - - return (result == ERROR_SUCCESS); -} - -BOOL DeleteDirectory(const WCHAR* sPathToDelete) -{ - BOOL bResult = TRUE; - HANDLE hFile; - WCHAR sFilePath[MAX_PATH]; - WCHAR sPattern[MAX_PATH]; - WIN32_FIND_DATA findData; - - wcscpy(sPattern, sPathToDelete); - wcscat(sPattern, L"\\*.*"); - hFile = FindFirstFile(sPattern, &findData); - if (hFile != INVALID_HANDLE_VALUE) - { - do - { - if (findData.cFileName[0] != L'.') - { - _snwprintf(sFilePath, MAX_PATH, L"%s\\%s", sPathToDelete, findData.cFileName); - - if (findData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) - { - // Delete subdirectory - if (!DeleteDirectory(sFilePath)) - bResult = FALSE; - } - else - { - // Set file attributes - if (SetFileAttributes(sFilePath, FILE_ATTRIBUTE_NORMAL)) - { - // Delete file - if (!DeleteFile(sFilePath) && nTotalRetries < c_nMaxTotalRetries) - { - BOOL bDeleted = FALSE; - nTotalRetries++; - for (int nRetry = 0; nRetry < c_nMaxOneFileRetries; nRetry++) - { - Sleep(c_nRetryDelay); - if (DeleteFile(sFilePath)) - { - bDeleted = TRUE; - break; - } - } - if (!bDeleted) - bResult = FALSE; - } - } - } - } - } while (FindNextFile(hFile, &findData)); - - // Close handle - FindClose(hFile); - } - - // Set directory attributes - if (SetFileAttributes(sPathToDelete, FILE_ATTRIBUTE_NORMAL)) - { - g_nDirsDeleted++; - UpdateProgress(); - // Delete directory - if (!RemoveDirectory(sPathToDelete) && nTotalRetries < c_nMaxTotalRetries) - { - BOOL bDeleted = FALSE; - nTotalRetries++; - for (int nRetry = 0; nRetry < c_nMaxOneFileRetries; nRetry++) - { - Sleep(c_nRetryDelay); - if (RemoveDirectory(sPathToDelete)) - { - bDeleted = TRUE; - break; - } - } - if (!bDeleted) - bResult = FALSE; - } - } - - return bResult; -} - -// Deletes shortcuts for Fennec and FastStart service created by the installer. -// Note: The shortcut names have to be in sync with CreateShortcut in nsInstallerDlg.cpp -BOOL DeleteShortcut(HWND hwndParent) -{ - BOOL result = FALSE; - - WCHAR sProgramsPath[MAX_PATH]; - if (SHGetSpecialFolderPath(hwndParent, sProgramsPath, CSIDL_PROGRAMS, FALSE)) - { - WCHAR sShortcutPath[MAX_PATH]; - _snwprintf(sShortcutPath, MAX_PATH, L"%s\\%s.lnk", sProgramsPath, Strings.GetString(StrID_AppShortName)); - - - if(SetFileAttributes(sShortcutPath, FILE_ATTRIBUTE_NORMAL)) - result = DeleteFile(sShortcutPath); - } - - // Handle faststart shortcut - WCHAR sStartupPath[MAX_PATH]; - if (SHGetSpecialFolderPath(hwndParent, sStartupPath, CSIDL_STARTUP, FALSE)) - { - WCHAR sStartupShortcutPath[MAX_PATH]; - _snwprintf(sStartupShortcutPath, MAX_PATH, L"%s\\%sFastStart.lnk", sStartupPath, Strings.GetString(StrID_AppShortName)); - - // It may not exist - just ignore that - if(SetFileAttributes(sStartupShortcutPath, FILE_ATTRIBUTE_NORMAL)) - DeleteFile(sStartupShortcutPath); - } - - return result; -} - -BOOL DeleteRegistryKey() -{ - WCHAR sRegFennecKey[MAX_PATH]; - _snwprintf(sRegFennecKey, MAX_PATH, c_sAppRegKeyTemplate, Strings.GetString(StrID_AppShortName)); - - LONG result = RegDeleteKey(HKEY_LOCAL_MACHINE, sRegFennecKey); - return (result == ERROR_SUCCESS); -} - -// Copy to a temp directory and launch from there -BOOL CopyAndLaunch() -{ - WCHAR sNewName[] = L"\\Temp\\uninstall.exe"; - WCHAR sModule[MAX_PATH]; - if (GetModuleFileName(NULL, sModule, MAX_PATH) == 0 || !GetModulePath(g_sUninstallPath)) - return FALSE; - if (CopyFile(sModule, sNewName, FALSE)) - { - PROCESS_INFORMATION pi; - WCHAR sParam[c_nTempBufSize]; - if (g_bRunFromSetupDll) - _snwprintf(sParam, c_nTempBufSize, L"%s %s %s", c_sSetupParam, c_sRemoveParam, g_sUninstallPath); - else - _snwprintf(sParam, c_nTempBufSize, L"%s %s", c_sRemoveParam, g_sUninstallPath); - - // Launch "\Temp\uninstall.exe remove \Program Files\Fennec\" - return CreateProcess(sNewName, sParam, NULL, NULL, FALSE, 0, NULL, NULL, NULL, &pi); - } - else - return FALSE; -} - -BOOL ConvertToChar(const WCHAR *wstr, char *str, DWORD bufSize) -{ - return 0 != WideCharToMultiByte(CP_ACP, 0, wstr, -1, str, bufSize, NULL, NULL); -} - -BOOL ShutdownFastStartService(const WCHAR *wsInstallPath) -{ - BOOL result = TRUE; - - // Class name: appName + "MessageWindow" - WCHAR sClassName[c_nTempBufSize]; - _snwprintf(sClassName, c_nTempBufSize, L"%s%s", Strings.GetString(StrID_AppShortName), L"MessageWindow"); - - HWND handle = ::FindWindowW(sClassName, NULL); - if (handle) - { - char sPath[MAX_PATH]; - ConvertToChar(wsInstallPath, sPath, MAX_PATH); - size_t pathLen = strlen(sPath); - if (pathLen > 0 && sPath[pathLen-1] != '\\') - { - strcat(sPath, "\\"); - pathLen++; - } - - char sCopyData[MAX_PATH * 3]; - _snprintf(sCopyData, MAX_PATH * 2, "\"%s%S.exe\" -shutdown-faststart", sPath, Strings.GetString(StrID_AppShortName)); - size_t cmdLineLen = strlen(sCopyData); - - char *sRest = sCopyData + cmdLineLen + 1; - strcpy(sRest, sPath); - - COPYDATASTRUCT cds = { - 1, - pathLen + 1 + cmdLineLen, - (void*) sCopyData - }; - ::SendMessage(handle, WM_COPYDATA, 0, (LPARAM)&cds); - - // Wait until it's shut down or for some timeout - for (int i = 0; i < 20 && handle; i++) - { - Sleep(500); - handle = ::FindWindowW(sClassName, NULL); - } - - // The window must not exist if the service shut down properly - result = (handle == NULL); - } - return result; -} - -// Remove the part installed from the CAB -BOOL RunSystemUninstall() -{ - WCHAR sXML[c_nTempBufSize]; - LPWSTR sXMLOut = NULL; - - _snwprintf(sXML, c_nTempBufSize, - L"" - L" " - L" " - L" " - L" " - L" " - L"", - Strings.GetString(StrID_AppLongName)); - - HRESULT hr = DMProcessConfigXML(sXML, CFGFLAG_PROCESS, &sXMLOut); - delete[] sXMLOut; - - return hr == S_OK; -} diff --git a/toolkit/mozapps/installer/wince/uninstall/Uninstall.rc b/toolkit/mozapps/installer/wince/uninstall/Uninstall.rc deleted file mode 100644 index 4d910b6aa5ec..000000000000 --- a/toolkit/mozapps/installer/wince/uninstall/Uninstall.rc +++ /dev/null @@ -1,69 +0,0 @@ -/* ***** 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 Fennec Installer for WinCE. - * - * The Initial Developer of the Original Code is The Mozilla Foundation. - * - * Portions created by the Initial Developer are Copyright (C) 2010 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * Alex Pakhotin (original author) - * - * 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 ***** */ - -// Microsoft Visual C++ generated resource script. -// -#include "resource.h" - -#define APSTUDIO_READONLY_SYMBOLS -#include "resdefce.h" - -#ifdef _WIN32 -LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US -#pragma code_page(1252) -#endif //_WIN32 - -///////////////////////////////////////////////////////////////////////////// -// Dialog - -IDD_MAIN DIALOG 0, 0, 120, 77 -STYLE DS_CENTER | DS_SETFONT | DS_SETFOREGROUND | DS_FIXEDSYS | WS_POPUP | WS_VISIBLE | WS_CAPTION -EXSTYLE 0x80000000L -CAPTION "Uninstall" -FONT 9, "MS Shell Dlg" -BEGIN - LTEXT "",IDC_STATIC_TEXT,6,6,108,24,SS_NOPREFIX - LTEXT "Uninstall?",IDC_QUESTION_TEXT,6,32,132,11,SS_NOPREFIX - PUSHBUTTON "Uninstall",IDC_BTN_UNINSTALL,15,50,40,20 - PUSHBUTTON "Cancel",IDCANCEL,65,50,40,20 - PUSHBUTTON "OK",IDOK,35,50,50,20 - CONTROL "",IDC_PROGRESS,"msctls_progress32",WS_BORDER,4,52,110,9 -END - -HI_RES_AWARE CEUX {1} // turn off the emulation layer - -#undef APSTUDIO_READONLY_SYMBOLS diff --git a/toolkit/mozapps/installer/wince/uninstall/resource.h b/toolkit/mozapps/installer/wince/uninstall/resource.h deleted file mode 100644 index b7a6d3055c51..000000000000 --- a/toolkit/mozapps/installer/wince/uninstall/resource.h +++ /dev/null @@ -1,23 +0,0 @@ -//{{NO_DEPENDENCIES}} -// Microsoft Visual C++ generated include file. -// Used by nsUninstaller.rc -// -#define IDD_MAIN 101 -#define IDC_STATIC_TITLE 1000 -#define IDC_STATIC_TEXT 1001 -#define IDC_QUESTION_TEXT 1002 -#define IDC_BTN_UNINSTALL 1003 -#define IDC_PROGRESS 1004 -#define IDC_STATIC -1 - -// Next default values for new objects -// -#ifdef APSTUDIO_INVOKED -#ifndef APSTUDIO_READONLY_SYMBOLS -#define _APS_NO_MFC 1 -#define _APS_NEXT_RESOURCE_VALUE 102 -#define _APS_NEXT_COMMAND_VALUE 32771 -#define _APS_NEXT_CONTROL_VALUE 1005 -#define _APS_NEXT_SYMED_VALUE 110 -#endif -#endif diff --git a/toolkit/mozapps/installer/wince/xulrunnerinstaller.ico b/toolkit/mozapps/installer/wince/xulrunnerinstaller.ico deleted file mode 100644 index 0b65049e8913..000000000000 Binary files a/toolkit/mozapps/installer/wince/xulrunnerinstaller.ico and /dev/null differ diff --git a/toolkit/mozapps/update/nsUpdateService.js b/toolkit/mozapps/update/nsUpdateService.js index 4cc2bdd8457b..401843173f49 100644 --- a/toolkit/mozapps/update/nsUpdateService.js +++ b/toolkit/mozapps/update/nsUpdateService.js @@ -94,9 +94,7 @@ const KEY_APPDIR = "XCurProcD"; const KEY_GRED = "GreD"; #ifdef XP_WIN -#ifndef WINCE #define USE_UPDROOT -#endif #elifdef ANDROID #define USE_UPDROOT #endif @@ -214,7 +212,6 @@ XPCOMUtils.defineLazyGetter(this, "gCanApplyUpdates", function aus_gCanApplyUpda updateTestFile.create(NORMAL_FILE_TYPE, FileUtils.PERMS_FILE); updateTestFile.remove(false); #ifdef XP_WIN -#ifndef WINCE var sysInfo = Cc["@mozilla.org/system-info;1"]. getService(Ci.nsIPropertyBag2); @@ -285,7 +282,6 @@ XPCOMUtils.defineLazyGetter(this, "gCanApplyUpdates", function aus_gCanApplyUpda appDirTestFile.create(NORMAL_FILE_TYPE, FileUtils.PERMS_FILE); appDirTestFile.remove(false); } -#endif //WINCE #endif //XP_WIN } catch (e) { diff --git a/toolkit/mozapps/update/nsUpdateServiceStub.js b/toolkit/mozapps/update/nsUpdateServiceStub.js index d249904b1d26..c39a2f9a1890 100644 --- a/toolkit/mozapps/update/nsUpdateServiceStub.js +++ b/toolkit/mozapps/update/nsUpdateServiceStub.js @@ -47,9 +47,7 @@ const FILE_UPDATE_STATUS = "update.status"; const KEY_APPDIR = "XCurProcD"; #ifdef XP_WIN -#ifndef WINCE #define USE_UPDROOT -#endif #elifdef ANDROID #define USE_UPDROOT #endif diff --git a/toolkit/mozapps/update/test/unit/head_update.js.in b/toolkit/mozapps/update/test/unit/head_update.js.in index e440b2495d1f..a8e3cd230628 100644 --- a/toolkit/mozapps/update/test/unit/head_update.js.in +++ b/toolkit/mozapps/update/test/unit/head_update.js.in @@ -51,12 +51,6 @@ const IS_WIN = true; const IS_WIN = false; #endif -#ifdef WINCE -const IS_WINCE = true; -#else -const IS_WINCE = false; -#endif - #ifdef XP_OS2 const IS_OS2 = true; #else @@ -561,7 +555,7 @@ function setupUpdaterTest(aMarFile) { writeFile(testFile, aTestFile.originalContents); } - // Skip these tests on Windows (includes WinCE) and OS/2 since their + // Skip these tests on Windows and OS/2 since their // implementaions of chmod doesn't really set permissions. if (!IS_WIN && !IS_OS2 && aTestFile.originalPerms) { testFile.permissions = aTestFile.originalPerms; @@ -661,10 +655,6 @@ function cleanupUpdaterTest() { * update log after a successful update. */ function checkUpdateLogContents(aCompareLogFile) { - // Skip this test on Windows CE since it doesn't use relative paths. - if (IS_WINCE) - return; - let updateLog = do_get_file(TEST_ID + UPDATES_DIR_SUFFIX, true); updateLog.append(FILE_UPDATE_LOG); // Skip the first two lines since they contain absolute paths. @@ -678,7 +668,6 @@ function checkUpdateLogContents(aCompareLogFile) { // determistic so the results matching the following need to be ignored. updateLogContents = updateLogContents.replace(/.* a\/b\/7\/7text.*\n/g, ""); - let compareLog = do_get_file(aCompareLogFile); let compareLogContents = readFileBytes(compareLog); @@ -704,7 +693,7 @@ function checkFilesAfterUpdateSuccess() { if (aTestFile.compareFile || aTestFile.compareContents) { do_check_true(testFile.exists()); - // Skip these tests on Windows (includes WinCE) and OS/2 since their + // Skip these tests on Windows and OS/2 since their // implementaions of chmod doesn't really set permissions. if (!IS_WIN && !IS_OS2 && aTestFile.comparePerms) { // Check if the permssions as set in the complete mar file are correct. @@ -788,7 +777,7 @@ function checkFilesAfterUpdateFailure() { if (aTestFile.compareFile || aTestFile.compareContents) { do_check_true(testFile.exists()); - // Skip these tests on Windows (includes WinCE) and OS/2 since their + // Skip these tests on Windows and OS/2 since their // implementaions of chmod doesn't really set permissions. if (!IS_WIN && !IS_OS2 && aTestFile.comparePerms) { // Check the original permssions are retained on the file. diff --git a/toolkit/mozapps/update/test/unit/test_0150_appBinReplaced_xp_win_complete.js b/toolkit/mozapps/update/test/unit/test_0150_appBinReplaced_xp_win_complete.js index 4dff96ae6777..40ddc1d8585e 100644 --- a/toolkit/mozapps/update/test/unit/test_0150_appBinReplaced_xp_win_complete.js +++ b/toolkit/mozapps/update/test/unit/test_0150_appBinReplaced_xp_win_complete.js @@ -192,7 +192,7 @@ ADDITIONAL_TEST_DIRS = [ }]; function run_test() { - if (!IS_WIN || IS_WINCE) { + if (!IS_WIN) { logTestInfo("this test is only applicable to Windows... returning early"); return; } diff --git a/toolkit/mozapps/update/test/unit/test_0151_appBinPatched_xp_win_partial.js b/toolkit/mozapps/update/test/unit/test_0151_appBinPatched_xp_win_partial.js index 71f5c3115749..c2e5d12febb2 100644 --- a/toolkit/mozapps/update/test/unit/test_0151_appBinPatched_xp_win_partial.js +++ b/toolkit/mozapps/update/test/unit/test_0151_appBinPatched_xp_win_partial.js @@ -194,7 +194,7 @@ ADDITIONAL_TEST_DIRS = [ }]; function run_test() { - if (!IS_WIN || IS_WINCE) { + if (!IS_WIN) { logTestInfo("this test is only applicable to Windows... returning early"); return; } diff --git a/toolkit/mozapps/update/test/unit/test_0160_appInUse_xp_win_complete.js b/toolkit/mozapps/update/test/unit/test_0160_appInUse_xp_win_complete.js index 51ab3ae418c3..370e4d4b9861 100644 --- a/toolkit/mozapps/update/test/unit/test_0160_appInUse_xp_win_complete.js +++ b/toolkit/mozapps/update/test/unit/test_0160_appInUse_xp_win_complete.js @@ -185,7 +185,7 @@ ADDITIONAL_TEST_DIRS = [ }]; function run_test() { - if (!IS_WIN || IS_WINCE) { + if (!IS_WIN) { logTestInfo("this test is only applicable to Windows... returning early"); return; } diff --git a/toolkit/mozapps/update/test/unit/test_0170_fileLocked_xp_win_complete.js b/toolkit/mozapps/update/test/unit/test_0170_fileLocked_xp_win_complete.js index 30424c2d7fc8..bc0cf80e72bc 100644 --- a/toolkit/mozapps/update/test/unit/test_0170_fileLocked_xp_win_complete.js +++ b/toolkit/mozapps/update/test/unit/test_0170_fileLocked_xp_win_complete.js @@ -185,7 +185,7 @@ ADDITIONAL_TEST_DIRS = [ }]; function run_test() { - if (!IS_WIN || IS_WINCE) { + if (!IS_WIN) { logTestInfo("this test is only applicable to Windows... returning early"); return; } diff --git a/toolkit/mozapps/update/test/unit/test_0171_fileLocked_xp_win_partial.js b/toolkit/mozapps/update/test/unit/test_0171_fileLocked_xp_win_partial.js index 0f0d21656520..21fa3ab35a35 100644 --- a/toolkit/mozapps/update/test/unit/test_0171_fileLocked_xp_win_partial.js +++ b/toolkit/mozapps/update/test/unit/test_0171_fileLocked_xp_win_partial.js @@ -186,7 +186,7 @@ ADDITIONAL_TEST_DIRS = [ }]; function run_test() { - if (!IS_WIN || IS_WINCE) { + if (!IS_WIN) { logTestInfo("this test is only applicable to Windows... returning early"); return; } diff --git a/toolkit/mozapps/update/test/unit/test_0180_fileInUse_xp_win_complete.js b/toolkit/mozapps/update/test/unit/test_0180_fileInUse_xp_win_complete.js index add37dd8f741..043cf6990ec6 100644 --- a/toolkit/mozapps/update/test/unit/test_0180_fileInUse_xp_win_complete.js +++ b/toolkit/mozapps/update/test/unit/test_0180_fileInUse_xp_win_complete.js @@ -191,7 +191,7 @@ ADDITIONAL_TEST_DIRS = [ }]; function run_test() { - if (!IS_WIN || IS_WINCE) { + if (!IS_WIN) { logTestInfo("this test is only applicable to Windows... returning early"); return; } diff --git a/toolkit/mozapps/update/test/unit/test_0181_fileInUse_xp_win_partial.js b/toolkit/mozapps/update/test/unit/test_0181_fileInUse_xp_win_partial.js index bcb7b1857d14..2e5567d0dfbd 100644 --- a/toolkit/mozapps/update/test/unit/test_0181_fileInUse_xp_win_partial.js +++ b/toolkit/mozapps/update/test/unit/test_0181_fileInUse_xp_win_partial.js @@ -194,7 +194,7 @@ ADDITIONAL_TEST_DIRS = [ }]; function run_test() { - if (!IS_WIN || IS_WINCE) { + if (!IS_WIN) { logTestInfo("this test is only applicable to Windows... returning early"); return; } diff --git a/toolkit/mozapps/update/test/unit/test_0182_rmrfdirFileInUse_xp_win_complete.js b/toolkit/mozapps/update/test/unit/test_0182_rmrfdirFileInUse_xp_win_complete.js index 31e658e10f05..b7d3b2216df7 100644 --- a/toolkit/mozapps/update/test/unit/test_0182_rmrfdirFileInUse_xp_win_complete.js +++ b/toolkit/mozapps/update/test/unit/test_0182_rmrfdirFileInUse_xp_win_complete.js @@ -191,7 +191,7 @@ ADDITIONAL_TEST_DIRS = [ }]; function run_test() { - if (!IS_WIN || IS_WINCE) { + if (!IS_WIN) { logTestInfo("this test is only applicable to Windows... returning early"); return; } diff --git a/toolkit/mozapps/update/test/unit/test_0183_rmrfdirFileInUse_xp_win_partial.js b/toolkit/mozapps/update/test/unit/test_0183_rmrfdirFileInUse_xp_win_partial.js index f30749caa2b8..861a91813846 100644 --- a/toolkit/mozapps/update/test/unit/test_0183_rmrfdirFileInUse_xp_win_partial.js +++ b/toolkit/mozapps/update/test/unit/test_0183_rmrfdirFileInUse_xp_win_partial.js @@ -234,7 +234,7 @@ ADDITIONAL_TEST_DIRS = [ }]; function run_test() { - if (!IS_WIN || IS_WINCE) { + if (!IS_WIN) { logTestInfo("this test is only applicable to Windows... returning early"); return; } diff --git a/toolkit/mozapps/update/test/unit/test_0200_app_launch_apply_update.js b/toolkit/mozapps/update/test/unit/test_0200_app_launch_apply_update.js index 28e7a16b49f7..16ca3a869058 100644 --- a/toolkit/mozapps/update/test/unit/test_0200_app_launch_apply_update.js +++ b/toolkit/mozapps/update/test/unit/test_0200_app_launch_apply_update.js @@ -112,11 +112,6 @@ function run_test() { return; } - if (IS_WINCE) { - logTestInfo("this test is not applicable to Windows CE... returning early"); - return; - } - do_test_pending(); do_register_cleanup(end_test); diff --git a/toolkit/themes/winstripe/global/toolbar.css b/toolkit/themes/winstripe/global/toolbar.css index 7dfa85bedc56..b8636c9d36f3 100644 --- a/toolkit/themes/winstripe/global/toolbar.css +++ b/toolkit/themes/winstripe/global/toolbar.css @@ -47,10 +47,8 @@ toolbox { -moz-appearance: toolbox; background-color: -moz-Dialog; -%ifndef WINCE border-top: 2px solid; -moz-border-top-colors: ThreeDShadow ThreeDHighlight; -%endif } /* ::::: toolbar & menubar ::::: */ diff --git a/toolkit/toolkit-tiers.mk b/toolkit/toolkit-tiers.mk index dc4cb71fe023..6314ca0dc655 100644 --- a/toolkit/toolkit-tiers.mk +++ b/toolkit/toolkit-tiers.mk @@ -58,11 +58,8 @@ ifndef MOZ_NATIVE_ZLIB tier_platform_dirs += modules/zlib endif -ifndef WINCE -tier_platform_dirs += modules/libreg -endif - tier_platform_dirs += \ + modules/libreg \ modules/libpref \ intl \ netwerk \ @@ -95,10 +92,6 @@ endif tier_platform_dirs += gfx/qcms -ifeq ($(OS_ARCH),WINCE) -tier_platform_dirs += modules/lib7z -endif - # # "gecko" - core components # diff --git a/toolkit/xre/Makefile.in b/toolkit/xre/Makefile.in index 648b29476660..875e4cacb4ea 100644 --- a/toolkit/xre/Makefile.in +++ b/toolkit/xre/Makefile.in @@ -53,7 +53,7 @@ XPIDLSRCS = \ nsINativeAppSupport.idl \ $(NULL) -ifneq (,$(filter WINCE WINNT,$(OS_ARCH))) +ifeq ($(OS_ARCH),WINNT) XPIDLSRCS += nsIWinAppHelper.idl endif @@ -71,12 +71,8 @@ CPPSRCS += EventTracer.cpp endif ifdef MOZ_SPLASHSCREEN -ifeq ($(OS_ARCH),WINCE) -CPPSRCS += nsSplashScreenWin.cpp -else CPPSRCS += nsSplashScreenDummy.cpp endif -endif DEFINES += -DIMPL_XREAPI -DMOZ_APP_NAME='"$(MOZ_APP_NAME)"' diff --git a/toolkit/xre/nsAppRunner.cpp b/toolkit/xre/nsAppRunner.cpp index 8b4db05235f3..6dd1338626d0 100644 --- a/toolkit/xre/nsAppRunner.cpp +++ b/toolkit/xre/nsAppRunner.cpp @@ -166,10 +166,8 @@ using mozilla::dom::ContentParent; #endif #ifdef XP_WIN -#ifndef WINCE #include #include -#endif #include "nsThreadUtils.h" #endif @@ -219,33 +217,6 @@ using mozilla::dom::ContentParent; #include "AndroidBridge.h" #endif -#ifdef WINCE -class WindowsMutex { -public: - WindowsMutex(const wchar_t *name) { - mHandle = CreateMutexW(0, FALSE, name); - } - - ~WindowsMutex() { - Unlock(); - CloseHandle(mHandle); - } - - PRBool Lock(DWORD timeout = INFINITE) { - DWORD state = WaitForSingleObject(mHandle, timeout); - return state == WAIT_OBJECT_0; - } - - void Unlock() { - if (mHandle) - ReleaseMutex(mHandle); - } - -protected: - HANDLE mHandle; -}; -#endif - extern PRUint32 gRestartMode; extern void InstallSignalHandlers(const char *ProgramName); #include "nsX11ErrorHandler.h" @@ -846,10 +817,6 @@ typedef enum NS_IMETHODIMP nsXULAppInfo::GetUserCanElevate(PRBool *aUserCanElevate) { -#ifdef WINCE - *aUserCanElevate = PR_FALSE; - return NS_OK; -#else HANDLE hToken; VISTA_TOKEN_ELEVATION_TYPE elevationType; @@ -877,7 +844,6 @@ nsXULAppInfo::GetUserCanElevate(PRBool *aUserCanElevate) CloseHandle(hToken); return NS_OK; -#endif // WINCE } #endif @@ -2891,55 +2857,11 @@ XRE_main(int argc, char* argv[], const nsXREAppData* aAppData) isNoSplash |= (PR_GetEnv("NO_SPLASH") != 0); PRBool isNoRemote = (CheckArg("no-remote", PR_FALSE, NULL, PR_FALSE) == ARG_FOUND); -#ifdef WINCE - // synchronize startup; if it looks like we're going to have to - // wait, then open up a splash screen - WindowsMutex winStartupMutex(L"FirefoxStartupMutex"); - - // try to lock the mutex, but only wait 100ms to do so - PRBool needsMutexLock = ! winStartupMutex.Lock(100); - - // If we failed to lock the mutex quickly, then we'll want - // a splash screen for sure. - // - // If we did manage to lock it, then we'll only want one - // a splash screen if there is no existing message window; - // that is, if we are the first instance of the app. - if (!needsMutexLock && !isNoRemote) { - // check to see if there's a remote firefox up - static PRUnichar classNameBuffer[128]; - _snwprintf(classNameBuffer, sizeof(classNameBuffer) / sizeof(PRUnichar), - L"%S%s", - gAppData->name, L"MessageWindow"); - HANDLE h = FindWindowW(classNameBuffer, 0); - if (h) { - // Someone else has the window, and we were able to grab the mutex, - // meaning the other instance ahs presumably already finished starting - // up by now. So no need for a splash screen. - wantsSplash = PR_FALSE; - CloseHandle(h); - } else { - // We couldn't find another window, and we were able to lock the mutex; - // we're likely the first instance starting up, so make sure a splash - // screen gets thrown up. - wantsSplash = PR_TRUE; - } - } -#endif //WINCE - if (wantsSplash && !isNoSplash) splashScreen = nsSplashScreen::GetOrCreate(); if (splashScreen) splashScreen->Open(); - -#ifdef WINCE - // Now that the splash screen is open, wait indefinitely - // for the startup mutex on this thread if we need to. - if (needsMutexLock) - winStartupMutex.Lock(); -#endif //WINCE - #endif //MOZ_SPLASHSCREEN @@ -3406,11 +3328,6 @@ XRE_main(int argc, char* argv[], const nsXREAppData* aAppData) rv = dirProvider.SetProfile(profD, profLD); NS_ENSURE_SUCCESS(rv, 1); -#if defined(WINCE) && defined(MOZ_SPLASHSCREEN) - // give up the mutex, let other app startups happen - winStartupMutex.Unlock(); -#endif - //////////////////////// NOW WE HAVE A PROFILE //////////////////////// #ifdef MOZ_CRASHREPORTER @@ -3947,7 +3864,7 @@ SetupErrorHandling(const char* progname) _SetProcessDEPPolicy(PROCESS_DEP_ENABLE); #endif -#if defined (XP_WIN32) && !defined (WINCE) +#ifdef XP_WIN32 // Suppress the "DLL Foo could not be found" dialog, such that if dependent // libraries (such as GDI+) are not preset, we gracefully fail to load those // XPCOM components, instead of being ungraceful. @@ -3968,10 +3885,8 @@ SetupErrorHandling(const char* progname) InstallSignalHandlers(progname); #endif -#ifndef WINCE // Unbuffer stdout, needed for tinderbox tests. setbuf(stdout, 0); -#endif #if defined(FREEBSD) // Disable all SIGFPE's on FreeBSD, as it has non-IEEE-conformant fp diff --git a/toolkit/xre/nsNativeAppSupportWin.cpp b/toolkit/xre/nsNativeAppSupportWin.cpp index 4a85b7c13e86..96fa305dcfae 100644 --- a/toolkit/xre/nsNativeAppSupportWin.cpp +++ b/toolkit/xre/nsNativeAppSupportWin.cpp @@ -76,9 +76,7 @@ #include #include -#ifndef WINCE #include -#endif #include #include #include @@ -107,12 +105,10 @@ activateWindow( nsIDOMWindowInternal *win ) { // Try to get native window handle. HWND hwnd = hwndForDOMWindow( win ); if ( hwnd ) { -#ifndef WINCE // Can't iconify windows on windows ce // Restore the window if it is minimized. if ( ::IsIconic( hwnd ) ) { ::ShowWindow( hwnd, SW_RESTORE ); } -#endif // Use the OS call, if possible. ::SetForegroundWindow( hwnd ); } else { @@ -313,10 +309,8 @@ public: NS_IMETHOD Stop( PRBool *aResult ); NS_IMETHOD Quit(); NS_IMETHOD Enable(); -#ifndef WINCE // The "old" Start method (renamed). NS_IMETHOD StartDDE(); -#endif // Utility function to handle a Win32-specific command line // option: "-console", which dynamically creates a Windows // console. @@ -324,7 +318,6 @@ public: private: static void HandleCommandLine(const char* aCmdLineString, nsIFile* aWorkingDir, PRUint32 aState); -#ifndef WINCE static HDDEDATA CALLBACK HandleDDENotification( UINT uType, UINT uFmt, HCONV hconv, @@ -339,7 +332,6 @@ private: static HDDEDATA CreateDDEData( LPBYTE value, DWORD len ); static PRBool InitTopicStrings(); static int FindTopic( HSZ topic ); -#endif static void ActivateLastWindow(); static nsresult OpenWindow( const char *urlstr, const char *args ); static nsresult OpenBrowserWindow(); @@ -358,9 +350,7 @@ private: // Note: Insert new values above this line!!!!! topicCount // Count of the number of real topics }; -#ifndef WINCE static HSZ mApplication, mTopics[ topicCount ]; -#endif static DWORD mInstance; static PRBool mCanHandleRequests; static PRUnichar mMutexName[]; @@ -382,7 +372,6 @@ nsNativeAppSupportWin::CheckConsole() { strcmp( "/console", gArgv[i] ) == 0 ) { // Users wants to make sure we have a console. // Try to allocate one. -#ifndef WINCE BOOL rc = ::AllocConsole(); if ( rc ) { // Console allocated. Fix it up so that output works in @@ -429,7 +418,6 @@ nsNativeAppSupportWin::CheckConsole() { // Failed. Probably because there already is one. // There's little we can do, in any case. } -#endif // Remove the console argument from the command line. do { gArgv[i] = gArgv[i + 1]; @@ -481,10 +469,8 @@ const char * const topicNames[] = { "WWW_OpenURL", // Static member definitions. int nsNativeAppSupportWin::mConversations = 0; -#ifndef WINCE HSZ nsNativeAppSupportWin::mApplication = 0; HSZ nsNativeAppSupportWin::mTopics[nsNativeAppSupportWin::topicCount] = { 0 }; -#endif DWORD nsNativeAppSupportWin::mInstance = 0; PRBool nsNativeAppSupportWin::mCanHandleRequests = PR_FALSE; @@ -579,14 +565,7 @@ struct MessageWindow { _wgetcwd(cwd, MAX_PATH); // Construct a narrow UTF8 buffer \0\0 -#ifdef WINCE - // For WinCE, we're stuck with providing our own argv[0] for the remote - // command-line. - NS_ConvertUTF16toUTF8 utf8buffer(L"dummy "); - AppendUTF16toUTF8(cmd, utf8buffer); -#else NS_ConvertUTF16toUTF8 utf8buffer(cmd); -#endif utf8buffer.Append('\0'); AppendUTF16toUTF8(cwd, utf8buffer); utf8buffer.Append('\0'); @@ -600,13 +579,7 @@ struct MessageWindow { }; // Bring the already running Mozilla process to the foreground. // nsWindow will restore the window (if minimized) and raise it. -#ifdef WINCE - // for activating the existing window on wince we need "| 0x01" - // see http://msdn.microsoft.com/en-us/library/ms940024.aspx for details - ::SetForegroundWindow( (HWND)(((ULONG) mHandle) | 0x01) ); -#else ::SetForegroundWindow( mHandle ); -#endif ::SendMessage( mHandle, WM_COPYDATA, 0, (LPARAM)&cds ); return NS_OK; } @@ -702,10 +675,8 @@ nsNativeAppSupportWin::Start( PRBool *aResult ) { // We will be server. rv = msgWindow.Create(); if ( NS_SUCCEEDED( rv ) ) { -#ifndef WINCE // Start up DDE server. this->StartDDE(); -#endif // Tell caller to spin message loop. *aResult = PR_TRUE; } @@ -715,7 +686,7 @@ nsNativeAppSupportWin::Start( PRBool *aResult ) { return rv; } -#ifndef WINCE + PRBool nsNativeAppSupportWin::InitTopicStrings() { for ( int i = 0; i < topicCount; i++ ) { @@ -771,7 +742,7 @@ nsNativeAppSupportWin::StartDDE() { return NS_OK; } -#endif /* WINCE */ + // If no DDE conversations are pending, terminate DDE. NS_IMETHODIMP nsNativeAppSupportWin::Stop( PRBool *aResult ) { @@ -833,7 +804,6 @@ nsNativeAppSupportWin::Quit() { if ( mInstance ) { // Unregister application name. -#ifndef WINCE DdeNameService( mInstance, mApplication, 0, DNS_UNREGISTER ); // Clean up strings. if ( mApplication ) { @@ -847,7 +817,6 @@ nsNativeAppSupportWin::Quit() { } } DdeUninitialize( mInstance ); -#endif mInstance = 0; #if MOZ_DEBUG_DDE printf( "DDE server stopped\n" ); @@ -913,7 +882,7 @@ static nsCString hszValue( DWORD instance, HSZ hsz ) { result += "]"; return result; } -#elif !defined(WINCE) +#else // These are purely a safety measure to avoid the infamous "won't // build non-debug" type Tinderbox flames. static nsCString uTypeDesc( UINT ) { @@ -944,7 +913,6 @@ static void escapeQuotes( nsAString &aString ) { return; } -#ifndef WINCE HDDEDATA CALLBACK nsNativeAppSupportWin::HandleDDENotification( UINT uType, // transaction type UINT uFmt, // clipboard data format @@ -1195,7 +1163,7 @@ nsNativeAppSupportWin::HandleDDENotification( UINT uType, // transaction t #endif return result; } -#endif /* WINCE */ + // Utility function to advance to end of quoted string. // p+offset must point to the comma preceding the arg on entry. // On return, p+result points to the closing '"' (or end of the string @@ -1217,7 +1185,6 @@ static PRInt32 advanceToEndOfQuotedArg( const WCHAR *p, PRInt32 offset, PRInt32 return offset; } -#ifndef WINCE void nsNativeAppSupportWin::ParseDDEArg( const WCHAR* args, int index, nsString& aString) { if ( args ) { nsDependentString temp(args); @@ -1286,7 +1253,6 @@ HDDEDATA nsNativeAppSupportWin::CreateDDEData( LPBYTE value, DWORD len ) { 0 ); return result; } -#endif /* WINCE */ void nsNativeAppSupportWin::ActivateLastWindow() { nsCOMPtr navWin; diff --git a/toolkit/xre/nsSplashScreenWin.cpp b/toolkit/xre/nsSplashScreenWin.cpp deleted file mode 100644 index 460e8d00fff4..000000000000 --- a/toolkit/xre/nsSplashScreenWin.cpp +++ /dev/null @@ -1,317 +0,0 @@ -/* -*- Mode: C++; tab-width: 40; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/* ***** 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 code. - * - * The Initial Developer of the Original Code is - * mozilla.org - * Portions created by the Initial Developer are Copyright (C) 2009 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * Vladimir Vukicevic - * - * 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 ***** */ - -#include "nsSplashScreen.h" - -#include - -static ATOM gSplashScreenClass = 0; - -class nsSplashScreenWin; - -static nsSplashScreenWin *gSplashScreen = NULL; - -class nsSplashScreenWin : - public nsSplashScreen -{ -public: - nsSplashScreenWin(); - - virtual void Open(); - virtual void Close(); - virtual void Update(PRInt32 progress); - -protected: - HWND mDialog; - HBITMAP mSplashBitmap, mOldBitmap; - HDC mSplashBitmapDC; - int mWidth, mHeight; - - static DWORD WINAPI ThreadProc(LPVOID splashScreen); - - static LRESULT CALLBACK DialogProc (HWND hWnd, - UINT uMsg, - WPARAM wParam, - LPARAM lParam); - - void OnPaint(HDC dc, const PAINTSTRUCT *ps); - - PRInt32 mProgress; -}; - -nsSplashScreen * -nsSplashScreen::GetOrCreate() -{ - if (!gSplashScreen) - gSplashScreen = new nsSplashScreenWin(); - - return gSplashScreen; -} - -nsSplashScreen * -nsSplashScreen::Get() -{ - return gSplashScreen; -} - -nsSplashScreenWin::nsSplashScreenWin() - : mDialog(NULL), mSplashBitmap(NULL), mOldBitmap(NULL), - mSplashBitmapDC(NULL), - mWidth(200), mHeight(100), - mProgress(-1) -{ -} - -void -nsSplashScreenWin::Open() -{ - if (mIsOpen || mDialog) - return; - - mIsOpen = PR_TRUE; - - if (gSplashScreenClass == 0) { - WNDCLASS wc; - memset(&wc, 0, sizeof(WNDCLASS)); - - wc.style = CS_NOCLOSE; - wc.lpfnWndProc = (WNDPROC) DialogProc; - wc.hInstance = GetModuleHandle(0); - wc.hIcon = NULL; - wc.hCursor = NULL; - wc.hbrBackground = (HBRUSH)(COLOR_WINDOW+1); - wc.lpszMenuName = NULL; - wc.lpszClassName = TEXT("MozillaSplashScreen"); - - gSplashScreenClass = RegisterClass(&wc); - } - - if (mSplashBitmap == NULL) { - wchar_t path[_MAX_PATH]; - if (::GetModuleFileNameW(0, path, _MAX_PATH)) { - wchar_t *slash = wcsrchr(path, '\\'); - if (slash != NULL) - slash[1] = 0; - - wcscat(path, L"splash.bmp"); - -#ifdef WINCE - mSplashBitmap = ::SHLoadDIBitmap(path); -#else -#warning splashscreen needs some code to load bitmaps on non-WinCE - mSplashBitmap = nsnull; -#endif - - if (mSplashBitmap) { - BITMAP bmo; - if (GetObject(mSplashBitmap, sizeof(BITMAP), &bmo) > 0) { - mWidth = bmo.bmWidth; - mHeight = bmo.bmHeight; - - mSplashBitmapDC = CreateCompatibleDC(NULL); - mOldBitmap = (HBITMAP) SelectObject(mSplashBitmapDC, mSplashBitmap); - } else { - DeleteObject(mSplashBitmap); - mSplashBitmap = NULL; - } - } - } - } - - DWORD threadID = 0; - CreateThread(0, 0, (LPTHREAD_START_ROUTINE)ThreadProc, this, 0, &threadID); -} - -DWORD WINAPI -nsSplashScreenWin::ThreadProc(LPVOID splashScreen) -{ - nsSplashScreenWin *sp = (nsSplashScreenWin*) splashScreen; - - int screenWidth = GetSystemMetrics(SM_CXSCREEN); - int screenHeight = GetSystemMetrics(SM_CYSCREEN); - - LONG horizPad = (screenWidth - sp->mWidth) / 2; - LONG vertPad = (screenHeight - sp->mHeight) / 2; - RECT r = { horizPad, - vertPad, - horizPad + sp->mWidth, - vertPad + sp->mHeight }; - - DWORD winStyle = (WS_POPUP | WS_BORDER); - DWORD winStyleEx = WS_EX_NOACTIVATE; - - if(!::AdjustWindowRectEx(&r, winStyle, FALSE, winStyleEx)) - return 0; - - HWND dlg = CreateWindowEx( - winStyleEx, - TEXT("MozillaSplashScreen"), - TEXT("Starting up..."), - winStyle, - r.left, r.top, - (r.right - r.left), (r.bottom - r.top), - HWND_DESKTOP, - NULL, - GetModuleHandle(0), - NULL); - - sp->mDialog = dlg; - - ShowWindow(dlg, SW_SHOW); - SetForegroundWindow(dlg); - - MSG msg; - while (::GetMessage(&msg, NULL, 0, 0)) { - DispatchMessage(&msg); - } - - // window was destroyed, nothing to do - return 0; -} - -void -nsSplashScreenWin::Close() -{ - if (mDialog) { - ShowWindow(mDialog, SW_HIDE); - PostMessage(mDialog, WM_QUIT, 0, 0); - mDialog = NULL; - } - - if (mSplashBitmap) { - SelectObject(mSplashBitmapDC, mOldBitmap); - DeleteObject(mSplashBitmapDC); - DeleteObject(mSplashBitmap); - mOldBitmap = NULL; - mSplashBitmapDC = NULL; - mSplashBitmap = NULL; - } - - mIsOpen = PR_FALSE; -} - -void -nsSplashScreenWin::Update(PRInt32 progress) -{ - if (progress >= 0) - mProgress = progress > 100 ? 100 : progress; - - InvalidateRect(mDialog, NULL, FALSE); -} - -void -nsSplashScreenWin::OnPaint(HDC dc, const PAINTSTRUCT *ps) -{ - RECT progressBar; - - // Paint the splash screen - if (mSplashBitmapDC) { - BitBlt(dc, - 0, 0, gSplashScreen->mWidth, gSplashScreen->mHeight, - gSplashScreen->mSplashBitmapDC, - 0, 0, - SRCCOPY); - } else { - HBRUSH bkgr = CreateSolidBrush(RGB(200,200,200)); - RECT r = { 0, 0, mWidth, mHeight }; - FillRect(dc, &r, bkgr); - DeleteObject(bkgr); - } - - // Size of progress bar area - if (mSplashBitmapDC && - gSplashScreen->mWidth == 440 && - gSplashScreen->mHeight == 180) { - // For now we're tightly tied to a specific splash.bmp design, - // ideally we would determine the region automagically. - progressBar.left = 183; - progressBar.right = 410; - progressBar.top = 148; - progressBar.bottom = 153; - } else { - // The default progress bar will be 2/3 the width of the splash box, - // 9 pixels tall, 10 pixels from the bottom. - progressBar.left = (mWidth / 6); - progressBar.right = mWidth - (mWidth / 6); - progressBar.top = mHeight - 19; - progressBar.bottom = mHeight - 10; - } - - if (mProgress != -1) { - HBRUSH fill = CreateSolidBrush(RGB(0x77,0xC7,0x1C)); - - int maxWidth = progressBar.right - progressBar.left; - progressBar.right = progressBar.left + maxWidth * mProgress / 100; - FillRect(dc, &progressBar, fill); - - DeleteObject(fill); - } -} - -LRESULT CALLBACK -nsSplashScreenWin::DialogProc (HWND hWnd, - UINT uMsg, - WPARAM wParam, - LPARAM lParam) -{ - switch (uMsg) { - case WM_PAINT: { - PAINTSTRUCT ps; - HDC dc = BeginPaint(hWnd, &ps); - - if (gSplashScreen) - gSplashScreen->OnPaint(dc, &ps); - - EndPaint(hWnd, &ps); - return TRUE; - } - break; - - case WM_DESTROY: - return TRUE; - - case WM_QUIT: - DestroyWindow(hWnd); - return TRUE; - - default: - return DefWindowProc(hWnd, uMsg, wParam, lParam); - } - - return FALSE; -} diff --git a/toolkit/xre/nsWindowsRestart.cpp b/toolkit/xre/nsWindowsRestart.cpp index 20205e86b5af..d2d27a322c72 100644 --- a/toolkit/xre/nsWindowsRestart.cpp +++ b/toolkit/xre/nsWindowsRestart.cpp @@ -172,20 +172,6 @@ MakeCommandLine(int argc, PRUnichar **argv) for (i = 0; i < argc; ++i) len += ArgStrLen(argv[i]) + 1; -#ifdef WINCE - wchar_t *env = mozce_GetEnvironmentCL(); - // XXX There's a buffer overrun here somewhere that causes a heap - // check to fail in the final free of the results of this function - // in WinLaunchChild. I can't honestly figure out where it is, - // because I'm pretty sure with the + 1 above and the wcslen here, - // we have enough room for a trailing NULL. But, adding a little - // bit more slop (the +10) seems to fix the problem. - // - // Supposedly CreateProcessW can modify its arguments, so maybe it's - // doing some scribbling? - len += (wcslen(env)) + 10; -#endif - // Protect against callers that pass 0 arguments if (len == 0) len = 1; @@ -205,11 +191,6 @@ MakeCommandLine(int argc, PRUnichar **argv) *c = '\0'; -#ifdef WINCE - wcscat(s, env); - if (env) - free(env); -#endif return s; } @@ -277,18 +258,6 @@ WinLaunchChild(const PRUnichar *exePath, int argc, PRUnichar **argv) PRUnichar *cl; BOOL ok; -#ifdef WINCE - // Windows Mobile Issue: - // When passing both an image name and a command line to - // CreateProcessW, you need to make sure that the image name - // identially matches the first argument of the command line. If - // they do not match, Windows Mobile will send two "argv[0]" values. - // To avoid this problem, we will strip off the argv here, and - // depend only on the exePath. - argv = argv + 1; - argc--; -#endif - cl = MakeCommandLine(argc, argv); if (!cl) return FALSE; diff --git a/toolkit/xre/nsWindowsWMain.cpp b/toolkit/xre/nsWindowsWMain.cpp index e8ca59973505..a1c0179a7977 100644 --- a/toolkit/xre/nsWindowsWMain.cpp +++ b/toolkit/xre/nsWindowsWMain.cpp @@ -73,25 +73,6 @@ FreeAllocStrings(int argc, char **argv) delete [] argv; } -#ifdef WINCE -/** argc/argv are in/out parameters */ -void ExtractEnvironmentFromCL(int &argc, char **&argv) -{ - for (int x = argc - 1; x >= 0; x--) { - if (!strncmp(argv[x], "--environ:", 10)) { - char* key_val = strdup(argv[x]+10); - putenv(key_val); - free(key_val); - argc -= 1; - char *delete_argv = argv[x]; - if (x < argc) /* if the current argument is not at the tail, shift following arguments. */ - memcpy(&argv[x], &argv[x+1], (argc - x) * sizeof(char*)); - delete [] delete_argv; - } - } -} -#endif - int wmain(int argc, WCHAR **argv) { #ifndef XRE_DONT_PROTECT_DLL_LOAD @@ -112,9 +93,6 @@ int wmain(int argc, WCHAR **argv) return 127; } } -#ifdef WINCE - ExtractEnvironmentFromCL(argc, argvConverted); -#endif argvConverted[argc] = NULL; // need to save argvConverted copy for later deletion. diff --git a/toolkit/xre/nsXREDirProvider.cpp b/toolkit/xre/nsXREDirProvider.cpp index 1e2c88528c34..f98a798d3908 100644 --- a/toolkit/xre/nsXREDirProvider.cpp +++ b/toolkit/xre/nsXREDirProvider.cpp @@ -259,10 +259,10 @@ nsXREDirProvider::GetFile(const char* aProperty, PRBool* aPersistent, rv = GetUserAppDataDirectory((nsILocalFile**)(nsIFile**) getter_AddRefs(file)); } else if (!strcmp(aProperty, XRE_UPDATE_ROOT_DIR)) { -#if defined(XP_WIN) && !defined(WINCE) +#if defined(XP_WIN) rv = GetUpdateRootDir(getter_AddRefs(file)); #else - // Only supported on Windows other than WINCE, so just immediately fail. + // Only supported on Windows, so just immediately fail. return NS_ERROR_FAILURE; #endif } @@ -824,24 +824,6 @@ GetShellFolderPath(int folder, nsAString& _retval) nsresult rv = NS_OK; -#if defined(WINCE) && !defined(WINCE_WINDOWS_MOBILE) - if (folder == CSIDL_APPDATA || folder == CSIDL_LOCAL_APPDATA) - folder = CSIDL_PROFILE; - - BOOL ok = SHGetSpecialFolderPath(NULL, buf, folder, true); - if (!ok) { - _retval.SetLength(0); - return NS_ERROR_FAILURE; - } - - buf[bufLength - 1] = L'\0'; - _retval.SetLength(wcslen(buf)); - - // sometimes CSIDL_PROFILE shows up without a root slash - if (folder == CSIDL_PROFILE && buf[0] != '\\') { - _retval.Insert('\\', 0); - } -#else LPITEMIDLIST pItemIDList = NULL; if (SUCCEEDED(SHGetSpecialFolderLocation(NULL, folder, &pItemIDList)) && @@ -856,12 +838,10 @@ GetShellFolderPath(int folder, nsAString& _retval) } CoTaskMemFree(pItemIDList); -#endif return rv; } -#ifndef WINCE /** * Provides a fallback for getting the path to APPDATA or LOCALAPPDATA by * querying the registry when the call to SHGetSpecialFolderLocation or @@ -913,7 +893,6 @@ GetRegWindowsAppDataFolder(PRBool aLocal, nsAString& _retval) return NS_OK; } -#endif nsresult nsXREDirProvider::GetUpdateRootDir(nsIFile* *aResult) @@ -932,9 +911,6 @@ nsXREDirProvider::GetUpdateRootDir(nsIFile* *aResult) PRUint32 bufLength = longPath.GetMutableData(&buf, MAXPATHLEN); NS_ENSURE_TRUE(bufLength >= MAXPATHLEN, NS_ERROR_OUT_OF_MEMORY); -#ifdef WINCE - longPath.Assign(appPath); -#else DWORD len = GetLongPathNameW(appPath.get(), buf, bufLength); // Failing GetLongPathName() is not fatal. @@ -942,7 +918,7 @@ nsXREDirProvider::GetUpdateRootDir(nsIFile* *aResult) longPath.Assign(appPath); else longPath.SetLength(len); -#endif + // Use \updates\ if app dir is under Program Files to avoid the // folder virtualization mess on Windows Vista @@ -1049,20 +1025,15 @@ nsXREDirProvider::GetUserDataDirectoryHome(nsILocalFile** aFile, PRBool aLocal) nsString path; if (aLocal) { rv = GetShellFolderPath(CSIDL_LOCAL_APPDATA, path); -#ifndef WINCE if (NS_FAILED(rv)) rv = GetRegWindowsAppDataFolder(aLocal, path); -#endif } if (!aLocal || NS_FAILED(rv)) { rv = GetShellFolderPath(CSIDL_APPDATA, path); -#ifndef WINCE if (NS_FAILED(rv)) { if (!aLocal) rv = GetRegWindowsAppDataFolder(aLocal, path); } -#endif - } NS_ENSURE_SUCCESS(rv, rv);