diff options
Diffstat (limited to 'toolkit/modules')
-rw-r--r-- | toolkit/modules/AppConstants.jsm | 37 | ||||
-rw-r--r-- | toolkit/modules/DateTimePickerHelper.jsm | 29 | ||||
-rw-r--r-- | toolkit/modules/NewTabUtils.jsm | 2 | ||||
-rw-r--r-- | toolkit/modules/ResetProfile.jsm | 6 | ||||
-rw-r--r-- | toolkit/modules/Services.jsm | 3 | ||||
-rw-r--r-- | toolkit/modules/Sqlite.jsm | 2 | ||||
-rw-r--r-- | toolkit/modules/Troubleshoot.jsm | 69 | ||||
-rw-r--r-- | toolkit/modules/UpdateUtils.jsm | 18 | ||||
-rw-r--r-- | toolkit/modules/addons/WebRequestCommon.jsm | 1 | ||||
-rw-r--r-- | toolkit/modules/addons/WebRequestContent.js | 10 | ||||
-rw-r--r-- | toolkit/modules/moz.build | 6 | ||||
-rw-r--r-- | toolkit/modules/sessionstore/FormData.jsm | 2 | ||||
-rw-r--r-- | toolkit/modules/sessionstore/Utils.jsm | 5 | ||||
-rw-r--r-- | toolkit/modules/tests/browser/browser_Troubleshoot.js | 4 |
14 files changed, 79 insertions, 115 deletions
diff --git a/toolkit/modules/AppConstants.jsm b/toolkit/modules/AppConstants.jsm index 2b18f3c1a..7c8a046e9 100644 --- a/toolkit/modules/AppConstants.jsm +++ b/toolkit/modules/AppConstants.jsm @@ -81,15 +81,8 @@ this.AppConstants = Object.freeze({ false, #endif - MOZ_SANDBOX: -#ifdef MOZ_SANDBOX - true, -#else - false, -#endif - - MOZ_CONTENT_SANDBOX: -#ifdef MOZ_CONTENT_SANDBOX +MOZ_SAFE_BROWSING: +#ifdef MOZ_SAFE_BROWSING true, #else false, @@ -144,14 +137,6 @@ this.AppConstants = Object.freeze({ false, #endif -# MOZ_B2G covers both device and desktop b2g - MOZ_B2G: -#ifdef MOZ_B2G - true, -#else - false, -#endif - XP_UNIX: #ifdef XP_UNIX true, @@ -170,8 +155,6 @@ this.AppConstants = Object.freeze({ "macosx", #elif MOZ_WIDGET_ANDROID "android", -#elif MOZ_WIDGET_GONK - "gonk", #elif XP_LINUX "linux", #else @@ -218,13 +201,6 @@ this.AppConstants = Object.freeze({ false, #endif - MOZ_B2G_RIL: -#ifdef MOZ_B2G_RIL - true, -#else - false, -#endif - MOZ_GRAPHENE: #ifdef MOZ_GRAPHENE true, @@ -281,13 +257,6 @@ this.AppConstants = Object.freeze({ false, #endif - MOZ_ENABLE_PROFILER_SPS: -#ifdef MOZ_ENABLE_PROFILER_SPS - true, -#else - false, -#endif - MOZ_ANDROID_ACTIVITY_STREAM: #ifdef MOZ_ANDROID_ACTIVITY_STREAM true, @@ -314,8 +283,6 @@ this.AppConstants = Object.freeze({ INSTALL_LOCALE: "@AB_CD@", MOZ_WIDGET_TOOLKIT: "@MOZ_WIDGET_TOOLKIT@", ANDROID_PACKAGE_NAME: "@ANDROID_PACKAGE_NAME@", - MOZ_B2G_VERSION: @MOZ_B2G_VERSION@, - MOZ_B2G_OS_NAME: @MOZ_B2G_OS_NAME@, DEBUG_JS_MODULES: "@DEBUG_JS_MODULES@", diff --git a/toolkit/modules/DateTimePickerHelper.jsm b/toolkit/modules/DateTimePickerHelper.jsm index 398687988..b509742b0 100644 --- a/toolkit/modules/DateTimePickerHelper.jsm +++ b/toolkit/modules/DateTimePickerHelper.jsm @@ -21,6 +21,7 @@ this.EXPORTED_SYMBOLS = [ Cu.import("resource://gre/modules/XPCOMUtils.jsm"); Cu.import("resource://gre/modules/Services.jsm"); +Cu.import("resource://gre/modules/Task.jsm"); /* * DateTimePickerHelper receives message from content side (input box) and @@ -63,9 +64,13 @@ this.DateTimePickerHelper = { return; } this.picker.closePicker(); + this.close(); break; } case "FormDateTime:UpdatePicker": { + if (!this.picker) { + return; + } this.picker.setPopupValue(aMessage.data); break; } @@ -87,6 +92,7 @@ this.DateTimePickerHelper = { if (browser) { browser.messageManager.sendAsyncMessage("FormDateTime:PickerClosed"); } + this.picker.closePicker(); this.close(); break; } @@ -97,18 +103,15 @@ this.DateTimePickerHelper = { // Called when picker value has changed, notify input box about it. updateInputBoxValue: function(aEvent) { - // TODO: parse data based on input type. - const { hour, minute } = aEvent.detail; - debug("hour: " + hour + ", minute: " + minute); let browser = this.weakBrowser ? this.weakBrowser.get() : null; if (browser) { browser.messageManager.sendAsyncMessage( - "FormDateTime:PickerValueChanged", { hour, minute }); + "FormDateTime:PickerValueChanged", aEvent.detail); } }, // Get picker from browser and show it anchored to the input box. - showPicker: function(aBrowser, aData) { + showPicker: Task.async(function* (aBrowser, aData) { let rect = aData.rect; let dir = aData.dir; let type = aData.type; @@ -138,13 +141,23 @@ this.DateTimePickerHelper = { debug("aBrowser.dateTimePicker not found, exiting now."); return; } - this.picker.loadPicker(type, detail); + // The datetimepopup binding is only attached when it is needed. + // Check if openPicker method is present to determine if binding has + // been attached. If not, attach the binding first before calling it. + if (!this.picker.openPicker) { + let bindingPromise = new Promise(resolve => { + this.picker.addEventListener("DateTimePickerBindingReady", + resolve, {once: true}); + }); + this.picker.setAttribute("active", true); + yield bindingPromise; + } // The arrow panel needs an anchor to work. The popupAnchor (this._anchor) // is a transparent div that the arrow can point to. - this.picker.openPopup(this._anchor, "after_start", rect.left, rect.top); + this.picker.openPicker(type, this._anchor, detail); this.addPickerListeners(); - }, + }), // Picker is closed, do some cleanup. close: function() { diff --git a/toolkit/modules/NewTabUtils.jsm b/toolkit/modules/NewTabUtils.jsm index e452a6fb2..548d87dda 100644 --- a/toolkit/modules/NewTabUtils.jsm +++ b/toolkit/modules/NewTabUtils.jsm @@ -249,7 +249,7 @@ var AllPages = { * Returns whether the history tiles are enhanced. */ get enhanced() { -#ifdef MC_BASILISK +#if defined(MC_BASILISK) || defined(HYPE_ICEWEASEL) // Hard-block the use of sponsored tiles. return false; #else diff --git a/toolkit/modules/ResetProfile.jsm b/toolkit/modules/ResetProfile.jsm index fe0d1cfe8..c1839af4f 100644 --- a/toolkit/modules/ResetProfile.jsm +++ b/toolkit/modules/ResetProfile.jsm @@ -11,7 +11,11 @@ const {classes: Cc, interfaces: Ci, utils: Cu, results: Cr} = Components; Cu.import("resource://gre/modules/Services.jsm"); Cu.import("resource://gre/modules/AppConstants.jsm"); -const MOZ_APP_NAME = AppConstants.MOZ_APP_NAME; +// For Basilisk and Pale Moon +// Hard-code MOZ_APP_NAME to firefox because of hard-coded type in migrator. +const MOZ_APP_NAME = (((AppConstants.MOZ_APP_NAME == "basilisk") + || (AppConstants.MOZ_APP_NAME == "palemoon")) + ? "firefox" : AppConstants.MOZ_APP_NAME); const MOZ_BUILD_APP = AppConstants.MOZ_BUILD_APP; this.ResetProfile = { diff --git a/toolkit/modules/Services.jsm b/toolkit/modules/Services.jsm index 58d87ffb1..1796acd4c 100644 --- a/toolkit/modules/Services.jsm +++ b/toolkit/modules/Services.jsm @@ -72,9 +72,6 @@ var initTable = [ ["obs", "@mozilla.org/observer-service;1", "nsIObserverService"], ["perms", "@mozilla.org/permissionmanager;1", "nsIPermissionManager"], ["prompt", "@mozilla.org/embedcomp/prompt-service;1", "nsIPromptService"], -#ifdef MOZ_ENABLE_PROFILER_SPS - ["profiler", "@mozilla.org/tools/profiler;1", "nsIProfiler"], -#endif ["scriptloader", "@mozilla.org/moz/jssubscript-loader;1", "mozIJSSubScriptLoader"], ["scriptSecurityManager", "@mozilla.org/scriptsecuritymanager;1", "nsIScriptSecurityManager"], #ifdef MOZ_TOOLKIT_SEARCH diff --git a/toolkit/modules/Sqlite.jsm b/toolkit/modules/Sqlite.jsm index e8d986c0e..6f7a7d94c 100644 --- a/toolkit/modules/Sqlite.jsm +++ b/toolkit/modules/Sqlite.jsm @@ -995,7 +995,7 @@ function cloneStorageConnection(options) { if (!source) { throw new TypeError("connection not specified in clone options."); } - if (!source instanceof Ci.mozIStorageAsyncConnection) { + if (!(source instanceof Ci.mozIStorageAsyncConnection)) { throw new TypeError("Connection must be a valid Storage connection."); } diff --git a/toolkit/modules/Troubleshoot.jsm b/toolkit/modules/Troubleshoot.jsm index 60f7e8666..cea7c8f29 100644 --- a/toolkit/modules/Troubleshoot.jsm +++ b/toolkit/modules/Troubleshoot.jsm @@ -10,7 +10,6 @@ const { classes: Cc, interfaces: Ci, utils: Cu } = Components; Cu.import("resource://gre/modules/AddonManager.jsm"); Cu.import("resource://gre/modules/Services.jsm"); -Cu.import("resource://gre/modules/AppConstants.jsm"); // We use a preferences whitelist to make sure we only show preferences that // are useful for support and won't compromise the user's privacy. Note that @@ -21,12 +20,12 @@ const PREFS_WHITELIST = [ "apz.", "browser.cache.", "browser.display.", + "browser.download.confirmOpenExecutable", "browser.download.folderList", "browser.download.hide_plugins_without_extensions", "browser.download.importedFromSqlite", "browser.download.lastDir.savePerSite", "browser.download.manager.addToRecentDocs", - "browser.download.manager.alertOnEXEOpen", "browser.download.manager.closeWhenDone", "browser.download.manager.displayedHistoryDays", "browser.download.manager.quitBehavior", @@ -56,7 +55,7 @@ const PREFS_WHITELIST = [ "browser.urlbar.", "browser.zoom.", "dom.", - "extensions.checkCompatibility", + "extensions.enableCompatibilityChecking", "extensions.lastAppVersion", "font.", "general.autoScroll", @@ -83,7 +82,6 @@ const PREFS_WHITELIST = [ "services.sync.lastSync", "services.sync.numClients", "services.sync.engine.", - "social.enabled", "storage.vacuum.last.", "svg.", "toolkit.startup.recent_crashes", @@ -178,16 +176,23 @@ var dataProviders = { let data = { name: Services.appinfo.name, osVersion: sysInfo.getProperty("name") + " " + sysInfo.getProperty("version"), - version: AppConstants.MOZ_APP_VERSION_DISPLAY, buildID: Services.appinfo.appBuildID, userAgent: Cc["@mozilla.org/network/protocol;1?name=http"]. getService(Ci.nsIHttpProtocolHandler). userAgent, safeMode: Services.appinfo.inSafeMode, }; +#expand data.version = "__MOZ_APP_VERSION_DISPLAY__"; - if (AppConstants.MOZ_UPDATER) - data.updateChannel = Cu.import("resource://gre/modules/UpdateUtils.jsm", {}).UpdateUtils.UpdateChannel; +#ifdef MOZ_UPDATER + data.updateChannel = Cu.import("resource://gre/modules/UpdateUtils.jsm", {}).UpdateUtils.UpdateChannel; +#endif + +#ifdef HAVE_64BIT_BUILD + data.versionArch = "64-bit"; +#else + data.versionArch = "32-bit"; +#endif try { data.vendor = Services.prefs.getCharPref("app.support.vendor"); @@ -342,18 +347,23 @@ var dataProviders = { QueryInterface(Ci.nsIInterfaceRequestor). getInterface(Ci.nsIDOMWindowUtils) data.supportsHardwareH264 = "Unknown"; - let promise = winUtils.supportsHardwareH264Decoding; - promise.then(function(v) { - data.supportsHardwareH264 = v; - }); - promises.push(promise); + try { + // After restart - data may not be available + let promise = winUtils.supportsHardwareH264Decoding; + promise.then(function(v) { + data.supportsHardwareH264 = v; + }); + promises.push(promise); + } catch (e) {} data.currentAudioBackend = winUtils.currentAudioBackend; if (!data.numAcceleratedWindows && gfxInfo) { - let win = AppConstants.platform == "win"; - let feature = win ? gfxInfo.FEATURE_DIRECT3D_9_LAYERS : - gfxInfo.FEATURE_OPENGL_LAYERS; +#ifdef XP_WIN + let feature = gfxInfo.FEATURE_DIRECT3D_9_LAYERS; +#else + let feature = gfxInfo.FEATURE_OPENGL_LAYERS; +#endif data.numAcceleratedWindowsMessage = statusMsgForFeature(feature); } @@ -450,7 +460,9 @@ var dataProviders = { // Eagerly free resources. let loseExt = gl.getExtension("WEBGL_lose_context"); - loseExt.loseContext(); + if (loseExt) { + loseExt.loseContext(); + } return contextInfo; @@ -530,28 +542,3 @@ var dataProviders = { } }; -if (AppConstants.MOZ_SANDBOX) { - dataProviders.sandbox = function sandbox(done) { - let data = {}; - if (AppConstants.platform == "linux") { - const keys = ["hasSeccompBPF", "hasSeccompTSync", - "hasPrivilegedUserNamespaces", "hasUserNamespaces", - "canSandboxContent", "canSandboxMedia"]; - - let sysInfo = Cc["@mozilla.org/system-info;1"]. - getService(Ci.nsIPropertyBag2); - for (let key of keys) { - if (sysInfo.hasKey(key)) { - data[key] = sysInfo.getPropertyAsBool(key); - } - } - } - - if (AppConstants.MOZ_CONTENT_SANDBOX) { - data.contentSandboxLevel = - Services.prefs.getIntPref("security.sandbox.content.level"); - } - - done(data); - } -} diff --git a/toolkit/modules/UpdateUtils.jsm b/toolkit/modules/UpdateUtils.jsm index ef8475364..e92b1b797 100644 --- a/toolkit/modules/UpdateUtils.jsm +++ b/toolkit/modules/UpdateUtils.jsm @@ -87,24 +87,6 @@ this.UpdateUtils = { url = url.replace(/%CUSTOM%/g, Preferences.get(PREF_APP_UPDATE_CUSTOM, "")); url = url.replace(/\+/g, "%2B"); - if (AppConstants.platform == "gonk") { - let sysLibs = {}; - Cu.import("resource://gre/modules/systemlibs.js", sysLibs); - let productDevice = sysLibs.libcutils.property_get("ro.product.device"); - let buildType = sysLibs.libcutils.property_get("ro.build.type"); - url = url.replace(/%PRODUCT_MODEL%/g, - sysLibs.libcutils.property_get("ro.product.model")); - if (buildType == "user" || buildType == "userdebug") { - url = url.replace(/%PRODUCT_DEVICE%/g, productDevice); - } else { - url = url.replace(/%PRODUCT_DEVICE%/g, productDevice + "-" + buildType); - } - url = url.replace(/%B2G_VERSION%/g, - Preferences.get(PREF_APP_B2G_VERSION, null)); - url = url.replace(/%IMEI%/g, - Preferences.get(PREF_APP_UPDATE_IMEI_HASH, "default")); - } - return url; } }; diff --git a/toolkit/modules/addons/WebRequestCommon.jsm b/toolkit/modules/addons/WebRequestCommon.jsm index 9359f4ff7..5dc860376 100644 --- a/toolkit/modules/addons/WebRequestCommon.jsm +++ b/toolkit/modules/addons/WebRequestCommon.jsm @@ -35,6 +35,7 @@ var WebRequestCommon = { case Ci.nsIContentPolicy.TYPE_CSP_REPORT: return "csp_report"; case Ci.nsIContentPolicy.TYPE_IMAGESET: return "imageset"; case Ci.nsIContentPolicy.TYPE_WEB_MANIFEST: return "web_manifest"; + case Ci.nsIContentPolicy.TYPE_SAVEAS_DOWNLOAD: return "saveas_download"; default: return "other"; } }, diff --git a/toolkit/modules/addons/WebRequestContent.js b/toolkit/modules/addons/WebRequestContent.js index 219675e5b..f044a1cd4 100644 --- a/toolkit/modules/addons/WebRequestContent.js +++ b/toolkit/modules/addons/WebRequestContent.js @@ -80,6 +80,16 @@ var ContentPolicy = { shouldLoad(policyType, contentLocation, requestOrigin, node, mimeTypeGuess, extra, requestPrincipal) { + + // Loads of TYPE_DOCUMENT and TYPE_SUBDOCUMENT perform a ConPol check + // within docshell as well as within the ContentSecurityManager. To avoid + // duplicate evaluations we ignore ConPol checks performed within docShell. + if (extra instanceof Ci.nsISupportsString) { + if (extra.data === "conPolCheckFromDocShell") { + return Ci.nsIContentPolicy.ACCEPT; + } + } + if (requestPrincipal && Services.scriptSecurityManager.isSystemPrincipal(requestPrincipal)) { return Ci.nsIContentPolicy.ACCEPT; diff --git a/toolkit/modules/moz.build b/toolkit/modules/moz.build index 60f3cc3da..e288d11c8 100644 --- a/toolkit/modules/moz.build +++ b/toolkit/modules/moz.build @@ -94,7 +94,6 @@ EXTRA_JS_MODULES += [ 'Sqlite.jsm', 'Task.jsm', 'Timer.jsm', - 'Troubleshoot.jsm', 'UpdateUtils.jsm', 'WebChannel.jsm', 'WindowDraggingUtils.jsm', @@ -103,7 +102,10 @@ EXTRA_JS_MODULES += [ EXTRA_JS_MODULES.third_party.jsesc += ['third_party/jsesc/jsesc.js'] EXTRA_JS_MODULES.sessionstore += ['sessionstore/Utils.jsm'] -EXTRA_PP_JS_MODULES += ['NewTabUtils.jsm'] +EXTRA_PP_JS_MODULES += [ + 'NewTabUtils.jsm', + 'Troubleshoot.jsm', +] if not CONFIG['MOZ_WEBEXTENSIONS']: EXTRA_PP_JS_MODULES += ['UpdateChannel.jsm'] diff --git a/toolkit/modules/sessionstore/FormData.jsm b/toolkit/modules/sessionstore/FormData.jsm index f90ba5825..d4fb08d93 100644 --- a/toolkit/modules/sessionstore/FormData.jsm +++ b/toolkit/modules/sessionstore/FormData.jsm @@ -216,7 +216,7 @@ var FormDataInternal = { // We want to avoid saving data for about:sessionrestore as a string. // Since it's stored in the form as stringified JSON, stringifying further // causes an explosion of escape characters. cf. bug 467409 - if (isRestorationPage(ret.url)) { + if (isRestorationPage(ret.url) && ret.id && ret.id.sessionData) { ret.id.sessionData = JSON.parse(ret.id.sessionData); } diff --git a/toolkit/modules/sessionstore/Utils.jsm b/toolkit/modules/sessionstore/Utils.jsm index 863bca6f5..25b75c71b 100644 --- a/toolkit/modules/sessionstore/Utils.jsm +++ b/toolkit/modules/sessionstore/Utils.jsm @@ -16,12 +16,17 @@ Cu.import("resource://gre/modules/XPCOMUtils.jsm", this); XPCOMUtils.defineLazyServiceGetter(this, "serializationHelper", "@mozilla.org/network/serialization-helper;1", "nsISerializationHelper"); +XPCOMUtils.defineLazyGetter(this, "SERIALIZED_SYSTEMPRINCIPAL", function() { + return Utils.serializePrincipal(Services.scriptSecurityManager.getSystemPrincipal()); +}); function debug(msg) { Services.console.logStringMessage("Utils: " + msg); } this.Utils = Object.freeze({ + get SERIALIZED_SYSTEMPRINCIPAL() { return SERIALIZED_SYSTEMPRINCIPAL; }, + makeURI: function (url) { return Services.io.newURI(url, null, null); }, diff --git a/toolkit/modules/tests/browser/browser_Troubleshoot.js b/toolkit/modules/tests/browser/browser_Troubleshoot.js index 34c2a2791..7f0069dc9 100644 --- a/toolkit/modules/tests/browser/browser_Troubleshoot.js +++ b/toolkit/modules/tests/browser/browser_Troubleshoot.js @@ -469,10 +469,6 @@ const SNAPSHOT_SCHEMA = { required: false, type: "boolean" }, - contentSandboxLevel: { - required: AppConstants.MOZ_CONTENT_SANDBOX, - type: "number" - }, }, }, }, |