diff options
Diffstat (limited to 'toolkit')
11 files changed, 74 insertions, 51 deletions
diff --git a/toolkit/actors/SelectParent.sys.mjs b/toolkit/actors/SelectParent.sys.mjs index 6c41903994..7513940cab 100644 --- a/toolkit/actors/SelectParent.sys.mjs +++ b/toolkit/actors/SelectParent.sys.mjs @@ -385,6 +385,7 @@ export var SelectParentHelper = { break; case "fullscreen": + case "FullscreenWarningOnScreen": if (this._currentMenulist) { this._currentMenulist.menupopup.hidePopup(); } @@ -444,6 +445,7 @@ export var SelectParentHelper = { popup.ownerGlobal.addEventListener("mouseup", this, true); popup.ownerGlobal.addEventListener("keydown", this, true); popup.ownerGlobal.addEventListener("fullscreen", this, true); + popup.ownerGlobal.addEventListener("FullscreenWarningOnScreen", this, true); }, _unregisterListeners(popup) { @@ -454,6 +456,11 @@ export var SelectParentHelper = { popup.ownerGlobal.removeEventListener("mouseup", this, true); popup.ownerGlobal.removeEventListener("keydown", this, true); popup.ownerGlobal.removeEventListener("fullscreen", this, true); + popup.ownerGlobal.removeEventListener( + "FullscreenWarningOnScreen", + this, + true + ); }, /** diff --git a/toolkit/components/autocomplete/nsAutoCompleteController.cpp b/toolkit/components/autocomplete/nsAutoCompleteController.cpp index dc9754997b..a10f4ee62f 100644 --- a/toolkit/components/autocomplete/nsAutoCompleteController.cpp +++ b/toolkit/components/autocomplete/nsAutoCompleteController.cpp @@ -499,17 +499,24 @@ nsAutoCompleteController::HandleKeyNavigation(uint32_t aKey, bool* _retval) { } } - nsAutoString oldSearchString; - uint16_t oldResult = 0; - // Open the popup if there has been a previous non-errored search, or // else kick off a new search - if (!mResults.IsEmpty() && - NS_SUCCEEDED(mResults[0]->GetSearchResult(&oldResult)) && - oldResult != nsIAutoCompleteResult::RESULT_FAILURE && - NS_SUCCEEDED(mResults[0]->GetSearchString(oldSearchString)) && - oldSearchString.Equals(mSearchString, - nsCaseInsensitiveStringComparator)) { + bool hadPreviousSearch = false; + for (uint32_t i = 0; i < mResults.Length(); ++i) { + nsAutoString oldSearchString; + uint16_t oldResult = 0; + nsIAutoCompleteResult* oldResultObject = mResults[i]; + if (oldResultObject && + NS_SUCCEEDED(oldResultObject->GetSearchResult(&oldResult)) && + oldResult != nsIAutoCompleteResult::RESULT_FAILURE && + NS_SUCCEEDED(oldResultObject->GetSearchString(oldSearchString)) && + oldSearchString.Equals(mSearchString, + nsCaseInsensitiveStringComparator)) { + hadPreviousSearch = true; + break; + } + } + if (hadPreviousSearch) { if (mMatchCount) { OpenPopup(); } diff --git a/toolkit/components/messaging-system/schemas/SpecialMessageActionSchemas/test/browser/browser.ini b/toolkit/components/messaging-system/schemas/SpecialMessageActionSchemas/test/browser/browser.ini index 8cc00b7d18..4630a86977 100644 --- a/toolkit/components/messaging-system/schemas/SpecialMessageActionSchemas/test/browser/browser.ini +++ b/toolkit/components/messaging-system/schemas/SpecialMessageActionSchemas/test/browser/browser.ini @@ -20,6 +20,8 @@ support-files = skip-if = os != "win" [browser_sma_show_firefox_accounts.js] [browser_sma_show_migration_wizard.js] +skip-if = + os == "mac" && os_version == "10.15" && debug # Bug 1837646 [browser_sma.js] [browser_sma_docs.js] [browser_sma_accept_doh.js] diff --git a/toolkit/components/telemetry/app/TelemetryEnvironment.sys.mjs b/toolkit/components/telemetry/app/TelemetryEnvironment.sys.mjs index 26c4847770..c5d99acf60 100644 --- a/toolkit/components/telemetry/app/TelemetryEnvironment.sys.mjs +++ b/toolkit/components/telemetry/app/TelemetryEnvironment.sys.mjs @@ -1907,6 +1907,13 @@ EnvironmentCache.prototype = { this._osData.kernelVersion = forceToStringOrNull( getSysinfoProperty("kernel_version", null) ); + } else if (AppConstants.platform == "linux") { + this._osData.distro = forceToStringOrNull( + getSysinfoProperty("distro", null) + ); + this._osData.distroVersion = forceToStringOrNull( + getSysinfoProperty("distroVersion", null) + ); } else if (AppConstants.platform === "win") { // The path to the "UBR" key, queried to get additional version details on Windows. const WINDOWS_UBR_KEY_PATH = diff --git a/toolkit/components/telemetry/docs/data/environment.rst b/toolkit/components/telemetry/docs/data/environment.rst index b61c2a35e4..8b7c38ef89 100644 --- a/toolkit/components/telemetry/docs/data/environment.rst +++ b/toolkit/components/telemetry/docs/data/environment.rst @@ -160,7 +160,9 @@ Structure: installYear: <number>, // windows only or null on failure locale: <string>, // "en" or null on failure hasPrefetch: <bool>, // windows only, or null on failure - hasSuperfetch: <bool>, // windows only, or nul on failure + hasSuperfetch: <bool>, // windows only, or null on failure + distro: <string>, // linux only, or null on failure + distroVersion: <string>, // linux only, or null on failure }, hdd: { profile: { // hdd where the profile folder is located diff --git a/toolkit/components/telemetry/tests/unit/TelemetryEnvironmentTesting.sys.mjs b/toolkit/components/telemetry/tests/unit/TelemetryEnvironmentTesting.sys.mjs index da12fb74f5..3d07ae3e84 100644 --- a/toolkit/components/telemetry/tests/unit/TelemetryEnvironmentTesting.sys.mjs +++ b/toolkit/components/telemetry/tests/unit/TelemetryEnvironmentTesting.sys.mjs @@ -605,6 +605,9 @@ export var TelemetryEnvironmentTesting = { } } else if (gIsAndroid) { lazy.Assert.ok(this.checkNullOrString(osData.kernelVersion)); + } else if (gIsLinux) { + lazy.Assert.ok(this.checkNullOrString(osData.distro)); + lazy.Assert.ok(this.checkNullOrString(osData.distroVersion)); } for (let disk of EXPECTED_HDD_FIELDS) { diff --git a/toolkit/crashreporter/nsExceptionHandler.cpp b/toolkit/crashreporter/nsExceptionHandler.cpp index aca9248147..534f5ab48c 100644 --- a/toolkit/crashreporter/nsExceptionHandler.cpp +++ b/toolkit/crashreporter/nsExceptionHandler.cpp @@ -1532,21 +1532,20 @@ bool MinidumpCallback( WriteAnnotationsForMainProcessCrash(apiData, addrInfo, crashTime); } - if (!doReport) { -#ifdef XP_WIN - TerminateProcess(GetCurrentProcess(), 1); -#endif // XP_WIN - return returnValue; - } - + if (doReport && isSafeToDump) { + // We launch the crash reporter client/dialog only if we've been explicitly + // asked to report crashes and if we weren't already trying to unset the + // exception handler (which is indicated by isSafeToDump being false). #if defined(MOZ_WIDGET_ANDROID) // Android - returnValue = - LaunchCrashHandlerService(crashReporterPath.c_str(), minidumpPath); + returnValue = + LaunchCrashHandlerService(crashReporterPath.c_str(), minidumpPath); #else // Windows, Mac, Linux, etc... - returnValue = LaunchProgram(crashReporterPath.c_str(), minidumpPath); -# ifdef XP_WIN + returnValue = LaunchProgram(crashReporterPath.c_str(), minidumpPath); +#endif + } + +#ifdef XP_WIN TerminateProcess(GetCurrentProcess(), 1); -# endif #endif return returnValue; diff --git a/toolkit/mozapps/extensions/test/xpcshell/data/productaddons/content_signing_aus_ee.pem b/toolkit/mozapps/extensions/test/xpcshell/data/productaddons/content_signing_aus_ee.pem index 727f5fbf1f..e7933cc864 100644 --- a/toolkit/mozapps/extensions/test/xpcshell/data/productaddons/content_signing_aus_ee.pem +++ b/toolkit/mozapps/extensions/test/xpcshell/data/productaddons/content_signing_aus_ee.pem @@ -1,15 +1,15 @@ -----BEGIN CERTIFICATE----- -MIICRzCCAS+gAwIBAgIUHTYZB656hjXTPTOENW1guxnd52owDQYJKoZIhvcNAQEL -BQAwETEPMA0GA1UEAwwGaW50LUNBMCIYDzIwMjExMTI3MDAwMDAwWhgPMjAyNDAy -MDUwMDAwMDBaMA0xCzAJBgNVBAMMAmVlMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAE +MIICRzCCAS+gAwIBAgIUbctVfUWXUmfxzCRUBeXixFrQuOEwDQYJKoZIhvcNAQEL +BQAwETEPMA0GA1UEAwwGaW50LUNBMCIYDzIwMjIxMTI3MDAwMDAwWhgPMjAyNTAy +MDQwMDAwMDBaMA0xCzAJBgNVBAMMAmVlMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAE oWhyQzYrXHsYifN5FUYVocc/tI3uhj4CKRXbYI4lLeS3Ey2ozpjoMVNOapwMCwnI 1jmt6DIG5bqBNHOhH6Mw4F2oyW5Dg/4nhz2pcQO+KIjP8ALwWvcaH93Mg3SqbqnO o0UwQzATBgNVHSUEDDAKBggrBgEFBQcDAzAsBgNVHREEJTAjgiFhdXMuY29udGVu -dC1zaWduYXR1cmUubW96aWxsYS5vcmcwDQYJKoZIhvcNAQELBQADggEBALbaJLMG -X6B4ICeFWkEmwIHpDklRm17teCCZhUUTm9c2gBoz/32hBEp9XwIZVFcD4AVpJuKQ -8uE1iy2ZKemmgwg/wzq+ktwmQ0unlHyXvDPo/3mhrswEBxS8bmZLYZSUlOi9eZ82 -hsK5TfWVkRLdmLKr+7z4acfZL1Q6Y2yz26R2vSXGbvs6V0IkGIJyrzrAQjXkBS8j -Xx03wTI2z9PLNWyh4OQTfjDvcI79FpVIp0JsoV96Uil+L1opdXMc3QiXE5OggrGY -p6ZSEKBKw9N/8SOcK5iEEJ84qcG7uPnQWNBwgFeVVCqByDWKRhBmZB2CicCd5qvA -YSoHlKlTgCdmYCQ= +dC1zaWduYXR1cmUubW96aWxsYS5vcmcwDQYJKoZIhvcNAQELBQADggEBAF5IT9HZ +1ej+FAXbs2e/LOojJAulc2sxbeaa5V3rJWIiSq8iMj/ZV8dRaa96x3M6azdPiJjD +/VT4mNF9/KBC8YoEwfJe4A9MR8SmEIe/2EMIzmZVdTv1LYsKqRuuwvbGFssBj7lW +U9+V5KzjxtKU/RQfak5Iz+vnl6s4LIt92SLdOooPqDGj2K3FI9dg2Fqwm6vF+6zi +8yZ7/zg4PQcY6t2C6l0e9iAFM+wzhtTPq1AvFdq5hdOil6AS8Ivb0elMwBzsLjr5 +COLcKmCeRQ/8JFhJ48C+/MQkp3gbgXvVR3fcufufSC2YaLmMb7MIhaJwNCT0nO87 +ItpI1owSYrJOnQ0= -----END CERTIFICATE----- diff --git a/toolkit/mozapps/extensions/test/xpcshell/data/productaddons/content_signing_int.pem b/toolkit/mozapps/extensions/test/xpcshell/data/productaddons/content_signing_int.pem index d615eccf22..6c80b1be43 100644 --- a/toolkit/mozapps/extensions/test/xpcshell/data/productaddons/content_signing_int.pem +++ b/toolkit/mozapps/extensions/test/xpcshell/data/productaddons/content_signing_int.pem @@ -1,7 +1,7 @@ -----BEGIN CERTIFICATE----- -MIIC8TCCAdmgAwIBAgIUNZb51bNpKyzQtWTCj5zrdME7cKYwDQYJKoZIhvcNAQEL +MIIC8TCCAdmgAwIBAgIUGU8IXEaU5Al531xp9aITCfLjy/cwDQYJKoZIhvcNAQEL BQAwKTEnMCUGA1UEAwweeHBjc2hlbGwgc2lnbmVkIGFwcHMgdGVzdCByb290MCIY -DzIwMjExMTI3MDAwMDAwWhgPMjAyNDAyMDUwMDAwMDBaMBExDzANBgNVBAMMBmlu +DzIwMjIxMTI3MDAwMDAwWhgPMjAyNTAyMDQwMDAwMDBaMBExDzANBgNVBAMMBmlu dC1DQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALqIUahEjhbWQf1u togGNhA9PBPZ6uQ1SrTs9WhXbCR7wcclqODYH72xnAabbhqG8mvir1p1a2pkcQh6 pVqnRYf3HNUknAJ+zUP8HmnQOCApk6sgw0nk27lMwmtsDu0Vgg/xfq1pGrHTAjqL @@ -9,10 +9,10 @@ KkHup3DgDw2N/WYLK7AkkqR9uYhheZCxV5A90jvF4LhIH6g304hD7ycW2FW3Zlqq fgKQLzp7EIAGJMwcbJetlmFbt+KWEsB1MaMMkd20yvf8rR0l0wnvuRcOp2jhs3sv Im9p47SKlWEd7ibWJZ2rkQhONsscJAQsvxaLL+Xxj5kXMbiz/kkj+nJRxDHVA6za GAo17Y0CAwEAAaMlMCMwDAYDVR0TBAUwAwEB/zATBgNVHSUEDDAKBggrBgEFBQcD -AzANBgkqhkiG9w0BAQsFAAOCAQEAefvKJnF/4qRY9sf/jYCPhWyngBx6JhWFJKiy -IUHmejn9q/LUX3nskHXA4gAt+KF9hfk9Nx5naL5DaYOkvETawdrSw55Hvphi4MB2 -yHManuj+yplqr8rtDh8Tb2Wm/AeiBqKMTa4AFN9xPbKOrUAVgU+VsXlEIUmOzEI+ -E0HeeIoPCCa6vWPpwhKb4LUlVupe3toJHVbFSp2KcD4gCRsgK60lyqZBosAG8Sat -Vk7XLPv152/jl7j+pYqnlwabF/LEyVSqegVvvr481kgX8RyEjiPx2wNYYqUF3CPG -SE2lDXWy629KUGwTH9rUpayMqbfL5bQ9fSGA5vE9pT7vlbBaRg== +AzANBgkqhkiG9w0BAQsFAAOCAQEAQw8azGUnMeiHd6BYf8LZDK2dqsbVpWuDT/td +LNQcYStX4jgPSfSxm9Mg6osXBnEKF83qXoNeP6Zt84WSJDotEf0WlC5JfNZFCMry +vfd7odumxp/00LYaMbVK8Wz2LXXXwjsYF8xoZz6zq1DYviXIMluhcvCMepnCUnbP +hY12tcznmHiHCOoEB1qurCfW8MkIz/GkLa409i7wFE9rsAeuAKgtdTStY5g8qp5j +2KpmTzgfCeDgKwOSEUyW4YZXrvHYpPSnLiFsWvdxG3/D9aZExw1fipvzhpvqZYv9 +u2e7Qpt98Cd+Kitom/uDNmX9hv6E3eBThQI8QpTf43z6w/KD4A== -----END CERTIFICATE----- diff --git a/toolkit/mozapps/handling/content/appChooser.js b/toolkit/mozapps/handling/content/appChooser.js index f12ec333a2..2958ad68b4 100644 --- a/toolkit/mozapps/handling/content/appChooser.js +++ b/toolkit/mozapps/handling/content/appChooser.js @@ -13,7 +13,7 @@ class MozHandler extends window.MozElements.MozRichlistitem { static get markup() { return ` <vbox pack="center"> - <html:img height="32" width="32"/> + <html:img alt="" height="32" width="32" loading="lazy" /> </vbox> <vbox flex="1"> <label class="name"/> @@ -49,10 +49,6 @@ window.addEventListener("DOMContentLoaded", () => dialog.initialize(), { once: true, }); -let loadPromise = new Promise(resolve => { - window.addEventListener("load", resolve, { once: true }); -}); - let dialog = { /** * This function initializes the content of the dialog. @@ -131,9 +127,7 @@ let dialog = { if (app instanceof Ci.nsILocalHandlerApp) { // See if we have an nsILocalHandlerApp and set the icon let uri = Services.io.newFileURI(app.executable); - loadPromise.then(() => { - elm.setAttribute("image", "moz-icon://" + uri.spec + "?size=32"); - }); + elm.setAttribute("image", "moz-icon://" + uri.spec + "?size=32"); } else if (app instanceof Ci.nsIWebHandlerApp) { let uri = Services.io.newURI(app.uriTemplate); if (/^https?$/.test(uri.scheme)) { @@ -143,9 +137,7 @@ let dialog = { // and users won't visit the handler's URL template, they'll only // visit URLs derived from that template (i.e. with %s in the template // replaced by the URL of the content being handled). - loadPromise.then(() => { - elm.setAttribute("image", uri.prePath + "/favicon.ico"); - }); + elm.setAttribute("image", uri.prePath + "/favicon.ico"); } elm.setAttribute("description", uri.prePath); diff --git a/toolkit/mozapps/handling/content/handler.css b/toolkit/mozapps/handling/content/handler.css index d465ffa97d..2e60b1b41f 100644 --- a/toolkit/mozapps/handling/content/handler.css +++ b/toolkit/mozapps/handling/content/handler.css @@ -32,6 +32,10 @@ label, description { margin: 0 4px 16px; } +#chooser img:is(:-moz-broken, :not([src])) { + visibility: hidden; +} + /* avoid double inline margins when #description is nested: */ #description-box > #description { margin-inline: 0; |