diff options
author | wolfbeast <mcwerewolf@gmail.com> | 2018-04-15 11:51:43 +0200 |
---|---|---|
committer | wolfbeast <mcwerewolf@gmail.com> | 2018-04-15 11:51:43 +0200 |
commit | bdd013826b8acbdef0ae43233d7a6a32e1161966 (patch) | |
tree | 83904a8337bfb28e1fa059afe5bc088a8b454688 | |
parent | fca67bb95d4cda5046365e124e79ec583c336697 (diff) | |
parent | 8a95c03dcd2a7f2c6d64b6ee917f6cb363e9ca60 (diff) | |
download | uxp-bdd013826b8acbdef0ae43233d7a6a32e1161966.tar.gz |
Merge branch 'master' of https://github.com/MoonchildProductions/UXP
29 files changed, 392 insertions, 760 deletions
diff --git a/application/palemoon/app/Makefile.in b/application/palemoon/app/Makefile.in index 580fcb1640..6f9bbfaf02 100644 --- a/application/palemoon/app/Makefile.in +++ b/application/palemoon/app/Makefile.in @@ -54,14 +54,6 @@ GARBAGE += $(addprefix $(FINAL_TARGET)/defaults/pref/, palemoon.js) endif -ifdef MOZ_WIDGET_GTK -libs:: - $(INSTALL) $(IFLAGS1) $(DIST)/branding/mozicon128.png $(FINAL_TARGET)/icons - $(INSTALL) $(IFLAGS1) $(DIST)/branding/default16.png $(FINAL_TARGET)/chrome/icons/default - $(INSTALL) $(IFLAGS1) $(DIST)/branding/default32.png $(FINAL_TARGET)/chrome/icons/default - $(INSTALL) $(IFLAGS1) $(DIST)/branding/default48.png $(FINAL_TARGET)/chrome/icons/default -endif - ifndef LIBXUL_SDK # channel-prefs.js is handled separate from other prefs due to bug 756325 libs:: $(srcdir)/profile/channel-prefs.js diff --git a/application/palemoon/base/content/nsContextMenu.js b/application/palemoon/base/content/nsContextMenu.js index 017ab87cc3..1fe592b52a 100644 --- a/application/palemoon/base/content/nsContextMenu.js +++ b/application/palemoon/base/content/nsContextMenu.js @@ -1394,9 +1394,8 @@ nsContextMenu.prototype = { isDisabledForEvents: function(aNode) { let ownerDoc = aNode.ownerDocument; - return - ownerDoc.defaultView && - ownerDoc.defaultView + return ownerDoc.defaultView && + ownerDoc.defaultView .QueryInterface(Components.interfaces.nsIInterfaceRequestor) .getInterface(Components.interfaces.nsIDOMWindowUtils) .isNodeDisabledForEvents(aNode); diff --git a/application/palemoon/branding/shared/branding.mozbuild b/application/palemoon/branding/shared/branding.mozbuild index fc832dbe7c..284520add8 100644 --- a/application/palemoon/branding/shared/branding.mozbuild +++ b/application/palemoon/branding/shared/branding.mozbuild @@ -38,13 +38,19 @@ def ApplicationBranding(): 'dsstore', 'firefox.icns', ] - elif CONFIG['MOZ_WIDGET_GTK']: + elif 'gtk' in CONFIG['MOZ_WIDGET_TOOLKIT']: BRANDING_FILES += [ 'default16.png', 'default32.png', 'default48.png', 'mozicon128.png', ] + FINAL_TARGET_FILES.icons += ['mozicon128.png'] + FINAL_TARGET_FILES.chrome.icons.default += [ + 'default16.png', + 'default32.png', + 'default48.png', + ] DEFINES['MOZ_APP_VERSION'] = CONFIG['MOZ_APP_VERSION'] DEFINES['MOZ_BRANDING_DIRECTORY'] = CONFIG['MOZ_BRANDING_DIRECTORY'] diff --git a/application/palemoon/components/sessionstore/SessionStore.jsm b/application/palemoon/components/sessionstore/SessionStore.jsm index 5e09ff5c86..a8e7adfccf 100644 --- a/application/palemoon/components/sessionstore/SessionStore.jsm +++ b/application/palemoon/components/sessionstore/SessionStore.jsm @@ -2404,7 +2404,7 @@ let SessionStoreInternal = { for (var [host, isPinned] in Iterator(internalWindow.hosts)) { let list; try { - list = Services.cookies.getCookiesFromHost(host); + list = Services.cookies.getCookiesFromHost(host, {}); } catch (ex) { debug("getCookiesFromHost failed. Host: " + host); @@ -3655,7 +3655,7 @@ let SessionStoreInternal = { try { Services.cookies.add(cookie.host, cookie.path || "", cookie.name || "", cookie.value, !!cookie.secure, !!cookie.httponly, true, - "expiry" in cookie ? cookie.expiry : MAX_EXPIRY); + "expiry" in cookie ? cookie.expiry : MAX_EXPIRY, {}); } catch (ex) { Cu.reportError(ex); } // don't let a single cookie stop recovering } diff --git a/application/palemoon/configure.in b/application/palemoon/configure.in index df5fb98a13..0dbb0d8bc1 100644 --- a/application/palemoon/configure.in +++ b/application/palemoon/configure.in @@ -7,10 +7,10 @@ dnl file, You can obtain one at http://mozilla.org/MPL/2.0/. dnl Things we need to carry from confvars.sh AC_DEFINE(MOZ_PHOENIX) AC_SUBST(MOZ_PHOENIX) - AC_DEFINE(MC_PALEMOON) AC_SUBST(MC_PALEMOON) - +AC_DEFINE(MOZ_PHOENIX_EXTENSIONS) +AC_SUBST(MOZ_PHOENIX_EXTENSIONS) dnl Optional parts of the build. diff --git a/application/palemoon/fonts/moz.build b/application/palemoon/fonts/moz.build index 314d41bd0d..02c027c462 100644 --- a/application/palemoon/fonts/moz.build +++ b/application/palemoon/fonts/moz.build @@ -4,7 +4,7 @@ # License, v. 2.0. If a copy of the MPL was not distributed with this # file, You can obtain one at http://mozilla.org/MPL/2.0/. -if CONFIG['OS_ARCH'] in ('WINNT'): +if CONFIG['OS_ARCH'] in ('WINNT', 'Linux'): DIST_SUBDIR = '' FINAL_TARGET_FILES.fonts += [ 'TwemojiMozilla.ttf' diff --git a/application/palemoon/installer/Makefile.in b/application/palemoon/installer/Makefile.in index 7ba8ae9e8f..7cd77bdcaa 100644 --- a/application/palemoon/installer/Makefile.in +++ b/application/palemoon/installer/Makefile.in @@ -65,18 +65,14 @@ endif DEFINES += -DMOZ_CHILD_PROCESS_NAME=$(MOZ_CHILD_PROCESS_NAME) # Set MSVC dlls version to package, if any. -ifdef WIN32_REDIST_DIR ifdef MOZ_NO_DEBUG_RTL +ifdef WIN32_REDIST_DIR DEFINES += -DMOZ_PACKAGE_MSVC_DLLS=1 DEFINES += -DMSVC_C_RUNTIME_DLL=$(MSVC_C_RUNTIME_DLL) DEFINES += -DMSVC_CXX_RUNTIME_DLL=$(MSVC_CXX_RUNTIME_DLL) -DEFINES += -DMSVC_OPENMP_DLL=$(MSVC_OPENMP_DLL) -ifdef MSVC_APPCRT_DLL -DEFINES += -DMSVC_APPCRT_DLL=$(MSVC_APPCRT_DLL) -endif -ifdef MSVC_DESKTOPCRT_DLL -DEFINES += -DMSVC_DESKTOPCRT_DLL=$(MSVC_DESKTOPCRT_DLL) endif +ifdef WIN_UCRT_REDIST_DIR +DEFINES += -DMOZ_PACKAGE_WIN_UCRT_DLLS=1 endif endif @@ -161,7 +157,7 @@ endif libs:: - $(MAKE) -C $(DEPTH)/browser/locales langpack + $(MAKE) -C $(DEPTH)/application/palemoon/locales langpack ifeq (WINNT,$(OS_ARCH)) PKGCOMP_FIND_OPTS = diff --git a/application/palemoon/installer/package-manifest.in b/application/palemoon/installer/package-manifest.in index ffe0335965..f7b12838b5 100644 --- a/application/palemoon/installer/package-manifest.in +++ b/application/palemoon/installer/package-manifest.in @@ -35,10 +35,11 @@ #ifdef XP_MACOSX ; Mac bundle stuff @APPNAME@/Contents/Info.plist +@APPNAME@/Contents/Library/LaunchServices @APPNAME@/Contents/PkgInfo @RESPATH@/firefox.icns @RESPATH@/document.icns -@RESPATH@/@AB@.lproj/* +@RESPATH@/@LPROJ_ROOT@.lproj/* #endif [@AB_CD@] @@ -51,14 +52,14 @@ @RESPATH@/browser/defaults/profile/localstore.rdf @RESPATH@/browser/defaults/profile/mimeTypes.rdf @RESPATH@/dictionaries/* -#if defined(XP_WIN) +#if defined(XP_WIN) || defined(XP_LINUX) @RESPATH@/fonts/* #endif @RESPATH@/hyphenation/* @RESPATH@/browser/@PREF_DIR@/palemoon-l10n.js @RESPATH@/browser/searchplugins/* -#ifdef XP_WIN32 -@RESPATH@/uninstall/helper.exe +#ifdef HAVE_MAKENSISU +@BINPATH@/uninstall/helper.exe #endif #ifdef MOZ_UPDATER @RESPATH@/update.locale @@ -67,10 +68,6 @@ [xpcom] @RESPATH@/dependentlibs.list -#ifdef GKMEDIAS_SHARED_LIBRARY -@BINPATH@/@DLL_PREFIX@gkmedias@DLL_SUFFIX@ -#endif -@BINPATH@/@DLL_PREFIX@mozalloc@DLL_SUFFIX@ #ifdef MOZ_SHARED_MOZGLUE @BINPATH@/@DLL_PREFIX@mozglue@DLL_SUFFIX@ #endif @@ -80,7 +77,7 @@ #ifdef MOZ_DMD @BINPATH@/@DLL_PREFIX@dmd@DLL_SUFFIX@ #endif -#ifndef MOZ_NATIVE_NSPR +#ifndef MOZ_SYSTEM_NSPR #ifndef MOZ_FOLD_LIBS @BINPATH@/@DLL_PREFIX@nspr4@DLL_SUFFIX@ @BINPATH@/@DLL_PREFIX@plc4@DLL_SUFFIX@ @@ -100,60 +97,32 @@ #endif #ifdef XP_WIN32 @BINPATH@/plugin-hang-ui@BIN_SUFFIX@ -#ifdef MOZ_PACKAGE_MSVC_DLLS +#if MOZ_PACKAGE_MSVC_DLLS @BINPATH@/@MSVC_C_RUNTIME_DLL@ @BINPATH@/@MSVC_CXX_RUNTIME_DLL@ -@BINPATH@/@MSVC_OPENMP_DLL@ -#ifdef MSVC_APPCRT_DLL -@BINPATH@/@MSVC_APPCRT_DLL@ -#endif -#ifdef MSVC_DESKTOPCRT_DLL -@BINPATH@/@MSVC_DESKTOPCRT_DLL@ -#endif -#endif -#endif -#ifndef MOZ_NATIVE_ICU -#ifdef MOZ_SHARED_ICU -#ifdef XP_WIN -#ifdef MOZ_DEBUG -@BINPATH@/icudt@MOZ_ICU_DBG_SUFFIX@@MOZ_ICU_VERSION@.dll -@BINPATH@/icuin@MOZ_ICU_DBG_SUFFIX@@MOZ_ICU_VERSION@.dll -@BINPATH@/icuuc@MOZ_ICU_DBG_SUFFIX@@MOZ_ICU_VERSION@.dll -#else -@BINPATH@/icudt@MOZ_ICU_VERSION@.dll -@BINPATH@/icuin@MOZ_ICU_VERSION@.dll -@BINPATH@/icuuc@MOZ_ICU_VERSION@.dll #endif -#elif defined(XP_MACOSX) -@BINPATH@/libicudata.@MOZ_ICU_VERSION@.dylib -@BINPATH@/libicui18n.@MOZ_ICU_VERSION@.dylib -@BINPATH@/libicuuc.@MOZ_ICU_VERSION@.dylib -#elif defined(XP_UNIX) -@BINPATH@/libicudata.so.@MOZ_ICU_VERSION@ -@BINPATH@/libicui18n.so.@MOZ_ICU_VERSION@ -@BINPATH@/libicuuc.so.@MOZ_ICU_VERSION@ +#if MOZ_PACKAGE_WIN_UCRT_DLLS +@BINPATH@/api-ms-win-*.dll +@BINPATH@/ucrtbase.dll #endif #endif -#endif -#ifdef MOZ_REPLACE_MALLOC -#ifndef MOZ_JEMALLOC3 -@BINPATH@/@DLL_PREFIX@replace_jemalloc@DLL_SUFFIX@ -#endif +#ifdef MOZ_ICU_DATA_ARCHIVE +@RESPATH@/@ICU_DATA_FILE@ #endif #ifdef MOZ_GTK3 @BINPATH@/@DLL_PREFIX@mozgtk@DLL_SUFFIX@ -@BINPATH@/@DLL_PREFIX@mozgtk2@DLL_SUFFIX@ +@BINPATH@/gtk2/@DLL_PREFIX@mozgtk@DLL_SUFFIX@ #endif [browser] ; [Base Browser Files] #ifndef XP_UNIX @BINPATH@/@MOZ_APP_NAME@.exe -@BINPATH@/palemoon.VisualElementsManifest.xml +@BINPATH@/@MOZ_APP_NAME@.VisualElementsManifest.xml @BINPATH@/browser/VisualElements/VisualElements_150.png @BINPATH@/browser/VisualElements/VisualElements_70.png #else -@RESPATH@/@MOZ_APP_NAME@-bin +@BINPATH@/@MOZ_APP_NAME@-bin @BINPATH@/@MOZ_APP_NAME@ #endif @RESPATH@/application.ini @@ -161,490 +130,67 @@ @RESPATH@/update-settings.ini #endif @RESPATH@/platform.ini -#ifndef MOZ_NATIVE_SQLITE +#ifndef MOZ_SYSTEM_SQLITE #ifndef MOZ_FOLD_LIBS @BINPATH@/@DLL_PREFIX@mozsqlite3@DLL_SUFFIX@ #endif #endif +@BINPATH@/@DLL_PREFIX@lgpllibs@DLL_SUFFIX@ +#ifdef MOZ_FFVPX +@BINPATH@/@DLL_PREFIX@mozavutil@DLL_SUFFIX@ +@BINPATH@/@DLL_PREFIX@mozavcodec@DLL_SUFFIX@ +#endif @RESPATH@/browser/blocklist.xml #ifdef XP_UNIX #ifndef XP_MACOSX @RESPATH@/run-mozilla.sh #endif #endif +#ifdef XP_WIN +#ifdef _AMD64_ +@BINPATH@/@DLL_PREFIX@qipcap64@DLL_SUFFIX@ +#else +@BINPATH@/@DLL_PREFIX@qipcap@DLL_SUFFIX@ +#endif +#endif ; [Components] -@RESPATH@/browser/components/components.manifest -@RESPATH@/components/alerts.xpt +@RESPATH@/components/* +@RESPATH@/browser/components/* +#ifdef MOZ_ARTIFACT_BUILDS +#endif #ifdef ACCESSIBILITY #ifdef XP_WIN32 +@BINPATH@/Accessible.tlb @BINPATH@/AccessibleMarshal.dll +@BINPATH@/IA2Marshal.dll +#endif #endif -@RESPATH@/components/accessibility.xpt -#endif -@RESPATH@/components/appshell.xpt -@RESPATH@/components/appstartup.xpt -@RESPATH@/components/autocomplete.xpt -@RESPATH@/components/autoconfig.xpt -@RESPATH@/components/browser-element.xpt -@RESPATH@/browser/components/browsercompsbase.xpt -@RESPATH@/browser/components/browser-feeds.xpt -@RESPATH@/components/caps.xpt -@RESPATH@/components/chrome.xpt -@RESPATH@/components/commandhandler.xpt -@RESPATH@/components/commandlines.xpt -@RESPATH@/components/compartments.xpt -@RESPATH@/components/composer.xpt -@RESPATH@/components/content_events.xpt -@RESPATH@/components/content_html.xpt -@RESPATH@/components/content_goannamediaplugins.xpt #ifdef MOZ_WEBRTC -@RESPATH@/components/content_webrtc.xpt -#endif -@RESPATH@/components/content_xslt.xpt -@RESPATH@/components/cookie.xpt -@RESPATH@/components/devtools_security.xpt -@RESPATH@/components/directory.xpt -@RESPATH@/components/docshell.xpt -@RESPATH@/components/dom.xpt -#ifdef MOZ_ACTIVITIES -@RESPATH@/components/dom_activities.xpt -@RESPATH@/components/dom_messages.xpt -#endif -@RESPATH@/components/dom_apps.xpt -@RESPATH@/components/dom_base.xpt -@RESPATH@/components/dom_system.xpt -#ifdef MOZ_B2G_BT -@RESPATH@/components/dom_bluetooth.xpt -#endif -@RESPATH@/components/dom_canvas.xpt -@RESPATH@/components/dom_alarm.xpt -@RESPATH@/components/dom_core.xpt -@RESPATH@/components/dom_css.xpt -@RESPATH@/components/dom_devicestorage.xpt -@RESPATH@/components/dom_events.xpt -@RESPATH@/components/dom_geolocation.xpt -@RESPATH@/components/dom_media.xpt -@RESPATH@/components/dom_network.xpt -@RESPATH@/components/dom_notification.xpt -@RESPATH@/components/dom_html.xpt -@RESPATH@/components/dom_offline.xpt -@RESPATH@/components/dom_json.xpt -@RESPATH@/components/dom_power.xpt -@RESPATH@/components/dom_quota.xpt -@RESPATH@/components/dom_range.xpt -@RESPATH@/components/dom_security.xpt -@RESPATH@/components/dom_settings.xpt -@RESPATH@/components/dom_permissionsettings.xpt -@RESPATH@/components/dom_sidebar.xpt -@RESPATH@/components/dom_cellbroadcast.xpt -@RESPATH@/components/dom_mobilemessage.xpt -@RESPATH@/components/dom_storage.xpt -@RESPATH@/components/dom_stylesheets.xpt -@RESPATH@/components/dom_telephony.xpt -@RESPATH@/components/dom_traversal.xpt -@RESPATH@/components/dom_tv.xpt -@RESPATH@/components/dom_voicemail.xpt +#endif #ifdef MOZ_WEBSPEECH -@RESPATH@/components/dom_webspeechrecognition.xpt -#endif -@RESPATH@/components/dom_workers.xpt -@RESPATH@/components/dom_xbl.xpt -@RESPATH@/components/dom_xpath.xpt -@RESPATH@/components/dom_xul.xpt -#ifdef MOZ_GAMEPAD -@RESPATH@/components/dom_gamepad.xpt -#endif -#ifdef MOZ_PAY -@RESPATH@/components/dom_payment.xpt -#endif -@RESPATH@/components/dom_presentation.xpt -@RESPATH@/components/downloads.xpt -@RESPATH@/components/editor.xpt -@RESPATH@/components/embed_base.xpt -@RESPATH@/components/extensions.xpt -@RESPATH@/components/exthandler.xpt -@RESPATH@/components/exthelper.xpt -@RESPATH@/components/fastfind.xpt -@RESPATH@/components/feeds.xpt -#ifdef MOZ_GTK -@RESPATH@/components/filepicker.xpt -#endif -@RESPATH@/components/find.xpt -@RESPATH@/browser/components/fuel.xpt -@RESPATH@/components/gfx.xpt -@RESPATH@/components/html5.xpt -@RESPATH@/components/htmlparser.xpt -@RESPATH@/components/identity.xpt -@RESPATH@/components/imglib2.xpt -@RESPATH@/components/inspector.xpt -@RESPATH@/components/intl.xpt -@RESPATH@/components/jar.xpt -@RESPATH@/components/jsdebugger.xpt -@RESPATH@/components/jsdownloads.xpt -@RESPATH@/browser/components/jsinspector.xpt -@RESPATH@/components/layout_base.xpt - -#ifdef NS_PRINTING -@RESPATH@/components/layout_printing.xpt -#endif -@RESPATH@/components/layout_xul_tree.xpt -@RESPATH@/components/layout_xul.xpt -@RESPATH@/components/locale.xpt -@RESPATH@/components/lwbrk.xpt -@RESPATH@/browser/components/migration.xpt -@RESPATH@/components/mimetype.xpt -@RESPATH@/components/mozfind.xpt -@RESPATH@/components/necko_about.xpt -@RESPATH@/components/necko_cache.xpt -@RESPATH@/components/necko_cache2.xpt -@RESPATH@/components/necko_cookie.xpt -@RESPATH@/components/necko_dns.xpt -@RESPATH@/components/necko_file.xpt -@RESPATH@/components/necko_ftp.xpt -@RESPATH@/components/necko_http.xpt -@RESPATH@/components/necko_res.xpt -@RESPATH@/components/necko_socket.xpt -@RESPATH@/components/necko_strconv.xpt -@RESPATH@/components/necko_viewsource.xpt -@RESPATH@/components/necko_websocket.xpt -#ifdef NECKO_WIFI -@RESPATH@/components/necko_wifi.xpt #endif -@RESPATH@/components/necko_wyciwyg.xpt -@RESPATH@/components/necko.xpt -@RESPATH@/components/loginmgr.xpt -@RESPATH@/components/parentalcontrols.xpt -#ifdef MOZ_WEBRTC -@RESPATH@/components/peerconnection.xpt -#endif -@RESPATH@/components/places.xpt -@RESPATH@/components/plugin.xpt -@RESPATH@/components/pref.xpt -@RESPATH@/components/prefetch.xpt -@RESPATH@/components/profiler.xpt -@RESPATH@/components/rdf.xpt -@RESPATH@/components/satchel.xpt -@RESPATH@/components/saxparser.xpt -@RESPATH@/browser/components/sessionstore.xpt -@RESPATH@/components/services-crypto-component.xpt -#ifdef MOZ_CAPTIVEDETECT -@RESPATH@/components/captivedetect.xpt -#endif -@RESPATH@/browser/components/shellservice.xpt -#ifdef MOZ_BROWSER_STATUSBAR -@RESPATH@/browser/components/status4evar.xpt -#endif -@RESPATH@/components/shistory.xpt -@RESPATH@/components/spellchecker.xpt -@RESPATH@/components/storage.xpt -@RESPATH@/components/toolkit_asyncshutdown.xpt -@RESPATH@/components/toolkit_filewatcher.xpt -@RESPATH@/components/toolkit_finalizationwitness.xpt -@RESPATH@/components/toolkit_formautofill.xpt -@RESPATH@/components/toolkit_osfile.xpt -@RESPATH@/components/toolkit_xulstore.xpt -@RESPATH@/components/toolkitprofile.xpt -#ifdef MOZ_ENABLE_XREMOTE -@RESPATH@/components/toolkitremote.xpt -#endif -@RESPATH@/components/txtsvc.xpt -@RESPATH@/components/txmgr.xpt -@RESPATH@/components/uconv.xpt -@RESPATH@/components/unicharutil.xpt -@RESPATH@/components/update.xpt -@RESPATH@/components/uriloader.xpt -@RESPATH@/components/urlformatter.xpt -@RESPATH@/components/webBrowser_core.xpt -@RESPATH@/components/webbrowserpersist.xpt -@RESPATH@/components/widget.xpt -#ifdef XP_MACOSX -@RESPATH@/components/widget_cocoa.xpt -#endif -@RESPATH@/components/windowds.xpt -@RESPATH@/components/windowwatcher.xpt -@RESPATH@/components/xpcom_base.xpt -@RESPATH@/components/xpcom_system.xpt -@RESPATH@/components/xpcom_components.xpt -@RESPATH@/components/xpcom_ds.xpt -@RESPATH@/components/xpcom_io.xpt -@RESPATH@/components/xpcom_threads.xpt -@RESPATH@/components/xpcom_xpti.xpt -@RESPATH@/components/xpconnect.xpt -@RESPATH@/components/xulapp.xpt -@RESPATH@/components/xul.xpt -@RESPATH@/components/xultmpl.xpt -@RESPATH@/components/zipwriter.xpt -@RESPATH@/components/telemetry.xpt - -; JavaScript components -@RESPATH@/components/ChromeNotifications.js -@RESPATH@/components/ChromeNotifications.manifest -@RESPATH@/components/ConsoleAPI.manifest -@RESPATH@/components/ConsoleAPIStorage.js -@RESPATH@/components/BrowserElementParent.manifest -@RESPATH@/components/BrowserElementParent.js -@RESPATH@/components/FeedProcessor.manifest -@RESPATH@/components/FeedProcessor.js -@RESPATH@/browser/components/BrowserFeeds.manifest -@RESPATH@/browser/components/FeedConverter.js -@RESPATH@/browser/components/FeedWriter.js -@RESPATH@/browser/components/fuelApplication.manifest -@RESPATH@/browser/components/fuelApplication.js -@RESPATH@/browser/components/WebContentConverter.js -@RESPATH@/browser/components/BrowserComponents.manifest -@RESPATH@/browser/components/nsBrowserContentHandler.js -@RESPATH@/browser/components/nsBrowserGlue.js -@RESPATH@/browser/components/nsSetDefaultBrowser.manifest -@RESPATH@/browser/components/nsSetDefaultBrowser.js -@RESPATH@/browser/components/BrowserDownloads.manifest -@RESPATH@/browser/components/DownloadsStartup.js -@RESPATH@/browser/components/DownloadsUI.js -@RESPATH@/browser/components/BrowserPlaces.manifest -@RESPATH@/components/Downloads.manifest -@RESPATH@/components/DownloadLegacy.js -@RESPATH@/components/BrowserPageThumbs.manifest -@RESPATH@/components/crashmonitor.manifest -@RESPATH@/components/nsCrashMonitor.js -@RESPATH@/components/SiteSpecificUserAgent.js -@RESPATH@/components/SiteSpecificUserAgent.manifest -@RESPATH@/components/toolkitsearch.manifest -@RESPATH@/components/nsSearchService.js -@RESPATH@/components/nsSearchSuggestions.js -@RESPATH@/components/nsSidebar.js -@RESPATH@/components/passwordmgr.manifest -@RESPATH@/components/nsLoginInfo.js -@RESPATH@/components/nsLoginManager.js -@RESPATH@/components/nsLoginManagerPrompter.js -@RESPATH@/components/storage-json.js -@RESPATH@/components/crypto-SDR.js -@RESPATH@/components/jsconsole-clhandler.manifest -@RESPATH@/components/jsconsole-clhandler.js -#ifdef MOZ_DEVTOOLS -@RESPATH@/browser/components/devtools-startup.manifest -@RESPATH@/browser/components/devtools-startup.js -#endif -@RESPATH@/components/webvtt.xpt -@RESPATH@/components/WebVTT.manifest -@RESPATH@/components/WebVTTParserWrapper.js #ifdef MOZ_GTK -@RESPATH@/components/nsFilePicker.manifest -@RESPATH@/components/nsFilePicker.js -#endif -@RESPATH@/components/nsHelperAppDlg.manifest -@RESPATH@/components/nsHelperAppDlg.js -@RESPATH@/components/NetworkGeolocationProvider.manifest -@RESPATH@/components/NetworkGeolocationProvider.js -@RESPATH@/components/extensions.manifest -@RESPATH@/components/addonManager.js -@RESPATH@/components/amContentHandler.js -@RESPATH@/components/amInstallTrigger.js -@RESPATH@/components/amWebInstallListener.js -@RESPATH@/components/nsBlocklistService.js -#ifdef MOZ_UPDATER -@RESPATH@/components/nsUpdateService.manifest -@RESPATH@/components/nsUpdateService.js -@RESPATH@/components/nsUpdateServiceStub.js -#endif -@RESPATH@/components/nsUpdateTimerManager.manifest -@RESPATH@/components/nsUpdateTimerManager.js -@RESPATH@/components/addoncompat.manifest -@RESPATH@/components/multiprocessShims.js -@RESPATH@/components/remoteTagService.js -@RESPATH@/components/pluginGlue.manifest -@RESPATH@/components/ProcessSingleton.manifest -@RESPATH@/components/MainProcessSingleton.js -@RESPATH@/components/ContentProcessSingleton.js -@RESPATH@/browser/components/nsSessionStore.manifest -@RESPATH@/browser/components/nsSessionStartup.js -@RESPATH@/browser/components/nsSessionStore.js -@RESPATH@/components/nsURLFormatter.manifest -@RESPATH@/components/nsURLFormatter.js -@RESPATH@/browser/components/@DLL_PREFIX@browsercomps@DLL_SUFFIX@ -@RESPATH@/components/txEXSLTRegExFunctions.manifest -@RESPATH@/components/txEXSLTRegExFunctions.js -@RESPATH@/components/toolkitplaces.manifest -@RESPATH@/components/nsLivemarkService.js -@RESPATH@/components/nsTaggingService.js -@RESPATH@/components/nsPlacesAutoComplete.manifest -@RESPATH@/components/nsPlacesAutoComplete.js -@RESPATH@/components/UnifiedComplete.manifest -@RESPATH@/components/UnifiedComplete.js -@RESPATH@/components/nsPlacesExpiration.js -@RESPATH@/browser/components/PlacesProtocolHandler.js -@RESPATH@/components/PlacesCategoriesStarter.js -@RESPATH@/components/ColorAnalyzer.js -@RESPATH@/components/PageThumbsProtocol.js -@RESPATH@/components/nsDefaultCLH.manifest -@RESPATH@/components/nsDefaultCLH.js -@RESPATH@/components/nsContentPrefService.manifest -@RESPATH@/components/nsContentPrefService.js -@RESPATH@/components/nsContentDispatchChooser.manifest -@RESPATH@/components/nsContentDispatchChooser.js -@RESPATH@/components/nsHandlerService.manifest -@RESPATH@/components/nsHandlerService.js -@RESPATH@/components/nsWebHandlerApp.manifest -@RESPATH@/components/nsWebHandlerApp.js -@RESPATH@/components/satchel.manifest -@RESPATH@/components/nsFormAutoComplete.js -@RESPATH@/components/nsFormHistory.js -@RESPATH@/components/FormHistoryStartup.js -@RESPATH@/components/nsInputListAutoComplete.js -@RESPATH@/components/formautofill.manifest -@RESPATH@/components/FormAutofillContentService.js -@RESPATH@/components/FormAutofillStartup.js -@RESPATH@/components/contentAreaDropListener.manifest -@RESPATH@/components/contentAreaDropListener.js -@RESPATH@/browser/components/BrowserProfileMigrators.manifest -@RESPATH@/browser/components/ProfileMigrator.js -@RESPATH@/browser/components/ChromeProfileMigrator.js -@RESPATH@/browser/components/FirefoxProfileMigrator.js -#ifdef MOZ_BROWSER_STATUSBAR -@RESPATH@/browser/components/status4evar.js -@RESPATH@/browser/components/status4evar.manifest #endif -#ifdef XP_WIN -@RESPATH@/browser/components/IEProfileMigrator.js -@RESPATH@/browser/components/SafariProfileMigrator.js +#ifdef NS_PRINTING #endif -#ifdef XP_MACOSX -@RESPATH@/browser/components/SafariProfileMigrator.js -#endif -#ifdef MOZ_ENABLE_DBUS -@RESPATH@/components/@DLL_PREFIX@dbusservice@DLL_SUFFIX@ -#endif -#ifdef MOZ_ENABLE_GNOME_COMPONENT -@RESPATH@/components/@DLL_PREFIX@mozgnome@DLL_SUFFIX@ -#endif -#ifdef MOZ_ENABLE_GNOMEVFS -@RESPATH@/components/@DLL_PREFIX@nkgnomevfs@DLL_SUFFIX@ -#endif -#if defined(MOZ_ENABLE_DBUS) || defined(MOZ_ENABLE_GNOME_COMPONENT) || defined(MOZ_ENABLE_GNOMEVFS) -@RESPATH@/components/components.manifest -#endif -@RESPATH@/components/nsINIProcessor.manifest -@RESPATH@/components/nsINIProcessor.js -@RESPATH@/components/nsPrompter.manifest -@RESPATH@/components/nsPrompter.js -#ifdef MOZ_DATA_REPORTING -@RESPATH@/components/DataReporting.manifest -@RESPATH@/components/DataReportingService.js -#endif -#ifdef MOZ_SERVICES_HEALTHREPORT -@RESPATH@/components/HealthReportComponents.manifest -@RESPATH@/browser/components/SelfSupportService.manifest -@RESPATH@/browser/components/SelfSupportService.js -#endif -#ifdef MOZ_SERVICES_SYNC -@RESPATH@/components/SyncComponents.manifest -@RESPATH@/components/Weave.js -#endif -#ifdef MOZ_CAPTIVEDETECT -@RESPATH@/components/CaptivePortalDetectComponents.manifest -@RESPATH@/components/captivedetect.js -#endif -@RESPATH@/components/servicesComponents.manifest -@RESPATH@/components/cryptoComponents.manifest -@RESPATH@/components/TelemetryStartup.js -@RESPATH@/components/TelemetryStartup.manifest -@RESPATH@/components/XULStore.js -@RESPATH@/components/XULStore.manifest -@RESPATH@/components/messageWakeupService.js -@RESPATH@/components/messageWakeupService.manifest -@RESPATH@/components/SettingsManager.js -@RESPATH@/components/SettingsManager.manifest -@RESPATH@/components/Webapps.js -@RESPATH@/components/Webapps.manifest -@RESPATH@/components/AppsService.js -@RESPATH@/components/AppsService.manifest -@RESPATH@/components/nsDOMIdentity.js -@RESPATH@/components/nsIDService.js -@RESPATH@/components/Identity.manifest -@RESPATH@/components/recording-cmdline.js -@RESPATH@/components/recording-cmdline.manifest -@RESPATH@/components/htmlMenuBuilder.js -@RESPATH@/components/htmlMenuBuilder.manifest - -@RESPATH@/components/RequestSync.manifest -@RESPATH@/components/RequestSyncManager.js -@RESPATH@/components/RequestSyncScheduler.js - -@RESPATH@/components/PermissionSettings.js -@RESPATH@/components/PermissionSettings.manifest -@RESPATH@/components/ContactManager.js -@RESPATH@/components/ContactManager.manifest -@RESPATH@/components/PhoneNumberService.js -@RESPATH@/components/PhoneNumberService.manifest -@RESPATH@/components/NotificationStorage.js -@RESPATH@/components/NotificationStorage.manifest -@RESPATH@/components/AlarmsManager.js -@RESPATH@/components/AlarmsManager.manifest -@RESPATH@/components/Push.js -@RESPATH@/components/Push.manifest -@RESPATH@/components/PushServiceLauncher.js - -@RESPATH@/components/SlowScriptDebug.manifest -@RESPATH@/components/SlowScriptDebug.js - -#ifndef RELEASE_BUILD -@RESPATH@/components/InterAppComm.manifest -@RESPATH@/components/InterAppCommService.js -@RESPATH@/components/InterAppConnection.js -@RESPATH@/components/InterAppMessagePort.js +#ifdef MOZ_ENABLE_PROFILER_SPS #endif - -@RESPATH@/components/TCPSocket.js -@RESPATH@/components/TCPServerSocket.js -@RESPATH@/components/TCPSocketParentIntermediary.js -@RESPATH@/components/TCPSocket.manifest - -#ifdef MOZ_ACTIVITIES -@RESPATH@/components/SystemMessageCache.js -@RESPATH@/components/SystemMessageInternal.js -@RESPATH@/components/SystemMessageManager.js -@RESPATH@/components/SystemMessageManager.manifest - -@RESPATH@/components/Activities.manifest -@RESPATH@/components/ActivityProxy.js -@RESPATH@/components/ActivityRequestHandler.js -@RESPATH@/components/ActivityWrapper.js -@RESPATH@/components/ActivityMessageConfigurator.js +#ifdef ENABLE_INTL_API #endif - -#ifdef MOZ_PAY -@RESPATH@/components/Payment.js -@RESPATH@/components/PaymentFlowInfo.js -@RESPATH@/components/Payment.manifest +#ifdef NECKO_WIFI #endif - #ifdef MOZ_WEBRTC -@RESPATH@/components/PeerConnection.js -@RESPATH@/components/PeerConnection.manifest +#endif +#ifdef MOZ_ENABLE_PROFILER_SPS +#endif +#ifdef MOZ_ENABLE_XREMOTE +#endif +#ifdef XP_MACOSX #endif @RESPATH@/chrome/marionette@JAREXT@ @RESPATH@/chrome/marionette.manifest -@RESPATH@/components/MarionetteComponents.manifest -@RESPATH@/components/marionettecomponent.js - -#ifdef MOZ_WEBSPEECH -@RESPATH@/components/dom_webspeechsynth.xpt -#endif - -@RESPATH@/components/nsAsyncShutdown.manifest -@RESPATH@/components/nsAsyncShutdown.js - -@RESPATH@/components/PresentationDeviceInfoManager.manifest -@RESPATH@/components/PresentationDeviceInfoManager.js - -; InputMethod API -@RESPATH@/components/MozKeyboard.js -@RESPATH@/components/InputMethod.manifest - -#if defined(ENABLE_TESTS) && defined(MOZ_DEBUG) -@RESPATH@/components/TestInterfaceJS.js -@RESPATH@/components/TestInterfaceJS.manifest -#endif ; Modules @RESPATH@/browser/modules/* @@ -658,15 +204,17 @@ #ifdef MOZ_D3DCOMPILER_VISTA_DLL @BINPATH@/@MOZ_D3DCOMPILER_VISTA_DLL@ #endif - #endif # MOZ_ANGLE_RENDERER ; [Browser Chrome Files] @RESPATH@/browser/chrome.manifest @RESPATH@/browser/chrome/browser@JAREXT@ @RESPATH@/browser/chrome/browser.manifest -@RESPATH@/browser/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf +#ifdef XP_WIN +@RESPATH@/browser/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/chrome.manifest +#endif @RESPATH@/browser/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png +@RESPATH@/browser/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf @RESPATH@/chrome/toolkit@JAREXT@ @RESPATH@/chrome/toolkit.manifest @RESPATH@/chrome/recording.manifest @@ -686,7 +234,7 @@ @RESPATH@/browser/chrome/devtools@JAREXT@ @RESPATH@/browser/chrome/devtools.manifest @RESPATH@/browser/@PREF_DIR@/devtools.js - + ; shell icons #ifdef XP_UNIX #ifndef XP_MACOSX @@ -703,28 +251,16 @@ ; All the pref files must be part of base to prevent migration bugs @RESPATH@/browser/@PREF_DIR@/palemoon.js @RESPATH@/browser/@PREF_DIR@/palemoon-branding.js -@RESPATH@/goanna.js -@RESPATH@/defaults/autoconfig/platform.js +@RESPATH@/greprefs.js @RESPATH@/defaults/autoconfig/prefcalls.js -@RESPATH@/browser/defaults/profile/prefs.js -#ifndef LIBXUL_SDK ; Warning: changing the path to channel-prefs.js can cause bugs (Bug 756325) ; Technically this is an app pref file, but we are keeping it in the original ; gre location for now. @RESPATH@/defaults/pref/channel-prefs.js -#else -; For Fx-on-xr, channel-prefs lives with the app preferences. (Bug 762588) -@RESPATH@/@PREF_DIR@/channel-prefs.js -#endif ; Services (gre) prefs -#ifdef MOZ_SERVICES_NOTIFICATIONS -@RESPATH@/defaults/pref/services-notifications.js -#endif -#ifdef MOZ_SERVICES_SYNC @RESPATH@/defaults/pref/services-sync.js -#endif ; [Layout Engine Resources] ; Style Sheets, Graphics and other Resources used by the layout engine. @@ -759,7 +295,7 @@ @RESPATH@/res/fonts/* @RESPATH@/res/dtd/* @RESPATH@/res/html/* -#if defined(XP_MACOSX) || defined(XP_WIN) +#if defined(XP_MACOSX) ; For SafariProfileMigrator.js. @RESPATH@/res/langGroups.properties #endif @@ -771,15 +307,13 @@ ; svg @RESPATH@/res/svg.css -@RESPATH@/components/dom_svg.xpt -@RESPATH@/components/dom_smil.xpt ; [Personal Security Manager] ; ; NSS libraries are signed in the staging directory, ; meaning their .chk files are created there directly. ; -#ifndef MOZ_NATIVE_NSS +#ifndef MOZ_SYSTEM_NSS #if defined(XP_LINUX) && !defined(ANDROID) @BINPATH@/@DLL_PREFIX@freeblpriv3@DLL_SUFFIX@ #else @@ -799,20 +333,22 @@ #endif @RESPATH@/chrome/pippki@JAREXT@ @RESPATH@/chrome/pippki.manifest -@RESPATH@/components/pipboot.xpt -@RESPATH@/components/pipnss.xpt -@RESPATH@/components/pippki.xpt ; For process sandboxing #if defined(MOZ_SANDBOX) #if defined(XP_WIN) -@BINPATH@/@DLL_PREFIX@sandboxbroker@DLL_SUFFIX@ #if defined(WOW_HELPER) @BINPATH@/wow_helper.exe #endif #endif #endif +#if defined(MOZ_SANDBOX) +#if defined(XP_LINUX) +@BINPATH@/@DLL_PREFIX@mozsandbox@DLL_SUFFIX@ +#endif +#endif + ; for Solaris SPARC #ifdef SOLARIS bin/libfreebl_32fpu_3.so @@ -830,13 +366,7 @@ bin/libfreebl_32int64_3.so #endif #endif -@RESPATH@/components/DataStore.manifest -@RESPATH@/components/DataStoreImpl.js -@RESPATH@/components/dom_datastore.xpt - ; Shutdown Terminator -@RESPATH@/components/nsTerminatorTelemetry.js -@RESPATH@/components/terminator.manifest #if defined(CLANG_CXX) #if defined(MOZ_ASAN) || defined(MOZ_TSAN) @@ -845,5 +375,5 @@ bin/libfreebl_32int64_3.so #endif #if defined(MOZ_ASAN) && defined(CLANG_CL) -@BINPATH@/clang_rt.asan_dynamic-i386.dll +@BINPATH@/clang_rt.asan_dynamic-*.dll #endif diff --git a/application/palemoon/installer/removed-files.in b/application/palemoon/installer/removed-files.in index 8bfd72e4e9..8801d1cb01 100644 --- a/application/palemoon/installer/removed-files.in +++ b/application/palemoon/installer/removed-files.in @@ -65,29 +65,27 @@ # platforms. # Common File Removals +# This is located under the "distribution/" directory and it was added before +# Firefox 27 +@DIR_MACOS@distribution/extensions/testpilot@labs.mozilla.com.xpi -# Some users are ending up with unpacked chrome instead of omni.ja. This -# causes updates to break badly, see bug 1063052. Removing the toplevel -# chrome.manifest causes us to use the updated omni.ja. -#ifndef MOZ_GTK - @DIR_MACOS@chrome.manifest - #ifdef XP_MACOSX - @DIR_RESOURCES@chrome.manifest - #endif +# Mac OS X v2 signing removals +#ifdef XP_MACOSX + @DIR_MACOS@active-update.xml + @DIR_MACOS@update-settings.ini + @DIR_MACOS@updates.xml + @DIR_MACOS@defaults/* + @DIR_MACOS@updates/* #endif # Common Directory removals +@DIR_MACOS@chrome/ #ifdef XP_UNIX #ifndef XP_MACOSX chrome/icons/ chrome/icons/default/ #endif #endif - -# Remove previously-bundled ruby/s4e extensions -@DIR_MACOS@distribution/bundles/statusbar@palemoon.org/* -@DIR_MACOS@distribution/bundles/{3ff46564-d77c-491c-bfc5-fc555c87dbc4}/* - @DIR_MACOS@chrome/overlayinfo/ @DIR_MACOS@components/ @DIR_MACOS@defaults/autoconfig/ @@ -114,4 +112,5 @@ @DIR_MACOS@plugins/MRJPlugin.plugin/* Contents/Plug-Ins/PrintPDE.plugin/* #endif +@DIR_MACOS@searchplugins/* @DIR_MACOS@webapprt/components/ diff --git a/application/palemoon/installer/windows/Makefile.in b/application/palemoon/installer/windows/Makefile.in index 600bdfeb6e..8c434c54f8 100644 --- a/application/palemoon/installer/windows/Makefile.in +++ b/application/palemoon/installer/windows/Makefile.in @@ -5,7 +5,7 @@ include $(topsrcdir)/toolkit/mozapps/installer/package-name.mk CONFIG_DIR = instgen -SFX_MODULE = $(topsrcdir)/other-licenses/7zstub/uxp/7zSD.sfx +SFX_MODULE = $(topsrcdir)/other-licenses/7zstub/palemoon/7zSD.sfx INSTALLER_FILES = \ app.tag \ diff --git a/application/palemoon/locales/generic/install.rdf b/application/palemoon/locales/generic/install.rdf deleted file mode 100644 index d04c67a61a..0000000000 --- a/application/palemoon/locales/generic/install.rdf +++ /dev/null @@ -1,30 +0,0 @@ -<?xml version="1.0"?> -<!-- -# This Source Code Form is subject to the terms of the Mozilla Public -# License, v. 2.0. If a copy of the MPL was not distributed with this -# file, You can obtain one at http://mozilla.org/MPL/2.0/. - -#filter substitution ---> - -<RDF xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#" - xmlns:em="http://www.mozilla.org/2004/em-rdf#"> - <Description about="urn:mozilla:install-manifest" - em:id="@MOZ_LANGPACK_EID@" - em:name="@MOZ_LANG_TITLE@ Language Pack" - em:version="@MOZ_APP_VERSION@" - em:type="8" - em:creator="@MOZ_LANGPACK_CREATOR@"> -#ifdef MOZ_LANGPACK_CONTRIBUTORS - @MOZ_LANGPACK_CONTRIBUTORS@ -#endif - - <em:targetApplication> - <Description> - <em:id>{8de7fcbb-c55c-4fbe-bfc5-fc555c87dbc4}</em:id> - <em:minVersion>@MOZ_APP_VERSION@</em:minVersion> - <em:maxVersion>@MOZ_APP_MAXVERSION@</em:maxVersion> - </Description> - </em:targetApplication> - </Description> -</RDF> diff --git a/application/palemoon/locales/l10n.ini b/application/palemoon/locales/l10n.ini index df5eb7ac03..9a466b65ed 100644 --- a/application/palemoon/locales/l10n.ini +++ b/application/palemoon/locales/l10n.ini @@ -3,14 +3,14 @@ # file, You can obtain one at http://mozilla.org/MPL/2.0/. [general] -depth = ../.. -all = browser/locales/all-locales +depth = ../../.. +all = application/palemoon/locales/all-locales [compare] -dirs = browser +dirs = application/palemoon extensions/reporter other-licenses/branding/firefox - browser/branding/official + application/palemoon/branding/official [includes] # non-central apps might want to use %(topsrcdir)s here, or other vars diff --git a/config/rules.mk b/config/rules.mk index 122bd8a776..a6bd45d119 100644 --- a/config/rules.mk +++ b/config/rules.mk @@ -1129,6 +1129,12 @@ ifneq (,$(JAR_MANIFEST)) ifndef NO_DIST_INSTALL ifdef XPI_NAME +# XXX: Figure out why Pale Moon's defs.mk is not being propigated +ifndef XPI_ROOT_APPID +ifdef MC_PALEMOON +XPI_ROOT_APPID=$(MOZ_APP_ID) +endif +endif ifdef XPI_ROOT_APPID # For add-on packaging we may specify that an application # sub-dir should be added to the root chrome manifest with diff --git a/dom/fetch/InternalHeaders.cpp b/dom/fetch/InternalHeaders.cpp index e81863173b..11585615ea 100644 --- a/dom/fetch/InternalHeaders.cpp +++ b/dom/fetch/InternalHeaders.cpp @@ -21,12 +21,14 @@ InternalHeaders::InternalHeaders(const nsTArray<Entry>&& aHeaders, HeadersGuardEnum aGuard) : mGuard(aGuard) , mList(aHeaders) + , mListDirty(true) { } InternalHeaders::InternalHeaders(const nsTArray<HeadersEntry>& aHeadersEntryList, HeadersGuardEnum aGuard) : mGuard(aGuard) + , mListDirty(true) { for (const HeadersEntry& headersEntry : aHeadersEntryList) { mList.AppendElement(Entry(headersEntry.name(), headersEntry.value())); @@ -56,6 +58,8 @@ InternalHeaders::Append(const nsACString& aName, const nsACString& aValue, return; } + SetListDirty(); + mList.AppendElement(Entry(lowerName, aValue)); } @@ -69,6 +73,8 @@ InternalHeaders::Delete(const nsACString& aName, ErrorResult& aRv) return; } + SetListDirty(); + // remove in reverse order to minimize copying for (int32_t i = mList.Length() - 1; i >= 0; --i) { if (lowerName == mList[i].mName) { @@ -155,6 +161,8 @@ InternalHeaders::Set(const nsACString& aName, const nsACString& aValue, ErrorRes return; } + SetListDirty(); + int32_t firstIndex = INT32_MAX; // remove in reverse order to minimize copying @@ -177,6 +185,7 @@ InternalHeaders::Set(const nsACString& aName, const nsACString& aValue, ErrorRes void InternalHeaders::Clear() { + SetListDirty(); mList.Clear(); } @@ -419,5 +428,54 @@ InternalHeaders::GetUnsafeHeaders(nsTArray<nsCString>& aNames) const } } +void +InternalHeaders::MaybeSortList() +{ + class Comparator { + public: + bool Equals(const Entry& aA, const Entry& aB) const + { + return aA.mName == aB.mName; + } + + bool LessThan(const Entry& aA, const Entry& aB) const + { + return aA.mName < aB.mName; + } + }; + + if (!mListDirty) { + return; + } + + mListDirty = false; + + Comparator comparator; + + mSortedList.Clear(); + for (const Entry& entry : mList) { + bool found = false; + for (Entry& sortedEntry : mSortedList) { + if (sortedEntry.mName == entry.mName) { + sortedEntry.mValue += ", "; + sortedEntry.mValue += entry.mValue; + found = true; + break; + } + } + + if (!found) { + mSortedList.InsertElementSorted(entry, comparator); + } + } +} + +void +InternalHeaders::SetListDirty() +{ + mSortedList.Clear(); + mListDirty = true; +} + } // namespace dom } // namespace mozilla diff --git a/dom/fetch/InternalHeaders.h b/dom/fetch/InternalHeaders.h index e470666694..9a6d6dae7d 100644 --- a/dom/fetch/InternalHeaders.h +++ b/dom/fetch/InternalHeaders.h @@ -45,14 +45,23 @@ private: HeadersGuardEnum mGuard; nsTArray<Entry> mList; + nsTArray<Entry> mSortedList; + + // This boolean is set to true at any writing operation to mList. It's set to + // false when mSortedList is regenerated. This happens when the header is + // iterated. + bool mListDirty; + public: explicit InternalHeaders(HeadersGuardEnum aGuard = HeadersGuardEnum::None) : mGuard(aGuard) + , mListDirty(false) { } explicit InternalHeaders(const InternalHeaders& aOther) : mGuard(HeadersGuardEnum::None) + , mListDirty(true) { ErrorResult result; Fill(aOther, result); @@ -79,19 +88,22 @@ public: bool Has(const nsACString& aName, ErrorResult& aRv) const; void Set(const nsACString& aName, const nsACString& aValue, ErrorResult& aRv); - uint32_t GetIterableLength() const + uint32_t GetIterableLength() { - return mList.Length(); + MaybeSortList(); + return mSortedList.Length(); } - const NS_ConvertASCIItoUTF16 GetKeyAtIndex(unsigned aIndex) const + const NS_ConvertASCIItoUTF16 GetKeyAtIndex(unsigned aIndex) { - MOZ_ASSERT(aIndex < mList.Length()); - return NS_ConvertASCIItoUTF16(mList[aIndex].mName); + MaybeSortList(); + MOZ_ASSERT(aIndex < mSortedList.Length()); + return NS_ConvertASCIItoUTF16(mSortedList[aIndex].mName); } - const NS_ConvertASCIItoUTF16 GetValueAtIndex(unsigned aIndex) const + const NS_ConvertASCIItoUTF16 GetValueAtIndex(unsigned aIndex) { - MOZ_ASSERT(aIndex < mList.Length()); - return NS_ConvertASCIItoUTF16(mList[aIndex].mValue); + MaybeSortList(); + MOZ_ASSERT(aIndex < mSortedList.Length()); + return NS_ConvertASCIItoUTF16(mSortedList[aIndex].mValue); } void Clear(); @@ -152,6 +164,9 @@ private: const nsACString& aValue); static bool IsRevalidationHeader(const nsACString& aName); + + void MaybeSortList(); + void SetListDirty(); }; } // namespace dom diff --git a/dom/html/nsTextEditorState.cpp b/dom/html/nsTextEditorState.cpp index d701993628..187afb66df 100644 --- a/dom/html/nsTextEditorState.cpp +++ b/dom/html/nsTextEditorState.cpp @@ -1418,19 +1418,16 @@ nsTextEditorState::PrepareEditor(const nsAString *aValue) } } - if (shouldInitializeEditor) { - // Initialize the plaintext editor - nsCOMPtr<nsIPlaintextEditor> textEditor(do_QueryInterface(newEditor)); - if (textEditor) { + // Initialize the plaintext editor + nsCOMPtr<nsIPlaintextEditor> textEditor = do_QueryInterface(newEditor); + if (textEditor) { + if (shouldInitializeEditor) { // Set up wrapping textEditor->SetWrapColumn(GetWrapCols()); - - // Set max text field length - int32_t maxLength; - if (GetMaxLength(&maxLength)) { - textEditor->SetMaxTextLength(maxLength); - } } + + // Set max text field length + textEditor->SetMaxTextLength(GetMaxLength()); } nsCOMPtr<nsIContent> content = do_QueryInterface(mTextCtrlElement); @@ -1895,22 +1892,22 @@ be called if @placeholder is the empty string when trimmed from line breaks"); return NS_OK; } -bool -nsTextEditorState::GetMaxLength(int32_t* aMaxLength) +int32_t +nsTextEditorState::GetMaxLength() { nsCOMPtr<nsIContent> content = do_QueryInterface(mTextCtrlElement); nsGenericHTMLElement* element = nsGenericHTMLElement::FromContentOrNull(content); - NS_ENSURE_TRUE(element, false); + if (NS_WARN_IF(!element)) { + return -1; + } const nsAttrValue* attr = element->GetParsedAttr(nsGkAtoms::maxlength); if (attr && attr->Type() == nsAttrValue::eInteger) { - *aMaxLength = attr->GetIntegerValue(); - - return true; + return attr->GetIntegerValue(); } - return false; + return -1; } void diff --git a/dom/html/nsTextEditorState.h b/dom/html/nsTextEditorState.h index 11494f155a..caf5e8eedd 100644 --- a/dom/html/nsTextEditorState.h +++ b/dom/html/nsTextEditorState.h @@ -203,7 +203,7 @@ public: * @param aMaxLength the value of the max length attr * @returns false if attr not defined */ - bool GetMaxLength(int32_t* aMaxLength); + int32_t GetMaxLength(); void ClearValueCache() { mCachedValue.Truncate(); } diff --git a/dom/security/nsCSPContext.cpp b/dom/security/nsCSPContext.cpp index 5e435d4ca8..a7517f65e8 100644 --- a/dom/security/nsCSPContext.cpp +++ b/dom/security/nsCSPContext.cpp @@ -219,14 +219,6 @@ nsCSPContext::permitsInternal(CSPDirective aDir, nsAutoString violatedDirective; for (uint32_t p = 0; p < mPolicies.Length(); p++) { - - // According to the W3C CSP spec, frame-ancestors checks are ignored for - // report-only policies (when "monitoring"). - if (aDir == nsIContentSecurityPolicy::FRAME_ANCESTORS_DIRECTIVE && - mPolicies[p]->getReportOnlyFlag()) { - continue; - } - if (!mPolicies[p]->permits(aDir, aContentLocation, aNonce, diff --git a/dom/security/test/csp/file_frame_ancestors_ro.html b/dom/security/test/csp/file_frame_ancestors_ro.html new file mode 100644 index 0000000000..ff5ae9cf9f --- /dev/null +++ b/dom/security/test/csp/file_frame_ancestors_ro.html @@ -0,0 +1 @@ +<html><body>Child Document</body></html> diff --git a/dom/security/test/csp/file_frame_ancestors_ro.html^headers^ b/dom/security/test/csp/file_frame_ancestors_ro.html^headers^ new file mode 100644 index 0000000000..d018af3a96 --- /dev/null +++ b/dom/security/test/csp/file_frame_ancestors_ro.html^headers^ @@ -0,0 +1 @@ +Content-Security-Policy-Report-Only: frame-ancestors 'none'; report-uri http://mochi.test:8888/foo.sjs diff --git a/dom/security/test/csp/mochitest.ini b/dom/security/test/csp/mochitest.ini index ca5c2c6eab..33b1120202 100644 --- a/dom/security/test/csp/mochitest.ini +++ b/dom/security/test/csp/mochitest.ini @@ -91,6 +91,8 @@ support-files = file_bug941404.html file_bug941404_xhr.html file_bug941404_xhr.html^headers^ + file_frame_ancestors_ro.html + file_frame_ancestors_ro.html^headers^ file_hash_source.html file_dual_header_testserver.sjs file_hash_source.html^headers^ @@ -240,6 +242,7 @@ skip-if = toolkit == 'android' # Times out, not sure why (bug 1008445) [test_bug910139.html] [test_bug909029.html] [test_bug1229639.html] +[test_frame_ancestors_ro.html] [test_policyuri_regression_from_multipolicy.html] [test_nonce_source.html] [test_bug941404.html] diff --git a/dom/security/test/csp/test_frame_ancestors_ro.html b/dom/security/test/csp/test_frame_ancestors_ro.html new file mode 100644 index 0000000000..90f68e25eb --- /dev/null +++ b/dom/security/test/csp/test_frame_ancestors_ro.html @@ -0,0 +1,69 @@ +<!DOCTYPE HTML> +<html> +<head> + <title>Test for frame-ancestors support in Content-Security-Policy-Report-Only</title> + <script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script> + <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" /> +</head> +<body> +<iframe style="width: 100%" id="cspframe"></iframe> +<script type="text/javascript"> +const docUri = "http://mochi.test:8888/tests/dom/security/test/csp/file_frame_ancestors_ro.html"; +const frame = document.getElementById("cspframe"); + +let testResults = { + reportFired: false, + frameLoaded: false +}; + +function checkResults(reportObj) { + let cspReport = reportObj["csp-report"]; + is(cspReport["document-uri"], docUri, "Incorrect document-uri"); + + // we can not test for the whole referrer since it includes platform specific information + is(cspReport["referrer"], document.location.toString(), "Incorrect referrer"); + is(cspReport["blocked-uri"], document.location.toString(), "Incorrect blocked-uri"); + is(cspReport["violated-directive"], "frame-ancestors 'none'", "Incorrect violated-directive"); + is(cspReport["original-policy"], "frame-ancestors 'none'; report-uri http://mochi.test:8888/foo.sjs", "Incorrect original-policy"); + testResults.reportFired = true; +} + +let chromeScriptUrl = SimpleTest.getTestFileURL("file_report_chromescript.js"); +let script = SpecialPowers.loadChromeScript(chromeScriptUrl); + +script.addMessageListener('opening-request-completed', function ml(msg) { + if (msg.error) { + ok(false, "Could not query report (exception: " + msg.error + ")"); + } else { + try { + let reportObj = JSON.parse(msg.report); + // test for the proper values in the report object + checkResults(reportObj); + } catch (e) { + ok(false, "Error verifying report object (exception: " + e + ")"); + } + } + + script.removeMessageListener('opening-request-completed', ml); + script.sendAsyncMessage("finish"); + checkTestResults(); +}); + +frame.addEventListener( 'load', () => { + // Make sure the frame is still loaded + testResults.frameLoaded = true; + checkTestResults() +} ); + +function checkTestResults() { + if( testResults.reportFired && testResults.frameLoaded ) { + SimpleTest.finish(); + } +} + +SimpleTest.waitForExplicitFinish(); +frame.src = docUri; + +</script> +</body> +</html> diff --git a/dom/tests/mochitest/fetch/test_headers_common.js b/dom/tests/mochitest/fetch/test_headers_common.js index fe792b25b5..8b17b6b12a 100644 --- a/dom/tests/mochitest/fetch/test_headers_common.js +++ b/dom/tests/mochitest/fetch/test_headers_common.js @@ -213,12 +213,12 @@ function TestHeadersIterator() { var value_iter = headers.values(); var entries_iter = headers.entries(); - arrayEquals(iterate(key_iter), ["foo", "foo", "foo2"], "Correct key iterator"); - arrayEquals(iterate(value_iter), ["bar", ehsanInflated, "baz2"], "Correct value iterator"); - arrayEquals(iterate(entries_iter), [["foo", "bar"], ["foo", ehsanInflated], ["foo2", "baz2"]], "Correct entries iterator"); + arrayEquals(iterate(key_iter), ["foo", "foo2"], "Correct key iterator"); + arrayEquals(iterate(value_iter), ["bar, " + ehsanInflated, "baz2"], "Correct value iterator"); + arrayEquals(iterate(entries_iter), [["foo", "bar, " + ehsanInflated], ["foo2", "baz2"]], "Correct entries iterator"); - arrayEquals(iterateForOf(headers), [["foo", "bar"], ["foo", ehsanInflated], ["foo2", "baz2"]], "Correct entries iterator"); - arrayEquals(iterateForOf(new Headers(headers)), [["foo", "bar"], ["foo", ehsanInflated], ["foo2", "baz2"]], "Correct entries iterator"); + arrayEquals(iterateForOf(headers), [["foo", "bar, " + ehsanInflated], ["foo2", "baz2"]], "Correct entries iterator"); + arrayEquals(iterateForOf(new Headers(headers)), [["foo", "bar, " + ehsanInflated], ["foo2", "baz2"]], "Correct entries iterator"); } function runTest() { diff --git a/editor/libeditor/tests/mochitest.ini b/editor/libeditor/tests/mochitest.ini index 447fb8b65f..9aafa0ac2f 100644 --- a/editor/libeditor/tests/mochitest.ini +++ b/editor/libeditor/tests/mochitest.ini @@ -224,6 +224,7 @@ skip-if = toolkit == 'android' # bug 1315898 [test_bug1328023.html] [test_bug1330796.html] [test_bug1332876.html] +[test_bug1352799.html] [test_CF_HTML_clipboard.html] subsuite = clipboard diff --git a/editor/libeditor/tests/test_bug1352799.html b/editor/libeditor/tests/test_bug1352799.html new file mode 100644 index 0000000000..daedc40fcb --- /dev/null +++ b/editor/libeditor/tests/test_bug1352799.html @@ -0,0 +1,98 @@ +<!DOCTYPE HTML>
+<html>
+<!--
+https://bugzilla.mozilla.org/show_bug.cgi?id=1352799
+-->
+<head>
+ <title>Test for Bug 1352799</title>
+ <script type="application/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
+ <script type="application/javascript" src="/tests/SimpleTest/EventUtils.js"></script>
+ <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/>
+</head>
+<body>
+<a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1352799">Mozilla Bug 1352799</a>
+<p id="display"></p>
+<div id="content">
+<div id="input-container" style="display: none;">
+<input id="input" maxlength="1">
+</div>
+</div>
+<pre id="test">
+<script type="application/javascript">
+
+/** Test for Bug 1352799 **/
+SimpleTest.waitForExplicitFinish();
+SimpleTest.waitForFocus(() => {
+ var input = document.getElementById("input");
+
+ var inputcontainer = document.getElementById('input-container');
+ input.setAttribute('maxlength', 2);
+ inputcontainer.style.display = 'block';
+
+ input.focus();
+
+ synthesizeKey('1', {});
+ synthesizeKey('2', {});
+ synthesizeKey('3', {});
+
+ is(input.value, '12', 'value should be 12 with maxlength = 2');
+
+ input.value = '';
+ inputcontainer.style.display = 'none';
+
+ window.setTimeout(() => {
+ input.setAttribute('maxlength', 4);
+ inputcontainer.style.display = 'block';
+
+ input.focus();
+
+ synthesizeKey('4', {});
+ synthesizeKey('5', {});
+ synthesizeKey('6', {});
+ synthesizeKey('7', {});
+ synthesizeKey('8', {});
+
+ is(input.value, '4567', 'value should be 4567 with maxlength = 4');
+
+ inputcontainer.style.display = 'none';
+
+ window.setTimeout(() => {
+ input.setAttribute('maxlength', 2);
+ inputcontainer.style.display = 'block';
+
+ input.focus();
+
+ synthesizeKey('1', {});
+ synthesizeKey('2', {});
+
+ todo_is(input.value, '45', 'value should be 45 with maxlength = 2');
+
+ input.value = '';
+ inputcontainer.style.display = 'none';
+
+ window.setTimeout(() => {
+ input.removeAttribute('maxlength');
+ inputcontainer.style.display = 'block';
+
+ input.focus();
+
+ synthesizeKey('1', {});
+ synthesizeKey('2', {});
+ synthesizeKey('3', {});
+ synthesizeKey('4', {});
+ synthesizeKey('5', {});
+ synthesizeKey('6', {});
+ synthesizeKey('7', {});
+ synthesizeKey('8', {});
+
+ is(input.value, '12345678', 'value should be 12345678 without maxlength');
+
+ SimpleTest.finish();
+ }, 0);
+ }, 0);
+ }, 0);
+});
+</script>
+</pre>
+</body>
+</html>
diff --git a/testing/web-platform/meta/fetch/api/headers/headers-basic.html.ini b/testing/web-platform/meta/fetch/api/headers/headers-basic.html.ini index 27927b1e92..8c4cddf9c8 100644 --- a/testing/web-platform/meta/fetch/api/headers/headers-basic.html.ini +++ b/testing/web-platform/meta/fetch/api/headers/headers-basic.html.ini @@ -1,17 +1,3 @@ [headers-basic.html] type: testharness - [Check keys method] - expected: FAIL - - [Check values method] - expected: FAIL - - [Check entries method] - expected: FAIL - - [Check Symbol.iterator method] - expected: FAIL - - [Check forEach method] - expected: FAIL diff --git a/toolkit/mozapps/extensions/internal/XPIProvider.jsm b/toolkit/mozapps/extensions/internal/XPIProvider.jsm index d5f1ab5dd7..27ecee7d80 100644 --- a/toolkit/mozapps/extensions/internal/XPIProvider.jsm +++ b/toolkit/mozapps/extensions/internal/XPIProvider.jsm @@ -129,7 +129,7 @@ const PREFIX_NS_EM = "http://www.mozilla.org/2004/em-rdf#"; const TOOLKIT_ID = "toolkit@mozilla.org"; #ifdef MOZ_PHOENIX_EXTENSIONS const FIREFOX_ID = "{ec8030f7-c20a-464f-9b0e-13a3a9e97384}" -const FIREFOX_APPCOMPATVERSION = "27.9" +const FIREFOX_APPCOMPATVERSION = "56.9" #endif // The value for this is in Makefile.in diff --git a/toolkit/mozapps/installer/find-dupes.py b/toolkit/mozapps/installer/find-dupes.py index bd0561c97e..34ef675f49 100644 --- a/toolkit/mozapps/installer/find-dupes.py +++ b/toolkit/mozapps/installer/find-dupes.py @@ -4,15 +4,8 @@ import sys import hashlib -import re -from mozbuild.preprocessor import Preprocessor -from mozbuild.util import DefinesAction from mozpack.packager.unpack import UnpackFinder -from mozpack.files import DeflatedFile from collections import OrderedDict -from StringIO import StringIO -import argparse -import buildconfig ''' Find files duplicated in a given packaged directory, independently of its @@ -20,116 +13,36 @@ package format. ''' -def normalize_osx_path(p): - ''' - Strips the first 3 elements of an OSX app path - - >>> normalize_osx_path('Nightly.app/foo/bar/baz') - 'baz' - ''' - bits = p.split('/') - if len(bits) > 3 and bits[0].endswith('.app'): - return '/'.join(bits[3:]) - return p - - -def normalize_l10n_path(p): - ''' - Normalizes localized paths to en-US - - >>> normalize_l10n_path('chrome/es-ES/locale/branding/brand.properties') - 'chrome/en-US/locale/branding/brand.properties' - >>> normalize_l10n_path('chrome/fr/locale/fr/browser/aboutHome.dtd') - 'chrome/en-US/locale/en-US/browser/aboutHome.dtd' - ''' - # Keep a trailing slash here! e.g. locales like 'br' can transform - # 'chrome/br/locale/branding/' into 'chrome/en-US/locale/en-USanding/' - p = re.sub(r'chrome/(\S+)/locale/\1/', - 'chrome/en-US/locale/en-US/', - p) - p = re.sub(r'chrome/(\S+)/locale/', - 'chrome/en-US/locale/', - p) - return p - - -def normalize_path(p): - return normalize_osx_path(normalize_l10n_path(p)) - - -def find_dupes(source, allowed_dupes, bail=True): - allowed_dupes = set(allowed_dupes) +def find_dupes(source): md5s = OrderedDict() for p, f in UnpackFinder(source): content = f.open().read() m = hashlib.md5(content).digest() - if m not in md5s: - if isinstance(f, DeflatedFile): - compressed = f.file.compressed_size - else: - compressed = len(content) - md5s[m] = (len(content), compressed, []) - md5s[m][2].append(p) + if not m in md5s: + md5s[m] = (len(content), []) + md5s[m][1].append(p) total = 0 - total_compressed = 0 num_dupes = 0 - unexpected_dupes = [] - for m, (size, compressed, paths) in sorted(md5s.iteritems(), - key=lambda x: x[1][1]): + for m, (size, paths) in md5s.iteritems(): if len(paths) > 1: - print 'Duplicates %d bytes%s%s:' % (size, - ' (%d compressed)' % compressed if compressed != size else '', + print 'Duplicates %d bytes%s:' % (size, ' (%d times)' % (len(paths) - 1) if len(paths) > 2 else '') print ''.join(' %s\n' % p for p in paths) total += (len(paths) - 1) * size - total_compressed += (len(paths) - 1) * compressed num_dupes += 1 - - unexpected_dupes.extend([p for p in paths if normalize_path(p) not in allowed_dupes]) - if num_dupes: - print "WARNING: Found %d duplicated files taking %d bytes (%s)" % \ - (num_dupes, total, - '%d compressed' % total_compressed if total_compressed != total - else 'uncompressed') - - if unexpected_dupes: - errortype = "ERROR" if bail else "WARNING" - print "%s: The following duplicated files are not allowed:" % errortype - print "\n".join(unexpected_dupes) - if bail: - sys.exit(1) + print "WARNING: Found %d duplicated files taking %d bytes" % \ + (num_dupes, total) + " (uncompressed)" def main(): - parser = argparse.ArgumentParser(description='Find duplicate files in directory.') - parser.add_argument('--warning', '-w', action='store_true', - help='Only warn about duplicates, do not exit with an error') - parser.add_argument('--file', '-f', action='append', dest='dupes_files', default=[], - help='Add exceptions to the duplicate list from this file') - parser.add_argument('-D', action=DefinesAction) - parser.add_argument('-U', action='append', default=[]) - parser.add_argument('directory', - help='The directory to check for duplicates in') - - args = parser.parse_args() - - allowed_dupes = [] - for filename in args.dupes_files: - pp = Preprocessor() - pp.context.update(buildconfig.defines) - if args.D: - pp.context.update(args.D) - for undefine in args.U: - if undefine in pp.context: - del pp.context[undefine] - pp.out = StringIO() - pp.do_filter('substitution') - pp.do_include(filename) - allowed_dupes.extend([line.partition('#')[0].rstrip() - for line in pp.out.getvalue().splitlines()]) + if len(sys.argv) != 2: + import os + print >>sys.stderr, "Usage: %s directory" % \ + os.path.basename(sys.argv[0]) + sys.exit(1) - find_dupes(args.directory, bail=not args.warning, allowed_dupes=allowed_dupes) + find_dupes(sys.argv[1]) if __name__ == "__main__": main() diff --git a/toolkit/mozapps/installer/packager.mk b/toolkit/mozapps/installer/packager.mk index 68247e7df9..71a956aa46 100644 --- a/toolkit/mozapps/installer/packager.mk +++ b/toolkit/mozapps/installer/packager.mk @@ -54,7 +54,7 @@ stage-package: $(MOZ_PKG_MANIFEST) $(MOZ_PKG_MANIFEST_DEPS) $(addprefix --unify ,$(UNIFY_DIST)) \ $(MOZ_PKG_MANIFEST) $(DIST) $(DIST)/$(STAGEPATH)$(MOZ_PKG_DIR)$(if $(MOZ_PKG_MANIFEST),,$(_BINPATH)) \ $(if $(filter omni,$(MOZ_PACKAGER_FORMAT)),$(if $(NON_OMNIJAR_FILES),--non-resource $(NON_OMNIJAR_FILES))) - $(PYTHON) $(MOZILLA_DIR)/toolkit/mozapps/installer/find-dupes.py $(DEFINES) $(ACDEFINES) $(MOZ_PKG_DUPEFLAGS) $(DIST)/$(STAGEPATH)$(MOZ_PKG_DIR) + $(PYTHON) $(MOZILLA_DIR)/toolkit/mozapps/installer/find-dupes.py $(DIST)/$(STAGEPATH)$(MOZ_PKG_DIR) ifdef MOZ_PACKAGE_JSSHELL # Package JavaScript Shell @echo 'Packaging JavaScript Shell...' |