diff --git a/accessible/base/nsAccessibilityService.h b/accessible/base/nsAccessibilityService.h index eec49b0353dd..d60bd31c0768 100644 --- a/accessible/base/nsAccessibilityService.h +++ b/accessible/base/nsAccessibilityService.h @@ -106,7 +106,7 @@ public: bool HasAccessible(nsIDOMNode* aDOMNode); /** - * Get a string equivalent for an accessilbe role value. + * Get a string equivalent for an accessible role value. */ void GetStringRole(uint32_t aRole, nsAString& aString); diff --git a/accessible/generic/Accessible.cpp b/accessible/generic/Accessible.cpp index e207816dce22..247e3e647064 100644 --- a/accessible/generic/Accessible.cpp +++ b/accessible/generic/Accessible.cpp @@ -2135,7 +2135,8 @@ Accessible::RemoveChild(Accessible* aChild) MOZ_DIAGNOSTIC_ASSERT(aChild->mParent, "No parent"); MOZ_DIAGNOSTIC_ASSERT(aChild->mParent == this, "Wrong parent"); MOZ_DIAGNOSTIC_ASSERT(aChild->mIndexInParent != -1, "Unbound child was given"); - MOZ_DIAGNOSTIC_ASSERT((mStateFlags & eKidsMutating) || aChild->IsDefunct() || aChild->IsDoc(), + MOZ_DIAGNOSTIC_ASSERT((mStateFlags & eKidsMutating) || aChild->IsDefunct() || + aChild->IsDoc() || IsApplication(), "Illicit children change"); int32_t index = static_cast(aChild->mIndexInParent); diff --git a/accessible/jsat/EventManager.jsm b/accessible/jsat/EventManager.jsm index 213e7f20d684..0a7116e5acd5 100644 --- a/accessible/jsat/EventManager.jsm +++ b/accessible/jsat/EventManager.jsm @@ -288,7 +288,7 @@ this.EventManager.prototype = { { let position = this.contentControl.vc.position; // Check if position is in the subtree of the DOCUMENT_LOAD_COMPLETE - // event's dialog accesible or accessible document + // event's dialog accessible or accessible document let subtreeRoot = aEvent.accessible.role === Roles.DIALOG ? aEvent.accessible : aEvent.accessibleDocument; if (aEvent.accessible === aEvent.accessibleDocument || diff --git a/accessible/tests/mochitest/attributes.js b/accessible/tests/mochitest/attributes.js index b1c59000e10f..29136da8cf4f 100644 --- a/accessible/tests/mochitest/attributes.js +++ b/accessible/tests/mochitest/attributes.js @@ -133,7 +133,7 @@ function testTextAttrs(aID, aOffset, aAttrs, aDefAttrs, var startOffset = { value: -1 }; var endOffset = { value: -1 }; - // do not include attributes exposed on hyper text accessbile + // do not include attributes exposed on hyper text accessible var attrs = getTextAttributes(aID, accessible, false, aOffset, startOffset, endOffset); @@ -147,7 +147,7 @@ function testTextAttrs(aID, aOffset, aAttrs, aDefAttrs, compareAttrs(errorMsg, attrs, aAttrs, aSkipUnexpectedAttrs); - // include attributes exposed on hyper text accessbile + // include attributes exposed on hyper text accessible var expectedAttrs = {}; for (var name in aAttrs) expectedAttrs[name] = aAttrs[name]; diff --git a/accessible/tests/mochitest/name/markuprules.xml b/accessible/tests/mochitest/name/markuprules.xml index 7f64ada3452d..80f8eab77e1d 100644 --- a/accessible/tests/mochitest/name/markuprules.xml +++ b/accessible/tests/mochitest/name/markuprules.xml @@ -72,7 +72,7 @@ Initially 'markup' element holds markup for all rules specified by 'ruleset' attribute. This allows us to check if the sequence of name computation rules is correct. Here 'ruleset' element defines two rules. We get the first rule - which means accesible name is computed from value of 'aria-label' attribute. + which means accessible name is computed from value of 'aria-label' attribute. Then we check accessible name for the test element and remove 'aria-label' attribute. After we get the second rule which means we should get IDs from 'aria-labelledby' attribute and compose accessible name from values of diff --git a/accessible/tests/mochitest/states.js b/accessible/tests/mochitest/states.js index 73ec126e3888..ad1f89943e87 100644 --- a/accessible/tests/mochitest/states.js +++ b/accessible/tests/mochitest/states.js @@ -162,7 +162,7 @@ function testStates(aAccOrElmOrID, aState, aExtraState, aAbsentState, } /** - * Tests an acessible and its sub tree for the passed in state bits. + * Tests an accessible and its sub tree for the passed in state bits. * Used to make sure that states are propagated to descendants, for example the * STATE_UNAVAILABLE from a container to its children. * diff --git a/addon-sdk/source/lib/sdk/event/core.js b/addon-sdk/source/lib/sdk/event/core.js index a0a73a699312..8d2d5951d1cd 100644 --- a/addon-sdk/source/lib/sdk/event/core.js +++ b/addon-sdk/source/lib/sdk/event/core.js @@ -102,7 +102,7 @@ function emitOnObject(target, type, thisArg, ...args) { let count = listenerCount; for (let [listener, added] of listeners) try { - // Since our contract unfortuantely requires that we not dispatch to + // Since our contract unfortunately requires that we not dispatch to // this event to listeners that were either added or removed during this // dispatch, we need to check when each listener was added. if (added >= count) diff --git a/browser/base/content/tabbrowser.xml b/browser/base/content/tabbrowser.xml index 5d1b66c11f38..3d6d62fb07b5 100644 --- a/browser/base/content/tabbrowser.xml +++ b/browser/base/content/tabbrowser.xml @@ -1149,8 +1149,6 @@ } if (!this._previewMode) { - this._recordTabAccess(this.mCurrentTab); - this.mCurrentTab.updateLastAccessed(); this.mCurrentTab.removeAttribute("unread"); oldTab.updateLastAccessed(); @@ -1344,45 +1342,6 @@ ]]> - - - - - - @@ -5198,7 +5157,6 @@ this.mCurrentTab.permanentKey = this.mCurrentBrowser.permanentKey; this.mCurrentTab._tPos = 0; this.mCurrentTab._fullyOpen = true; - this.mCurrentTab.cachePosition = 0; this.mCurrentTab.linkedBrowser = this.mCurrentBrowser; this._tabForBrowser.set(this.mCurrentBrowser, this.mCurrentTab); @@ -7256,8 +7214,6 @@ ]]> - Infinity - return this._creationTime; diff --git a/browser/base/content/test/captivePortal/browser_CaptivePortalWatcher.js b/browser/base/content/test/captivePortal/browser_CaptivePortalWatcher.js index c37f3cb8d254..36e25e5b713d 100644 --- a/browser/base/content/test/captivePortal/browser_CaptivePortalWatcher.js +++ b/browser/base/content/test/captivePortal/browser_CaptivePortalWatcher.js @@ -28,7 +28,7 @@ let testCasesForBothSuccessAndAbort = [ /** * A portal is detected when multiple browser windows are open but none - * have focus. A brower window is focused, then the portal is freed. + * have focus. A browser window is focused, then the portal is freed. * The portal tab should be added and focused when the window is * focused, and closed automatically when the success event is fired. * The captive portal notification should be shown in all windows upon diff --git a/browser/base/content/test/webextensions/browser.ini b/browser/base/content/test/webextensions/browser.ini index 1582e0189e4a..efe8f862cc7f 100644 --- a/browser/base/content/test/webextensions/browser.ini +++ b/browser/base/content/test/webextensions/browser.ini @@ -18,6 +18,7 @@ support-files = [browser_extension_sideloading.js] [browser_extension_update_background.js] +[browser_extension_update_background_noprompt.js] [browser_permissions_addons_search.js] [browser_permissions_installTrigger.js] [browser_permissions_local_file.js] diff --git a/browser/base/content/test/webextensions/browser_extension_update_background.js b/browser/base/content/test/webextensions/browser_extension_update_background.js index 958e53bef212..65752fba86e5 100644 --- a/browser/base/content/test/webextensions/browser_extension_update_background.js +++ b/browser/base/content/test/webextensions/browser_extension_update_background.js @@ -186,55 +186,3 @@ function checkNonDefaultIcon(icon) { add_task(() => backgroundUpdateTest(`${BASE}/browser_webext_update_icon1.xpi`, ID_ICON, checkNonDefaultIcon)); - -// Helper function to test an upgrade that should not show a prompt -async function testNoPrompt(origUrl, id) { - await SpecialPowers.pushPrefEnv({set: [ - // Turn on background updates - ["extensions.update.enabled", true], - - // Point updates to the local mochitest server - ["extensions.update.background.url", `${BASE}/browser_webext_update.json`], - ]}); - - // Install version 1.0 of the test extension - let addon = await promiseInstallAddon(origUrl); - - ok(addon, "Addon was installed"); - - let sawPopup = false; - PopupNotifications.panel.addEventListener("popupshown", - () => sawPopup = true, - {once: true}); - - // Trigger an update check and wait for the update to be applied. - let updatePromise = waitForUpdate(addon); - AddonManagerPrivate.backgroundUpdateCheck(); - await updatePromise; - - // There should be no notifications about the update - is(getBadgeStatus(), "", "Should not have addon alert badge"); - - await PanelUI.show(); - let addons = document.getElementById("PanelUI-footer-addons"); - is(addons.children.length, 0, "Have 0 updates in the PanelUI menu"); - await PanelUI.hide(); - - ok(!sawPopup, "Should not have seen permissions notification"); - - addon = await AddonManager.getAddonByID(id); - is(addon.version, "2.0", "Update should have applied"); - - addon.uninstall(); - await SpecialPowers.popPrefEnv(); -} - -// Test that an update that adds new non-promptable permissions is just -// applied without showing a notification dialog. -add_task(() => testNoPrompt(`${BASE}/browser_webext_update_perms1.xpi`, - ID_PERMS)); - -// Test that an update from a legacy extension to a webextension -// doesn't show a prompt even when the webextension uses -// promptable required permissions. -add_task(() => testNoPrompt(`${BASE}/browser_legacy.xpi`, ID_LEGACY)); diff --git a/browser/base/content/test/webextensions/browser_extension_update_background_noprompt.js b/browser/base/content/test/webextensions/browser_extension_update_background_noprompt.js new file mode 100644 index 000000000000..81f1145db89f --- /dev/null +++ b/browser/base/content/test/webextensions/browser_extension_update_background_noprompt.js @@ -0,0 +1,83 @@ +const {AddonManagerPrivate} = Cu.import("resource://gre/modules/AddonManager.jsm", {}); + +const ID_PERMS = "update_perms@tests.mozilla.org"; +const ID_LEGACY = "legacy_update@tests.mozilla.org"; + +function getBadgeStatus() { + let menuButton = document.getElementById("PanelUI-menu-button"); + return menuButton.getAttribute("badge-status"); +} + +// Set some prefs that apply to all the tests in this file +add_task(function* setup() { + yield SpecialPowers.pushPrefEnv({set: [ + // We don't have pre-pinned certificates for the local mochitest server + ["extensions.install.requireBuiltInCerts", false], + ["extensions.update.requireBuiltInCerts", false], + ]}); + + // Navigate away from the initial page so that about:addons always + // opens in a new tab during tests + gBrowser.selectedBrowser.loadURI("about:robots"); + yield BrowserTestUtils.browserLoaded(gBrowser.selectedBrowser); + + registerCleanupFunction(function*() { + // Return to about:blank when we're done + gBrowser.selectedBrowser.loadURI("about:blank"); + yield BrowserTestUtils.browserLoaded(gBrowser.selectedBrowser); + }); +}); + +hookExtensionsTelemetry(); + +// Helper function to test an upgrade that should not show a prompt +async function testNoPrompt(origUrl, id) { + await SpecialPowers.pushPrefEnv({set: [ + // Turn on background updates + ["extensions.update.enabled", true], + + // Point updates to the local mochitest server + ["extensions.update.background.url", `${BASE}/browser_webext_update.json`], + ]}); + + // Install version 1.0 of the test extension + let addon = await promiseInstallAddon(origUrl); + + ok(addon, "Addon was installed"); + + let sawPopup = false; + PopupNotifications.panel.addEventListener("popupshown", + () => sawPopup = true, + {once: true}); + + // Trigger an update check and wait for the update to be applied. + let updatePromise = waitForUpdate(addon); + AddonManagerPrivate.backgroundUpdateCheck(); + await updatePromise; + + // There should be no notifications about the update + is(getBadgeStatus(), "", "Should not have addon alert badge"); + + await PanelUI.show(); + let addons = document.getElementById("PanelUI-footer-addons"); + is(addons.children.length, 0, "Have 0 updates in the PanelUI menu"); + await PanelUI.hide(); + + ok(!sawPopup, "Should not have seen permissions notification"); + + addon = await AddonManager.getAddonByID(id); + is(addon.version, "2.0", "Update should have applied"); + + addon.uninstall(); + await SpecialPowers.popPrefEnv(); +} + +// Test that an update that adds new non-promptable permissions is just +// applied without showing a notification dialog. +add_task(() => testNoPrompt(`${BASE}/browser_webext_update_perms1.xpi`, + ID_PERMS)); + +// Test that an update from a legacy extension to a webextension +// doesn't show a prompt even when the webextension uses +// promptable required permissions. +add_task(() => testNoPrompt(`${BASE}/browser_legacy.xpi`, ID_LEGACY)); diff --git a/browser/extensions/flyweb/skin/flyweb-icon.svg b/browser/extensions/flyweb/skin/flyweb-icon.svg index 1b247e6458bb..239bc40ba4d9 100644 --- a/browser/extensions/flyweb/skin/flyweb-icon.svg +++ b/browser/extensions/flyweb/skin/flyweb-icon.svg @@ -1,6 +1,5 @@ - diff --git a/browser/extensions/shield-recipe-client/test/browser/browser_ClientEnvironment.js b/browser/extensions/shield-recipe-client/test/browser/browser_ClientEnvironment.js index 97c96ea5b753..79c65b2e4892 100644 --- a/browser/extensions/shield-recipe-client/test/browser/browser_ClientEnvironment.js +++ b/browser/extensions/shield-recipe-client/test/browser/browser_ClientEnvironment.js @@ -15,7 +15,7 @@ add_task(function* testTelemetry() { // Test it can access telemetry const telemetry = yield environment.telemetry; - is(typeof telemetry, "object", "Telemetry is accesible"); + is(typeof telemetry, "object", "Telemetry is accessible"); // Test it reads different types of telemetry is(telemetry.testfoo.payload.foo, 1, "value 'foo' is in mock telemetry"); diff --git a/browser/themes/shared/tabbrowser/connecting.svg b/browser/themes/shared/tabbrowser/connecting.svg index 6c5daf35fafe..e1154cae9595 100644 --- a/browser/themes/shared/tabbrowser/connecting.svg +++ b/browser/themes/shared/tabbrowser/connecting.svg @@ -1,5 +1,4 @@ - diff --git a/browser/themes/shared/tabbrowser/loading.svg b/browser/themes/shared/tabbrowser/loading.svg index 7ad351c613fc..f4a5430b165c 100644 --- a/browser/themes/shared/tabbrowser/loading.svg +++ b/browser/themes/shared/tabbrowser/loading.svg @@ -1,5 +1,4 @@ - diff --git a/devtools/client/animationinspector/test/doc_frame_script.js b/devtools/client/animationinspector/test/doc_frame_script.js index 6846c9b299b6..28c8ef53f97c 100644 --- a/devtools/client/animationinspector/test/doc_frame_script.js +++ b/devtools/client/animationinspector/test/doc_frame_script.js @@ -5,7 +5,7 @@ "use strict"; -// A helper frame-script for brower/devtools/animationinspector tests. +// A helper frame-script for browser/devtools/animationinspector tests. /** * Toggle (play or pause) one of the animation players of a given node. diff --git a/devtools/client/inspector/rules/test/doc_frame_script.js b/devtools/client/inspector/rules/test/doc_frame_script.js index 88da043f1dc8..11cacbd7fb68 100644 --- a/devtools/client/inspector/rules/test/doc_frame_script.js +++ b/devtools/client/inspector/rules/test/doc_frame_script.js @@ -5,7 +5,7 @@ "use strict"; -// A helper frame-script for brower/devtools/styleinspector tests. +// A helper frame-script for browser/devtools/styleinspector tests. // // Most listeners in the script expect "Test:"-namespaced messages from chrome, // then execute code upon receiving, and immediately send back a message. diff --git a/devtools/client/inspector/shared/test/doc_frame_script.js b/devtools/client/inspector/shared/test/doc_frame_script.js index aeb73a11527b..ff1a85a55b89 100644 --- a/devtools/client/inspector/shared/test/doc_frame_script.js +++ b/devtools/client/inspector/shared/test/doc_frame_script.js @@ -5,7 +5,7 @@ "use strict"; -// A helper frame-script for brower/devtools/styleinspector tests. +// A helper frame-script for browser/devtools/styleinspector tests. // // Most listeners in the script expect "Test:"-namespaced messages from chrome, // then execute code upon receiving, and immediately send back a message. diff --git a/devtools/client/responsive.html/docs/browser-swap.md b/devtools/client/responsive.html/docs/browser-swap.md index 75055ad4ef42..4b405c4a74ed 100644 --- a/devtools/client/responsive.html/docs/browser-swap.md +++ b/devtools/client/responsive.html/docs/browser-swap.md @@ -77,7 +77,6 @@ involved: * `gBrowser._callProgressListeners` with `onLocationChange` * `gBrowser._callProgressListeners` with `onSecurityChange` * `gBrowser._callProgressListeners` with `onUpdateCurrentBrowser` - * `gBrowser._recordTabAccess` * `gBrowser.updateTitlebar` * `gBrowser._callProgressListeners` with `onStateChange` * `gBrowser._setCloseKeyState` diff --git a/docshell/base/nsIDocShell.idl b/docshell/base/nsIDocShell.idl index 569d9a9b5276..9b6fd415b197 100644 --- a/docshell/base/nsIDocShell.idl +++ b/docshell/base/nsIDocShell.idl @@ -373,7 +373,7 @@ interface nsIDocShell : nsIDocShellTreeItem /* * The size, in CSS pixels, of the horizontal margins for the of an - * HTML document in this docshel; used to implement the marginwidth attribute + * HTML document in this docshell; used to implement the marginwidth attribute * on HTML /