summaryrefslogtreecommitdiffstats
path: root/toolkit/modules
diff options
context:
space:
mode:
Diffstat (limited to 'toolkit/modules')
-rw-r--r--toolkit/modules/AppConstants.jsm37
-rw-r--r--toolkit/modules/DateTimePickerHelper.jsm29
-rw-r--r--toolkit/modules/NewTabUtils.jsm2
-rw-r--r--toolkit/modules/ResetProfile.jsm6
-rw-r--r--toolkit/modules/Services.jsm3
-rw-r--r--toolkit/modules/Sqlite.jsm2
-rw-r--r--toolkit/modules/Troubleshoot.jsm69
-rw-r--r--toolkit/modules/UpdateUtils.jsm18
-rw-r--r--toolkit/modules/addons/WebRequestCommon.jsm1
-rw-r--r--toolkit/modules/addons/WebRequestContent.js10
-rw-r--r--toolkit/modules/moz.build6
-rw-r--r--toolkit/modules/sessionstore/FormData.jsm2
-rw-r--r--toolkit/modules/sessionstore/Utils.jsm5
-rw-r--r--toolkit/modules/tests/browser/browser_Troubleshoot.js4
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"
- },
},
},
},