diff --git a/.eslintignore b/.eslintignore index e02d302d64f5..61f457a45974 100644 --- a/.eslintignore +++ b/.eslintignore @@ -116,17 +116,9 @@ devtools/client/storage/test/*.html !devtools/client/storage/test/storage-search.html !devtools/client/storage/test/storage-unsecured-iframe.html !devtools/client/storage/test/storage-unsecured-iframe-usercontextid.html -devtools/client/webaudioeditor/** -devtools/client/webconsole/old/net/** -!devtools/client/webconsole/test/mochitest/** -devtools/client/webconsole/old/test/** -devtools/client/webconsole/old/webconsole.js -devtools/client/webide/** -!devtools/client/webide/components/webideCli.js devtools/server/tests/browser/storage-*.html !devtools/server/tests/browser/storage-unsecured-iframe.html devtools/server/tests/browser/stylesheets-nested-iframes.html -devtools/server/tests/unit/xpcshell_debugging_script.js devtools/client/shared/webpack/shims/test/test_clipboard.html devtools/shared/qrcode/tests/mochitest/test_decode.html devtools/shared/tests/mochitest/*.html @@ -137,6 +129,10 @@ devtools/client/commandline/** # Soon to be removed, the new/ directory is explicitly excluded below due to # also being an imported repository. devtools/client/debugger/** +# Soon to be removed +devtools/client/webconsole/old/net/** +devtools/client/webconsole/old/test/** +devtools/client/webconsole/old/webconsole.js # Ignore devtools imported repositories devtools/client/debugger/new/** @@ -144,6 +140,7 @@ devtools/client/shared/components/reps/** # Ignore devtools preferences files devtools/client/preferences/** +devtools/client/webide/preferences/** devtools/shared/preferences/** devtools/startup/preferences/devtools-startup.js @@ -180,6 +177,9 @@ devtools/server/tests/unit/babel_and_browserify_script_with_source_map.js devtools/server/tests/unit/setBreakpoint* devtools/server/tests/unit/sourcemapped.js +# devtools specific format test file +devtools/server/tests/unit/xpcshell_debugging_script.js + # dom/ exclusions dom/abort/** dom/animation/** @@ -343,7 +343,6 @@ services/sync/services-sync.js servo/** # Remote protocol exclusions -testing/marionette/test_*.js testing/marionette/atom.js testing/marionette/legacyaction.js testing/marionette/client diff --git a/browser/base/content/browser.js b/browser/base/content/browser.js index c2965079169d..72d21131d484 100644 --- a/browser/base/content/browser.js +++ b/browser/base/content/browser.js @@ -499,8 +499,7 @@ const gStoragePressureObserver = { _lastNotificationTime: -1, observe(subject, topic, data) { - if (topic != "QuotaManager::StoragePressure" || - !Services.prefs.getBoolPref("browser.storageManager.enabled")) { + if (topic != "QuotaManager::StoragePressure") { return; } diff --git a/browser/base/content/test/general/browser_storagePressure_notification.js b/browser/base/content/test/general/browser_storagePressure_notification.js index 4f1d37f484e3..ee0d15d7a51c 100644 --- a/browser/base/content/test/general/browser_storagePressure_notification.js +++ b/browser/base/content/test/general/browser_storagePressure_notification.js @@ -23,7 +23,6 @@ function openAboutPrefPromise() { // Test only displaying notification once within the given interval add_task(async function() { const TEST_NOTIFICATION_INTERVAL_MS = 2000; - await SpecialPowers.pushPrefEnv({set: [["browser.storageManager.enabled", true]]}); await SpecialPowers.pushPrefEnv({set: [["browser.storageManager.pressureNotification.minIntervalMS", TEST_NOTIFICATION_INTERVAL_MS]]}); // Commenting this to see if we really need it // await SpecialPowers.pushPrefEnv({set: [["privacy.reduceTimerPrecision", false]]}); @@ -47,7 +46,6 @@ add_task(async function() { // Test guiding user to the about:preferences when usage exceeds the given threshold add_task(async function() { - await SpecialPowers.pushPrefEnv({ set: [["browser.storageManager.enabled", true]] }); await SpecialPowers.pushPrefEnv({ set: [["browser.storageManager.pressureNotification.minIntervalMS", 0]] }); let tab = await BrowserTestUtils.openNewForegroundTab(gBrowser, "https://example.com"); @@ -74,7 +72,6 @@ add_task(async function() { // Test not displaying the 2nd notification if one is already being displayed add_task(async function() { const TEST_NOTIFICATION_INTERVAL_MS = 0; - await SpecialPowers.pushPrefEnv({set: [["browser.storageManager.enabled", true]]}); await SpecialPowers.pushPrefEnv({set: [["browser.storageManager.pressureNotification.minIntervalMS", TEST_NOTIFICATION_INTERVAL_MS]]}); await notifyStoragePressure(); diff --git a/browser/components/customizableui/CustomizableWidgets.jsm b/browser/components/customizableui/CustomizableWidgets.jsm index 38c7f94b0bf8..ba0733dada2c 100644 --- a/browser/components/customizableui/CustomizableWidgets.jsm +++ b/browser/components/customizableui/CustomizableWidgets.jsm @@ -744,7 +744,9 @@ if (Services.prefs.getBoolPref("identity.fxaccounts.enabled")) { // We need to use "click" instead of "command" here so openUILink // respects different buttons (eg, to open in a new tab). item.addEventListener("click", e => { - doc.defaultView.openWebLinkIn(tabInfo.url, e); + doc.defaultView.openUILink(tabInfo.url, e, { + triggeringPrincipal: Services.scriptSecurityManager.createNullPrincipal({}) + }); if (doc.defaultView.whereToOpenLink(e) != "current") { e.preventDefault(); e.stopPropagation(); diff --git a/browser/components/customizableui/test/browser_synced_tabs_menu.js b/browser/components/customizableui/test/browser_synced_tabs_menu.js index b0b2a100cfbc..c211ab7db265 100644 --- a/browser/components/customizableui/test/browser_synced_tabs_menu.js +++ b/browser/components/customizableui/test/browser_synced_tabs_menu.js @@ -19,6 +19,8 @@ const DECKINDEX_TABSDISABLED = 1; const DECKINDEX_FETCHING = 2; const DECKINDEX_NOCLIENTS = 3; +const SAMPLE_TAB_URL = "https://example.com/"; + var initialLocation = gBrowser.currentURI.spec; var newTab = null; @@ -335,7 +337,7 @@ add_task(async function() { // on the second to last page we should have 22 items shown // (because we have to show at least NEXT_PAGE_MIN_TABS=5 tabs on the last page) for (let i = 1; i <= 77; i++) { - allTabsDesktop.push({ title: "Tab #" + i }); + allTabsDesktop.push({ title: "Tab #" + i, url: SAMPLE_TAB_URL }); } return allTabsDesktop; }(), @@ -343,6 +345,7 @@ add_task(async function() { ]); }; + gSync.updateAllUI({ status: UIState.STATUS_SIGNED_IN, lastSync: new Date(), email: "foo@bar.com" }); @@ -370,6 +373,7 @@ add_task(async function() { node = node.nextSibling; is(node.getAttribute("itemtype"), "tab", "node is a tab"); is(node.getAttribute("label"), "Tab #" + (i + 1), "the tab is the correct one"); + is(node.getAttribute("targetURI"), SAMPLE_TAB_URL, "url is the correct one"); } let showMoreButton; if (showMoreLabel) { @@ -383,6 +387,14 @@ add_task(async function() { return showMoreButton; } + async function checkCanOpenURL() { + let tabList = document.getElementById("PanelUI-remotetabs-tabslist"); + let node = tabList.firstChild.nextSibling; + let promiseTabOpened = BrowserTestUtils.waitForLocationChange(gBrowser, SAMPLE_TAB_URL); + node.click(); + await promiseTabOpened; + } + let showMoreButton; function clickShowMoreButton() { let promise = promiseObserverNotified("synced-tabs-menu:test:tabs-updated"); @@ -400,6 +412,6 @@ add_task(async function() { await clickShowMoreButton(); checkTabsPage(77, null); - - await hideOverflow(); + /* calling this will close the overflow menu */ + await checkCanOpenURL(); }); diff --git a/browser/components/extensions/ExtensionPopups.jsm b/browser/components/extensions/ExtensionPopups.jsm index 572f596c90ba..3140d9ee4f59 100644 --- a/browser/components/extensions/ExtensionPopups.jsm +++ b/browser/components/extensions/ExtensionPopups.jsm @@ -368,7 +368,7 @@ class BasePopup { this.panel.style.setProperty("--arrowpanel-background", background); if (background == "#fff") { // Set a usable default color that work with the default background-color. - this.panel.style.setProperty("--arrowpanel-border-color", "hsla(210,4%,10%,.05)"); + this.panel.style.setProperty("--arrowpanel-border-color", "hsla(210,4%,10%,.15)"); } this.background = background; } diff --git a/browser/components/nsBrowserGlue.js b/browser/components/nsBrowserGlue.js index c08990d53649..e8656cbf7ca6 100644 --- a/browser/components/nsBrowserGlue.js +++ b/browser/components/nsBrowserGlue.js @@ -2767,9 +2767,7 @@ const ContentPermissionIntegration = { return new PermissionUI.DesktopNotificationPermissionPrompt(request); } case "persistent-storage": { - if (Services.prefs.getBoolPref("browser.storageManager.enabled")) { - return new PermissionUI.PersistentStoragePermissionPrompt(request); - } + return new PermissionUI.PersistentStoragePermissionPrompt(request); } case "midi": { return new PermissionUI.MIDIPermissionPrompt(request); diff --git a/browser/components/preferences/in-content/privacy.js b/browser/components/preferences/in-content/privacy.js index 094d56e6a38a..675fef17de13 100644 --- a/browser/components/preferences/in-content/privacy.js +++ b/browser/components/preferences/in-content/privacy.js @@ -337,25 +337,21 @@ var gPrivacyPane = { } } - if (Services.prefs.getBoolPref("browser.storageManager.enabled")) { - Services.obs.addObserver(this, "sitedatamanager:sites-updated"); - Services.obs.addObserver(this, "sitedatamanager:updating-sites"); - let unload = () => { - window.removeEventListener("unload", unload); - Services.obs.removeObserver(this, "sitedatamanager:sites-updated"); - Services.obs.removeObserver(this, "sitedatamanager:updating-sites"); - }; - window.addEventListener("unload", unload); - SiteDataManager.updateSites(); - setEventListener("clearSiteDataButton", "command", - gPrivacyPane.clearSiteData); - setEventListener("siteDataSettings", "command", - gPrivacyPane.showSiteDataSettings); - let url = Services.urlFormatter.formatURLPref("app.support.baseURL") + "storage-permissions"; - document.getElementById("siteDataLearnMoreLink").setAttribute("href", url); - let siteDataGroup = document.getElementById("siteDataGroup"); - siteDataGroup.removeAttribute("data-hidden-from-search"); - } + Services.obs.addObserver(this, "sitedatamanager:sites-updated"); + Services.obs.addObserver(this, "sitedatamanager:updating-sites"); + let unload = () => { + window.removeEventListener("unload", unload); + Services.obs.removeObserver(this, "sitedatamanager:sites-updated"); + Services.obs.removeObserver(this, "sitedatamanager:updating-sites"); + }; + window.addEventListener("unload", unload); + SiteDataManager.updateSites(); + setEventListener("clearSiteDataButton", "command", + gPrivacyPane.clearSiteData); + setEventListener("siteDataSettings", "command", + gPrivacyPane.showSiteDataSettings); + let url = Services.urlFormatter.formatURLPref("app.support.baseURL") + "storage-permissions"; + document.getElementById("siteDataLearnMoreLink").setAttribute("href", url); let notificationInfoURL = Services.urlFormatter.formatURLPref("app.support.baseURL") + "push"; diff --git a/browser/components/preferences/in-content/privacy.xul b/browser/components/preferences/in-content/privacy.xul index 0ea479eb3a04..d7567e63b991 100644 --- a/browser/components/preferences/in-content/privacy.xul +++ b/browser/components/preferences/in-content/privacy.xul @@ -160,7 +160,7 @@ -