summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--application/basilisk/app/profile/basilisk.js5
-rw-r--r--application/basilisk/base/content/browser-devedition.js142
-rw-r--r--application/basilisk/base/content/browser.js3
-rw-r--r--application/basilisk/base/content/global-scripts.inc1
-rw-r--r--application/basilisk/base/jar.mn1
-rw-r--r--application/basilisk/components/customizableui/CustomizableUI.jsm8
-rw-r--r--application/basilisk/components/nsBrowserGlue.js61
-rw-r--r--application/basilisk/components/places/content/controller.js6
-rw-r--r--application/basilisk/components/places/content/placesOverlay.xul4
-rw-r--r--application/basilisk/components/preferences/in-content/main.js77
-rw-r--r--application/basilisk/components/preferences/in-content/main.xul11
-rw-r--r--application/basilisk/modules/ProcessHangMonitor.jsm10
-rw-r--r--application/basilisk/themes/linux/devedition.css106
-rw-r--r--application/basilisk/themes/linux/jar.mn1
-rw-r--r--application/basilisk/themes/osx/devedition.css121
-rw-r--r--application/basilisk/themes/osx/jar.mn1
-rw-r--r--application/basilisk/themes/shared/devedition.inc.css311
-rw-r--r--application/basilisk/themes/shared/devedition/urlbar-history-dropmarker.svg22
-rw-r--r--application/basilisk/themes/shared/jar.inc.mn1
-rw-r--r--application/basilisk/themes/windows/browser.css3
-rw-r--r--application/basilisk/themes/windows/devedition.css316
-rw-r--r--application/basilisk/themes/windows/jar.mn1
-rw-r--r--application/basilisk/tools/mozscreenshots/mozscreenshots/extension/configurations/DevEdition.jsm42
-rw-r--r--application/palemoon/components/places/content/controller.js6
-rw-r--r--application/palemoon/components/places/content/placesOverlay.xul4
-rw-r--r--config/milestone.txt2
-rw-r--r--devtools/client/framework/devtools-browser.js4
-rw-r--r--devtools/client/preferences/devtools.js11
-rw-r--r--gfx/thebes/gfxMatrix.h12
-rw-r--r--layout/base/FrameProperties.h1
-rw-r--r--layout/base/nsDisplayList.cpp41
-rw-r--r--layout/reftests/svg/css-transform-svg-ref.html10
-rw-r--r--layout/reftests/svg/css-transform-svg.html13
-rw-r--r--layout/reftests/svg/reftest.list2
-rw-r--r--layout/reftests/svg/svg-blurry-with-subpixel-position-ref.html13
-rw-r--r--layout/reftests/svg/svg-blurry-with-subpixel-position.html13
-rw-r--r--layout/style/FontFaceSet.cpp15
-rw-r--r--layout/svg/nsSVGOuterSVGFrame.cpp53
-rw-r--r--old-configure.in4
-rw-r--r--services/sync/modules/policies.js70
-rw-r--r--services/sync/modules/service.js21
-rw-r--r--services/sync/modules/util.js16
-rw-r--r--services/sync/services-sync.js4
-rw-r--r--services/sync/tests/unit/test_service_login.js2
-rw-r--r--toolkit/modules/AppConstants.jsm7
-rw-r--r--toolkit/profile/nsToolkitProfileService.cpp43
-rw-r--r--toolkit/xre/nsAppRunner.cpp17
-rw-r--r--tools/lint/eslint/eslint-plugin-mozilla/lib/rules/import-browserjs-globals.js1
48 files changed, 229 insertions, 1410 deletions
diff --git a/application/basilisk/app/profile/basilisk.js b/application/basilisk/app/profile/basilisk.js
index aa2df6d40..a773bc60e 100644
--- a/application/basilisk/app/profile/basilisk.js
+++ b/application/basilisk/app/profile/basilisk.js
@@ -1009,12 +1009,7 @@ pref("services.sync.syncedTabs.showRemoteIcons", true);
pref("services.sync.sendTabToDevice.enabled", true);
-// Developer edition preferences
-#ifdef MOZ_DEV_EDITION
-sticky_pref("lightweightThemes.selectedThemeID", "firefox-devedition@mozilla.org");
-#else
sticky_pref("lightweightThemes.selectedThemeID", "");
-#endif
// Whether the character encoding menu is under the main Firefox button. This
// preference is a string so that localizers can alter it.
diff --git a/application/basilisk/base/content/browser-devedition.js b/application/basilisk/base/content/browser-devedition.js
deleted file mode 100644
index 0dc1e94da..000000000
--- a/application/basilisk/base/content/browser-devedition.js
+++ /dev/null
@@ -1,142 +0,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/. */
-
-/**
- * Listeners for the DevEdition theme. This adds an extra stylesheet
- * to browser.xul if a pref is set and no other themes are applied.
- */
-var DevEdition = {
- _devtoolsThemePrefName: "devtools.theme",
- styleSheetLocation: "chrome://browser/skin/devedition.css",
- styleSheet: null,
- initialized: false,
-
- get isStyleSheetEnabled() {
- return this.styleSheet && !this.styleSheet.sheet.disabled;
- },
-
- get isThemeCurrentlyApplied() {
- let theme = LightweightThemeManager.currentTheme;
- return theme && theme.id == "firefox-devedition@mozilla.org";
- },
-
- init: function () {
- this.initialized = true;
- Services.prefs.addObserver(this._devtoolsThemePrefName, this, false);
- Services.obs.addObserver(this, "lightweight-theme-styling-update", false);
- Services.obs.addObserver(this, "lightweight-theme-window-updated", false);
- this._updateDevtoolsThemeAttribute();
-
- if (this.isThemeCurrentlyApplied) {
- this._toggleStyleSheet(true);
- }
- },
-
- createStyleSheet: function() {
- let styleSheetAttr = `href="${this.styleSheetLocation}" type="text/css"`;
- this.styleSheet = document.createProcessingInstruction(
- "xml-stylesheet", styleSheetAttr);
- this.styleSheet.addEventListener("load", this);
- document.insertBefore(this.styleSheet, document.documentElement);
- this.styleSheet.sheet.disabled = true;
- },
-
- observe: function (subject, topic, data) {
- if (topic == "lightweight-theme-styling-update") {
- let newTheme = JSON.parse(data);
- if (newTheme && newTheme.id == "firefox-devedition@mozilla.org") {
- this._toggleStyleSheet(true);
- } else {
- this._toggleStyleSheet(false);
- }
- } else if (topic == "lightweight-theme-window-updated" && subject == window) {
- this._updateLWTBrightness();
- }
-
- if (topic == "nsPref:changed" && data == this._devtoolsThemePrefName) {
- this._updateDevtoolsThemeAttribute();
- }
- },
-
- _inferBrightness: function() {
- ToolbarIconColor.inferFromText();
- // Get an inverted full screen button if the dark theme is applied.
- if (this.isStyleSheetEnabled &&
- document.documentElement.getAttribute("devtoolstheme") == "dark") {
- document.documentElement.setAttribute("brighttitlebarforeground", "true");
- } else {
- document.documentElement.removeAttribute("brighttitlebarforeground");
- }
- },
-
- _updateLWTBrightness() {
- if (this.isThemeCurrentlyApplied) {
- let devtoolsTheme = Services.prefs.getCharPref(this._devtoolsThemePrefName);
- let textColor = devtoolsTheme == "dark" ? "bright" : "dark";
- document.documentElement.setAttribute("lwthemetextcolor", textColor);
- }
- },
-
- _updateDevtoolsThemeAttribute: function() {
- // Set an attribute on root element to make it possible
- // to change colors based on the selected devtools theme.
- let devtoolsTheme = Services.prefs.getCharPref(this._devtoolsThemePrefName);
- if (devtoolsTheme != "dark") {
- devtoolsTheme = "light";
- }
- document.documentElement.setAttribute("devtoolstheme", devtoolsTheme);
- this._updateLWTBrightness();
- this._inferBrightness();
- },
-
- handleEvent: function(e) {
- if (e.type === "load") {
- this.styleSheet.removeEventListener("load", this);
- this.refreshBrowserDisplay();
- }
- },
-
- refreshBrowserDisplay: function() {
- // Don't touch things on the browser if gBrowserInit.onLoad hasn't
- // yet fired.
- if (this.initialized) {
- gBrowser.tabContainer._positionPinnedTabs();
- this._inferBrightness();
- }
- },
-
- _toggleStyleSheet: function(deveditionThemeEnabled) {
- let wasEnabled = this.isStyleSheetEnabled;
- if (deveditionThemeEnabled && !wasEnabled) {
- // The stylesheet may not have been created yet if it wasn't
- // needed on initial load. Make it now.
- if (!this.styleSheet) {
- this.createStyleSheet();
- }
- this.styleSheet.sheet.disabled = false;
- this.refreshBrowserDisplay();
- } else if (!deveditionThemeEnabled && wasEnabled) {
- this.styleSheet.sheet.disabled = true;
- this.refreshBrowserDisplay();
- }
- },
-
- uninit: function () {
- Services.prefs.removeObserver(this._devtoolsThemePrefName, this);
- Services.obs.removeObserver(this, "lightweight-theme-styling-update", false);
- Services.obs.removeObserver(this, "lightweight-theme-window-updated", false);
- if (this.styleSheet) {
- this.styleSheet.removeEventListener("load", this);
- }
- this.styleSheet = null;
- }
-};
-
-// If the DevEdition theme is going to be applied in gBrowserInit.onLoad,
-// then preload it now. This prevents a flash of unstyled content where the
-// normal theme is applied while the DevEdition stylesheet is loading.
-if (!AppConstants.RELEASE_OR_BETA &&
- this != Services.appShell.hiddenDOMWindow && DevEdition.isThemeCurrentlyApplied) {
- DevEdition.createStyleSheet();
-}
diff --git a/application/basilisk/base/content/browser.js b/application/basilisk/base/content/browser.js
index 1dee19a1d..bbd240e69 100644
--- a/application/basilisk/base/content/browser.js
+++ b/application/basilisk/base/content/browser.js
@@ -956,7 +956,6 @@ var gBrowserInit = {
gPageStyleMenu.init();
BrowserOnClick.init();
FeedHandler.init();
- DevEdition.init();
AboutPrivateBrowsingListener.init();
TrackingProtection.init();
RefreshBlocker.init();
@@ -1479,8 +1478,6 @@ var gBrowserInit = {
FeedHandler.uninit();
- DevEdition.uninit();
-
TrackingProtection.uninit();
RefreshBlocker.uninit();
diff --git a/application/basilisk/base/content/global-scripts.inc b/application/basilisk/base/content/global-scripts.inc
index db8496cfc..6edb11214 100644
--- a/application/basilisk/base/content/global-scripts.inc
+++ b/application/basilisk/base/content/global-scripts.inc
@@ -14,7 +14,6 @@
<script type="application/javascript" src="chrome://browser/content/browser-captivePortal.js"/>
<script type="application/javascript" src="chrome://browser/content/browser-ctrlTab.js"/>
<script type="application/javascript" src="chrome://browser/content/browser-customization.js"/>
-<script type="application/javascript" src="chrome://browser/content/browser-devedition.js"/>
<script type="application/javascript" src="chrome://browser/content/browser-feeds.js"/>
<script type="application/javascript" src="chrome://browser/content/browser-fullScreenAndPointerLock.js"/>
<script type="application/javascript" src="chrome://browser/content/browser-fullZoom.js"/>
diff --git a/application/basilisk/base/jar.mn b/application/basilisk/base/jar.mn
index 76727731b..f546ec4bd 100644
--- a/application/basilisk/base/jar.mn
+++ b/application/basilisk/base/jar.mn
@@ -63,7 +63,6 @@ browser.jar:
content/browser/browser-ctrlTab.js (content/browser-ctrlTab.js)
content/browser/browser-customization.js (content/browser-customization.js)
content/browser/browser-data-submission-info-bar.js (content/browser-data-submission-info-bar.js)
- content/browser/browser-devedition.js (content/browser-devedition.js)
content/browser/browser-feeds.js (content/browser-feeds.js)
content/browser/browser-fullScreenAndPointerLock.js (content/browser-fullScreenAndPointerLock.js)
content/browser/browser-fullZoom.js (content/browser-fullZoom.js)
diff --git a/application/basilisk/components/customizableui/CustomizableUI.jsm b/application/basilisk/components/customizableui/CustomizableUI.jsm
index a58d33a6d..ce395121c 100644
--- a/application/basilisk/components/customizableui/CustomizableUI.jsm
+++ b/application/basilisk/components/customizableui/CustomizableUI.jsm
@@ -198,9 +198,7 @@ var CustomizableUIInternal = {
"add-ons-button",
];
- if (!AppConstants.MOZ_DEV_EDITION) {
- panelPlacements.splice(-1, 0, "developer-button");
- }
+ panelPlacements.splice(-1, 0, "developer-button");
let showCharacterEncoding = Services.prefs.getComplexValue(
"browser.menu.showCharacterEncoding",
@@ -225,10 +223,6 @@ var CustomizableUIInternal = {
"home-button",
];
- if (AppConstants.MOZ_DEV_EDITION) {
- navbarPlacements.splice(2, 0, "developer-button");
- }
-
// Place this last, when createWidget is called for pocket, it will
// append to the toolbar.
if (Services.prefs.getPrefType("extensions.pocket.enabled") != Services.prefs.PREF_INVALID &&
diff --git a/application/basilisk/components/nsBrowserGlue.js b/application/basilisk/components/nsBrowserGlue.js
index ad0b7ed7f..5d3e4689b 100644
--- a/application/basilisk/components/nsBrowserGlue.js
+++ b/application/basilisk/components/nsBrowserGlue.js
@@ -676,19 +676,6 @@ BrowserGlue.prototype = {
// Ensure we keep track of places/pw-mananager undo by init'ing this early.
Cu.import("resource:///modules/AutoMigrate.jsm");
- if (!AppConstants.RELEASE_OR_BETA) {
- let themeName = gBrowserBundle.GetStringFromName("deveditionTheme.name");
- let vendorShortName = gBrandBundle.GetStringFromName("vendorShortName");
-
- LightweightThemeManager.addBuiltInTheme({
- id: "firefox-devedition@mozilla.org",
- name: themeName,
- headerURL: "resource:///chrome/browser/content/browser/defaultthemes/devedition.header.png",
- iconURL: "resource:///chrome/browser/content/browser/defaultthemes/devedition.icon.png",
- author: vendorShortName,
- });
- }
-
TabCrashHandler.init();
Services.obs.notifyObservers(null, "browser-ui-startup-complete", "");
@@ -1054,10 +1041,6 @@ BrowserGlue.prototype = {
// All initial windows have opened.
_onWindowsRestored: function BG__onWindowsRestored() {
- if (AppConstants.MOZ_DEV_EDITION) {
- this._createExtraDefaultProfile();
- }
-
this._initServiceDiscovery();
// Show update notification, if needed.
@@ -1193,40 +1176,6 @@ BrowserGlue.prototype = {
E10SAccessibilityCheck.onWindowsRestored();
},
- _createExtraDefaultProfile: function () {
- if (!AppConstants.MOZ_DEV_EDITION) {
- return;
- }
- // If Developer Edition is the only installed Firefox version and no other
- // profiles are present, create a second one for use by other versions.
- // This helps Firefox versions earlier than 35 avoid accidentally using the
- // unsuitable Developer Edition profile.
- let profileService = Cc["@mozilla.org/toolkit/profile-service;1"]
- .getService(Ci.nsIToolkitProfileService);
- let profileCount = profileService.profileCount;
- if (profileCount == 1 && profileService.selectedProfile.name != "default") {
- let newProfile;
- try {
- newProfile = profileService.createProfile(null, "default");
- profileService.defaultProfile = newProfile;
- profileService.flush();
- } catch (e) {
- Cu.reportError("Could not create profile 'default': " + e);
- }
- if (newProfile) {
- // We don't want a default profile with Developer Edition settings, an
- // empty profile directory will do. The profile service of the other
- // Firefox will populate it with its own stuff.
- let newProfilePath = newProfile.rootDir.path;
- OS.File.removeDir(newProfilePath).then(() => {
- return OS.File.makeDir(newProfilePath);
- }).then(null, e => {
- Cu.reportError("Could not empty profile 'default': " + e);
- });
- }
- }
- },
-
_onQuitRequest: function BG__onQuitRequest(aCancelQuit, aQuitType) {
// If user has already dismissed quit request, then do nothing
if ((aCancelQuit instanceof Ci.nsISupportsPRBool) && aCancelQuit.data)
@@ -1981,14 +1930,8 @@ BrowserGlue.prototype = {
defaultThemeSelected = Services.prefs.getCharPref("general.skins.selectedSkin") == "classic/1.0";
} catch (e) {}
- // If we are on the devedition channel, the devedition theme is on by
- // default. But we need to handle the case where they didn't want it
- // applied, and unapply the theme.
- let userChoseToNotUseDeveditionTheme =
- !defaultThemeSelected ||
- (lightweightThemeSelected && selectedThemeID != "firefox-devedition@mozilla.org");
-
- if (userChoseToNotUseDeveditionTheme && selectedThemeID == "firefox-devedition@mozilla.org") {
+ // If we have the dev edition theme selected, reset it.
+ if (selectedThemeID == "firefox-devedition@mozilla.org") {
Services.prefs.setCharPref("lightweightThemes.selectedThemeID", "");
}
diff --git a/application/basilisk/components/places/content/controller.js b/application/basilisk/components/places/content/controller.js
index ebdab60f4..931c8fac1 100644
--- a/application/basilisk/components/places/content/controller.js
+++ b/application/basilisk/components/places/content/controller.js
@@ -461,7 +461,11 @@ PlacesController.prototype = {
if (parentNode) {
if (PlacesUtils.nodeIsTagQuery(parentNode))
nodeData["tagChild"] = true;
- else if (this.hasCachedLivemarkInfo(parentNode))
+ }
+ } else {
+ var parentNode = node.parent;
+ if (parentNode) {
+ if (this.hasCachedLivemarkInfo(parentNode))
nodeData["livemarkChild"] = true;
}
}
diff --git a/application/basilisk/components/places/content/placesOverlay.xul b/application/basilisk/components/places/content/placesOverlay.xul
index 512eb923e..2dbef0f04 100644
--- a/application/basilisk/components/places/content/placesOverlay.xul
+++ b/application/basilisk/components/places/content/placesOverlay.xul
@@ -198,7 +198,7 @@
accesskey="&cmd.delete.accesskey;"
closemenu="single"
selection="link"
- forcehideselection="bookmark"/>
+ forcehideselection="bookmark|livemarkChild"/>
<menuitem id="placesContext_deleteHost"
command="placesCmd_deleteDataHost"
label="&cmd.deleteDomainData.label;"
@@ -207,7 +207,7 @@
selection="link|host"
selectiontype="single"
hideifprivatebrowsing="true"
- forcehideselection="bookmark"/>
+ forcehideselection="bookmark|livemarkChild"/>
<menuseparator id="placesContext_deleteSeparator"/>
<menuitem id="placesContext_sortBy:name"
command="placesCmd_sortBy:name"
diff --git a/application/basilisk/components/preferences/in-content/main.js b/application/basilisk/components/preferences/in-content/main.js
index bac771bec..8f3dffa57 100644
--- a/application/basilisk/components/preferences/in-content/main.js
+++ b/application/basilisk/components/preferences/in-content/main.js
@@ -78,18 +78,6 @@ var gMainPane = {
setEventListener("chooseFolder", "command",
gMainPane.chooseFolder);
- if (AppConstants.MOZ_DEV_EDITION) {
- let uAppData = OS.Constants.Path.userApplicationDataDir;
- let ignoreSeparateProfile = OS.Path.join(uAppData, "ignore-dev-edition-profile");
-
- setEventListener("separateProfileMode", "command", gMainPane.separateProfileModeChange);
- let separateProfileModeCheckbox = document.getElementById("separateProfileMode");
- setEventListener("getStarted", "click", gMainPane.onGetStarted);
-
- OS.File.stat(ignoreSeparateProfile).then(() => separateProfileModeCheckbox.checked = false,
- () => separateProfileModeCheckbox.checked = true);
- }
-
// Notify observers that the UI is now ready
Components.classes["@mozilla.org/observer-service;1"]
.getService(Components.interfaces.nsIObserverService)
@@ -101,71 +89,6 @@ var gMainPane = {
// **STUB**
},
- separateProfileModeChange: function ()
- {
- if (AppConstants.MOZ_DEV_EDITION) {
- function quitApp() {
- Services.startup.quit(Ci.nsIAppStartup.eAttemptQuit | Ci.nsIAppStartup.eRestartNotSameProfile);
- }
- function revertCheckbox(error) {
- separateProfileModeCheckbox.checked = !separateProfileModeCheckbox.checked;
- if (error) {
- Cu.reportError("Failed to toggle separate profile mode: " + error);
- }
- }
- function createOrRemoveSpecialDevEditionFile(onSuccess) {
- let uAppData = OS.Constants.Path.userApplicationDataDir;
- let ignoreSeparateProfile = OS.Path.join(uAppData, "ignore-dev-edition-profile");
-
- if (separateProfileModeCheckbox.checked) {
- OS.File.remove(ignoreSeparateProfile).then(onSuccess, revertCheckbox);
- } else {
- OS.File.writeAtomic(ignoreSeparateProfile, new Uint8Array()).then(onSuccess, revertCheckbox);
- }
- }
-
- let separateProfileModeCheckbox = document.getElementById("separateProfileMode");
- let button_index = confirmRestartPrompt(separateProfileModeCheckbox.checked,
- 0, false, true);
- switch (button_index) {
- case CONFIRM_RESTART_PROMPT_CANCEL:
- revertCheckbox();
- return;
- case CONFIRM_RESTART_PROMPT_RESTART_NOW:
- const Cc = Components.classes, Ci = Components.interfaces;
- let cancelQuit = Cc["@mozilla.org/supports-PRBool;1"]
- .createInstance(Ci.nsISupportsPRBool);
- Services.obs.notifyObservers(cancelQuit, "quit-application-requested",
- "restart");
- if (!cancelQuit.data) {
- createOrRemoveSpecialDevEditionFile(quitApp);
- return;
- }
-
- // Revert the checkbox in case we didn't quit
- revertCheckbox();
- return;
- case CONFIRM_RESTART_PROMPT_RESTART_LATER:
- createOrRemoveSpecialDevEditionFile();
- return;
- }
- }
- },
-
- onGetStarted: function (aEvent) {
- if (AppConstants.MOZ_DEV_EDITION) {
- const Cc = Components.classes, Ci = Components.interfaces;
- let wm = Cc["@mozilla.org/appshell/window-mediator;1"]
- .getService(Ci.nsIWindowMediator);
- let win = wm.getMostRecentWindow("navigator:browser");
-
- if (win) {
- let accountsTab = win.gBrowser.addTab("about:accounts?action=signin&entrypoint=dev-edition-setup");
- win.gBrowser.selectedTab = accountsTab;
- }
- }
- },
-
// HOME PAGE
/*
diff --git a/application/basilisk/components/preferences/in-content/main.xul b/application/basilisk/components/preferences/in-content/main.xul
index 8eca11877..f695b308b 100644
--- a/application/basilisk/components/preferences/in-content/main.xul
+++ b/application/basilisk/components/preferences/in-content/main.xul
@@ -112,17 +112,6 @@
hidden="true">
<caption><label>&startup.label;</label></caption>
-#ifdef MOZ_DEV_EDITION
- <vbox id="separateProfileBox">
- <checkbox id="separateProfileMode"
- label="&separateProfileMode.label;"/>
- <hbox align="center" class="indent">
- <label id="useFirefoxSync">&useFirefoxSync.label;</label>
- <label id="getStarted" class="text-link">&getStarted.label;</label>
- </hbox>
- </vbox>
-#endif
-
#ifdef HAVE_SHELL_SERVICE
<vbox id="defaultBrowserBox">
<hbox align="center">
diff --git a/application/basilisk/modules/ProcessHangMonitor.jsm b/application/basilisk/modules/ProcessHangMonitor.jsm
index b1f6f2a97..80c506ac7 100644
--- a/application/basilisk/modules/ProcessHangMonitor.jsm
+++ b/application/basilisk/modules/ProcessHangMonitor.jsm
@@ -304,16 +304,6 @@ var ProcessHangMonitor = {
}
}];
- if (AppConstants.MOZ_DEV_EDITION && report.hangType == report.SLOW_SCRIPT) {
- buttons.push({
- label: bundle.getString("processHang.button_debug.label"),
- accessKey: bundle.getString("processHang.button_debug.accessKey"),
- callback: function() {
- ProcessHangMonitor.debugScript(win);
- }
- });
- }
-
nb.appendNotification(bundle.getString("processHang.label"),
"process-hang",
"chrome://browser/skin/slowStartup-16.png",
diff --git a/application/basilisk/themes/linux/devedition.css b/application/basilisk/themes/linux/devedition.css
deleted file mode 100644
index 1f16d5d63..000000000
--- a/application/basilisk/themes/linux/devedition.css
+++ /dev/null
@@ -1,106 +0,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/.
-
-%include ../shared/devedition.inc.css
-
-:root {
- --forwardbutton-width: 29px;
-}
-
-:root[devtoolstheme="light"] {
- --urlbar-dropmarker-url: url("chrome://browser/skin/devedition/urlbar-history-dropmarker.svg");
- --urlbar-dropmarker-region: rect(0px, 11px, 14px, 0px);
- --urlbar-dropmarker-hover-region: rect(0, 22px, 14px, 11px);
- --urlbar-dropmarker-active-region: rect(0px, 33px, 14px, 22px);
- --urlbar-dropmarker-2x-url: url("chrome://browser/skin/devedition/urlbar-history-dropmarker.svg");
- --urlbar-dropmarker-2x-region: rect(0px, 11px, 14px, 0px);
- --urlbar-dropmarker-hover-2x-region: rect(0, 22px, 14px, 11px);
- --urlbar-dropmarker-active-2x-region: rect(0px, 33px, 14px, 22px);
-}
-
-:root[devtoolstheme="dark"] .findbar-closebutton:not(:hover),
-:root[devtoolstheme="dark"] #sidebar-header > .close-icon:not(:hover),
-.tab-close-button[selected]:not(:hover) {
- background-image: -moz-image-rect(url("chrome://global/skin/icons/close.svg"), 0, 80, 16, 64);
-}
-
-/* The menubar and tabs toolbar should match the devedition theme */
-#TabsToolbar,
-#toolbar-menubar {
- -moz-appearance: none !important;
-}
-#main-menubar {
- color: var(--chrome-color);
-}
-#main-menubar > menu:not([open]) {
- color: inherit;
-}
-
-/* Allow buttons with -moz-appearance set to look normal on hover and open states */
-#navigator-toolbox .toolbarbutton-1:-moz-any(:hover, [open="true"]),
-#PlacesToolbar toolbarbutton.bookmark-item:-moz-any(:hover, [open="true"]) {
- color: initial;
-}
-
-/* Square back and forward buttons */
-#back-button > .toolbarbutton-icon,
-#forward-button > .toolbarbutton-icon {
- margin: 0;
- border: 1px solid var(--chrome-nav-bar-controls-border-color);
- padding: 2px 5px;
- background: var(--chrome-nav-buttons-background);
- box-shadow: none !important;
-}
-
-#forward-button > .toolbarbutton-icon {
- border-inline-start: none;
-}
-
-/* Override a box shadow for disabled back button */
-#main-window:not([customizing]) #back-button[disabled] > .toolbarbutton-icon {
- box-shadow: none !important;
-}
-
-#back-button:hover:not([disabled="true"]) > .toolbarbutton-icon,
-#forward-button:hover:not([disabled="true"]) > .toolbarbutton-icon {
- background: var(--chrome-nav-buttons-hover-background) !important;
-}
-
-#back-button > .toolbarbutton-icon {
- border-radius: 2px 0 0 2px !important;
-}
-
-.urlbar-history-dropmarker {
- -moz-appearance: none;
- padding: 0 3px;
- list-style-image: var(--urlbar-dropmarker-url);
- -moz-image-region: var(--urlbar-dropmarker-region);
-}
-
-/* Add the proper background for tab overflow */
-#alltabs-button,
-#new-tab-button {
- background: var(--chrome-background-color);
-}
-
-#new-tab-button:hover > .toolbarbutton-icon {
- border-color: transparent !important;
-}
-
-/* Prevent double border below tabs toolbar */
-#TabsToolbar:not([collapsed="true"]) + #nav-bar {
- border-top-width: 0 !important;
-}
-
-/* Fix the bad-looking text-shadow in the sidebar header: */
-.sidebar-header,
-#sidebar-header {
- text-shadow: none;
-}
-
-.ac-type-icon {
- /* Left-align the type icon in awesomebar popup results with the icon in the
- urlbar. */
- margin-inline-start: 11px;
-}
diff --git a/application/basilisk/themes/linux/jar.mn b/application/basilisk/themes/linux/jar.mn
index e9f666418..81581dfaa 100644
--- a/application/basilisk/themes/linux/jar.mn
+++ b/application/basilisk/themes/linux/jar.mn
@@ -13,7 +13,6 @@ browser.jar:
#endif
skin/classic/browser/actionicon-tab.png
* skin/classic/browser/browser.css
-* skin/classic/browser/devedition.css
* skin/classic/browser/browser-lightweightTheme.css
skin/classic/browser/click-to-play-warning-stripes.png
skin/classic/browser/Info.png
diff --git a/application/basilisk/themes/osx/devedition.css b/application/basilisk/themes/osx/devedition.css
deleted file mode 100644
index c7a2bdd71..000000000
--- a/application/basilisk/themes/osx/devedition.css
+++ /dev/null
@@ -1,121 +0,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/.
-
-%include ../shared/devedition.inc.css
-
-:root {
- --forwardbutton-width: 32px;
-}
-
-/* Use only 1px separator between nav toolbox and page content */
-#navigator-toolbox::after {
- border-top-style: none;
- margin-top: -1px;
-}
-
-/* Include extra space on left/right for dragging since there is no space above
- the tabs */
-#main-window[tabsintitlebar] #TabsToolbar {
- padding-left: 50px;
- padding-right: 50px;
- margin-bottom: 0; /* Don't overlap the inner highlight at the top of the nav-bar */
-}
-
-/* Get rid of 1px bright strip at the top of window */
-#main-window[tabsintitlebar] #titlebar-content {
- background: var(--chrome-background-color);
-}
-
-/* Resize things so that the native titlebar is in line with the tabs */
-#main-window[tabsintitlebar] > #titlebar > #titlebar-content > #titlebar-buttonbox-container,
-#main-window[tabsintitlebar] > #titlebar > #titlebar-content > #titlebar-secondary-buttonbox > #titlebar-fullscreen-button {
- margin-top: 6px;
-}
-
-/* Square back and forward buttons. Need !important on these because there
- are a lot of more specific selectors sprinkled around elsewhere for changing
- background / shadows for different states */
-#back-button,
-#forward-button {
- height: 24px !important;
- box-shadow: none !important;
- border: 1px solid var(--chrome-nav-bar-controls-border-color) !important;
- background: var(--chrome-nav-buttons-background) !important;
-}
-
-#forward-button {
- border-inline-start: none !important;
- /* browser.css and friends set up the width of the button to be 32px.
- * They then set margin-left to -2px to ensure the button is not too wide
- * compared to the back button, and set padding-left to center the icon
- * correctly.
- * In our theme, the back and forward buttons are the same width, with the
- * back button being 32px with 1px border on both sides. To ensure the
- * forward button's content box looks like it is the same size with width
- * set to 32px and a 1px border on only 1 side, we overlap by 1px, so both
- * buttons end up with a content box that looks like it's 30px.
- */
- margin-left: -1px;
- padding-left: 1px;
-}
-
-#forward-button > .toolbarbutton-icon {
- margin-left: 0;
- margin-right: 0;
-}
-
-#back-button:hover:not([disabled="true"]),
-#forward-button:hover:not([disabled="true"]) {
- background: var(--chrome-nav-buttons-hover-background) !important;
-}
-
-#back-button {
- border-radius: 3px 0 0 3px !important;
- padding: 0 !important;
- margin: 0 !important;
-}
-
-#back-button:hover:active:not([disabled="true"]) {
- -moz-image-region: rect(18px, 54px, 36px, 36px);
-}
-
-/* Use smaller back button icon */
-@media (min-resolution: 2dppx) {
- #back-button:hover:active:not([disabled="true"]) {
- -moz-image-region: rect(36px, 108px, 72px, 72px);
- }
-}
-
-/* Don't use the default background for tabs toolbar */
-#TabsToolbar {
- -moz-appearance: none !important;
-}
-
-/* Prevent the hover styling from on the identity icon from overlapping the
- urlbar border. */
-#identity-box {
- margin-top: -1px !important;
- margin-bottom: -1px !important;
- padding-top: 3px !important;
- padding-bottom: 3px !important;
-}
-
-:root[devtoolstheme="dark"] .findbar-closebutton:not(:hover),
-/* Tab styling - make sure to use an inverted icon for the selected tab
- (brighttext only covers the unselected tabs) */
-.tab-close-button[selected=true]:not(:hover) {
- -moz-image-region: rect(0, 64px, 16px, 48px);
-}
-@media (min-resolution: 2dppx) {
- :root[devtoolstheme="dark"] .findbar-closebutton:not(:hover),
- .tab-close-button[selected=true]:not(:hover) {
- -moz-image-region: rect(0, 128px, 32px, 96px);
- }
-}
-
-.ac-type-icon {
- /* Left-align the type icon in awesomebar popup results with the icon in the
- urlbar. */
- margin-inline-start: 14px;
-}
diff --git a/application/basilisk/themes/osx/jar.mn b/application/basilisk/themes/osx/jar.mn
index 92d2ceedf..5dec6559a 100644
--- a/application/basilisk/themes/osx/jar.mn
+++ b/application/basilisk/themes/osx/jar.mn
@@ -13,7 +13,6 @@ browser.jar:
skin/classic/browser/actionicon-tab.png
skin/classic/browser/actionicon-tab@2x.png
* skin/classic/browser/browser.css
-* skin/classic/browser/devedition.css
* skin/classic/browser/browser-lightweightTheme.css
skin/classic/browser/click-to-play-warning-stripes.png
skin/classic/browser/Info.png
diff --git a/application/basilisk/themes/shared/devedition.inc.css b/application/basilisk/themes/shared/devedition.inc.css
deleted file mode 100644
index a5c0db948..000000000
--- a/application/basilisk/themes/shared/devedition.inc.css
+++ /dev/null
@@ -1,311 +0,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/.
-
-/* devedition.css is loaded in browser.xul after browser.css when it is
- preffed on. The bulk of the styling is here in the shared file, but
- there are overrides for each platform in their devedition.css files. */
-
-:root {
- --tab-toolbar-navbar-overlap: 0px;
- --navbar-tab-toolbar-highlight-overlap: 0px;
- --space-above-tabbar: 0px;
- --toolbarbutton-text-shadow: none;
- --backbutton-urlbar-overlap: 0px;
-}
-
-:root[devtoolstheme="dark"] {
- /* Chrome */
- --chrome-background-color: #272b35;
- --chrome-color: #F5F7FA;
- --chrome-secondary-background-color: #393F4C;
- --chrome-navigator-toolbox-separator-color: rgba(0,0,0,.2);
- --chrome-nav-bar-separator-color: rgba(0,0,0,.2);
- --chrome-nav-buttons-background: #252C33;
- --chrome-nav-buttons-hover-background: #1B2127;
- --chrome-nav-bar-controls-border-color: #1D2328;
- --chrome-selection-color: #fff;
- --chrome-selection-background-color: #5675B9;
-
- /* Tabs */
- --tabs-toolbar-color: #F5F7FA;
- --tab-background-color: #272b35;
- --tab-hover-background-color: #07090a;
- --tab-selection-color: #f5f7fa;
- --tab-selection-background-color: #5675B9;
- --tab-selection-box-shadow: none;
- --pinned-tab-glow: radial-gradient(22px at center calc(100% - 2px), rgba(76,158,217,0.9) 13%, rgba(0,0,0,0.4) 16%, transparent 70%);
-
- /* Url and search bars */
- --url-and-searchbar-background-color: #171B1F;
- --urlbar-separator-color: #5F6670;
- --urlbar-dropmarker-url: url("chrome://browser/skin/devedition/urlbar-history-dropmarker.svg");
- --urlbar-dropmarker-region: rect(0px, 11px, 14px, 0px);
- --urlbar-dropmarker-hover-region: rect(0, 22px, 14px, 11px);
- --urlbar-dropmarker-active-region: rect(0px, 33px, 14px, 22px);
- --urlbar-dropmarker-2x-url: url("chrome://browser/skin/devedition/urlbar-history-dropmarker.svg");
- --urlbar-dropmarker-2x-region: rect(0px, 11px, 14px, 0px);
- --urlbar-dropmarker-hover-2x-region: rect(0, 22px, 14px, 11px);
- --urlbar-dropmarker-active-2x-region: rect(0px, 33px, 14px, 22px);
-}
-
-/* Override the lwtheme-specific styling for toolbar buttons */
-:root[devtoolstheme="dark"],
-:root[devtoolstheme="dark"] toolbar:-moz-lwtheme {
- --toolbarbutton-hover-background: rgba(25,33, 38,.6) linear-gradient(rgba(25,33,38,.6), rgba(25,33,38,.6)) padding-box;
- --toolbarbutton-hover-boxshadow: none;
- --toolbarbutton-hover-bordercolor: rgba(25,33,38,.6);
- --toolbarbutton-active-background: rgba(25,33,38,1) linear-gradient(rgba(25,33,38,1), rgba(25,33,38,1)) border-box;
- --toolbarbutton-active-boxshadow: none;
- --toolbarbutton-active-bordercolor: rgba(25,33,38,.8);
- --toolbarbutton-checkedhover-backgroundcolor: #3C5283;
-
-}
-
-:root[devtoolstheme="light"] {
- --url-and-searchbar-background-color: #fff;
-
- --chrome-background-color: #E3E4E6;
- --chrome-color: #18191a;
- --chrome-secondary-background-color: #f5f6f7;
- --chrome-navigator-toolbox-separator-color: #cccccc;
- --chrome-nav-bar-separator-color: #B6B6B8;
- --chrome-nav-buttons-background: #ffffff; /* --theme-body-background */
- --chrome-nav-buttons-hover-background: #DADBDB;
- --chrome-nav-bar-controls-border-color: #ccc;
- --chrome-selection-color: #f5f7fa;
- --chrome-selection-background-color: #4c9ed9;
-
- --tab-background-color: #E3E4E6;
- --tab-hover-background-color: #D7D8DA;
- --tab-selection-color: #f5f7fa;
- --tab-selection-background-color: #4c9ed9;
- --tab-selection-box-shadow: none;
- --pinned-tab-glow: radial-gradient(22px at center calc(100% - 2px), rgba(76,158,217,0.9) 13%, transparent 16%);
-}
-
-/* Override the lwtheme-specific styling for toolbar buttons */
-:root[devtoolstheme="light"],
-:root[devtoolstheme="light"] toolbar:-moz-lwtheme {
- --toolbarbutton-hover-background: #eaeaea;
- --toolbarbutton-hover-boxshadow: none;
- --toolbarbutton-hover-bordercolor: rgba(0,0,0,0.1);
- --toolbarbutton-active-background: #d7d7d8 border-box;
- --toolbarbutton-active-boxshadow: none;
- --toolbarbutton-active-bordercolor: rgba(0,0,0,0.15);
- --toolbarbutton-checkedhover-backgroundcolor: #d7d7d8;
-}
-
-/* Give some space to drag the window around while customizing
- (normal space to left and right of tabs doesn't work in this case) */
-#main-window[tabsintitlebar][customizing] {
- --space-above-tabbar: 9px;
-}
-
-/* Override @tabCurveHalfWidth@ and @tabCurveWidth@. XXX: Switch to a CSS variable once the perf is sorted out - bug 1088771 */
-.tab-background-middle {
- border-left-width: 0;
- border-right-width: 0;
- margin: 0;
-}
-
-.tab-background,
-.tabs-newtab-button {
- margin-inline-end: 0;
- margin-inline-start: 0;
-}
-
-.tabbrowser-arrowscrollbox > .arrowscrollbox-scrollbox {
- padding-inline-end: 0;
- padding-inline-start: 0;
-}
-
-.tab-background-start[selected=true]::after,
-.tab-background-start[selected=true]::before,
-.tab-background-start,
-.tab-background-end,
-.tab-background-end[selected=true]::after,
-.tab-background-end[selected=true]::before {
- width: 0;
-}
-
-.tab-background-start[selected=true]::after,
-.tab-background-end[selected=true]::after {
- margin-inline-start: 0;
-}
-/* End override @tabCurveHalfWidth@ and @tabCurveWidth@ */
-
-#urlbar ::-moz-selection,
-#navigator-toolbox .searchbar-textbox ::-moz-selection,
-.browserContainer > findbar ::-moz-selection {
- background-color: var(--chrome-selection-background-color);
- color: var(--chrome-selection-color);
-}
-
-/* Change the base colors for the browser chrome */
-
-#tabbrowser-tabs,
-#TabsToolbar,
-#browser-panel {
- background: var(--chrome-background-color);
- color: var(--chrome-color);
-}
-
-#navigator-toolbox:-moz-lwtheme::after {
- border-bottom-color: var(--chrome-navigator-toolbox-separator-color);
-}
-
-#navigator-toolbox > toolbar:not(#TabsToolbar):not(#toolbar-menubar),
-.browserContainer > findbar,
-#browser-bottombox {
- background-color: var(--chrome-secondary-background-color) !important;
- background-image: none !important;
- color: var(--chrome-color);
-}
-
-/* Default findbar text color doesn't look good - Bug 1125677 */
-.browserContainer > findbar .findbar-find-status,
-.browserContainer > findbar .found-matches {
- color: inherit;
-}
-
-#navigator-toolbox .toolbarbutton-1,
-.browserContainer > findbar .findbar-button,
-#PlacesToolbar toolbarbutton.bookmark-item {
- color: var(--chrome-color);
- text-shadow: var(--toolbarbutton-text-shadow);
-}
-
-/* Using toolbar[brighttext] instead of important to override linux */
-toolbar[brighttext] #downloads-indicator-counter {
- text-shadow: var(--toolbarbutton-text-shadow);
- color: var(--chrome-color);
-}
-
-#TabsToolbar {
- text-shadow: none !important;
-}
-
-/* URL bar and search bar*/
-#urlbar,
-#navigator-toolbox .searchbar-textbox {
- background-color: var(--url-and-searchbar-background-color) !important;
- background-image: none !important;
- color: inherit !important;
- border: 1px solid var(--chrome-nav-bar-controls-border-color) !important;
- box-shadow: none !important;
-}
-
-%filter substitution
-%define selectorPrefix :root[devtoolstheme="dark"]
-%define selectorSuffix :-moz-lwtheme
-%define iconVariant -white
-%include identity-block/icons.inc.css
-
-#urlbar {
- border-inline-start: none !important;
- opacity: 1 !important;
-}
-
-window:not([chromehidden~="toolbar"]) #urlbar-wrapper {
- overflow: -moz-hidden-unscrollable;
- clip-path: none;
- margin-inline-start: 0;
-}
-
-:root[devtoolstheme="dark"] #urlbar-zoom-button:hover {
- background-color: rgba(255,255,255,.2);
-}
-
-:root[devtoolstheme="dark"] #urlbar-zoom-button:hover:active {
- background-color: rgba(255,255,255,.3);
-}
-
-/* Nav bar specific stuff */
-#nav-bar {
- margin-top: 0 !important;
- border-top: none !important;
- border-bottom: none !important;
- border-radius: 0 !important;
- box-shadow: 0 -1px var(--chrome-nav-bar-separator-color) !important;
-}
-
-/* No extra vertical padding for nav bar */
-#nav-bar-customization-target,
-#nav-bar {
- padding-top: 0;
- padding-bottom: 0;
-}
-
-/* Use smaller back button icon */
-#back-button {
- -moz-image-region: rect(0, 54px, 18px, 36px);
-}
-
-@media (min-resolution: 1.1dppx) {
- #back-button {
- -moz-image-region: rect(0, 108px, 36px, 72px);
- }
-}
-
-.tab-background {
- visibility: hidden;
-}
-
-/* Tab separators */
-.tabbrowser-tab::after,
-.tabbrowser-tab::before {
- background: currentColor;
- opacity: 0.2 !important;
-}
-
-.tabbrowser-arrowscrollbox > .scrollbutton-down,
-.tabbrowser-arrowscrollbox > .scrollbutton-up {
- background-color: var(--tab-background-color);
- border-color: transparent;
-}
-
-.tabbrowser-tab {
- /* We normally rely on other tab elements for pointer events, but this
- theme hides those so we need it set here instead */
- pointer-events: auto;
-}
-
-.tabbrowser-tab:-moz-any([image], [pinned]) > .tab-stack > .tab-content[attention]:not([selected="true"]),
-.tabbrowser-tab > .tab-stack > .tab-content[pinned][titlechanged]:not([selected="true"]) {
- background-image: var(--pinned-tab-glow);
- background-position: center;
- background-size: 100%;
-}
-
-.tabbrowser-tab[image] > .tab-stack > .tab-content[attention]:not([pinned]):not([selected="true"]) {
- background-position: left bottom var(--tab-toolbar-navbar-overlap);
- background-size: 34px 100%;
-}
-
-.tabbrowser-arrowscrollbox > .scrollbutton-down:not([disabled]):hover,
-.tabbrowser-arrowscrollbox > .scrollbutton-up:not([disabled]):hover,
-.tabbrowser-tab:hover {
- background-color: var(--tab-hover-background-color);
-}
-
-.tabbrowser-tab[visuallyselected] {
- color: var(--tab-selection-color) !important; /* Override color: inherit */
- background-color: var(--tab-selection-background-color);
-}
-
-.tab-icon-sound[soundplaying],
-.tab-icon-sound[muted] {
- filter: url(chrome://browser/skin/filters.svg#fill) !important; /* removes drop-shadow filter */
-}
-
-/* Don't need space for the tab curves (66px - 30px) */
-.tabs-newtab-button {
- width: 36px;
-}
-
-.tabs-newtab-button:hover {
- /* Important needed because !important is used in browser.css */
- background-color: var(--tab-hover-background-color) !important;
- background-image: none;
-}
diff --git a/application/basilisk/themes/shared/devedition/urlbar-history-dropmarker.svg b/application/basilisk/themes/shared/devedition/urlbar-history-dropmarker.svg
deleted file mode 100644
index 115fbf127..000000000
--- a/application/basilisk/themes/shared/devedition/urlbar-history-dropmarker.svg
+++ /dev/null
@@ -1,22 +0,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/. -->
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="33" height="14" viewBox="0 0 33 14">
- <defs>
- <polygon points="0,0 5.5,7 11,0" id="dropmarker-shape"/>
- </defs>
- <style>
- use {
- fill: #b6babf;
- }
- .hover {
- fill: #61bdeb;
- }
- .active {
- fill: #39ace6;
- }
- </style>
- <use xlink:href="#dropmarker-shape" style="transform: translate(0, 4px)"/>
- <use xlink:href="#dropmarker-shape" style="transform: translate(11px, 4px)" class="hover"/>
- <use xlink:href="#dropmarker-shape" style="transform: translate(22px, 4px)" class="active"/>
-</svg>
diff --git a/application/basilisk/themes/shared/jar.inc.mn b/application/basilisk/themes/shared/jar.inc.mn
index 5750d2dc5..d12971a4b 100644
--- a/application/basilisk/themes/shared/jar.inc.mn
+++ b/application/basilisk/themes/shared/jar.inc.mn
@@ -137,6 +137,5 @@
skin/classic/browser/privatebrowsing/private-browsing.svg (../shared/privatebrowsing/private-browsing.svg)
skin/classic/browser/privatebrowsing/tracking-protection-off.svg (../shared/privatebrowsing/tracking-protection-off.svg)
skin/classic/browser/privatebrowsing/tracking-protection.svg (../shared/privatebrowsing/tracking-protection.svg)
- skin/classic/browser/devedition/urlbar-history-dropmarker.svg (../shared/devedition/urlbar-history-dropmarker.svg)
skin/classic/browser/urlbar-star.svg (../shared/urlbar-star.svg)
skin/classic/browser/urlbar-tab.svg (../shared/urlbar-tab.svg)
diff --git a/application/basilisk/themes/windows/browser.css b/application/basilisk/themes/windows/browser.css
index 334265e60..9a965520a 100644
--- a/application/basilisk/themes/windows/browser.css
+++ b/application/basilisk/themes/windows/browser.css
@@ -193,9 +193,6 @@ toolbar:-moz-lwtheme {
@media not all and (-moz-windows-compositor),
not all and (-moz-windows-default-theme) {
- /* Please keep the menu text colors in this media block in sync with
- * devedition.css, minus the :not(:-moz-lwtheme) condition - see Bug 1165718.
- */
:root[tabsintitlebar]:not([inFullscreen]):not(:-moz-lwtheme) {
--titlebar-text-color: CaptionText;
}
diff --git a/application/basilisk/themes/windows/devedition.css b/application/basilisk/themes/windows/devedition.css
deleted file mode 100644
index bdf4bb80e..000000000
--- a/application/basilisk/themes/windows/devedition.css
+++ /dev/null
@@ -1,316 +0,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/.
-
-%include ../shared/devedition.inc.css
-
-:root {
- --forwardbutton-width: 29px;
-}
-
-:root[devtoolstheme="dark"],
-:root[devtoolstheme="light"] {
- /* Matches the #browser-border-start, #browser-border-end color */
- --chrome-nav-bar-separator-color: rgba(10, 31, 51, 0.35);
-}
-
-/* The window background is white due to no accentcolor in the lightweight
- theme. It can't be changed to transparent when there is no compositor
- (Win 7 in classic / basic theme), or else dragging and focus become
- broken. So instead just show the normal titlebar in that case, and override
- the window color as transparent when the compositor is available. */
-@media not all and (-moz-windows-compositor) {
- #main-window[tabsintitlebar] #titlebar:-moz-lwtheme {
- visibility: visible;
- }
-
- #main-window {
- background: var(--chrome-background-color) !important;
- }
-}
-
-@media (-moz-windows-compositor) {
- #main-window {
- background: transparent !important;
- }
-}
-
-#TabsToolbar::after {
- display: none;
-}
-
-#back-button > .toolbarbutton-icon,
-#forward-button > .toolbarbutton-icon {
- background: var(--chrome-nav-buttons-background) !important;
- border-radius: 0 !important;
- height: auto !important;
- padding: var(--toolbarbutton-vertical-inner-padding) 5px !important;
- margin: 0 !important;
- border: 1px solid var(--chrome-nav-bar-controls-border-color) !important;
- box-shadow: none !important;
-}
-
-#back-button > .toolbarbutton-icon {
- /* 18px icon + 2 * 5px padding + 2 * 1px border */
- width: 30px !important;
-}
-
-#forward-button > .toolbarbutton-icon {
- /* 18px icon + 2 * 5px padding + 1 * 1px border */
- width: 29px !important;
-}
-
-/* the normal theme adds box-shadow: <stuff> !important when the back-button is [open]. Fix: */
-#back-button[open="true"] > .toolbarbutton-icon {
- box-shadow: none !important;
-}
-
-#forward-button > .toolbarbutton-icon {
- border-inline-start: none !important;
-}
-
-/* Override a box shadow for disabled back button */
-#main-window:not([customizing]) #back-button[disabled] > .toolbarbutton-icon {
- box-shadow: none !important;
-}
-
-/* Override !important properties for hovered back button */
-#main-window #back-button:hover:not([disabled="true"]) > .toolbarbutton-icon,
-#main-window #forward-button:hover:not([disabled="true"]) > .toolbarbutton-icon {
- background: var(--chrome-nav-buttons-hover-background) !important;
- box-shadow: none !important;
-}
-
-#back-button > .toolbarbutton-icon {
- border-radius: 2px 0 0 2px !important;
-}
-
-#nav-bar .toolbarbutton-1:not([type=menu-button]),
-#nav-bar .toolbarbutton-1 > .toolbarbutton-menubutton-button,
-#nav-bar .toolbarbutton-1 > .toolbarbutton-menubutton-dropmarker {
- padding-top: 2px;
- padding-bottom: 2px;
-}
-
-.tabbrowser-tab {
- background-color: var(--tab-background-color);
-}
-
-#toolbar-menubar {
- text-shadow: none !important;
-}
-
-:root[devtoolstheme="dark"] .findbar-closebutton,
-:root[devtoolstheme="dark"] #sidebar-header > .close-icon,
-/* Tab styling - make sure to use an inverted icon for the selected tab
- (brighttext only covers the unselected tabs) */
-.tab-close-button[selected=true] {
- list-style-image: url("chrome://global/skin/icons/close-inverted.png");
-}
-
-@media (min-resolution: 1.1dppx) {
- :root[devtoolstheme="dark"] .findbar-closebutton,
- :root[devtoolstheme="dark"] #sidebar-header > .close-icon,
- .tab-close-button[selected=true] {
- list-style-image: url("chrome://global/skin/icons/close-inverted@2x.png");
- }
-}
-
-@media (-moz-os-version: windows-win7),
- (-moz-os-version: windows-win8) {
- :root {
- --space-above-tabbar: 15px;
- }
-
- /* It'd be nice if there was an element in the scrollbox's inner content
- that collapsed to the current width of the tabs. Since there isn't we
- need to handle overflowing and non-overflowing tabs separately.
-
- In the case of overflowing tabs, set a border-top on the entire container,
- otherwise we need to set it on each element individually */
- #main-window[sizemode=normal] .tabbrowser-tabs[overflow="true"] {
- background-clip: padding-box;
- border-top: 1px solid var(--chrome-nav-bar-separator-color);
- border-inline-end: 1px solid var(--chrome-nav-bar-separator-color);
- background-color: var(--tab-background-color); /* Make sure there is no transparent gap during tab close animation */
- }
-
- /* Add a border to the left of the first tab (or scroll arrow). Using .tabbrowser-tabs
- instead of #TabsToolbar because it will work even in customize mode. */
- #main-window[sizemode=normal] .tabbrowser-tabs {
- background-clip: padding-box;
- border-inline-start: 1px solid var(--chrome-nav-bar-separator-color);
- border-inline-end: 1px solid transparent;
- }
-
- #main-window[sizemode=normal] .tabbrowser-tabs:not([overflow="true"]) .tabbrowser-tab,
- #main-window[sizemode=normal] .tabbrowser-tabs:not([overflow="true"]) .tabbrowser-arrowscrollbox > .scrollbutton-down,
- #main-window[sizemode=normal] .tabbrowser-tabs:not([overflow="true"]) .tabbrowser-arrowscrollbox > .scrollbutton-up,
- #main-window[sizemode=normal] .tabbrowser-tabs:not([overflow="true"]) .tabs-newtab-button {
- background-clip: padding-box;
- border-top: 1px solid var(--chrome-nav-bar-separator-color);
- }
-
- /* Allow the border-top rule to take effect */
- #main-window[sizemode=normal] .tabbrowser-tabs:not([overflow="true"]) .tabbrowser-tab {
- -moz-border-top-colors: none;
- }
-
- #main-window[sizemode=normal] .tabbrowser-tabs:not([overflow="true"]) .closing-tabs-spacer {
- background-clip: padding-box;
- border-inline-start: 1px solid var(--chrome-nav-bar-separator-color);
- }
-
- .tabs-newtab-button {
- background: var(--tab-background-color);
- }
-
- /* Use default window colors when in non-maximized mode */
- #tabbrowser-tabs,
- #TabsToolbar,
- #browser-panel,
- #titlebar-content {
- background: transparent;
- }
-
- /* Ensure that the entire background is styled when maximized/fullscreen */
- #main-window:not([sizemode="normal"]):not([customizing]) #browser-panel {
- background: var(--chrome-background-color) !important;
- }
-
- /* The menu items need to be visible when the entire background is styled */
- #main-window:not([sizemode="normal"]) #main-menubar {
- color: var(--chrome-color);
- background-color: transparent;
- }
-
- #main-window[sizemode="maximized"] #main-menubar > menu:not(:-moz-window-inactive) {
- color: inherit;
- }
-
- /* Use proper menu text styling in Win7 classic mode (copied from browser.css) */
- @media not all and (-moz-windows-compositor),
- not all and (-moz-windows-default-theme) {
- :root[tabsintitlebar]:not([inFullscreen]) {
- --titlebar-text-color: CaptionText;
- }
-
- :root[tabsintitlebar]:not([inFullscreen]):-moz-window-inactive {
- --titlebar-text-color: InactiveCaptionText;
- }
-
- #main-window[tabsintitlebar] #main-menubar > menu {
- color: inherit;
- }
- }
-
- /* Use less opacity than normal since this is very dark, and on top of the default toolbar color */
- .tabbrowser-arrowscrollbox > .scrollbutton-up[disabled],
- .tabbrowser-arrowscrollbox > .scrollbutton-down[disabled] {
- opacity: .6;
- }
-
- /* Override scrollbutton gradients in normal and hover state */
- .tabbrowser-arrowscrollbox > .scrollbutton-down,
- .tabbrowser-arrowscrollbox > .scrollbutton-up {
- background-image: none !important;
- transition: none; /* scrollbutton-down has an unwanted transition on background color */
- }
-
- /* Restore draggable space on the sides of tabs when maximized */
- #main-window[sizemode="maximized"] .tabbrowser-arrowscrollbox > .arrowscrollbox-scrollbox {
- padding-left: 15px;
- padding-right: 15px;
- }
-
- /* Override the padding that's intended to compensate for tabs that can overlap border-radius on nav-bar in default theme. */
- #main-window[sizemode=normal]:not([customizing]) #TabsToolbar {
- padding-left: 0;
- padding-right: 0;
- }
-}
-
-/* Restored windows get an artificial border on windows, because the lwtheme background
- * overlaps the regular window border. That isn't the case for us, so we avoid painting
- * over the native border with our custom borders: */
-#browser-panel {
- /* These are !important to avoid specificity-wars with the selectors that add borders here. */
- background-image: none !important;
- border-top: none !important;
-}
-
-#navigator-toolbox {
- /* The side borders on the toolbox also look out-of-place because we don't paint over
- * the native background color at all, and these are !important for the same reason as above. */
- border-left: none !important;
- border-right: none !important;
-}
-
-/* Disable dragging like in the default theme: */
-#main-window[tabsintitlebar] #navigator-toolbox > toolbar:not(#toolbar-menubar):not(#TabsToolbar):-moz-lwtheme {
- -moz-window-dragging: no-drag;
-}
-
-/* The sidebar header has no background now that the background of the #browser-panel
- * has no image and is transparent. Fix: */
-.sidebar-header:-moz-lwtheme,
-#sidebar-header {
- background-color: var(--chrome-background-color);
- color: var(--chrome-color);
-}
-
-@media (-moz-os-version: windows-win7),
- (-moz-os-version: windows-win8) {
- /* And then we add them back on toolbars so that they don't look borderless: */
- #main-window:not([customizing])[sizemode=normal] #navigator-toolbox::after,
- #main-window:not([customizing])[sizemode=normal] #navigator-toolbox > toolbar:not(#toolbar-menubar):not(#TabsToolbar) {
- border-left: 1px solid hsla(209,67%,12%,0.35);
- border-right: 1px solid hsla(209,67%,12%,0.35);
- }
-}
-
-@media (-moz-os-version: windows-win10) {
- /* Always keep draggable space on the sides of tabs since there is no top margin on Win10 */
- #main-window .tabbrowser-arrowscrollbox > .arrowscrollbox-scrollbox {
- padding-left: 15px;
- padding-right: 15px;
- }
-
- /* Force white caption buttons for the dark theme on Windows 10 */
- :root[devtoolstheme="dark"] #titlebar-min {
- list-style-image: url(chrome://browser/skin/caption-buttons.svg#minimize-white);
- }
- :root[devtoolstheme="dark"] #titlebar-max {
- list-style-image: url(chrome://browser/skin/caption-buttons.svg#maximize-white);
- }
- #main-window[devtoolstheme="dark"][sizemode="maximized"] #titlebar-max {
- list-style-image: url(chrome://browser/skin/caption-buttons.svg#restore-white);
- }
- :root[devtoolstheme="dark"] #titlebar-close {
- list-style-image: url(chrome://browser/skin/caption-buttons.svg#close-white);
- }
-
- /* ... and normal ones for the light theme on Windows 10 */
- :root[devtoolstheme="light"] #titlebar-min {
- list-style-image: url(chrome://browser/skin/caption-buttons.svg#minimize);
- }
- :root[devtoolstheme="light"] #titlebar-max {
- list-style-image: url(chrome://browser/skin/caption-buttons.svg#maximize);
- }
- #main-window[devtoolstheme="light"][sizemode="maximized"] #titlebar-max {
- list-style-image: url(chrome://browser/skin/caption-buttons.svg#restore);
- }
- :root[devtoolstheme="light"] #titlebar-close {
- list-style-image: url(chrome://browser/skin/caption-buttons.svg#close);
- }
-
- :root[devtoolstheme="light"] #titlebar-close:hover {
- list-style-image: url(chrome://browser/skin/caption-buttons.svg#close-white);
- }
-}
-
-.ac-type-icon {
- /* Left-align the type icon in awesomebar popup results with the icon in the
- urlbar. */
- margin-inline-start: 13px;
-}
diff --git a/application/basilisk/themes/windows/jar.mn b/application/basilisk/themes/windows/jar.mn
index 28c6c6465..b0b9ca454 100644
--- a/application/basilisk/themes/windows/jar.mn
+++ b/application/basilisk/themes/windows/jar.mn
@@ -14,7 +14,6 @@ browser.jar:
skin/classic/browser/actionicon-tab@2x.png
skin/classic/browser/actionicon-tab-win7.png
* skin/classic/browser/browser.css
-* skin/classic/browser/devedition.css
* skin/classic/browser/browser-lightweightTheme.css
skin/classic/browser/caption-buttons.svg
skin/classic/browser/click-to-play-warning-stripes.png
diff --git a/application/basilisk/tools/mozscreenshots/mozscreenshots/extension/configurations/DevEdition.jsm b/application/basilisk/tools/mozscreenshots/mozscreenshots/extension/configurations/DevEdition.jsm
deleted file mode 100644
index fd981bca3..000000000
--- a/application/basilisk/tools/mozscreenshots/mozscreenshots/extension/configurations/DevEdition.jsm
+++ /dev/null
@@ -1,42 +0,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/. */
-
-"use strict";
-
-this.EXPORTED_SYMBOLS = ["DevEdition"];
-
-const {classes: Cc, interfaces: Ci, utils: Cu} = Components;
-const THEME_ID = "firefox-devedition@mozilla.org";
-
-Cu.import("resource://gre/modules/LightweightThemeManager.jsm");
-Cu.import("resource://gre/modules/Services.jsm");
-Cu.import("resource://gre/modules/Task.jsm");
-
-this.DevEdition = {
- init(libDir) {},
-
- configurations: {
- devEditionLight: {
- applyConfig: Task.async(() => {
- Services.prefs.setCharPref("devtools.theme", "light");
- LightweightThemeManager.currentTheme = LightweightThemeManager.getUsedTheme(THEME_ID);
- Services.prefs.setBoolPref("browser.devedition.theme.showCustomizeButton", true);
- }),
- },
- devEditionDark: {
- applyConfig: Task.async(() => {
- Services.prefs.setCharPref("devtools.theme", "dark");
- LightweightThemeManager.currentTheme = LightweightThemeManager.getUsedTheme(THEME_ID);
- Services.prefs.setBoolPref("browser.devedition.theme.showCustomizeButton", true);
- }),
- },
- devEditionOff: {
- applyConfig: Task.async(() => {
- Services.prefs.clearUserPref("devtools.theme");
- LightweightThemeManager.currentTheme = null;
- Services.prefs.clearUserPref("browser.devedition.theme.showCustomizeButton");
- }),
- },
- },
-};
diff --git a/application/palemoon/components/places/content/controller.js b/application/palemoon/components/places/content/controller.js
index d09827163..f4e272e2f 100644
--- a/application/palemoon/components/places/content/controller.js
+++ b/application/palemoon/components/places/content/controller.js
@@ -444,7 +444,11 @@ PlacesController.prototype = {
if (parentNode) {
if (PlacesUtils.nodeIsTagQuery(parentNode))
nodeData["tagChild"] = true;
- else if (this.hasCachedLivemarkInfo(parentNode))
+ }
+ } else {
+ var parentNode = node.parent;
+ if (parentNode) {
+ if (this.hasCachedLivemarkInfo(parentNode))
nodeData["livemarkChild"] = true;
}
}
diff --git a/application/palemoon/components/places/content/placesOverlay.xul b/application/palemoon/components/places/content/placesOverlay.xul
index 745990a9c..59115a57f 100644
--- a/application/palemoon/components/places/content/placesOverlay.xul
+++ b/application/palemoon/components/places/content/placesOverlay.xul
@@ -203,7 +203,7 @@
accesskey="&cmd.delete.accesskey;"
closemenu="single"
selection="link"
- forcehideselection="bookmark"/>
+ forcehideselection="bookmark|livemarkChild"/>
<menuitem id="placesContext_deleteHost"
command="placesCmd_deleteDataHost"
label="&cmd.deleteDomainData.label;"
@@ -212,7 +212,7 @@
selection="link|host"
selectiontype="single"
hideifprivatebrowsing="true"
- forcehideselection="bookmark"/>
+ forcehideselection="bookmark|livemarkChild"/>
<menuseparator id="placesContext_deleteSeparator"/>
<menuitem id="placesContext_reload"
command="placesCmd_reload"
diff --git a/config/milestone.txt b/config/milestone.txt
index 3c80f8bb5..67b4fdd4e 100644
--- a/config/milestone.txt
+++ b/config/milestone.txt
@@ -10,4 +10,4 @@
# hardcoded milestones in the tree from these two files.
#--------------------------------------------------------
-4.4.0 \ No newline at end of file
+4.4.1 \ No newline at end of file
diff --git a/devtools/client/framework/devtools-browser.js b/devtools/client/framework/devtools-browser.js
index 1b34e44e0..83a888ab9 100644
--- a/devtools/client/framework/devtools-browser.js
+++ b/devtools/client/framework/devtools-browser.js
@@ -330,9 +330,7 @@ var gDevToolsBrowser = exports.gDevToolsBrowser = {
viewId: "PanelUI-developer",
shortcutId: "key_devToolboxMenuItem",
tooltiptext: "developer-button.tooltiptext2",
- defaultArea: AppConstants.MOZ_DEV_EDITION ?
- CustomizableUI.AREA_NAVBAR :
- CustomizableUI.AREA_PANEL,
+ defaultArea: CustomizableUI.AREA_PANEL,
onViewShowing: function (aEvent) {
// Populate the subview with whatever menuitems are in the developer
// menu. We skip menu elements, because the menu panel has no way
diff --git a/devtools/client/preferences/devtools.js b/devtools/client/preferences/devtools.js
index dea61e37f..e817b3a18 100644
--- a/devtools/client/preferences/devtools.js
+++ b/devtools/client/preferences/devtools.js
@@ -231,11 +231,7 @@ pref("devtools.dom.enabled", false);
pref("devtools.webaudioeditor.inspectorWidth", 300);
// Default theme ("dark" or "light")
-#ifdef MOZ_DEV_EDITION
-sticky_pref("devtools.theme", "dark");
-#else
sticky_pref("devtools.theme", "light");
-#endif
// Web console filters
pref("devtools.webconsole.filter.error", true);
@@ -353,13 +349,8 @@ pref("devtools.editor.autocomplete", true);
// version for each user.
pref("devtools.telemetry.tools.opened.version", "{}");
-// Enable the JSON View tool (an inspector for application/json documents) on
-// Nightly and Dev. Edition.
-#ifdef RELEASE_OR_BETA
-pref("devtools.jsonview.enabled", false);
-#else
+// Enable the JSON View tool (an inspector for application/json documents)
pref("devtools.jsonview.enabled", true);
-#endif
// Enable the HTML responsive design mode for all channels.
pref("devtools.responsive.html.enabled", true);
diff --git a/gfx/thebes/gfxMatrix.h b/gfx/thebes/gfxMatrix.h
index 9282a22db..4f92262cc 100644
--- a/gfx/thebes/gfxMatrix.h
+++ b/gfx/thebes/gfxMatrix.h
@@ -112,6 +112,18 @@ public:
_31 == 0.0 && _32 == 0.0;
}
+ /* Returns true if the matrix is a rectilinear transformation (i.e.
+ * grid-aligned rectangles are transformed to grid-aligned rectangles)
+ */
+ bool IsRectilinear() const {
+ if (FuzzyEqual(_12, 0) && FuzzyEqual(_21, 0)) {
+ return true;
+ } else if (FuzzyEqual(_22, 0) && FuzzyEqual(_11, 0)) {
+ return true;
+ }
+ return false;
+ }
+
/**
* Inverts this matrix, if possible. Otherwise, the matrix is left
* unchanged.
diff --git a/layout/base/FrameProperties.h b/layout/base/FrameProperties.h
index 74513abac..3884b07bd 100644
--- a/layout/base/FrameProperties.h
+++ b/layout/base/FrameProperties.h
@@ -202,7 +202,6 @@ public:
/**
* Get a property value. This requires a linear search through
- * lookup (using the frame as the key) and a linear search through
* the properties of the frame. If the frame has no such property,
* returns zero-filled result, which means null for pointers and
* zero for integers and floating point types.
diff --git a/layout/base/nsDisplayList.cpp b/layout/base/nsDisplayList.cpp
index e35e027e3..e22230b41 100644
--- a/layout/base/nsDisplayList.cpp
+++ b/layout/base/nsDisplayList.cpp
@@ -5708,7 +5708,7 @@ nsDisplayTransform::GetDeltaToTransformOrigin(const nsIFrame* aFrame,
}
/* Allows us to access dimension getters by index. */
- float coords[2];
+ float transformOrigin[2];
TransformReferenceBox::DimensionGetter dimensionGetter[] =
{ &TransformReferenceBox::Width, &TransformReferenceBox::Height };
TransformReferenceBox::DimensionGetter offsetGetter[] =
@@ -5718,33 +5718,33 @@ nsDisplayTransform::GetDeltaToTransformOrigin(const nsIFrame* aFrame,
/* If the transform-origin specifies a percentage, take the percentage
* of the size of the box.
*/
- const nsStyleCoord &coord = display->mTransformOrigin[index];
- if (coord.GetUnit() == eStyleUnit_Calc) {
- const nsStyleCoord::Calc *calc = coord.GetCalcValue();
- coords[index] =
+ const nsStyleCoord &originValue = display->mTransformOrigin[index];
+ if (originValue.GetUnit() == eStyleUnit_Calc) {
+ const nsStyleCoord::Calc *calc = originValue.GetCalcValue();
+ transformOrigin[index] =
NSAppUnitsToFloatPixels((refBox.*dimensionGetter[index])(), aAppUnitsPerPixel) *
calc->mPercent +
NSAppUnitsToFloatPixels(calc->mLength, aAppUnitsPerPixel);
- } else if (coord.GetUnit() == eStyleUnit_Percent) {
- coords[index] =
+ } else if (originValue.GetUnit() == eStyleUnit_Percent) {
+ transformOrigin[index] =
NSAppUnitsToFloatPixels((refBox.*dimensionGetter[index])(), aAppUnitsPerPixel) *
- coord.GetPercentValue();
+ originValue.GetPercentValue();
} else {
- MOZ_ASSERT(coord.GetUnit() == eStyleUnit_Coord, "unexpected unit");
- coords[index] =
- NSAppUnitsToFloatPixels(coord.GetCoordValue(), aAppUnitsPerPixel);
+ MOZ_ASSERT(originValue.GetUnit() == eStyleUnit_Coord, "unexpected unit");
+ transformOrigin[index] =
+ NSAppUnitsToFloatPixels(originValue.GetCoordValue(), aAppUnitsPerPixel);
}
if (aFrame->GetStateBits() & NS_FRAME_SVG_LAYOUT) {
// SVG frames (unlike other frames) have a reference box that can be (and
// typically is) offset from the TopLeft() of the frame. We need to
// account for that here.
- coords[index] +=
+ transformOrigin[index] +=
NSAppUnitsToFloatPixels((refBox.*offsetGetter[index])(), aAppUnitsPerPixel);
}
}
- return Point3D(coords[0], coords[1],
+ return Point3D(transformOrigin[0], transformOrigin[1],
NSAppUnitsToFloatPixels(display->mTransformOrigin[2].GetCoordValue(),
aAppUnitsPerPixel));
}
@@ -5917,6 +5917,17 @@ nsDisplayTransform::GetResultingTransformMatrixInternal(const FrameTransformProp
frame && frame->IsSVGTransformed(&svgTransform, &transformFromSVGParent);
bool hasTransformFromSVGParent =
hasSVGTransforms && !transformFromSVGParent.IsIdentity();
+
+ bool shouldRound = true;
+
+ // An SVG frame should not have its translation rounded.
+ // Note it's possible that the SVG frame doesn't have an SVG
+ // transform but only has a CSS transform.
+ if (frame && frame->HasAnyStateBits(NS_FRAME_SVG_LAYOUT) &&
+ !(frame->GetType() == nsGkAtoms::svgOuterSVGAnonChildFrame)) {
+ shouldRound = false;
+ }
+
/* Transformed frames always have a transform, or are preserving 3d (and might still have perspective!) */
if (aProperties.mTransformList) {
result = nsStyleTransformMatrix::ReadTransforms(aProperties.mTransformList->mHead,
@@ -5994,7 +6005,7 @@ nsDisplayTransform::GetResultingTransformMatrixInternal(const FrameTransformProp
// Otherwise we need to manually translate into our parent's coordinate
// space.
if (frame->IsTransformed()) {
- nsLayoutUtils::PostTranslate(result, frame->GetPosition(), aAppUnitsPerPixel, !hasSVGTransforms);
+ nsLayoutUtils::PostTranslate(result, frame->GetPosition(), aAppUnitsPerPixel, shouldRound);
}
Matrix4x4 parent =
GetResultingTransformMatrixInternal(props,
@@ -6005,7 +6016,7 @@ nsDisplayTransform::GetResultingTransformMatrixInternal(const FrameTransformProp
}
if (aFlags & OFFSET_BY_ORIGIN) {
- nsLayoutUtils::PostTranslate(result, aOrigin, aAppUnitsPerPixel, !hasSVGTransforms);
+ nsLayoutUtils::PostTranslate(result, aOrigin, aAppUnitsPerPixel, shouldRound);
}
return result;
diff --git a/layout/reftests/svg/css-transform-svg-ref.html b/layout/reftests/svg/css-transform-svg-ref.html
new file mode 100644
index 000000000..6167442e7
--- /dev/null
+++ b/layout/reftests/svg/css-transform-svg-ref.html
@@ -0,0 +1,10 @@
+<!--
+ Any copyright is dedicated to the Public Domain.
+ http://creativecommons.org/publicdomain/zero/1.0/
+-->
+<style>
+</style>
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20">
+ <rect id="a" x="0.49" y="0.51" width="2.5" height="2.5"/>
+ <rect id="b" x="3.5" y="3.5" width="2.5" height="2.5"/>
+</svg>
diff --git a/layout/reftests/svg/css-transform-svg.html b/layout/reftests/svg/css-transform-svg.html
new file mode 100644
index 000000000..c1c63a839
--- /dev/null
+++ b/layout/reftests/svg/css-transform-svg.html
@@ -0,0 +1,13 @@
+<!--
+ Any copyright is dedicated to the Public Domain.
+ http://creativecommons.org/publicdomain/zero/1.0/
+-->
+<style>
+#a {
+ transform: scaleY(1);
+}
+</style>
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20">
+ <rect id="a" x="0.49" y="0.51" width="2.5" height="2.5"/>
+ <rect id="b" x="3.5" y="3.5" width="2.5" height="2.5"/>
+</svg>
diff --git a/layout/reftests/svg/reftest.list b/layout/reftests/svg/reftest.list
index 096628681..21e1c68a1 100644
--- a/layout/reftests/svg/reftest.list
+++ b/layout/reftests/svg/reftest.list
@@ -140,6 +140,7 @@ random == dynamic-use-nested-01b.svg dynamic-use-nested-01-ref.svg
== fragmentIdentifier-01.xhtml pass.svg
== linked-filter-01.svg pass.svg
== linked-pattern-01.svg pass.svg
+pref(layout.css.devPixelsPerPx,"1.0") == svg-blurry-with-subpixel-position.html svg-blurry-with-subpixel-position-ref.html
== use-01.svg pass.svg
== use-01-extref.svg pass.svg
== use-02-extref.svg use-02-extref-ref.svg
@@ -371,6 +372,7 @@ fuzzy-if(skiaContent,1,610) == textPath-03.svg pass.svg
== text-white-space-01.svg text-white-space-01-ref.svg
== thin-stroke-01.svg pass.svg
== zero-stroke-01.svg pass.svg
+== css-transform-svg.html css-transform-svg-ref.html
== tspan-dxdy-01.svg tspan-dxdy-ref.svg
== tspan-dxdy-02.svg tspan-dxdy-ref.svg
== tspan-dxdy-03.svg tspan-dxdy-ref.svg
diff --git a/layout/reftests/svg/svg-blurry-with-subpixel-position-ref.html b/layout/reftests/svg/svg-blurry-with-subpixel-position-ref.html
new file mode 100644
index 000000000..c315509d7
--- /dev/null
+++ b/layout/reftests/svg/svg-blurry-with-subpixel-position-ref.html
@@ -0,0 +1,13 @@
+<!doctype html>
+<style>
+ svg {
+ width:750px;
+ height:750px;
+ margin:3px;
+ }
+</style>
+
+<svg viewBox="0.5 0.5 750 750">
+ <path d="M3,6L277,6M3,12L277,12M3,18L277,18M3,24L277,24M3,30L277,30M3,36L277,36M3,42L277,42M3,48L277,48M3,54L277,54M3,60L277,60M3,66L277,66M3,72L277,72M3,78L277,78M3,84L277,84M3,90L277,90M3,96L277,96M3,102L277,102M3,108L277,108M3,114L277,114" style="stroke-width:1; stroke:black;" />
+ <path d="M6,3L6,277M12,3L12,277M18,3L18,277M24,3L24,277M30,3L30,277M36,3L36,277M42,3L42,277M48,3L48,277M54,3L54,277M60,3L60,277M66,3L66,277M72,3L72,277M78,3L78,277M84,3L84,277M90,3L90,277M96,3L96,277M102,3L102,277M108,3L108,277M114,3L114,277" style="stroke-width:1; stroke:black;" />
+</svg>
diff --git a/layout/reftests/svg/svg-blurry-with-subpixel-position.html b/layout/reftests/svg/svg-blurry-with-subpixel-position.html
new file mode 100644
index 000000000..20bca7174
--- /dev/null
+++ b/layout/reftests/svg/svg-blurry-with-subpixel-position.html
@@ -0,0 +1,13 @@
+<!doctype html>
+<style>
+ svg {
+ width:750px;
+ height:750px;
+ margin:2.5px;
+ }
+</style>
+
+<svg viewBox="0.5 0.5 750 750">
+ <path d="M3,6L277,6M3,12L277,12M3,18L277,18M3,24L277,24M3,30L277,30M3,36L277,36M3,42L277,42M3,48L277,48M3,54L277,54M3,60L277,60M3,66L277,66M3,72L277,72M3,78L277,78M3,84L277,84M3,90L277,90M3,96L277,96M3,102L277,102M3,108L277,108M3,114L277,114" style="stroke-width:1; stroke:black;" />
+ <path d="M6,3L6,277M12,3L12,277M18,3L18,277M24,3L24,277M30,3L30,277M36,3L36,277M42,3L42,277M48,3L48,277M54,3L54,277M60,3L60,277M66,3L66,277M72,3L72,277M78,3L78,277M84,3L84,277M90,3L90,277M96,3L96,277M102,3L102,277M108,3L108,277M114,3L114,277" style="stroke-width:1; stroke:black;" />
+</svg>
diff --git a/layout/style/FontFaceSet.cpp b/layout/style/FontFaceSet.cpp
index 1645adfef..81c5ede0e 100644
--- a/layout/style/FontFaceSet.cpp
+++ b/layout/style/FontFaceSet.cpp
@@ -583,6 +583,19 @@ FontFaceSet::StartLoad(gfxUserFontEntry* aUserFontEntry,
nsCOMPtr<nsIStreamLoader> streamLoader;
nsCOMPtr<nsILoadGroup> loadGroup(mDocument->GetDocumentLoadGroup());
+ // We're determining the security flags for font loading here based on
+ // scheme, because we want to allow fonts to be loaded using file:
+ // even if unique origins for file: access is enforced (allow CORS
+ // bypass in this case).
+ uint32_t securityFlags = 0;
+ bool isFile = false;
+ if (NS_SUCCEEDED(aFontFaceSrc->mURI->SchemeIs("file", &isFile)) &&
+ isFile) {
+ securityFlags = nsILoadInfo::SEC_ALLOW_CROSS_ORIGIN_DATA_INHERITS;
+ } else {
+ securityFlags = nsILoadInfo::SEC_REQUIRE_CORS_DATA_INHERITS;
+ }
+
nsCOMPtr<nsIChannel> channel;
// Note we are calling NS_NewChannelWithTriggeringPrincipal() with both a
// node and a principal. This is because the document where the font is
@@ -592,7 +605,7 @@ FontFaceSet::StartLoad(gfxUserFontEntry* aUserFontEntry,
aFontFaceSrc->mURI,
mDocument,
aUserFontEntry->GetPrincipal(),
- nsILoadInfo::SEC_REQUIRE_CORS_DATA_INHERITS,
+ securityFlags,
nsIContentPolicy::TYPE_FONT,
loadGroup);
NS_ENSURE_SUCCESS(rv, rv);
diff --git a/layout/svg/nsSVGOuterSVGFrame.cpp b/layout/svg/nsSVGOuterSVGFrame.cpp
index e1b97bb40..b1ee54eb9 100644
--- a/layout/svg/nsSVGOuterSVGFrame.cpp
+++ b/layout/svg/nsSVGOuterSVGFrame.cpp
@@ -979,43 +979,56 @@ nsSVGOuterSVGAnonChildFrame::GetType() const
return nsGkAtoms::svgOuterSVGAnonChildFrame;
}
-bool
-nsSVGOuterSVGAnonChildFrame::IsSVGTransformed(Matrix* aOwnTransform,
- Matrix* aFromParentTransform) const
+static Matrix
+ComputeOuterSVGAnonChildFrameTransform(const nsSVGOuterSVGAnonChildFrame* aFrame)
{
// Our elements 'transform' attribute is applied to our nsSVGOuterSVGFrame
// parent, and the element's children-only transforms are applied to us, the
// anonymous child frame. Since we are the child frame, we apply the
// children-only transforms as if they are our own transform.
- SVGSVGElement* content = static_cast<SVGSVGElement*>(mContent);
+ SVGSVGElement* content = static_cast<SVGSVGElement*>(aFrame->GetContent());
if (!content->HasChildrenOnlyTransform()) {
- return false;
+ return Matrix();
}
// Outer-<svg> doesn't use x/y, so we can pass eChildToUserSpace here.
gfxMatrix ownMatrix =
content->PrependLocalTransformsTo(gfxMatrix(), eChildToUserSpace);
- if (ownMatrix.IsIdentity()) {
- return false;
+ if (ownMatrix.HasNonTranslation()) {
+ // viewBox, currentScale and currentTranslate should only produce a
+ // rectilinear transform.
+ MOZ_ASSERT(ownMatrix.IsRectilinear(),
+ "Non-rectilinear transform will break the following logic");
+
+ // The nsDisplayTransform code will apply this transform to our frame,
+ // including to our frame position. We don't want our frame position to
+ // be scaled though, so we need to correct for that in the transform.
+ CSSPoint pos = CSSPixel::FromAppUnits(aFrame->GetPosition());
+ CSSPoint scaledPos = CSSPoint(ownMatrix._11 * pos.x, ownMatrix._22 * pos.y);
+ CSSPoint deltaPos = scaledPos - pos;
+ ownMatrix *= gfxMatrix::Translation(-deltaPos.x, -deltaPos.y);
}
- if (aOwnTransform) {
- if (ownMatrix.HasNonTranslation()) {
- // Note: viewBox, currentScale and currentTranslate should only
- // produce a rectilinear transform.
- // The nsDisplayTransform code will apply this transform to our frame,
- // including to our frame position. We don't want our frame position to
- // be scaled though, so we need to correct for that in the transform.
- CSSPoint pos = CSSPixel::FromAppUnits(GetPosition());
- CSSPoint scaledPos = CSSPoint(ownMatrix._11 * pos.x, ownMatrix._22 * pos.y);
- CSSPoint deltaPos = scaledPos - pos;
- ownMatrix *= gfxMatrix::Translation(-deltaPos.x, -deltaPos.y);
- }
+ return gfx::ToMatrix(ownMatrix);
+}
- *aOwnTransform = gfx::ToMatrix(ownMatrix);
+// We want this frame to be a reference frame. An easy way to achieve that is
+// to always return true from this method, even for identity transforms.
+// This frame being a reference frame ensures that the offset between this
+// <svg> element and the parent reference frame is completely absorbed by the
+// nsDisplayTransform that's created for this frame, and that this offset does
+// not affect our descendants' transforms. Consequently, if the <svg> element
+// moves, e.g. during scrolling, the transform matrices of our contents are
+// unaffected. This simplifies invalidation.
+bool
+nsSVGOuterSVGAnonChildFrame::IsSVGTransformed(Matrix* aOwnTransform,
+ Matrix* aFromParentTransform) const
+{
+ if (aOwnTransform) {
+ *aOwnTransform = ComputeOuterSVGAnonChildFrameTransform(this);
}
return true;
diff --git a/old-configure.in b/old-configure.in
index cdfdfb73d..1525ecc9b 100644
--- a/old-configure.in
+++ b/old-configure.in
@@ -5483,10 +5483,6 @@ if test "$ACCESSIBILITY" -a "$MOZ_ENABLE_GTK" ; then
AC_DEFINE_UNQUOTED(ATK_REV_VERSION, $ATK_REV_VERSION)
fi
-if test -n "$MOZ_DEV_EDITION"; then
- AC_DEFINE(MOZ_DEV_EDITION)
-fi
-
if test "$MOZ_DEBUG"; then
A11Y_LOG=1
fi
diff --git a/services/sync/modules/policies.js b/services/sync/modules/policies.js
index 2d85b1428..48acbe2e6 100644
--- a/services/sync/modules/policies.js
+++ b/services/sync/modules/policies.js
@@ -60,20 +60,60 @@ SyncScheduler.prototype = {
},
// nextSync is in milliseconds, but prefs can't hold that much
- get nextSync() Svc.Prefs.get("nextSync", 0) * 1000,
- set nextSync(value) Svc.Prefs.set("nextSync", Math.floor(value / 1000)),
+ get nextSync() {
+ if (Svc.Prefs) {
+ return Svc.Prefs.get("nextSync", 0) * 1000
+ }
+ },
+ set nextSync(value) {
+ if (Svc.Prefs) {
+ Svc.Prefs.set("nextSync", Math.floor(value / 1000))
+ }
+ },
- get syncInterval() Svc.Prefs.get("syncInterval", this.singleDeviceInterval),
- set syncInterval(value) Svc.Prefs.set("syncInterval", value),
+ get syncInterval() {
+ if (Svc.Prefs) {
+ return Svc.Prefs.get("syncInterval", this.singleDeviceInterval)
+ }
+ },
+ set syncInterval(value) {
+ if (Svc.Prefs) {
+ Svc.Prefs.set("syncInterval", value)
+ }
+ },
- get syncThreshold() Svc.Prefs.get("syncThreshold", SINGLE_USER_THRESHOLD),
- set syncThreshold(value) Svc.Prefs.set("syncThreshold", value),
+ get syncThreshold() {
+ if (Svc.Prefs) {
+ return Svc.Prefs.get("syncThreshold", SINGLE_USER_THRESHOLD)
+ }
+ },
+ set syncThreshold(value) {
+ if (Svc.Prefs) {
+ Svc.Prefs.set("syncThreshold", value)
+ }
+ },
- get globalScore() Svc.Prefs.get("globalScore", 0),
- set globalScore(value) Svc.Prefs.set("globalScore", value),
+ get globalScore() {
+ if (Svc.Prefs) {
+ return Svc.Prefs.get("globalScore", 0)
+ }
+ },
+ set globalScore(value) {
+ if (Svc.Prefs) {
+ Svc.Prefs.set("globalScore", value)
+ }
+ },
- get numClients() Svc.Prefs.get("numClients", 0),
- set numClients(value) Svc.Prefs.set("numClients", value),
+ get numClients() {
+ if (Svc.Prefs) {
+ return Svc.Prefs.get("numClients", 0)
+ }
+ },
+ set numClients(value) {
+ if (Svc.Prefs) {
+ Svc.Prefs.set("numClients", value)
+ }
+ },
init: function init() {
this._log.level = Log.Level[Svc.Prefs.get("log.logger.service.main")];
@@ -523,7 +563,7 @@ SyncScheduler.prototype = {
},
get isBlocked() {
- let until = Svc.Prefs.get("scheduler.blocked-until");
+ let until = Svc.Prefs ? Svc.Prefs.get("scheduler.blocked-until") : undefined;
if (until === undefined) {
return false;
}
@@ -770,19 +810,19 @@ ErrorHandler.prototype = {
},
get currentAlertMode() {
- return Svc.Prefs.get("errorhandler.alert.mode");
+ return Svc.Prefs ? Svc.Prefs.get("errorhandler.alert.mode") : undefined;
},
set currentAlertMode(str) {
- return Svc.Prefs.set("errorhandler.alert.mode", str);
+ return Svc.Prefs ? Svc.Prefs.set("errorhandler.alert.mode", str) : undefined;
},
get earliestNextAlert() {
- return Svc.Prefs.get("errorhandler.alert.earliestNext", 0) * 1000;
+ return Svc.Prefs ? Svc.Prefs.get("errorhandler.alert.earliestNext", 0) * 1000 : undefined;
},
set earliestNextAlert(msec) {
- return Svc.Prefs.set("errorhandler.alert.earliestNext", msec / 1000);
+ return Svc.Prefs ? Svc.Prefs.set("errorhandler.alert.earliestNext", msec / 1000) : undefined;
},
clearServerAlerts: function () {
diff --git a/services/sync/modules/service.js b/services/sync/modules/service.js
index 15884aca0..804eb20cd 100644
--- a/services/sync/modules/service.js
+++ b/services/sync/modules/service.js
@@ -296,21 +296,6 @@ Sync11Service.prototype = {
return false;
},
- // The global "enabled" state comes from prefs, and will be set to false
- // whenever the UI that exposes what to sync finds all Sync engines disabled.
- get enabled() {
- return Svc.Prefs.get("enabled");
- },
- set enabled(val) {
- // There's no real reason to impose this other than to catch someone doing
- // something we don't expect with bad consequences - all setting of this
- // pref are in the UI code and external to this module.
- if (val) {
- throw new Error("Only disabling via this setter is supported");
- }
- Svc.Prefs.set("enabled", val);
- },
-
/**
* Prepare to initialize the rest of Weave after waiting a little bit
*/
@@ -340,6 +325,8 @@ Sync11Service.prototype = {
this._clusterManager = this.identity.createClusterManager(this);
this.recordManager = new RecordManager(this);
+ this.enabled = true;
+
this._registerEngines();
let ua = Cc["@mozilla.org/network/protocol;1?name=http"].
@@ -1236,10 +1223,6 @@ Sync11Service.prototype = {
},
sync: function sync() {
- if (!this.enabled) {
- this._log.debug("Not syncing as Sync is disabled.");
- return;
- }
let dateStr = new Date().toLocaleFormat(LOG_DATE_FORMAT);
this._log.debug("User-Agent: " + SyncStorageRequest.prototype.userAgent);
this._log.info("Starting sync at " + dateStr);
diff --git a/services/sync/modules/util.js b/services/sync/modules/util.js
index 7fd5a7971..73f4d8a80 100644
--- a/services/sync/modules/util.js
+++ b/services/sync/modules/util.js
@@ -321,10 +321,17 @@ this.Utils = {
* could not be loaded, the first argument will be undefined.
*/
jsonLoad: Task.async(function*(filePath, that, callback) {
- let path = OS.Path.join(OS.Constants.Path.profileDir, "weave", filePath + ".json");
+ let path;
+ try {
+ path = OS.Path.normalize(OS.Path.join(OS.Constants.Path.profileDir, "weave", filePath + ".json"));
+ } catch (e) {
+ if (that._log) {
+ that._log.debug("Path join error: " + e);
+ }
+ }
if (that._log) {
- that._log.trace("Loading json from disk: " + filePath);
+ that._log.trace("Loading json from disk: " + path);
}
let json;
@@ -341,8 +348,9 @@ this.Utils = {
}
}
}
-
- callback.call(that, json);
+ if (callback) {
+ callback.call(that, json);
+ }
}),
/**
diff --git a/services/sync/services-sync.js b/services/sync/services-sync.js
index 640fb4abc..dfce84767 100644
--- a/services/sync/services-sync.js
+++ b/services/sync/services-sync.js
@@ -24,10 +24,6 @@ pref("services.sync.scheduler.sync11.singleDeviceInterval", 86400); // 1 day
pref("services.sync.errorhandler.networkFailureReportTimeout", 1209600); // 2 weeks
-// A "master" pref for Sync being enabled. Will be set to false if the sync
-// customization UI finds all our builtin engines disabled (and addons are
-// free to force this to true if they have their own engine)
-pref("services.sync.enabled", true);
// Our engines.
pref("services.sync.engine.addons", false);
pref("services.sync.engine.bookmarks", true);
diff --git a/services/sync/tests/unit/test_service_login.js b/services/sync/tests/unit/test_service_login.js
index 52ee5e63a..2ecb0a377 100644
--- a/services/sync/tests/unit/test_service_login.js
+++ b/services/sync/tests/unit/test_service_login.js
@@ -183,7 +183,7 @@ add_test(function test_login_on_sync() {
// This test exercises these two branches.
_("We're ready to sync if locked.");
- Svc.Prefs.set("enabled", true);
+ Service.enabled = true;
Services.io.offline = false;
Service.scheduler.checkSyncStatus();
do_check_true(scheduleCalled);
diff --git a/toolkit/modules/AppConstants.jsm b/toolkit/modules/AppConstants.jsm
index ae0eea1c4..40ceb15ba 100644
--- a/toolkit/modules/AppConstants.jsm
+++ b/toolkit/modules/AppConstants.jsm
@@ -60,13 +60,6 @@ this.AppConstants = Object.freeze({
false,
#endif
- MOZ_DEV_EDITION:
-#ifdef MOZ_DEV_EDITION
- true,
-#else
- false,
-#endif
-
MOZ_SERVICES_HEALTHREPORT:
#ifdef MOZ_SERVICES_HEALTHREPORT
true,
diff --git a/toolkit/profile/nsToolkitProfileService.cpp b/toolkit/profile/nsToolkitProfileService.cpp
index 38b3a37f1..e818d27e6 100644
--- a/toolkit/profile/nsToolkitProfileService.cpp
+++ b/toolkit/profile/nsToolkitProfileService.cpp
@@ -425,22 +425,6 @@ nsToolkitProfileService::Init()
nsToolkitProfile* currentProfile = nullptr;
-#ifdef MOZ_DEV_EDITION
- nsCOMPtr<nsIFile> ignoreSeparateProfile;
- rv = mAppData->Clone(getter_AddRefs(ignoreSeparateProfile));
- if (NS_FAILED(rv))
- return rv;
-
- rv = ignoreSeparateProfile->AppendNative(NS_LITERAL_CSTRING("ignore-dev-edition-profile"));
- if (NS_FAILED(rv))
- return rv;
-
- bool shouldIgnoreSeparateProfile;
- rv = ignoreSeparateProfile->Exists(&shouldIgnoreSeparateProfile);
- if (NS_FAILED(rv))
- return rv;
-#endif
-
unsigned int c = 0;
bool foundAuroraDefault = false;
for (c = 0; true; ++c) {
@@ -501,35 +485,8 @@ nsToolkitProfileService::Init()
mChosen = currentProfile;
this->SetDefaultProfile(currentProfile);
}
-#ifdef MOZ_DEV_EDITION
- // Use the dev-edition-default profile if this is an Aurora build and
- // ignore-dev-edition-profile is not present.
- if (name.EqualsLiteral("dev-edition-default") && !shouldIgnoreSeparateProfile) {
- mChosen = currentProfile;
- foundAuroraDefault = true;
- }
-#endif
}
-#ifdef MOZ_DEV_EDITION
- if (!foundAuroraDefault && !shouldIgnoreSeparateProfile) {
- // If a single profile exists, it may not be already marked as default.
- // Do it now to avoid problems when we create the dev-edition-default profile.
- if (!mChosen && mFirst && !mFirst->mNext)
- this->SetDefaultProfile(mFirst);
-
- // Create a default profile for aurora, if none was found.
- nsCOMPtr<nsIToolkitProfile> profile;
- rv = CreateProfile(nullptr,
- NS_LITERAL_CSTRING("dev-edition-default"),
- getter_AddRefs(profile));
- if (NS_FAILED(rv)) return rv;
- mChosen = profile;
- rv = Flush();
- if (NS_FAILED(rv)) return rv;
- }
-#endif
-
if (!mChosen && mFirst && !mFirst->mNext) // only one profile
mChosen = mFirst;
return NS_OK;
diff --git a/toolkit/xre/nsAppRunner.cpp b/toolkit/xre/nsAppRunner.cpp
index 5a51fd3e7..035d35a9d 100644
--- a/toolkit/xre/nsAppRunner.cpp
+++ b/toolkit/xre/nsAppRunner.cpp
@@ -2173,9 +2173,9 @@ SelectProfile(nsIProfileLock* *aResult, nsIToolkitProfileService* aProfileSvc, n
return ShowProfileManager(aProfileSvc, aNative);
}
-#ifndef MOZ_DEV_EDITION
- // If the only existing profile is the dev-edition-profile and this is not
- // Developer Edition, then no valid profiles were found.
+ // Dev edition leftovers:
+ // If the only existing profile is the dev-edition-profile,
+ // then no valid profiles were found.
if (count == 1) {
nsCOMPtr<nsIToolkitProfile> deProfile;
// GetSelectedProfile will auto-select the only profile if there's just one
@@ -2186,7 +2186,6 @@ SelectProfile(nsIProfileLock* *aResult, nsIToolkitProfileService* aProfileSvc, n
count = 0;
}
}
-#endif
if (!count) {
gDoMigration = true;
@@ -2195,25 +2194,15 @@ SelectProfile(nsIProfileLock* *aResult, nsIToolkitProfileService* aProfileSvc, n
// create a default profile
nsCOMPtr<nsIToolkitProfile> profile;
nsresult rv = aProfileSvc->CreateProfile(nullptr, // choose a default dir for us
-#ifdef MOZ_DEV_EDITION
- NS_LITERAL_CSTRING("dev-edition-default"),
-#else
NS_LITERAL_CSTRING("default"),
-#endif
getter_AddRefs(profile));
if (NS_SUCCEEDED(rv)) {
-#ifndef MOZ_DEV_EDITION
aProfileSvc->SetDefaultProfile(profile);
-#endif
aProfileSvc->Flush();
rv = profile->Lock(nullptr, aResult);
if (NS_SUCCEEDED(rv)) {
if (aProfileName)
-#ifdef MOZ_DEV_EDITION
- aProfileName->AssignLiteral("dev-edition-default");
-#else
aProfileName->AssignLiteral("default");
-#endif
return NS_OK;
}
}
diff --git a/tools/lint/eslint/eslint-plugin-mozilla/lib/rules/import-browserjs-globals.js b/tools/lint/eslint/eslint-plugin-mozilla/lib/rules/import-browserjs-globals.js
index 00a48f359..e449931bd 100644
--- a/tools/lint/eslint/eslint-plugin-mozilla/lib/rules/import-browserjs-globals.js
+++ b/tools/lint/eslint/eslint-plugin-mozilla/lib/rules/import-browserjs-globals.js
@@ -32,7 +32,6 @@ const SCRIPTS = [
"browser/base/content/browser-addons.js",
"browser/base/content/browser-ctrlTab.js",
"browser/base/content/browser-customization.js",
- "browser/base/content/browser-devedition.js",
"browser/base/content/browser-feeds.js",
"browser/base/content/browser-fullScreenAndPointerLock.js",
"browser/base/content/browser-fullZoom.js",