diff --git a/CLOBBER b/CLOBBER
index 26df190bda12..9c3f1aebec93 100644
--- a/CLOBBER
+++ b/CLOBBER
@@ -22,4 +22,4 @@
# changes to stick? As of bug 928195, this shouldn't be necessary! Please
# don't change CLOBBER for WebIDL changes any more.
-Bug 1297276 - renaming a file with a different case needed a clobber on case insensitive filesystem
+Bug 1294660 - CSS properties regeneration needs a clobber
diff --git a/browser/base/content/aboutDialog-appUpdater.js b/browser/base/content/aboutDialog-appUpdater.js
index 21621201ac40..76ee07169e5d 100644
--- a/browser/base/content/aboutDialog-appUpdater.js
+++ b/browser/base/content/aboutDialog-appUpdater.js
@@ -240,21 +240,6 @@ appUpdater.prototype =
Components.interfaces.nsIAppStartup.eRestart);
},
- /**
- * Handles oncommand for the "Apply Update…" button
- * which is presented if we need to show the billboard.
- */
- buttonApplyBillboard: function() {
- const URI_UPDATE_PROMPT_DIALOG = "chrome://mozapps/content/update/updates.xul";
- var ary = null;
- ary = Components.classes["@mozilla.org/supports-array;1"].
- createInstance(Components.interfaces.nsISupportsArray);
- ary.AppendElement(this.update);
- var openFeatures = "chrome,centerscreen,dialog=no,resizable=no,titlebar,toolbar=no";
- Services.ww.openWindow(null, URI_UPDATE_PROMPT_DIALOG, "", openFeatures, ary);
- window.close(); // close the "About" window; updates.xul takes over.
- },
-
/**
* Implements nsIUpdateCheckListener. The methods implemented by
* nsIUpdateCheckListener are in a different scope from nsIIncrementalDownload
@@ -287,11 +272,6 @@ appUpdater.prototype =
return;
}
- if (gAppUpdater.update.billboardURL) {
- gAppUpdater.selectPanel("applyBillboard");
- return;
- }
-
if (gAppUpdater.updateAuto) // automatically download and install
gAppUpdater.startDownload();
else // ask
diff --git a/browser/base/content/aboutDialog.xul b/browser/base/content/aboutDialog.xul
index 94ed677f9a58..cbb07a5e11af 100644
--- a/browser/base/content/aboutDialog.xul
+++ b/browser/base/content/aboutDialog.xul
@@ -78,13 +78,6 @@
oncommand="gAppUpdater.buttonRestartAfterDownload();"/>
-
-
-
-
diff --git a/browser/base/content/sanitize.js b/browser/base/content/sanitize.js
index e7424c8389ec..7e92f23d0f03 100644
--- a/browser/base/content/sanitize.js
+++ b/browser/base/content/sanitize.js
@@ -538,20 +538,6 @@ Sanitizer.prototype = {
seenException = ex;
}
- try {
- // Clear "Never remember passwords for this site", which is not handled by
- // the permission manager
- // (Note the login manager doesn't support date ranges yet, and bug
- // 1058438 is calling for loginSaving stuff to end up in the
- // permission manager)
- let hosts = Services.logins.getAllDisabledHosts();
- for (let host of hosts) {
- Services.logins.setLoginSavingEnabled(host, true);
- }
- } catch (ex) {
- seenException = ex;
- }
-
try {
// Clear site security settings - no support for ranges in this
// interface either, so we clearAll().
diff --git a/browser/base/content/test/general/browser.ini b/browser/base/content/test/general/browser.ini
index 13dbbc4350e1..04f49f6caff4 100644
--- a/browser/base/content/test/general/browser.ini
+++ b/browser/base/content/test/general/browser.ini
@@ -484,7 +484,7 @@ skip-if = (os == "win" && !debug)
[browser_windowopen_reflows.js]
skip-if = buildapp == 'mulet'
[browser_zbug569342.js]
-skip-if = e10s # Bug 1094240 - has findbar-related failures
+skip-if = e10s || debug # Bug 1094240 - has findbar-related failures
[browser_registerProtocolHandler_notification.js]
[browser_no_mcb_on_http_site.js]
tags = mcb
diff --git a/browser/components/extensions/ext-utils.js b/browser/components/extensions/ext-utils.js
index beb1c26cd99a..6e0e6e22cc4b 100644
--- a/browser/components/extensions/ext-utils.js
+++ b/browser/components/extensions/ext-utils.js
@@ -91,6 +91,14 @@ XPCOMUtils.defineLazyGetter(this, "standaloneStylesheets", () => {
return stylesheets;
});
+/* eslint-disable mozilla/balanced-listeners */
+extensions.on("page-shutdown", (type, context) => {
+ if (context.type == "popup" && context.active) {
+ context.contentWindow.close();
+ }
+});
+/* eslint-enable mozilla/balanced-listeners */
+
class BasePopup {
constructor(extension, viewNode, popupURL, browserStyle, fixedWidth = false) {
this.extension = extension;
@@ -129,8 +137,10 @@ class BasePopup {
this.viewNode.removeEventListener(this.DESTROY_EVENT, this);
this.viewNode.style.maxHeight = "";
- this.panel.style.removeProperty("--panel-arrowcontent-background");
- this.panel.style.removeProperty("--panel-arrow-image-vertical");
+ if (this.panel) {
+ this.panel.style.removeProperty("--panel-arrowcontent-background");
+ this.panel.style.removeProperty("--panel-arrow-image-vertical");
+ }
this.browser = null;
this.viewNode = null;
@@ -154,7 +164,7 @@ class BasePopup {
get panel() {
let panel = this.viewNode;
- while (panel.localName != "panel") {
+ while (panel && panel.localName != "panel") {
panel = panel.parentNode;
}
return panel;
diff --git a/browser/components/extensions/test/browser/browser.ini b/browser/components/extensions/test/browser/browser.ini
index 0cfdb9e6dc1a..404a4207f037 100644
--- a/browser/components/extensions/test/browser/browser.ini
+++ b/browser/components/extensions/test/browser/browser.ini
@@ -49,6 +49,7 @@ tags = webextensions
[browser_ext_popup_api_injection.js]
[browser_ext_popup_background.js]
[browser_ext_popup_corners.js]
+[browser_ext_popup_shutdown.js]
[browser_ext_runtime_openOptionsPage.js]
[browser_ext_runtime_openOptionsPage_uninstall.js]
[browser_ext_runtime_setUninstallURL.js]
diff --git a/browser/components/extensions/test/browser/browser_ext_popup_shutdown.js b/browser/components/extensions/test/browser/browser_ext_popup_shutdown.js
new file mode 100644
index 000000000000..19035476e46a
--- /dev/null
+++ b/browser/components/extensions/test/browser/browser_ext_popup_shutdown.js
@@ -0,0 +1,74 @@
+/* -*- Mode: indent-tabs-mode: nil; js-indent-level: 2 -*- */
+/* vim: set sts=2 sw=2 et tw=80: */
+"use strict";
+
+let getExtension = () => {
+ return ExtensionTestUtils.loadExtension({
+ background() {
+ browser.tabs.query({active: true, currentWindow: true}, tabs => {
+ browser.pageAction.show(tabs[0].id);
+ });
+ },
+
+ manifest: {
+ "browser_action": {
+ "default_popup": "popup.html",
+ "browser_style": false,
+ },
+
+ "page_action": {
+ "default_popup": "popup.html",
+ "browser_style": false,
+ },
+ },
+
+ files: {
+ "popup.html": `
+
`,
+ },
+ });
+};
+
+add_task(function* testStandaloneBrowserAction() {
+ info("Test stand-alone browserAction popup");
+
+ let extension = getExtension();
+ yield extension.startup();
+
+ clickBrowserAction(extension);
+ let browser = yield awaitExtensionPanel(extension);
+ let panel = getPanelForNode(browser);
+
+ yield extension.unload();
+
+ is(panel.parentNode, null, "Panel should be removed from the document");
+});
+
+add_task(function* testMenuPanelBrowserAction() {
+ let extension = getExtension();
+ yield extension.startup();
+
+ let widget = getBrowserActionWidget(extension);
+ CustomizableUI.addWidgetToArea(widget.id, CustomizableUI.AREA_PANEL);
+
+ clickBrowserAction(extension);
+ let browser = yield awaitExtensionPanel(extension);
+ let panel = getPanelForNode(browser);
+
+ yield extension.unload();
+
+ is(panel.state, "closed", "Panel should be closed");
+});
+
+add_task(function* testPageAction() {
+ let extension = getExtension();
+ yield extension.startup();
+
+ clickPageAction(extension);
+ let browser = yield awaitExtensionPanel(extension);
+ let panel = getPanelForNode(browser);
+
+ yield extension.unload();
+
+ is(panel.parentNode, null, "Panel should be removed from the document");
+});
diff --git a/browser/locales/en-US/chrome/browser/aboutDialog.dtd b/browser/locales/en-US/chrome/browser/aboutDialog.dtd
index 8b984997c620..e0c34692e85a 100644
--- a/browser/locales/en-US/chrome/browser/aboutDialog.dtd
+++ b/browser/locales/en-US/chrome/browser/aboutDialog.dtd
@@ -3,17 +3,15 @@
- file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
-
-
+
-
-
diff --git a/browser/themes/shared/identity-block/identity-block.inc.css b/browser/themes/shared/identity-block/identity-block.inc.css
index 00d8977ba9d1..3afcfc032de7 100644
--- a/browser/themes/shared/identity-block/identity-block.inc.css
+++ b/browser/themes/shared/identity-block/identity-block.inc.css
@@ -64,8 +64,6 @@
width: 16px;
height: 16px;
list-style-image: url(chrome://browser/skin/identity-icon.svg#normal);
- filter: url(chrome://browser/skin/filters.svg#fill);
- fill: currentColor;
opacity: .5;
}
@@ -151,8 +149,6 @@
margin-inline-start: 2px;
margin-inline-end: 0;
list-style-image: url(chrome://browser/skin/tracking-protection-16.svg);
- filter: url(chrome://browser/skin/filters.svg#fill);
- fill: currentColor;
opacity: .5;
}
diff --git a/browser/themes/shared/identity-block/identity-icon.svg b/browser/themes/shared/identity-block/identity-icon.svg
index 502e60f49300..e0d16daab4a0 100755
--- a/browser/themes/shared/identity-block/identity-icon.svg
+++ b/browser/themes/shared/identity-block/identity-icon.svg
@@ -8,6 +8,7 @@
diff --git a/browser/themes/shared/identity-block/tracking-protection-16.svg b/browser/themes/shared/identity-block/tracking-protection-16.svg
index 2813256a6685..bb15284f6920 100755
--- a/browser/themes/shared/identity-block/tracking-protection-16.svg
+++ b/browser/themes/shared/identity-block/tracking-protection-16.svg
@@ -17,5 +17,5 @@
-
+
diff --git a/devtools/client/framework/toolbox-options.xhtml b/devtools/client/framework/toolbox-options.xhtml
index dfa69e64e9fe..8351c9c254ae 100644
--- a/devtools/client/framework/toolbox-options.xhtml
+++ b/devtools/client/framework/toolbox-options.xhtml
@@ -17,7 +17,7 @@