From 0ce6c14b1b17b78e45c0592bd3e404adbc26ed3e Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Tue, 23 Apr 2024 06:29:08 +0200 Subject: Adding upstream version 125.0.2. Signed-off-by: Daniel Baumann --- browser/app/profile/firefox.js | 6 +- .../test/general/browser_save_link-perwindowpb.js | 6 +- .../browser_save_link_when_window_navigates.js | 2 +- .../content/test/general/browser_save_video.js | 2 +- .../general/navigating_window_with_download.html | 2 +- .../components/downloads/DownloadsCommon.sys.mjs | 2 +- .../components/downloads/DownloadsViewUI.sys.mjs | 2 +- .../test/browser/browser_download_overwrite.js | 2 +- .../browser/browser_firstPartyIsolation_saveAs.js | 1 - browser/components/syncedtabs/sidebar.xhtml | 5 +- browser/components/urlbar/UrlbarPrefs.sys.mjs | 7 +- .../urlbar/private/YelpSuggestions.sys.mjs | 18 +- .../quicksuggest/unit/test_quicksuggest_yelp.js | 359 ++++++++++++-- browser/config/version.txt | 2 +- browser/config/version_display.txt | 2 +- .../chrome/browser/downloads/downloads.properties | 4 +- browser/themes/shared/syncedtabs/sidebar.css | 7 +- config/milestone.txt | 2 +- dom/canvas/CanvasRenderingContext2D.cpp | 29 +- dom/canvas/CanvasRenderingContext2D.h | 22 +- .../en-US/chrome/security/security.properties | 2 +- dom/security/nsContentSecurityUtils.cpp | 48 +- dom/security/test/general/browser.toml | 10 - .../test/general/browser_test_http_download.js | 275 ----------- dom/security/test/general/http_download_page.html | 23 - dom/security/test/general/http_download_server.sjs | 20 - dom/security/test/https-only/browser_save_as.js | 10 +- .../browser_test_mixed_content_download.js | 2 +- dom/serviceworkers/test/browser_download.js | 2 +- .../tests/mochitest/mixedcontent/mochitest.toml | 1 - .../dumps/blocklists/addons-bloomfilters.json | 15 +- .../dumps/main/cookie-banner-rules-list.json | 255 +++++----- services/settings/dumps/main/search-config-v2.json | 542 ++++++++++----------- .../settings/dumps/main/search-telemetry-v2.json | 149 +++--- .../dumps/security-state/intermediates.json | 236 +-------- sourcestamp.txt | 4 +- ...download_allow_downloads.sub.tentative.html.ini | 4 + ...ad_allow_downloads.sub.tentative.https.html.ini | 4 - ...pen_download_allow_downloads.tentative.html.ini | 3 + ...wnload_allow_downloads.tentative.https.html.ini | 3 - ...ion_download_allow_downloads.sub.tentative.html | 52 ++ ...wnload_allow_downloads.sub.tentative.https.html | 52 -- ...ow_open_download_allow_downloads.tentative.html | 29 ++ ...n_download_allow_downloads.tentative.https.html | 29 -- .../test/browser/browser_staticPartition_saveAs.js | 2 - .../test/browser/file_saveAsPageInfo.html | 4 +- .../downloads/test/unit/test_DownloadLegacy.js | 2 - .../test/browser/browser_ext_downloads_referrer.js | 4 +- toolkit/components/nimbus/FeatureManifest.yaml | 5 +- .../pdfjs/test/browser_pdfjs_octet_stream.js | 2 +- toolkit/components/telemetry/Histograms.json | 10 +- .../mochitest/browser_download_idn_blocklist.js | 5 +- 52 files changed, 1043 insertions(+), 1243 deletions(-) delete mode 100644 dom/security/test/general/browser_test_http_download.js delete mode 100644 dom/security/test/general/http_download_page.html delete mode 100644 dom/security/test/general/http_download_server.sjs create mode 100644 testing/web-platform/meta/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_navigation_download_allow_downloads.sub.tentative.html.ini delete mode 100644 testing/web-platform/meta/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_navigation_download_allow_downloads.sub.tentative.https.html.ini create mode 100644 testing/web-platform/meta/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_window_open_download_allow_downloads.tentative.html.ini delete mode 100644 testing/web-platform/meta/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_window_open_download_allow_downloads.tentative.https.html.ini create mode 100644 testing/web-platform/tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_navigation_download_allow_downloads.sub.tentative.html delete mode 100644 testing/web-platform/tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_navigation_download_allow_downloads.sub.tentative.https.html create mode 100644 testing/web-platform/tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_window_open_download_allow_downloads.tentative.html delete mode 100644 testing/web-platform/tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_window_open_download_allow_downloads.tentative.https.html diff --git a/browser/app/profile/firefox.js b/browser/app/profile/firefox.js index 1ef5a05907..32cd57b0ed 100644 --- a/browser/app/profile/firefox.js +++ b/browser/app/profile/firefox.js @@ -634,9 +634,9 @@ pref("browser.urlbar.suggest.mdn", true); // Feature gate pref for Yelp suggestions in the urlbar. pref("browser.urlbar.yelp.featureGate", false); -// The minimum prefix length of yelp query the user must type to trigger -// the suggestion. -pref("browser.urlbar.yelp.minKeywordLength", 5); +// The minimum prefix length of a Yelp keyword the user must type to trigger the +// suggestion. 0 means the min length should be taken from Nimbus. +pref("browser.urlbar.yelp.minKeywordLength", 0); // Whether Yelp suggestions should be shown as top picks. pref("browser.urlbar.yelp.priority", false); diff --git a/browser/base/content/test/general/browser_save_link-perwindowpb.js b/browser/base/content/test/general/browser_save_link-perwindowpb.js index 234813ca2c..d5a0eef86c 100644 --- a/browser/base/content/test/general/browser_save_link-perwindowpb.js +++ b/browser/base/content/test/general/browser_save_link-perwindowpb.js @@ -14,7 +14,7 @@ function triggerSave(aWindow, aCallback) { let testBrowser = aWindow.gBrowser.selectedBrowser; // This page sets a cookie if and only if a cookie does not exist yet let testURI = - "https://example.com/browser/browser/base/content/test/general/bug792517-2.html"; + "http://mochi.test:8888/browser/browser/base/content/test/general/bug792517-2.html"; BrowserTestUtils.startLoadingURIString(testBrowser, testURI); BrowserTestUtils.browserLoaded(testBrowser, false, testURI).then(() => { waitForFocus(function () { @@ -132,7 +132,7 @@ function test() { info("onExamineResponse with " + channel.URI.spec); if ( channel.URI.spec != - "https://example.com/browser/browser/base/content/test/general/bug792517.sjs" + "http://mochi.test:8888/browser/browser/base/content/test/general/bug792517.sjs" ) { info("returning"); return; @@ -158,7 +158,7 @@ function test() { info("onModifyRequest with " + channel.URI.spec); if ( channel.URI.spec != - "https://example.com/browser/browser/base/content/test/general/bug792517.sjs" + "http://mochi.test:8888/browser/browser/base/content/test/general/bug792517.sjs" ) { return; } diff --git a/browser/base/content/test/general/browser_save_link_when_window_navigates.js b/browser/base/content/test/general/browser_save_link_when_window_navigates.js index 65daef5f1b..1c68b91ddf 100644 --- a/browser/base/content/test/general/browser_save_link_when_window_navigates.js +++ b/browser/base/content/test/general/browser_save_link_when_window_navigates.js @@ -36,7 +36,7 @@ function triggerSave(aWindow, aCallback) { var fileName; let testBrowser = aWindow.gBrowser.selectedBrowser; let testURI = - "https://example.com/browser/browser/base/content/test/general/navigating_window_with_download.html"; + "http://mochi.test:8888/browser/browser/base/content/test/general/navigating_window_with_download.html"; // Only observe the UTC dialog if it's enabled by pref if (Services.prefs.getBoolPref(ALWAYS_ASK_PREF)) { diff --git a/browser/base/content/test/general/browser_save_video.js b/browser/base/content/test/general/browser_save_video.js index e9701d7023..d8dc5c6e2e 100644 --- a/browser/base/content/test/general/browser_save_video.js +++ b/browser/base/content/test/general/browser_save_video.js @@ -14,7 +14,7 @@ add_task(async function () { let loadPromise = BrowserTestUtils.browserLoaded(gBrowser.selectedBrowser); BrowserTestUtils.startLoadingURIString( gBrowser, - "https://example.com/browser/browser/base/content/test/general/web_video.html" + "http://mochi.test:8888/browser/browser/base/content/test/general/web_video.html" ); await loadPromise; diff --git a/browser/base/content/test/general/navigating_window_with_download.html b/browser/base/content/test/general/navigating_window_with_download.html index 8649168cf5..6b0918941f 100644 --- a/browser/base/content/test/general/navigating_window_with_download.html +++ b/browser/base/content/test/general/navigating_window_with_download.html @@ -2,6 +2,6 @@ This window will navigate while you're downloading something - + diff --git a/browser/components/downloads/DownloadsCommon.sys.mjs b/browser/components/downloads/DownloadsCommon.sys.mjs index 776d219ae7..d88b2c4cd0 100644 --- a/browser/components/downloads/DownloadsCommon.sys.mjs +++ b/browser/components/downloads/DownloadsCommon.sys.mjs @@ -696,7 +696,7 @@ export var DownloadsCommon = { message = s.unblockTypePotentiallyUnwanted2; break; case lazy.Downloads.Error.BLOCK_VERDICT_INSECURE: - message = s.unblockInsecure3; + message = s.unblockInsecure2; break; default: // Assume Downloads.Error.BLOCK_VERDICT_MALWARE diff --git a/browser/components/downloads/DownloadsViewUI.sys.mjs b/browser/components/downloads/DownloadsViewUI.sys.mjs index ffcd3b61fa..9c6bd17d63 100644 --- a/browser/components/downloads/DownloadsViewUI.sys.mjs +++ b/browser/components/downloads/DownloadsViewUI.sys.mjs @@ -888,7 +888,7 @@ DownloadsViewUI.DownloadElementShell.prototype = { case lazy.Downloads.Error.BLOCK_VERDICT_INSECURE: return [ s.blockedPotentiallyInsecure, - [s.unblockInsecure3, s.unblockTip2], + [s.unblockInsecure2, s.unblockTip2], ]; case lazy.Downloads.Error.BLOCK_VERDICT_POTENTIALLY_UNWANTED: return [ diff --git a/browser/components/downloads/test/browser/browser_download_overwrite.js b/browser/components/downloads/test/browser/browser_download_overwrite.js index b1de07b5ed..8246ec9f55 100644 --- a/browser/components/downloads/test/browser/browser_download_overwrite.js +++ b/browser/components/downloads/test/browser/browser_download_overwrite.js @@ -5,7 +5,7 @@ const TEST_ROOT = getRootDirectory(gTestPath).replace( "chrome://mochitests/content", - "https://example.com" + "http://example.com" ); var MockFilePicker = SpecialPowers.MockFilePicker; diff --git a/browser/components/originattributes/test/browser/browser_firstPartyIsolation_saveAs.js b/browser/components/originattributes/test/browser/browser_firstPartyIsolation_saveAs.js index c54bb1aec1..0266765782 100644 --- a/browser/components/originattributes/test/browser/browser_firstPartyIsolation_saveAs.js +++ b/browser/components/originattributes/test/browser/browser_firstPartyIsolation_saveAs.js @@ -38,7 +38,6 @@ add_setup(async function () { set: [ ["privacy.firstparty.isolate", true], ["dom.security.https_first", false], - ["dom.block_download_insecure", false], ], }); diff --git a/browser/components/syncedtabs/sidebar.xhtml b/browser/components/syncedtabs/sidebar.xhtml index 8091f61aee..7790620f94 100644 --- a/browser/components/syncedtabs/sidebar.xhtml +++ b/browser/components/syncedtabs/sidebar.xhtml @@ -15,7 +15,10 @@ + diff --git a/browser/components/urlbar/UrlbarPrefs.sys.mjs b/browser/components/urlbar/UrlbarPrefs.sys.mjs index c521264fa5..022d0b1c7c 100644 --- a/browser/components/urlbar/UrlbarPrefs.sys.mjs +++ b/browser/components/urlbar/UrlbarPrefs.sys.mjs @@ -485,9 +485,9 @@ const PREF_URLBAR_DEFAULTS = new Map([ // Feature gate pref for Yelp suggestions in the urlbar. ["yelp.featureGate", false], - // The minimum number of characters the user must type to trigger a Yelp - // suggestion (excluding full keywords that are shorter than this). - ["yelp.minKeywordLength", 5], + // The minimum prefix length of a Yelp keyword the user must type to trigger + // the suggestion. 0 means the min length should be taken from Nimbus. + ["yelp.minKeywordLength", 0], // Whether Yelp suggestions should be shown as top picks. This is a fallback // pref for the `yelpSuggestPriority` Nimbus variable. @@ -526,6 +526,7 @@ const NIMBUS_DEFAULTS = { weatherKeywordsMinimumLength: 0, weatherKeywordsMinimumLengthCap: 0, weatherSimpleUI: false, + yelpMinKeywordLength: 0, }; // Maps preferences under browser.urlbar.suggest to behavior names, as defined diff --git a/browser/components/urlbar/private/YelpSuggestions.sys.mjs b/browser/components/urlbar/private/YelpSuggestions.sys.mjs index a1ac13177b..4cf454c71d 100644 --- a/browser/components/urlbar/private/YelpSuggestions.sys.mjs +++ b/browser/components/urlbar/private/YelpSuggestions.sys.mjs @@ -227,19 +227,11 @@ export class YelpSuggestions extends BaseFeature { } get #minKeywordLength() { - // It's unusual to get both a Nimbus variable and its fallback pref at the - // same time, but we have a good reason. To recap, if a variable doesn't - // have a value, then the value of its fallback will be returned; otherwise - // the variable value will be returned. That's usually what we want, but for - // Yelp, we set the pref each time the user clicks "show less frequently", - // and we want the variable to act only as an initial min length. In other - // words, if the pref has a user value (because we set it), use it; - // otherwise use the initial value defined by the variable. - return Math.max( - lazy.UrlbarPrefs.get("yelpMinKeywordLength") || 0, - lazy.UrlbarPrefs.get("yelp.minKeywordLength") || 0, - 0 - ); + let minLength = + lazy.UrlbarPrefs.get("yelp.minKeywordLength") || + lazy.UrlbarPrefs.get("yelpMinKeywordLength") || + 0; + return Math.max(minLength, 0); } async #fetchCity() { diff --git a/browser/components/urlbar/tests/quicksuggest/unit/test_quicksuggest_yelp.js b/browser/components/urlbar/tests/quicksuggest/unit/test_quicksuggest_yelp.js index aa9c700f1c..3c61e9afea 100644 --- a/browser/components/urlbar/tests/quicksuggest/unit/test_quicksuggest_yelp.js +++ b/browser/components/urlbar/tests/quicksuggest/unit/test_quicksuggest_yelp.js @@ -26,6 +26,21 @@ const REMOTE_SETTINGS_RECORDS = [ }, ]; +const AB_RESULT = { + url: "https://www.yelp.com/search?find_desc=ab&find_loc=Yokohama%2C+Kanagawa", + originalUrl: "https://www.yelp.com/search?find_desc=ab", + displayUrl: "yelp.com/search?find_desc=ab&find_loc=Yokohama,+Kanagawa", + title: "ab in Yokohama, Kanagawa", +}; + +const ALONGERKEYWORD_RESULT = { + url: "https://www.yelp.com/search?find_desc=alongerkeyword&find_loc=Yokohama%2C+Kanagawa", + originalUrl: "https://www.yelp.com/search?find_desc=alongerkeyword", + displayUrl: + "yelp.com/search?find_desc=alongerkeyword&find_loc=Yokohama,+Kanagawa", + title: "alongerkeyword in Yokohama, Kanagawa", +}; + add_setup(async function () { Services.prefs.setBoolPref("browser.search.suggest.enabled", false); @@ -139,12 +154,7 @@ add_task(async function basic() { { description: "Subject exact match with length < minKeywordLength", query: "ab", - expected: { - url: "https://www.yelp.com/search?find_desc=ab&find_loc=Yokohama%2C+Kanagawa", - originalUrl: "https://www.yelp.com/search?find_desc=ab", - displayUrl: "yelp.com/search?find_desc=ab&find_loc=Yokohama,+Kanagawa", - title: "ab in Yokohama, Kanagawa", - }, + expected: AB_RESULT, }, { description: @@ -174,65 +184,35 @@ add_task(async function basic() { { description: "Query length == minKeywordLength, subject not exact match", query: "along", - expected: { - url: "https://www.yelp.com/search?find_desc=alongerkeyword&find_loc=Yokohama%2C+Kanagawa", - originalUrl: "https://www.yelp.com/search?find_desc=alongerkeyword", - displayUrl: - "yelp.com/search?find_desc=alongerkeyword&find_loc=Yokohama,+Kanagawa", - title: "alongerkeyword in Yokohama, Kanagawa", - }, + expected: ALONGERKEYWORD_RESULT, }, { description: "Query length == minKeywordLength, subject not exact match, showLessFrequentlyCount non-zero", query: "along", showLessFrequentlyCount: 1, - expected: { - url: "https://www.yelp.com/search?find_desc=alongerkeyword&find_loc=Yokohama%2C+Kanagawa", - originalUrl: "https://www.yelp.com/search?find_desc=alongerkeyword", - displayUrl: - "yelp.com/search?find_desc=alongerkeyword&find_loc=Yokohama,+Kanagawa", - title: "alongerkeyword in Yokohama, Kanagawa", - }, + expected: ALONGERKEYWORD_RESULT, }, { description: "Query length == minKeywordLength + showLessFrequentlyCount, subject not exact match", query: "alonge", showLessFrequentlyCount: 1, - expected: { - url: "https://www.yelp.com/search?find_desc=alongerkeyword&find_loc=Yokohama%2C+Kanagawa", - originalUrl: "https://www.yelp.com/search?find_desc=alongerkeyword", - displayUrl: - "yelp.com/search?find_desc=alongerkeyword&find_loc=Yokohama,+Kanagawa", - title: "alongerkeyword in Yokohama, Kanagawa", - }, + expected: ALONGERKEYWORD_RESULT, }, { description: "Query length < minKeywordLength + showLessFrequentlyCount, subject not exact match", query: "alonge", showLessFrequentlyCount: 2, - expected: { - url: "https://www.yelp.com/search?find_desc=alongerkeyword&find_loc=Yokohama%2C+Kanagawa", - originalUrl: "https://www.yelp.com/search?find_desc=alongerkeyword", - displayUrl: - "yelp.com/search?find_desc=alongerkeyword&find_loc=Yokohama,+Kanagawa", - title: "alongerkeyword in Yokohama, Kanagawa", - }, + expected: ALONGERKEYWORD_RESULT, }, { description: "Query length == minKeywordLength + showLessFrequentlyCount, subject not exact match", query: "alonger", showLessFrequentlyCount: 2, - expected: { - url: "https://www.yelp.com/search?find_desc=alongerkeyword&find_loc=Yokohama%2C+Kanagawa", - originalUrl: "https://www.yelp.com/search?find_desc=alongerkeyword", - displayUrl: - "yelp.com/search?find_desc=alongerkeyword&find_loc=Yokohama,+Kanagawa", - title: "alongerkeyword in Yokohama, Kanagawa", - }, + expected: ALONGERKEYWORD_RESULT, }, ]; @@ -632,8 +612,9 @@ add_task(async function notInterested() { // Tests the "show less frequently" behavior. add_task(async function showLessFrequently() { - UrlbarPrefs.set("yelp.showLessFrequentlyCount", 0); - UrlbarPrefs.set("yelp.minKeywordLength", 0); + UrlbarPrefs.clear("yelp.showLessFrequentlyCount"); + UrlbarPrefs.clear("yelp.minKeywordLength"); + let cleanUpNimbus = await UrlbarTestUtils.initNimbusFeature({ yelpMinKeywordLength: 0, yelpShowLessFrequentlyCap: 3, @@ -790,6 +771,298 @@ add_task(async function rustProviders() { await QuickSuggestTestUtils.forceSync(); }); +add_task(async function minKeywordLength_noPrefValue() { + await doMinKeywordLengthTest({ + // expected min length: 5 (Nimbus value) + prefValue: null, + nimbusValue: 5, + tests: [ + { + query: "al", + expected: null, + }, + { + query: "alo", + expected: null, + }, + { + query: "alon", + expected: null, + }, + { + query: "along", + expected: ALONGERKEYWORD_RESULT, + }, + { + query: "alongerkeyword", + expected: ALONGERKEYWORD_RESULT, + }, + { + query: "best a", + expected: null, + }, + { + query: "best al", + expected: { + url: "https://www.yelp.com/search?find_desc=best+alongerkeyword&find_loc=Yokohama%2C+Kanagawa", + originalUrl: + "https://www.yelp.com/search?find_desc=best+alongerkeyword", + displayUrl: + "yelp.com/search?find_desc=best+alongerkeyword&find_loc=Yokohama,+Kanagawa", + title: "best alongerkeyword in Yokohama, Kanagawa", + }, + }, + { + query: "ab", + expected: AB_RESULT, + }, + ], + }); +}); + +add_task(async function minKeywordLength_smallerPrefValue() { + await doMinKeywordLengthTest({ + // expected min length: 4 (pref value) + prefValue: 4, + nimbusValue: 5, + tests: [ + { + query: "al", + expected: null, + }, + { + query: "alo", + expected: null, + }, + { + query: "alon", + expected: ALONGERKEYWORD_RESULT, + }, + { + query: "along", + expected: ALONGERKEYWORD_RESULT, + }, + { + query: "alongerkeyword", + expected: ALONGERKEYWORD_RESULT, + }, + { + query: "best a", + expected: null, + }, + { + query: "best al", + expected: { + url: "https://www.yelp.com/search?find_desc=best+alongerkeyword&find_loc=Yokohama%2C+Kanagawa", + originalUrl: + "https://www.yelp.com/search?find_desc=best+alongerkeyword", + displayUrl: + "yelp.com/search?find_desc=best+alongerkeyword&find_loc=Yokohama,+Kanagawa", + title: "best alongerkeyword in Yokohama, Kanagawa", + }, + }, + { + query: "ab", + expected: AB_RESULT, + }, + ], + }); +}); + +add_task(async function minKeywordLength_largerPrefValue() { + await doMinKeywordLengthTest({ + // expected min length: 6 (pref value) + prefValue: 6, + nimbusValue: 5, + tests: [ + { + query: "al", + expected: null, + }, + { + query: "alo", + expected: null, + }, + { + query: "alon", + expected: null, + }, + { + query: "along", + expected: null, + }, + { + query: "alonge", + expected: ALONGERKEYWORD_RESULT, + }, + { + query: "alongerkeyword", + expected: ALONGERKEYWORD_RESULT, + }, + { + query: "best a", + expected: null, + }, + { + query: "best al", + expected: { + url: "https://www.yelp.com/search?find_desc=best+alongerkeyword&find_loc=Yokohama%2C+Kanagawa", + originalUrl: + "https://www.yelp.com/search?find_desc=best+alongerkeyword", + displayUrl: + "yelp.com/search?find_desc=best+alongerkeyword&find_loc=Yokohama,+Kanagawa", + title: "best alongerkeyword in Yokohama, Kanagawa", + }, + }, + { + query: "ab", + expected: AB_RESULT, + }, + ], + }); +}); + +add_task(async function minKeywordLength_onlyPrefValue() { + await doMinKeywordLengthTest({ + // expected min length: 5 (pref value) + prefValue: 5, + nimbusValue: null, + tests: [ + { + query: "al", + expected: null, + }, + { + query: "alo", + expected: null, + }, + { + query: "alon", + expected: null, + }, + { + query: "along", + expected: ALONGERKEYWORD_RESULT, + }, + { + query: "alongerkeyword", + expected: ALONGERKEYWORD_RESULT, + }, + { + query: "best a", + expected: null, + }, + { + query: "best al", + expected: { + url: "https://www.yelp.com/search?find_desc=best+alongerkeyword&find_loc=Yokohama%2C+Kanagawa", + originalUrl: + "https://www.yelp.com/search?find_desc=best+alongerkeyword", + displayUrl: + "yelp.com/search?find_desc=best+alongerkeyword&find_loc=Yokohama,+Kanagawa", + title: "best alongerkeyword in Yokohama, Kanagawa", + }, + }, + { + query: "ab", + expected: AB_RESULT, + }, + ], + }); +}); + +// When no min length is defined in Nimbus or the pref, we should fall back to +// the hardcoded value of 2 in the Rust component. +add_task(async function minKeywordLength_noNimbusOrPrefValue() { + await doMinKeywordLengthTest({ + // expected min length: 2 (hardcoded) + prefValue: null, + nimbusValue: null, + tests: [ + { + query: "al", + expected: ALONGERKEYWORD_RESULT, + }, + { + query: "alo", + expected: ALONGERKEYWORD_RESULT, + }, + { + query: "alon", + expected: ALONGERKEYWORD_RESULT, + }, + { + query: "along", + expected: ALONGERKEYWORD_RESULT, + }, + { + query: "alongerkeyword", + expected: ALONGERKEYWORD_RESULT, + }, + { + query: "best a", + expected: null, + }, + { + query: "best al", + expected: { + url: "https://www.yelp.com/search?find_desc=best+alongerkeyword&find_loc=Yokohama%2C+Kanagawa", + originalUrl: + "https://www.yelp.com/search?find_desc=best+alongerkeyword", + displayUrl: + "yelp.com/search?find_desc=best+alongerkeyword&find_loc=Yokohama,+Kanagawa", + title: "best alongerkeyword in Yokohama, Kanagawa", + }, + }, + { + query: "ab", + expected: AB_RESULT, + }, + ], + }); +}); + +async function doMinKeywordLengthTest({ prefValue, nimbusValue, tests }) { + // Set or clear the pref. + let originalPrefValue = Services.prefs.prefHasUserValue( + "browser.urlbar.yelp.minKeywordLength" + ) + ? UrlbarPrefs.get("yelp.minKeywordLength") + : null; + if (typeof prefValue == "number") { + UrlbarPrefs.set("yelp.minKeywordLength", prefValue); + } else { + UrlbarPrefs.clear("yelp.minKeywordLength"); + } + + // Set up Nimbus. + let cleanUpNimbus; + if (typeof nimbusValue == "number") { + cleanUpNimbus = await UrlbarTestUtils.initNimbusFeature({ + yelpMinKeywordLength: nimbusValue, + }); + } + + for (let { query, expected } of tests) { + info("Running min keyword length test with query: " + query); + await check_results({ + context: createContext(query, { + providers: [UrlbarProviderQuickSuggest.name], + isPrivate: false, + }), + matches: expected ? [makeExpectedResult(expected)] : [], + }); + } + + await cleanUpNimbus?.(); + + if (originalPrefValue === null) { + UrlbarPrefs.clear("yelp.minKeywordLength"); + } else { + UrlbarPrefs.set("yelp.minKeywordLength", originalPrefValue); + } +} + function makeExpectedResult({ url, title, diff --git a/browser/config/version.txt b/browser/config/version.txt index f88f4e2aa4..d588d3be0c 100644 --- a/browser/config/version.txt +++ b/browser/config/version.txt @@ -1 +1 @@ -125.0.1 +125.0.2 diff --git a/browser/config/version_display.txt b/browser/config/version_display.txt index f88f4e2aa4..d588d3be0c 100644 --- a/browser/config/version_display.txt +++ b/browser/config/version_display.txt @@ -1 +1 @@ -125.0.1 +125.0.2 diff --git a/browser/locales/en-US/chrome/browser/downloads/downloads.properties b/browser/locales/en-US/chrome/browser/downloads/downloads.properties index d93941e90a..308d9f8f0b 100644 --- a/browser/locales/en-US/chrome/browser/downloads/downloads.properties +++ b/browser/locales/en-US/chrome/browser/downloads/downloads.properties @@ -47,7 +47,7 @@ fileDeleted=File deleted # LOCALIZATION NOTE (unblockHeaderUnblock, unblockHeaderOpen, # unblockTypeMalware, unblockTypePotentiallyUnwanted2, # unblockTypeUncommon2, unblockTip2, unblockButtonOpen, -# unblockButtonUnblock, unblockButtonConfirmBlock, unblockInsecure3): +# unblockButtonUnblock, unblockButtonConfirmBlock, unblockInsecure2): # These strings are displayed in the dialog shown when the user asks a blocked # download to be unblocked. The severity of the threat is expressed in # descending order by the unblockType strings, it is higher for files detected @@ -57,7 +57,7 @@ unblockHeaderOpen=Are you sure you want to open this file? unblockTypeMalware=This file contains a virus or other malware that will harm your computer. unblockTypePotentiallyUnwanted2=This file is disguised as a helpful download, but it can make unexpected changes to your programs and settings. unblockTypeUncommon2=This file is not commonly downloaded and may not be safe to open. It may contain a virus or make unexpected changes to your programs and settings. -unblockInsecure3=You are trying to download this file on a connection that’s not secure. If you continue, the file might be changed, used to steal your info or harm your device. +unblockInsecure2=The download is offered over HTTP even though the current document was delivered over a secure HTTPS connection. If you proceed, the download may be corrupted or tampered with during the download process. unblockTip2=You can search for an alternate download source or try again later. unblockButtonOpen=Open unblockButtonUnblock=Allow download diff --git a/browser/themes/shared/syncedtabs/sidebar.css b/browser/themes/shared/syncedtabs/sidebar.css index c07c509077..7cdd1aa5c8 100644 --- a/browser/themes/shared/syncedtabs/sidebar.css +++ b/browser/themes/shared/syncedtabs/sidebar.css @@ -237,17 +237,12 @@ body { .deck .instructions { text-align: center; - color: GrayText; + color: var(--text-color-deemphasized); padding: 0 11px; max-width: 15em; margin: 0 auto; } -:root[lwt-sidebar] .deck .instructions { - color: inherit; - opacity: .6; -} - .deck .button { display: block; background-color: #0060df; diff --git a/config/milestone.txt b/config/milestone.txt index 40b4883e49..86d5c106bb 100644 --- a/config/milestone.txt +++ b/config/milestone.txt @@ -10,4 +10,4 @@ # hardcoded milestones in the tree from these two files. #-------------------------------------------------------- -125.0.1 +125.0.2 diff --git a/dom/canvas/CanvasRenderingContext2D.cpp b/dom/canvas/CanvasRenderingContext2D.cpp index 529466cc81..62f6e6443d 100644 --- a/dom/canvas/CanvasRenderingContext2D.cpp +++ b/dom/canvas/CanvasRenderingContext2D.cpp @@ -3463,7 +3463,9 @@ void CanvasRenderingContext2D::ArcTo(double aX1, double aY1, double aX2, return aError.ThrowIndexSizeError("Negative radius"); } - EnsureWritablePath(); + if (!EnsureWritablePath()) { + return; + } // Current point in user space! Point p0 = mPathBuilder->CurrentPoint(); @@ -3535,7 +3537,9 @@ void CanvasRenderingContext2D::Arc(double aX, double aY, double aR, return; } - EnsureWritablePath(); + if (!EnsureWritablePath()) { + return; + } EnsureActivePath(); @@ -3545,7 +3549,9 @@ void CanvasRenderingContext2D::Arc(double aX, double aY, double aR, void CanvasRenderingContext2D::Rect(double aX, double aY, double aW, double aH) { - EnsureWritablePath(); + if (!EnsureWritablePath()) { + return; + } if (!std::isfinite(aX) || !std::isfinite(aY) || !std::isfinite(aW) || !std::isfinite(aH)) { @@ -3741,7 +3747,9 @@ void CanvasRenderingContext2D::RoundRect( const UnrestrictedDoubleOrDOMPointInitOrUnrestrictedDoubleOrDOMPointInitSequence& aRadii, ErrorResult& aError) { - EnsureWritablePath(); + if (!EnsureWritablePath()) { + return; + } PathBuilder* builder = mPathBuilder; Maybe transform = Nothing(); @@ -3759,7 +3767,9 @@ void CanvasRenderingContext2D::Ellipse(double aX, double aY, double aRadiusX, return aError.ThrowIndexSizeError("Negative radius"); } - EnsureWritablePath(); + if (!EnsureWritablePath()) { + return; + } ArcToBezier(this, Point(aX, aY), Size(aRadiusX, aRadiusY), aStartAngle, aEndAngle, aAnticlockwise, aRotation); @@ -3780,10 +3790,14 @@ void CanvasRenderingContext2D::FlushPathTransform() { mPathTransformDirty = false; } -void CanvasRenderingContext2D::EnsureWritablePath() { +bool CanvasRenderingContext2D::EnsureWritablePath() { EnsureTarget(); + // NOTE: IsTargetValid() may be false here (mTarget == sErrorTarget) but we // go ahead and create a path anyway since callers depend on that. + if (NS_WARN_IF(!mTarget)) { + return false; + } FillRule fillRule = CurrentState().fillRule; @@ -3792,7 +3806,7 @@ void CanvasRenderingContext2D::EnsureWritablePath() { } if (mPathBuilder) { - return; + return true; } if (!mPath) { @@ -3800,6 +3814,7 @@ void CanvasRenderingContext2D::EnsureWritablePath() { } else { mPathBuilder = mPath->CopyToBuilder(fillRule); } + return true; } void CanvasRenderingContext2D::EnsureUserSpacePath( diff --git a/dom/canvas/CanvasRenderingContext2D.h b/dom/canvas/CanvasRenderingContext2D.h index 75a57ab14f..bfcbfccec2 100644 --- a/dom/canvas/CanvasRenderingContext2D.h +++ b/dom/canvas/CanvasRenderingContext2D.h @@ -364,14 +364,18 @@ class CanvasRenderingContext2D : public nsICanvasRenderingContextInternal, } void ClosePath() { - EnsureWritablePath(); + if (!EnsureWritablePath()) { + return; + } mPathBuilder->Close(); mPathPruned = false; } void MoveTo(double aX, double aY) { - EnsureWritablePath(); + if (!EnsureWritablePath()) { + return; + } mozilla::gfx::Point pos(ToFloat(aX), ToFloat(aY)); if (!pos.IsFinite()) { @@ -383,13 +387,17 @@ class CanvasRenderingContext2D : public nsICanvasRenderingContextInternal, } void LineTo(double aX, double aY) { - EnsureWritablePath(); + if (!EnsureWritablePath()) { + return; + } LineTo(mozilla::gfx::Point(ToFloat(aX), ToFloat(aY))); } void QuadraticCurveTo(double aCpx, double aCpy, double aX, double aY) { - EnsureWritablePath(); + if (!EnsureWritablePath()) { + return; + } mozilla::gfx::Point cp1(ToFloat(aCpx), ToFloat(aCpy)); mozilla::gfx::Point cp2(ToFloat(aX), ToFloat(aY)); @@ -408,7 +416,9 @@ class CanvasRenderingContext2D : public nsICanvasRenderingContextInternal, void BezierCurveTo(double aCp1x, double aCp1y, double aCp2x, double aCp2y, double aX, double aY) { - EnsureWritablePath(); + if (!EnsureWritablePath()) { + return; + } BezierTo(mozilla::gfx::Point(ToFloat(aCp1x), ToFloat(aCp1y)), mozilla::gfx::Point(ToFloat(aCp2x), ToFloat(aCp2y)), @@ -680,7 +690,7 @@ class CanvasRenderingContext2D : public nsICanvasRenderingContextInternal, /* This function ensures there is a writable pathbuilder available */ - void EnsureWritablePath(); + bool EnsureWritablePath(); // Ensures a path in UserSpace is available. void EnsureUserSpacePath( diff --git a/dom/locales/en-US/chrome/security/security.properties b/dom/locales/en-US/chrome/security/security.properties index fc58fe4f7d..c19fc2d2bf 100644 --- a/dom/locales/en-US/chrome/security/security.properties +++ b/dom/locales/en-US/chrome/security/security.properties @@ -44,7 +44,7 @@ LoadingMixedActiveContent2=Loading mixed (insecure) active content “%1$S” on LoadingMixedDisplayContent2=Loading mixed (insecure) display content “%1$S” on a secure page LoadingMixedDisplayObjectSubrequestDeprecation=Loading mixed (insecure) content “%1$S” within a plugin on a secure page is discouraged and will be blocked soon. # LOCALIZATION NOTE: "%S" is the URI of the insecure mixed content download -BlockedInsecureDownload = We blocked a download that’s not secure: “%S”. +MixedContentBlockedDownload = Blocked downloading insecure content “%S”. # LOCALIZATION NOTE: Do not translate "allow-scripts", "allow-same-origin", "sandbox" or "iframe" BothAllowScriptsAndSameOriginPresent=An iframe which has both allow-scripts and allow-same-origin for its sandbox attribute can remove its sandboxing. diff --git a/dom/security/nsContentSecurityUtils.cpp b/dom/security/nsContentSecurityUtils.cpp index 01e9c6d5db..d2c1b257bc 100644 --- a/dom/security/nsContentSecurityUtils.cpp +++ b/dom/security/nsContentSecurityUtils.cpp @@ -1670,25 +1670,37 @@ long nsContentSecurityUtils::ClassifyDownload( nsCOMPtr contentLocation; aChannel->GetURI(getter_AddRefs(contentLocation)); - if (StaticPrefs::dom_block_download_insecure()) { - // If we are not dealing with a potentially trustworthy origin, or a URI - // that is safe to be loaded like e.g. data:, then we block the load. - bool isInsecureDownload = - !nsMixedContentBlocker::IsPotentiallyTrustworthyOrigin( - contentLocation) && - !nsMixedContentBlocker::URISafeToBeLoadedInSecureContext( - contentLocation); - - Telemetry::Accumulate(mozilla::Telemetry::INSECURE_DOWNLOADS, - isInsecureDownload); - - if (isInsecureDownload) { - nsCOMPtr httpChannel = do_QueryInterface(aChannel); - if (httpChannel) { - LogMessageToConsole(httpChannel, "BlockedInsecureDownload"); - } - return nsITransfer::DOWNLOAD_POTENTIALLY_UNSAFE; + nsCOMPtr loadingPrincipal = loadInfo->GetLoadingPrincipal(); + if (!loadingPrincipal) { + loadingPrincipal = loadInfo->TriggeringPrincipal(); + } + // Creating a fake Loadinfo that is just used for the MCB check. + nsCOMPtr secCheckLoadInfo = new mozilla::net::LoadInfo( + loadingPrincipal, loadInfo->TriggeringPrincipal(), nullptr, + nsILoadInfo::SEC_ONLY_FOR_EXPLICIT_CONTENTSEC_CHECK, + nsIContentPolicy::TYPE_FETCH); + // Disable HTTPS-Only checks for that loadinfo. This is required because + // otherwise nsMixedContentBlocker::ShouldLoad would assume that the request + // is safe, because HTTPS-Only is handling it. + secCheckLoadInfo->SetHttpsOnlyStatus(nsILoadInfo::HTTPS_ONLY_EXEMPT); + + int16_t decission = nsIContentPolicy::ACCEPT; + nsMixedContentBlocker::ShouldLoad(false, // aHadInsecureImageRedirect + contentLocation, // aContentLocation, + secCheckLoadInfo, // aLoadinfo + false, // aReportError + &decission // aDecision + ); + Telemetry::Accumulate(mozilla::Telemetry::MIXED_CONTENT_DOWNLOADS, + decission != nsIContentPolicy::ACCEPT); + + if (StaticPrefs::dom_block_download_insecure() && + decission != nsIContentPolicy::ACCEPT) { + nsCOMPtr httpChannel = do_QueryInterface(aChannel); + if (httpChannel) { + LogMessageToConsole(httpChannel, "MixedContentBlockedDownload"); } + return nsITransfer::DOWNLOAD_POTENTIALLY_UNSAFE; } if (loadInfo->TriggeringPrincipal()->IsSystemPrincipal()) { diff --git a/dom/security/test/general/browser.toml b/dom/security/test/general/browser.toml index c6d6b4bf79..0f4ec5b224 100644 --- a/dom/security/test/general/browser.toml +++ b/dom/security/test/general/browser.toml @@ -48,16 +48,6 @@ support-files = [ "file_gpc_server.sjs", ] -["browser_test_http_download.js"] -skip-if = [ - "win11_2009", # Bug 1784764 - "os == 'linux' && !debug", -] -support-files = [ - "http_download_page.html", - "http_download_server.sjs" -] - ["browser_test_referrer_loadInOtherProcess.js"] ["browser_test_report_blocking.js"] diff --git a/dom/security/test/general/browser_test_http_download.js b/dom/security/test/general/browser_test_http_download.js deleted file mode 100644 index 35e3fdfc4b..0000000000 --- a/dom/security/test/general/browser_test_http_download.js +++ /dev/null @@ -1,275 +0,0 @@ -/* Any copyright is dedicated to the Public Domain. - * https://creativecommons.org/publicdomain/zero/1.0/ */ - -ChromeUtils.defineESModuleGetters(this, { - Downloads: "resource://gre/modules/Downloads.sys.mjs", - DownloadsCommon: "resource:///modules/DownloadsCommon.sys.mjs", -}); - -const HandlerService = Cc[ - "@mozilla.org/uriloader/handler-service;1" -].getService(Ci.nsIHandlerService); - -const MIMEService = Cc["@mozilla.org/mime;1"].getService(Ci.nsIMIMEService); - -// Using insecure HTTP URL for a test cases around HTTP downloads -let INSECURE_BASE_URL = - getRootDirectory(gTestPath).replace( - "chrome://mochitests/content/", - // eslint-disable-next-line @microsoft/sdl/no-insecure-url - "http://example.com/" - ) + "http_download_page.html"; - -function promiseFocus() { - return new Promise(resolve => { - waitForFocus(resolve); - }); -} - -async function task_openPanel() { - await promiseFocus(); - - let promise = BrowserTestUtils.waitForPopupEvent( - DownloadsPanel.panel, - "shown" - ); - DownloadsPanel.showPanel(); - await promise; -} - -const downloadMonitoringView = { - _listeners: [], - onDownloadAdded(download) { - for (let listener of this._listeners) { - listener(download); - } - this._listeners = []; - }, - waitForDownload(listener) { - this._listeners.push(listener); - }, -}; - -/** - * Waits until a download is triggered. - * Unless the always_ask_before_handling_new_types pref is true, the download - * will simply be saved, so resolve when the view is notified of the new - * download. Otherwise, it waits until a prompt is shown, selects the choosen - * , then accepts the dialog - * @param [action] Which action to select, either: - * "handleInternally", "save" or "open". - * @returns {Promise} Resolved once done. - */ - -function shouldTriggerDownload(action = "save") { - if ( - Services.prefs.getBoolPref( - "browser.download.always_ask_before_handling_new_types" - ) - ) { - return new Promise((resolve, reject) => { - Services.wm.addListener({ - onOpenWindow(xulWin) { - Services.wm.removeListener(this); - let win = xulWin.docShell.domWindow; - waitForFocus(() => { - if ( - win.location == - "chrome://mozapps/content/downloads/unknownContentType.xhtml" - ) { - let dialog = win.document.getElementById("unknownContentType"); - let button = dialog.getButton("accept"); - let actionRadio = win.document.getElementById(action); - actionRadio.click(); - button.disabled = false; - dialog.acceptDialog(); - resolve(); - } else { - reject(); - } - }, win); - }, - }); - }); - } - return new Promise(res => { - downloadMonitoringView.waitForDownload(res); - }); -} - -const CONSOLE_ERROR_MESSAGE = "We blocked a download that’s not secure"; - -function shouldConsoleError() { - // Waits until CONSOLE_ERROR_MESSAGE was logged - return new Promise((resolve, reject) => { - function listener(msgObj) { - let text = msgObj.message; - if (text.includes(CONSOLE_ERROR_MESSAGE)) { - Services.console.unregisterListener(listener); - resolve(); - } - } - Services.console.registerListener(listener); - }); -} - -async function resetDownloads() { - // Removes all downloads from the download List - const types = new Set(); - let publicList = await Downloads.getList(Downloads.PUBLIC); - let downloads = await publicList.getAll(); - for (let download of downloads) { - if (download.contentType) { - types.add(download.contentType); - } - publicList.remove(download); - await download.finalize(true); - } - - if (types.size) { - // reset handlers for the contentTypes of any files previously downloaded - for (let type of types) { - const mimeInfo = MIMEService.getFromTypeAndExtension(type, ""); - info("resetting handler for type: " + type); - HandlerService.remove(mimeInfo); - } - } -} - -function shouldNotifyDownloadUI() { - return new Promise(res => { - downloadMonitoringView.waitForDownload(async aDownload => { - let { error } = aDownload; - if ( - error.becauseBlockedByReputationCheck && - error.reputationCheckVerdict == Downloads.Error.BLOCK_VERDICT_INSECURE - ) { - // It's an insecure Download, now Check that it has been cleaned up properly - if ((await IOUtils.stat(aDownload.target.path)).size != 0) { - throw new Error(`Download target is not empty!`); - } - if ((await IOUtils.stat(aDownload.target.path)).size != 0) { - throw new Error(`Download partFile was not cleaned up properly`); - } - // Assert that the Referrer is presnt - if (!aDownload.source.referrerInfo) { - throw new Error("The Blocked download is missing the ReferrerInfo"); - } - - res(aDownload); - } else { - ok(false, "No error for download that was expected to error!"); - } - }); - }); -} - -async function runTest(url, link, checkFunction, description) { - await SpecialPowers.pushPrefEnv({ - set: [["dom.block_download_insecure", true]], - }); - await resetDownloads(); - - let tab = BrowserTestUtils.addTab(gBrowser, url); - gBrowser.selectedTab = tab; - - let browser = gBrowser.getBrowserForTab(tab); - await BrowserTestUtils.browserLoaded(browser); - - info("Checking: " + description); - - let checkPromise = checkFunction(); - // Click the Link to trigger the download - SpecialPowers.spawn(gBrowser.selectedBrowser, [link], contentLink => { - content.document.getElementById(contentLink).click(); - }); - - await checkPromise; - - ok(true, description); - BrowserTestUtils.removeTab(tab); - - await SpecialPowers.popPrefEnv(); -} - -add_setup(async () => { - let list = await Downloads.getList(Downloads.ALL); - list.addView(downloadMonitoringView); - registerCleanupFunction(() => list.removeView(downloadMonitoringView)); -}); - -// Test Blocking -add_task(async function test_blocking() { - for (let prefVal of [true, false]) { - await SpecialPowers.pushPrefEnv({ - set: [["browser.download.always_ask_before_handling_new_types", prefVal]], - }); - await runTest( - INSECURE_BASE_URL, - "http-link", - () => - Promise.all([ - shouldTriggerDownload(), - shouldNotifyDownloadUI(), - shouldConsoleError(), - ]), - "Insecure (HTTP) toplevel -> Insecure (HTTP) download should Error" - ); - await SpecialPowers.popPrefEnv(); - } -}); - -// Test Manual Unblocking -add_task(async function test_manual_unblocking() { - for (let prefVal of [true, false]) { - await SpecialPowers.pushPrefEnv({ - set: [["browser.download.always_ask_before_handling_new_types", prefVal]], - }); - await runTest( - INSECURE_BASE_URL, - "http-link", - async () => { - let [, download] = await Promise.all([ - shouldTriggerDownload(), - shouldNotifyDownloadUI(), - ]); - await download.unblock(); - Assert.equal( - download.error, - null, - "There should be no error after unblocking" - ); - }, - "A blocked download should succeed to download after a manual unblock" - ); - await SpecialPowers.popPrefEnv(); - } -}); - -// Test Unblock Download Visible -add_task(async function test_unblock_download_visible() { - for (let prefVal of [true, false]) { - await SpecialPowers.pushPrefEnv({ - set: [["browser.download.always_ask_before_handling_new_types", prefVal]], - }); - await promiseFocus(); - await runTest( - INSECURE_BASE_URL, - "http-link", - async () => { - let panelHasOpened = BrowserTestUtils.waitForPopupEvent( - DownloadsPanel.panel, - "shown" - ); - info("awaiting that the download is triggered and added to the list"); - await Promise.all([shouldTriggerDownload(), shouldNotifyDownloadUI()]); - info("awaiting that the Download list shows itself"); - await panelHasOpened; - DownloadsPanel.hidePanel(); - ok(true, "The Download Panel should have opened on blocked download"); - }, - "A blocked download should open the download panel" - ); - await SpecialPowers.popPrefEnv(); - } -}); diff --git a/dom/security/test/general/http_download_page.html b/dom/security/test/general/http_download_page.html deleted file mode 100644 index c5461eaed3..0000000000 --- a/dom/security/test/general/http_download_page.html +++ /dev/null @@ -1,23 +0,0 @@ - - - - Test for the download attribute - - - hi - - - - diff --git a/dom/security/test/general/http_download_server.sjs b/dom/security/test/general/http_download_server.sjs deleted file mode 100644 index e659df2f40..0000000000 --- a/dom/security/test/general/http_download_server.sjs +++ /dev/null @@ -1,20 +0,0 @@ -// force the Browser to Show a Download Prompt - -function handleRequest(request, response) { - let type = "image/png"; - let filename = "hello.png"; - request.queryString.split("&").forEach(val => { - var [key, value] = val.split("="); - if (key == "type") { - type = value; - } - if (key == "name") { - filename = value; - } - }); - - response.setHeader("Cache-Control", "no-cache", false); - response.setHeader("Content-Disposition", `attachment; filename=${filename}`); - response.setHeader("Content-Type", type); - response.write("🙈🙊🐵🙊"); -} diff --git a/dom/security/test/https-only/browser_save_as.js b/dom/security/test/https-only/browser_save_as.js index fbfdf276a8..28f3df539d 100644 --- a/dom/security/test/https-only/browser_save_as.js +++ b/dom/security/test/https-only/browser_save_as.js @@ -155,11 +155,7 @@ async function setHttpsFirstAndOnlyPrefs(httpsFirst, httpsOnly) { add_task(async function testBaseline() { // Run with HTTPS-First and HTTPS-Only disabled await setHttpsFirstAndOnlyPrefs(false, false); - await runTest( - "#insecure-link", - HTTP_LINK, - "We blocked a download that’s not secure: “http://example.org/”." - ); + await runTest("#insecure-link", HTTP_LINK, undefined); await runTest("#secure-link", HTTPS_LINK, undefined); }); @@ -173,7 +169,7 @@ add_task(async function testHttpsFirst() { await runTest( "#insecure-link", HTTP_LINK, - "We blocked a download that’s not secure: “http://example.org/”." + "Blocked downloading insecure content “http://example.org/”." ); await runTest("#secure-link", HTTPS_LINK, undefined); }); @@ -185,7 +181,7 @@ add_task(async function testHttpsOnly() { await runTest( "#insecure-link", HTTP_LINK, - "We blocked a download that’s not secure: “http://example.org/”." + "Blocked downloading insecure content “http://example.org/”." ); await runTest("#secure-link", HTTPS_LINK, undefined); }); diff --git a/dom/security/test/mixedcontentblocker/browser_test_mixed_content_download.js b/dom/security/test/mixedcontentblocker/browser_test_mixed_content_download.js index b103d83cd7..ee350008aa 100644 --- a/dom/security/test/mixedcontentblocker/browser_test_mixed_content_download.js +++ b/dom/security/test/mixedcontentblocker/browser_test_mixed_content_download.js @@ -101,7 +101,7 @@ function shouldTriggerDownload(action = "save") { }); } -const CONSOLE_ERROR_MESSAGE = "We blocked a download that’s not secure"; +const CONSOLE_ERROR_MESSAGE = "Blocked downloading insecure content"; function shouldConsoleError() { // Waits until CONSOLE_ERROR_MESSAGE was logged diff --git a/dom/serviceworkers/test/browser_download.js b/dom/serviceworkers/test/browser_download.js index 70622a2349..0c69a48d17 100644 --- a/dom/serviceworkers/test/browser_download.js +++ b/dom/serviceworkers/test/browser_download.js @@ -3,7 +3,7 @@ var gTestRoot = getRootDirectory(gTestPath).replace( "chrome://mochitests/content/", - "https://example.com/" + "http://mochi.test:8888/" ); function getFile(aFilename) { diff --git a/security/manager/ssl/tests/mochitest/mixedcontent/mochitest.toml b/security/manager/ssl/tests/mochitest/mixedcontent/mochitest.toml index 4935021410..1a37ba6f38 100644 --- a/security/manager/ssl/tests/mochitest/mixedcontent/mochitest.toml +++ b/security/manager/ssl/tests/mochitest/mixedcontent/mochitest.toml @@ -7,7 +7,6 @@ skip-if = [ prefs = [ "security.mixed_content.upgrade_display_content=false", "dom.security.https_first=false", - "dom.block_download_insecure=false", ] support-files = [ "alloworigin.sjs", diff --git a/services/settings/dumps/blocklists/addons-bloomfilters.json b/services/settings/dumps/blocklists/addons-bloomfilters.json index 3e8d6e5524..21c0722a96 100644 --- a/services/settings/dumps/blocklists/addons-bloomfilters.json +++ b/services/settings/dumps/blocklists/addons-bloomfilters.json @@ -1,5 +1,18 @@ { "data": [ + { + "stash": { + "blocked": [ + "{329d8f7e-867f-46bb-9cad-9f1e0818a381}:1.5.10.1" + ], + "unblocked": [] + }, + "schema": 1713199745514, + "key_format": "{guid}:{version}", + "stash_time": 1713357304334, + "id": "bfd18f83-1c06-4a82-83d6-ead84cb7684f", + "last_modified": 1713357360700 + }, { "stash": { "blocked": [ @@ -524,5 +537,5 @@ "last_modified": 1707395854769 } ], - "timestamp": 1712860562321 + "timestamp": 1713357360700 } diff --git a/services/settings/dumps/main/cookie-banner-rules-list.json b/services/settings/dumps/main/cookie-banner-rules-list.json index 5d1c71818f..1c513579d9 100644 --- a/services/settings/dumps/main/cookie-banner-rules-list.json +++ b/services/settings/dumps/main/cookie-banner-rules-list.json @@ -1,5 +1,147 @@ { "data": [ + { + "click": { + "optIn": "#accept-btn", + "optOut": "#decline-btn", + "presence": "#privacy-manager-popin" + }, + "schema": 1713199742998, + "domains": [ + "canalplus.com" + ], + "id": "7b2e3401-697f-440a-b418-8477fcf2cfeb", + "last_modified": 1713281881442 + }, + { + "click": { + "optIn": "button#didomi-notice-agree-button", + "optOut": "button#didomi-notice-disagree-button", + "presence": "div#didomi-host" + }, + "schema": 1713199742998, + "cookies": {}, + "domains": [ + "doctolib.fr", + "pravda.sk", + "topky.sk", + "zoznam.sk", + "tvnoviny.sk", + "aukro.cz", + "krone.at", + "cas.sk", + "heureka.sk", + "free.fr", + "markiza.sk", + "willhaben.at", + "francetvinfo.fr", + "france.tv", + "france24.com", + "opodo.at", + "opodo.ch", + "opodo.co.uk", + "opodo.de", + "opodo.dk", + "opodo.fi", + "opodo.fr", + "opodo.it", + "opodo.nl", + "opodo.no", + "opodo.pl", + "opodo.pt", + "radiofrance.fr", + "rfi.fr", + "rtl.fr", + "blablacar.fr", + "6play.fr", + "marianne.net" + ], + "id": "690aa076-4a8b-48ec-b52c-1443d44ff008", + "last_modified": 1713281881438 + }, + { + "click": { + "optIn": "button#onetrust-accept-btn-handler", + "optOut": "button.onetrust-close-btn-handler", + "presence": "div#onetrust-consent-sdk" + }, + "schema": 1713199742998, + "cookies": {}, + "domains": [ + "darty.com", + "e.leclerc", + "fnac.be", + "fnac.ch", + "fnac.com", + "fnac.pt", + "leclercdrive.fr", + "mondialrelay.fr", + "pasteur.fr" + ], + "id": "2d821158-5945-4134-a078-56c6da4f678d", + "last_modified": 1713281881435 + }, + { + "click": { + "optIn": "#popin_tc_privacy_button_3", + "optOut": "#popin_tc_privacy_button_2", + "presence": "#tc-privacy-wrapper" + }, + "schema": 1713199742998, + "domains": [ + "bouyguestelecom.fr", + "enedis.fr", + "fortuneo.fr", + "lcl.fr", + "tf1.fr", + "tf1info.fr" + ], + "id": "98D89E26-F4B6-4C2D-BABF-4295B922E433", + "last_modified": 1713281881431 + }, + { + "click": { + "optIn": ".btn-ok", + "optOut": ".btn-reject", + "presence": "#cookie-policy-info" + }, + "schema": 1713199742998, + "cookies": { + "optOut": [ + { + "name": "isReadCookiePolicyDNT", + "value": "No" + }, + { + "name": "isReadCookiePolicyDNTAa", + "value": "false" + } + ] + }, + "domains": [ + "asus.com" + ], + "id": "8c949b75-4c7b-4559-8ade-780064af370a", + "last_modified": 1713281881428 + }, + { + "click": { + "optOut": ".sp_choice_type_13", + "presence": ".message-container > #notice", + "runContext": "child" + }, + "schema": 1713199742998, + "cookies": {}, + "domains": [ + "aktuality.sk", + "sky.it", + "azet.sk", + "bloomberg.com", + "formula1.com" + ], + "id": "ae8f7761-35ff-45b2-92df-7868ca288ad2", + "last_modified": 1713281881424 + }, { "click": { "optIn": "#c-bns #c-p-bn", @@ -418,70 +560,6 @@ "id": "1006f951-cd51-47cc-9527-5036cef4b85a", "last_modified": 1711550955080 }, - { - "click": { - "optIn": "button#didomi-notice-agree-button", - "optOut": "button#didomi-notice-disagree-button", - "presence": "div#didomi-host" - }, - "schema": 1711039008141, - "cookies": {}, - "domains": [ - "doctolib.fr", - "pravda.sk", - "topky.sk", - "zoznam.sk", - "tvnoviny.sk", - "aukro.cz", - "krone.at", - "cas.sk", - "heureka.sk", - "free.fr", - "markiza.sk", - "willhaben.at", - "francetvinfo.fr", - "france.tv", - "france24.com", - "opodo.at", - "opodo.ch", - "opodo.co.uk", - "opodo.de", - "opodo.dk", - "opodo.fi", - "opodo.fr", - "opodo.it", - "opodo.nl", - "opodo.no", - "opodo.pl", - "opodo.pt", - "radiofrance.fr", - "rfi.fr", - "blablacar.fr", - "6play.fr" - ], - "id": "690aa076-4a8b-48ec-b52c-1443d44ff008", - "last_modified": 1711550955075 - }, - { - "click": { - "optIn": "button#onetrust-accept-btn-handler", - "optOut": "button.onetrust-close-btn-handler", - "presence": "div#onetrust-consent-sdk" - }, - "schema": 1711039008141, - "cookies": {}, - "domains": [ - "e.leclerc", - "fnac.be", - "fnac.ch", - "fnac.com", - "fnac.pt", - "leclercdrive.fr", - "mondialrelay.fr" - ], - "id": "2d821158-5945-4134-a078-56c6da4f678d", - "last_modified": 1711550955071 - }, { "click": { "optIn": "#popin_tc_privacy_button", @@ -498,23 +576,6 @@ "id": "43ad2b6b-a57b-4f7a-9d76-e32e696ddc10", "last_modified": 1711550955067 }, - { - "click": { - "optIn": "#popin_tc_privacy_button_3", - "optOut": "#popin_tc_privacy_button_2", - "presence": "#tc-privacy-wrapper" - }, - "schema": 1711039008141, - "domains": [ - "bouyguestelecom.fr", - "enedis.fr", - "fortuneo.fr", - "lcl.fr", - "tf1.fr" - ], - "id": "98D89E26-F4B6-4C2D-BABF-4295B922E433", - "last_modified": 1711550955063 - }, { "click": { "optIn": ".moove-gdpr-infobar-allow-all", @@ -784,23 +845,6 @@ "id": "d42bbaee-f96e-47e7-8e81-efc642518e97", "last_modified": 1710331175368 }, - { - "click": { - "optOut": ".sp_choice_type_13", - "presence": ".message-container > #notice", - "runContext": "child" - }, - "schema": 1710174339269, - "cookies": {}, - "domains": [ - "aktuality.sk", - "sky.it", - "azet.sk", - "bloomberg.com" - ], - "id": "ae8f7761-35ff-45b2-92df-7868ca288ad2", - "last_modified": 1710331175359 - }, { "click": { "optIn": "button#didomi-notice-agree-button", @@ -1249,19 +1293,6 @@ "id": "a2404864-0163-4f71-ab4c-915713f8f349", "last_modified": 1708772697167 }, - { - "click": { - "optIn": ".btn-ok", - "optOut": ".btn-reject", - "presence": "#cookie-policy-info" - }, - "schema": 1708699541450, - "domains": [ - "asus.com" - ], - "id": "8c949b75-4c7b-4559-8ade-780064af370a", - "last_modified": 1708772697161 - }, { "click": { "optIn": "[data-cookieman-accept-all]", @@ -9366,5 +9397,5 @@ "last_modified": 1670498155641 } ], - "timestamp": 1711550955136 + "timestamp": 1713281881442 } diff --git a/services/settings/dumps/main/search-config-v2.json b/services/settings/dumps/main/search-config-v2.json index e360ad9ee3..5a8be8dfeb 100644 --- a/services/settings/dumps/main/search-config-v2.json +++ b/services/settings/dumps/main/search-config-v2.json @@ -2,254 +2,68 @@ "data": [ { "base": { - "name": "Qwant", + "name": "DuckDuckGo", "urls": { "search": { - "base": "https://www.qwant.com/", + "base": "https://duckduckgo.com/", "params": [ { - "name": "client", + "name": "t", "value": "{partnerCode}" } ], "searchTermParamName": "q" }, "suggestions": { - "base": "https://api.qwant.com/api/suggest/", + "base": "https://ac.duckduckgo.com/ac/", "params": [ { - "name": "client", - "value": "opensearch" + "name": "type", + "value": "list" } ], "searchTermParamName": "q" } }, "aliases": [ - "qwant" + "duckduckgo", + "ddg" ], - "partnerCode": "brz-moz", + "partnerCode": "ffab", "classification": "general" }, - "schema": 1710460806956, + "schema": 1713282081098, "variants": [ { "environment": { - "locales": [ - "fr" - ] - } - }, - { - "environment": { - "regions": [ - "be", - "ch", - "es", - "fr", - "it", - "nl" - ] - } - }, - { - "environment": { - "distributions": [ - "qwant-001", - "qwant-002" - ] + "allRegionsAndLocales": true }, - "partnerCode": "firefoxqwant", - "telemetrySuffix": "qwant" - } - ], - "identifier": "qwant", - "recordType": "engine", - "id": "2e62746e-b90a-42ee-b0f2-9ed0e1e2eaf0", - "last_modified": 1710766863306 - }, - { - "orders": [ - { - "order": [ - "baidu", - "bing", - "google", - "wikipedia*" - ], - "environment": { - "distributions": [ - "MozillaOnline" - ] - } - }, - { - "order": [ - "qwant", - "qwantjr" - ], - "environment": { - "distributions": [ - "qwant-001", - "qwant-002" - ] - } - } - ], - "schema": 1707824831520, - "recordType": "engineOrders", - "id": "3e1fed64-5ec7-4b1c-bedc-741fe3c59bc3", - "last_modified": 1707833224345 - }, - { - "base": { - "name": "Bing", - "urls": { - "search": { - "base": "https://www.bing.com/search", - "params": [ - { - "name": "pc", - "value": "{partnerCode}" + "subVariants": [ + { + "environment": { + "channels": [ + "esr" + ] }, - { - "name": "form", - "searchAccessPoint": { - "newtab": "MOZTSB", - "homepage": "MOZSPG", - "searchbar": "MOZSBR", - "addressbar": "MOZLBR", - "contextmenu": "MOZCON" - } - } - ], - "searchTermParamName": "q" - }, - "trending": { - "base": "https://www.bing.com/osjson.aspx" - }, - "suggestions": { - "base": "https://www.bing.com/osjson.aspx", - "params": [ - { - "name": "form", - "value": "OSDJAS" - } - ], - "searchTermParamName": "query" - } - }, - "aliases": [ - "bing" - ], - "partnerCode": "MOZI", - "classification": "general" - }, - "schema": 1706918405822, - "variants": [ - { - "environment": { - "locales": [ - "ach", - "af", - "an", - "ar", - "ast", - "az", - "bn", - "bs", - "ca", - "ca-valencia", - "cak", - "cs", - "cy", - "da", - "de", - "dsb", - "el", - "en-CA", - "en-GB", - "en-US", - "eo", - "es-CL", - "es-ES", - "es-MX", - "eu", - "fa", - "ff", - "fi", - "fr", - "fur", - "fy-NL", - "gd", - "gl", - "gn", - "gu-IN", - "he", - "hi-IN", - "hr", - "hsb", - "hy-AM", - "ia", - "id", - "is", - "it", - "ja", - "ja-JP-macos", - "ka", - "kab", - "km", - "kn", - "lij", - "lo", - "lt", - "meh", - "mk", - "ms", - "my", - "nb-NO", - "ne-NP", - "nl", - "nn-NO", - "oc", - "pa-IN", - "pt-BR", - "rm", - "ro", - "sc", - "sco", - "son", - "sq", - "sr", - "sv-SE", - "te", - "th", - "tl", - "tr", - "trs", - "uk", - "ur", - "uz", - "wo", - "xh", - "zh-CN" - ] - } + "partnerCode": "ftsa", + "telemetrySuffix": "esr" + } + ] }, { "environment": { - "channels": [ - "esr" + "distributions": [ + "mint-001" ] }, - "partnerCode": "MOZR", - "telemetrySuffix": "esr" + "partnerCode": "lm", + "telemetrySuffix": "lm" } ], - "identifier": "bing", + "identifier": "ddg", "recordType": "engine", - "id": "05645095-d26e-4f20-9137-f24a14a23f28", - "last_modified": 1707833224310 + "id": "04e99a38-13ee-47d8-8aa4-64482b3dea99", + "last_modified": 1713282817053 }, { "base": { @@ -305,23 +119,25 @@ "partnerCode": "firefox-b-d", "classification": "general" }, - "schema": 1702901739026, + "schema": 1713282083062, "variants": [ { "environment": { "allRegionsAndLocales": true }, + "subVariants": [ + { + "environment": { + "channels": [ + "esr" + ] + }, + "partnerCode": "firefox-b-e", + "telemetrySuffix": "b-e" + } + ], "telemetrySuffix": "b-d" }, - { - "environment": { - "channels": [ - "esr" - ] - }, - "partnerCode": "firefox-b-e", - "telemetrySuffix": "b-e" - }, { "urls": { "search": { @@ -359,33 +175,21 @@ ] }, "partnerCode": "firefox-b-1-d", - "telemetrySuffix": "b-1-d" - }, - { - "urls": { - "search": { - "params": [ - { - "name": "client", - "value": "{partnerCode}" - }, - { - "name": "channel", - "experimentConfig": "google_channel_us" - } - ] + "subVariants": [ + { + "environment": { + "regions": [ + "us" + ], + "channels": [ + "esr" + ] + }, + "partnerCode": "firefox-b-1-e", + "telemetrySuffix": "b-1-e" } - }, - "environment": { - "regions": [ - "us" - ], - "channels": [ - "esr" - ] - }, - "partnerCode": "firefox-b-1-e", - "telemetrySuffix": "b-1-e" + ], + "telemetrySuffix": "b-1-d" }, { "urls": { @@ -459,70 +263,260 @@ "identifier": "google", "recordType": "engine", "id": "7ace4aa1-e762-4f4b-87b9-b23b3c3a930b", - "last_modified": 1702906502757 + "last_modified": 1713282817051 }, { "base": { - "name": "DuckDuckGo", + "name": "Bing", "urls": { "search": { - "base": "https://duckduckgo.com/", + "base": "https://www.bing.com/search", "params": [ { - "name": "t", + "name": "pc", "value": "{partnerCode}" + }, + { + "name": "form", + "searchAccessPoint": { + "newtab": "MOZTSB", + "homepage": "MOZSPG", + "searchbar": "MOZSBR", + "addressbar": "MOZLBR", + "contextmenu": "MOZCON" + } } ], "searchTermParamName": "q" }, + "trending": { + "base": "https://www.bing.com/osjson.aspx" + }, "suggestions": { - "base": "https://ac.duckduckgo.com/ac/", + "base": "https://www.bing.com/osjson.aspx", "params": [ { - "name": "type", - "value": "list" + "name": "form", + "value": "OSDJAS" + } + ], + "searchTermParamName": "query" + } + }, + "aliases": [ + "bing" + ], + "partnerCode": "MOZI", + "classification": "general" + }, + "schema": 1713199744323, + "variants": [ + { + "environment": { + "locales": [ + "ach", + "af", + "an", + "ar", + "ast", + "az", + "bn", + "bs", + "ca", + "ca-valencia", + "cak", + "cs", + "cy", + "da", + "de", + "dsb", + "el", + "en-CA", + "en-GB", + "en-US", + "eo", + "es-CL", + "es-ES", + "es-MX", + "eu", + "fa", + "ff", + "fi", + "fr", + "fur", + "fy-NL", + "gd", + "gl", + "gn", + "gu-IN", + "he", + "hi-IN", + "hr", + "hsb", + "hy-AM", + "ia", + "id", + "is", + "it", + "ja", + "ja-JP-macos", + "ka", + "kab", + "km", + "kn", + "lij", + "lo", + "lt", + "meh", + "mk", + "ms", + "my", + "nb-NO", + "ne-NP", + "nl", + "nn-NO", + "oc", + "pa-IN", + "pt-BR", + "rm", + "ro", + "sc", + "sco", + "son", + "sq", + "sr", + "sv-SE", + "te", + "th", + "tl", + "tr", + "trs", + "uk", + "ur", + "uz", + "wo", + "xh", + "zh-CN" + ] + }, + "subVariants": [ + { + "environment": { + "channels": [ + "esr" + ] + }, + "partnerCode": "MOZR", + "telemetrySuffix": "esr" + } + ] + } + ], + "identifier": "bing", + "recordType": "engine", + "id": "05645095-d26e-4f20-9137-f24a14a23f28", + "last_modified": 1713282817048 + }, + { + "base": { + "name": "Qwant", + "urls": { + "search": { + "base": "https://www.qwant.com/", + "params": [ + { + "name": "client", + "value": "{partnerCode}" + } + ], + "searchTermParamName": "q" + }, + "suggestions": { + "base": "https://api.qwant.com/api/suggest/", + "params": [ + { + "name": "client", + "value": "opensearch" } ], "searchTermParamName": "q" } }, "aliases": [ - "duckduckgo", - "ddg" + "qwant" ], - "partnerCode": "ffab", + "partnerCode": "brz-moz", "classification": "general" }, - "schema": 1702901739665, + "schema": 1710460806956, "variants": [ { "environment": { - "allRegionsAndLocales": true + "locales": [ + "fr" + ] } }, { "environment": { - "channels": [ - "esr" + "regions": [ + "be", + "ch", + "es", + "fr", + "it", + "nl" ] - }, - "partnerCode": "ftsa", - "telemetrySuffix": "esr" + } }, { "environment": { "distributions": [ - "mint-001" + "qwant-001", + "qwant-002" ] }, - "partnerCode": "lm", - "telemetrySuffix": "lm" + "partnerCode": "firefoxqwant", + "telemetrySuffix": "qwant" } ], - "identifier": "ddg", + "identifier": "qwant", "recordType": "engine", - "id": "04e99a38-13ee-47d8-8aa4-64482b3dea99", - "last_modified": 1702906502754 + "id": "2e62746e-b90a-42ee-b0f2-9ed0e1e2eaf0", + "last_modified": 1710766863306 + }, + { + "orders": [ + { + "order": [ + "baidu", + "bing", + "google", + "wikipedia*" + ], + "environment": { + "distributions": [ + "MozillaOnline" + ] + } + }, + { + "order": [ + "qwant", + "qwantjr" + ], + "environment": { + "distributions": [ + "qwant-001", + "qwant-002" + ] + } + } + ], + "schema": 1707824831520, + "recordType": "engineOrders", + "id": "3e1fed64-5ec7-4b1c-bedc-741fe3c59bc3", + "last_modified": 1707833224345 }, { "base": { @@ -7341,5 +7335,5 @@ "last_modified": 1702906502241 } ], - "timestamp": 1710766863306 + "timestamp": 1713282817053 } diff --git a/services/settings/dumps/main/search-telemetry-v2.json b/services/settings/dumps/main/search-telemetry-v2.json index 9eb4e5d29c..1a1708529c 100644 --- a/services/settings/dumps/main/search-telemetry-v2.json +++ b/services/settings/dumps/main/search-telemetry-v2.json @@ -1,5 +1,79 @@ { "data": [ + { + "isSPA": true, + "schema": 1712762409532, + "components": [ + { + "type": "ad_image_row", + "included": { + "parent": { + "selector": "[data-testid='pam.container']" + }, + "children": [ + { + "selector": "[data-slide-index]", + "countChildren": true + } + ] + } + }, + { + "type": "ad_link", + "included": { + "parent": { + "selector": "[data-testid='adResult']" + } + } + }, + { + "type": "incontent_searchbox", + "topDown": true, + "included": { + "parent": { + "selector": "._1zdrb._1cR1n" + }, + "related": { + "selector": "#search-suggestions" + }, + "children": [ + { + "selector": "input[type='search']" + } + ] + } + }, + { + "type": "ad_link", + "default": true + } + ], + "taggedCodes": [ + "brz-moz", + "firefoxqwant" + ], + "telemetryId": "qwant", + "organicCodes": [], + "codeParamName": "client", + "queryParamName": "q", + "queryParamNames": [ + "q" + ], + "searchPageRegexp": "^https://www\\.qwant\\.com/", + "filter_expression": "env.version|versionCompare(\"124.0a1\")>=0", + "followOnParamNames": [], + "defaultPageQueryParam": { + "key": "t", + "value": "web" + }, + "extraAdServersRegexps": [ + "^https://www\\.bing\\.com/acli?c?k", + "^https://api\\.qwant\\.com/v3/r/", + "^https://fdn\\.qwant\\.com/v3/r/" + ], + "id": "19c434a3-d173-4871-9743-290ac92a3f6b", + "last_modified": 1713187389066 + }, { "schema": 1712582517430, "components": [ @@ -447,79 +521,6 @@ "id": "635a3325-1995-42d6-be09-dbe4b2a95453", "last_modified": 1712582517281 }, - { - "isSPA": true, - "schema": 1707523204491, - "components": [ - { - "type": "ad_image_row", - "included": { - "parent": { - "selector": "[data-testid='pam.container']" - }, - "children": [ - { - "selector": "[data-slide-index]", - "countChildren": true - } - ] - } - }, - { - "type": "ad_link", - "included": { - "parent": { - "selector": "[data-testid='adResult']" - } - } - }, - { - "type": "incontent_searchbox", - "topDown": true, - "included": { - "parent": { - "selector": "._1zdrb._1cR1n" - }, - "related": { - "selector": "#search-suggestions" - }, - "children": [ - { - "selector": "input[type='search']" - } - ] - } - }, - { - "type": "ad_link", - "default": true - } - ], - "taggedCodes": [ - "brz-moz", - "firefoxqwant" - ], - "telemetryId": "qwant", - "organicCodes": [], - "codeParamName": "client", - "queryParamName": "q", - "queryParamNames": [ - "q" - ], - "searchPageRegexp": "^https://www\\.qwant\\.com/", - "filter_expression": "env.version|versionCompare(\"124.0a1\")>=0", - "followOnParamNames": [], - "defaultPageQueryParam": { - "key": "t", - "value": "web" - }, - "extraAdServersRegexps": [ - "^https://www\\.bing\\.com/acli?c?k", - "^https://api\\.qwant\\.com/v3/r/" - ], - "id": "19c434a3-d173-4871-9743-290ac92a3f6b", - "last_modified": 1707833261849 - }, { "schema": 1705363206938, "components": [ @@ -785,5 +786,5 @@ "last_modified": 1698666532324 } ], - "timestamp": 1712762409389 + "timestamp": 1713187389066 } diff --git a/services/settings/dumps/security-state/intermediates.json b/services/settings/dumps/security-state/intermediates.json index ac343a2494..cb6220a0b2 100644 --- a/services/settings/dumps/security-state/intermediates.json +++ b/services/settings/dumps/security-state/intermediates.json @@ -1,5 +1,23 @@ { "data": [ + { + "schema": 1713279247562, + "derHash": "qHnLAaJmHCVbnCub4LILp07qlUbiGoLFcOF3z1v0rto=", + "subject": "CN=KeepTrust DV TLS RSA CA G1,O=Shanghai Huandu Info Tech Co. Ltd.,C=CN", + "subjectDN": "MF8xCzAJBgNVBAYTAkNOMSswKQYDVQQKEyJTaGFuZ2hhaSBIdWFuZHUgSW5mbyBUZWNoIENvLiBMdGQuMSMwIQYDVQQDExpLZWVwVHJ1c3QgRFYgVExTIFJTQSBDQSBHMQ==", + "whitelist": false, + "attachment": { + "hash": "93a741fbafcd5340a19168c4bd08054a4848435b3be5fe670b8f11c2375684aa", + "size": 2207, + "filename": "bOEjmQANKVH0X6KYfPDfKE84GnLDQ9OEma-H2A_9vsM=.pem", + "location": "security-state-staging/intermediates/a8577b4a-44b2-44d9-860f-74a05b5f338f.pem", + "mimetype": "application/x-pem-file" + }, + "pubKeyHash": "bOEjmQANKVH0X6KYfPDfKE84GnLDQ9OEma+H2A/9vsM=", + "crlite_enrolled": false, + "id": "1a5f9580-38a5-4f0e-821b-2973701c1722", + "last_modified": 1713279423465 + }, { "schema": 1712310550077, "derHash": "w+vOp+axOsPrOnnwWBnmfWiTxlZC9Q2bXhZHyyZQa44=", @@ -720,42 +738,6 @@ "id": "a66aa7c5-abb2-49b5-b693-66dd992c24ab", "last_modified": 1709323057665 }, - { - "schema": 1709322861260, - "derHash": "wKHKNkddM7Rx5OWOVXTdkpTTVMRXKVlU21VbJOrSqks=", - "subject": "CN=COMODO/PKWARE Secure Email CA,O=COMODO CA Limited,L=Salford,ST=Greater Manchester,C=GB", - "subjectDN": "MIGAMQswCQYDVQQGEwJHQjEbMBkGA1UECBMSR3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHEwdTYWxmb3JkMRowGAYDVQQKExFDT01PRE8gQ0EgTGltaXRlZDEmMCQGA1UEAxMdQ09NT0RPL1BLV0FSRSBTZWN1cmUgRW1haWwgQ0E=", - "whitelist": false, - "attachment": { - "hash": "536d387994d2fcf3c04c848acb66841104d87c9b0b1ed73ccec9768bd275d362", - "size": 1979, - "filename": "javoiDXitAWxKnEeWWJB_XeluETyAl8SAu8OHaB7Q0c=.pem", - "location": "security-state-staging/intermediates/a14785fd-f6c9-4f29-9d06-df68da0a3959.pem", - "mimetype": "application/x-pem-file" - }, - "pubKeyHash": "javoiDXitAWxKnEeWWJB/XeluETyAl8SAu8OHaB7Q0c=", - "crlite_enrolled": false, - "id": "da5c02a2-8457-4e22-87c0-9f6e49221efe", - "last_modified": 1709323057662 - }, - { - "schema": 1709322860874, - "derHash": "YmFumxG9Djo1g2DIO3jbxb7qV1yQuX5oJEgz+zBDfGs=", - "subject": "CN=TERENA Personal CA,O=TERENA,C=NL", - "subjectDN": "MDsxCzAJBgNVBAYTAk5MMQ8wDQYDVQQKEwZURVJFTkExGzAZBgNVBAMTElRFUkVOQSBQZXJzb25hbCBDQQ==", - "whitelist": false, - "attachment": { - "hash": "b540a4b8690142678f25aaa6f34207fd3c4298612d40cac2034f5049aa748c3b", - "size": 1711, - "filename": "GrQOOcgaiD1vs9vGDvRaVMQKNDQm2_Nj7lPXTk4s2F0=.pem", - "location": "security-state-staging/intermediates/4742da83-41bb-4761-b382-7a48eb3f8886.pem", - "mimetype": "application/x-pem-file" - }, - "pubKeyHash": "GrQOOcgaiD1vs9vGDvRaVMQKNDQm2/Nj7lPXTk4s2F0=", - "crlite_enrolled": false, - "id": "d447cf4a-07e2-4ccf-b3c9-898267f291fe", - "last_modified": 1709323057659 - }, { "schema": 1709322860517, "derHash": "mm/Eq02x6m9mY1B+3B0Ajwka6I+rbzrlaoSkCQUp71g=", @@ -774,24 +756,6 @@ "id": "63278116-4a77-4a8d-830b-2d7766217557", "last_modified": 1709323057656 }, - { - "schema": 1709322859788, - "derHash": "/QKa3j96gKmNb//JQpBGWF7x2MuBk6F/YhQxfQZS18M=", - "subject": "CN=COMODO/HP Secure Email CA,O=COMODO CA Limited,L=Salford,ST=Greater Manchester,C=GB", - "subjectDN": "MHwxCzAJBgNVBAYTAkdCMRswGQYDVQQIExJHcmVhdGVyIE1hbmNoZXN0ZXIxEDAOBgNVBAcTB1NhbGZvcmQxGjAYBgNVBAoTEUNPTU9ETyBDQSBMaW1pdGVkMSIwIAYDVQQDExlDT01PRE8vSFAgU2VjdXJlIEVtYWlsIENB", - "whitelist": false, - "attachment": { - "hash": "adb2966a8c1fc1a877edbb79b2d43109f804829872e34bd8667f85ba432153e5", - "size": 1975, - "filename": "VQkNSqdqPoVan53-i1N5YrjNCMnJRtvNFB7icXr9un8=.pem", - "location": "security-state-staging/intermediates/dde31d19-c833-41ae-a61a-48529e89c711.pem", - "mimetype": "application/x-pem-file" - }, - "pubKeyHash": "VQkNSqdqPoVan53+i1N5YrjNCMnJRtvNFB7icXr9un8=", - "crlite_enrolled": false, - "id": "a53b33af-6b45-402a-abac-9e6140dc28ec", - "last_modified": 1709323057653 - }, { "schema": 1709322862713, "derHash": "oCHY53TGozxza9tcF2klrd9EbJlnm83NguW9LqX+RE0=", @@ -846,24 +810,6 @@ "id": "6435e6ca-cabc-415c-8a36-8afbecb70b12", "last_modified": 1709323057644 }, - { - "schema": 1709322856729, - "derHash": "j3JA8WCTbx/UBr8CizW11gm2SzvQ4x4TzG3Zq3yhLm8=", - "subject": "CN=GLOBE SSL SECURE EMAIL CA,O=GLOBE HOSTING CERTIFICATION AUTHORITY,C=RO", - "subjectDN": "MGExCzAJBgNVBAYTAlJPMS4wLAYDVQQKEyVHTE9CRSBIT1NUSU5HIENFUlRJRklDQVRJT04gQVVUSE9SSVRZMSIwIAYDVQQDExlHTE9CRSBTU0wgU0VDVVJFIEVNQUlMIENB", - "whitelist": false, - "attachment": { - "hash": "1cf3286ce0babb75314968445c3959acec4c2fb01d7342d74be3d80efd77125a", - "size": 1764, - "filename": "_eRFHz8wxXnTOa1eOct617RUUVoCS6wHVpWc2LKjvVg=.pem", - "location": "security-state-staging/intermediates/4c03d7f3-2876-42e2-8e63-1770d52bb8dd.pem", - "mimetype": "application/x-pem-file" - }, - "pubKeyHash": "/eRFHz8wxXnTOa1eOct617RUUVoCS6wHVpWc2LKjvVg=", - "crlite_enrolled": false, - "id": "22c0373b-2dd6-46fd-a8f5-948c6627d4ea", - "last_modified": 1709323057641 - }, { "schema": 1709322858961, "derHash": "6bmYDIo/WT9Nnn2j9Jev+Ptm4kLGy6DXMOIGVZUT+l0=", @@ -900,60 +846,6 @@ "id": "bc576a0c-04f0-41df-aa49-9759354a9cd0", "last_modified": 1709323057634 }, - { - "schema": 1709322857466, - "derHash": "6QSgV9g5vL5jEJK0IV3YzE+ISbqHtRqvJyi3HmSs51E=", - "subject": "CN=DREAMHOST SECURE EMAIL CA,O=DREAMHOST CERTIFICATION AUTHORITY,C=US", - "subjectDN": "MF0xCzAJBgNVBAYTAlVTMSowKAYDVQQKEyFEUkVBTUhPU1QgQ0VSVElGSUNBVElPTiBBVVRIT1JJVFkxIjAgBgNVBAMTGURSRUFNSE9TVCBTRUNVUkUgRU1BSUwgQ0E=", - "whitelist": false, - "attachment": { - "hash": "bd46e6b3068ecccbabe7da0273be8a3d35a413fdfcca05bc18847e7402db16fa", - "size": 1756, - "filename": "63NWnCfq1JadpotgYBS_ORAIQ4nhhoHBm9FjkLxi1nA=.pem", - "location": "security-state-staging/intermediates/6ba6c581-5ba3-48f8-8ccc-e38734c2de49.pem", - "mimetype": "application/x-pem-file" - }, - "pubKeyHash": "63NWnCfq1JadpotgYBS/ORAIQ4nhhoHBm9FjkLxi1nA=", - "crlite_enrolled": false, - "id": "ad597bfa-50d0-4288-95d2-d15db698ffba", - "last_modified": 1709323057631 - }, - { - "schema": 1709322858187, - "derHash": "Xwo1uk+Epl9osW1KM/ZRfAl3CDk+qv0oVvuak0GHGfQ=", - "subject": "CN=SGTRUST EMAIL AND CLIENT CA,O=SGssl,C=KR", - "subjectDN": "MEMxCzAJBgNVBAYTAktSMQ4wDAYDVQQKEwVTR3NzbDEkMCIGA1UEAxMbU0dUUlVTVCBFTUFJTCBBTkQgQ0xJRU5UIENB", - "whitelist": false, - "attachment": { - "hash": "17a9b911f686f237aa390ea2ff06319ae420ccb51198aeed267a5518db5715c4", - "size": 1723, - "filename": "gQN5MDXBIRQe70cFfEaNKKTh3AELpmBrtzu-04X41Po=.pem", - "location": "security-state-staging/intermediates/460d3cb1-d178-47f3-b286-99a9adab7c6a.pem", - "mimetype": "application/x-pem-file" - }, - "pubKeyHash": "gQN5MDXBIRQe70cFfEaNKKTh3AELpmBrtzu+04X41Po=", - "crlite_enrolled": false, - "id": "5a347462-e209-4a4f-bba5-902bb7cdd29b", - "last_modified": 1709323057628 - }, - { - "schema": 1709322860157, - "derHash": "JhjEFcFGupil8K1+pJiqWHgLpV+o47By0TwzDUEBBxc=", - "subject": "CN=EuropeanSSL Client CA,O=EUNETIC GmbH,C=DE", - "subjectDN": "MEQxCzAJBgNVBAYTAkRFMRUwEwYDVQQKEwxFVU5FVElDIEdtYkgxHjAcBgNVBAMTFUV1cm9wZWFuU1NMIENsaWVudCBDQQ==", - "whitelist": false, - "attachment": { - "hash": "939382e857302d9c045c2918ffbab03973b2a29f5c566cfdd7e53388636562f6", - "size": 1723, - "filename": "6rE_4fpPwsenurNcVvOyU8xh7Vp9kamSGTFA4_9ffGI=.pem", - "location": "security-state-staging/intermediates/a5c74b09-42b9-4fbe-ab76-8aac990547e8.pem", - "mimetype": "application/x-pem-file" - }, - "pubKeyHash": "6rE/4fpPwsenurNcVvOyU8xh7Vp9kamSGTFA4/9ffGI=", - "crlite_enrolled": false, - "id": "21c33409-b6a8-429b-bddf-96d8eb9b5e6d", - "last_modified": 1709323057625 - }, { "schema": 1709322856380, "derHash": "sF4Fz8v4GBPsMPo/dJIKoj/tNn4UfMgeESH2RphEnQ8=", @@ -972,24 +864,6 @@ "id": "1a94aa13-0606-4858-923c-41f0aceb9941", "last_modified": 1709323057622 }, - { - "schema": 1709322855255, - "derHash": "9AUHfHF0cDuXgceVRKe+mUJjhU0VFz5hqNGaKM96SrE=", - "subject": "CN=TERENA eScience Personal CA,O=TERENA,C=NL", - "subjectDN": "MEQxCzAJBgNVBAYTAk5MMQ8wDQYDVQQKEwZURVJFTkExJDAiBgNVBAMTG1RFUkVOQSBlU2NpZW5jZSBQZXJzb25hbCBDQQ==", - "whitelist": false, - "attachment": { - "hash": "0ff25cb8ace98409f31247ecb59b650b17e31d145ec2485517081e2ac1dfa4fb", - "size": 1743, - "filename": "rfAIoQEXwIYxHVXIaa2COA8XlDmE8FsumvzEWCU7MfU=.pem", - "location": "security-state-staging/intermediates/572cc780-7a7f-4edb-bb11-5177e420e4ee.pem", - "mimetype": "application/x-pem-file" - }, - "pubKeyHash": "rfAIoQEXwIYxHVXIaa2COA8XlDmE8FsumvzEWCU7MfU=", - "crlite_enrolled": false, - "id": "df33d49d-be3f-4bfc-9291-d978b63c2fb5", - "last_modified": 1709323057619 - }, { "schema": 1709322855622, "derHash": "Jk2YC0i7HaMvuxR7gQQ0RaxMhWOVlLoVrZoriDai2sA=", @@ -1008,24 +882,6 @@ "id": "6cd1a68d-ab85-4064-856c-0fdab449d7bf", "last_modified": 1709323057615 }, - { - "schema": 1709322854820, - "derHash": "TywMFwG94Btr7tptF8M2BCQhr3MRcGM0f36Xt2rYl/U=", - "subject": "CN=GlobalSSL Secure E-Mail and Client Authentication CA,O=GlobalSSL,C=DE", - "subjectDN": "MGAxCzAJBgNVBAYTAkRFMRIwEAYDVQQKEwlHbG9iYWxTU0wxPTA7BgNVBAMTNEdsb2JhbFNTTCBTZWN1cmUgRS1NYWlsIGFuZCBDbGllbnQgQXV0aGVudGljYXRpb24gQ0E=", - "whitelist": false, - "attachment": { - "hash": "b2019acf4321d57d1f4034c278f7761779e2fc130bbf2ca87aabbe5a7047c614", - "size": 1760, - "filename": "rvxRPOOErynHJj6lYghacyWHWiAPuUDhnQ7bzVQe7nA=.pem", - "location": "security-state-staging/intermediates/cacd7664-e756-4647-96f8-682e65e01ae0.pem", - "mimetype": "application/x-pem-file" - }, - "pubKeyHash": "rvxRPOOErynHJj6lYghacyWHWiAPuUDhnQ7bzVQe7nA=", - "crlite_enrolled": false, - "id": "9d2ed0cf-a2d4-430d-ae23-724baec635e4", - "last_modified": 1709323057612 - }, { "schema": 1709322857831, "derHash": "16iplHwxgGwbRiX4L8vMp8wgkOWNshW45NiLqcYNMWY=", @@ -1062,42 +918,6 @@ "id": "14b4ae02-05a1-4223-a420-35328f2932ae", "last_modified": 1709323057606 }, - { - "schema": 1709322857090, - "derHash": "8BflEJGLd9pn5NAg4rdqQkYYdugi9iDFVzvLw7uzdAY=", - "subject": "CN=Gandi Secure Email CA,O=GANDI SAS,C=FR", - "subjectDN": "MEExCzAJBgNVBAYTAkZSMRIwEAYDVQQKEwlHQU5ESSBTQVMxHjAcBgNVBAMTFUdhbmRpIFNlY3VyZSBFbWFpbCBDQQ==", - "whitelist": false, - "attachment": { - "hash": "7374bb117a04dbe56b2af679a65a85a2c734afce7e88acb81917ecd528ba648e", - "size": 1719, - "filename": "iFIEeQ06wWLDY4tmZC6npViJr_VFbFCHUdRkqmIc7OY=.pem", - "location": "security-state-staging/intermediates/80641d57-3847-4459-9d66-f653dd7bfadc.pem", - "mimetype": "application/x-pem-file" - }, - "pubKeyHash": "iFIEeQ06wWLDY4tmZC6npViJr/VFbFCHUdRkqmIc7OY=", - "crlite_enrolled": false, - "id": "61df2979-bddb-4586-94f1-15e23fe3c076", - "last_modified": 1709323057603 - }, - { - "schema": 1709322855985, - "derHash": "9ooj65c3qMdE7mcRLy/AJKrcUDu7sE8lze1PJXbJNIU=", - "subject": "CN=The Code Project Secure Email (S/mime) CA,O=The Code Project,C=CA", - "subjectDN": "MFwxCzAJBgNVBAYTAkNBMRkwFwYDVQQKExBUaGUgQ29kZSBQcm9qZWN0MTIwMAYDVQQDEylUaGUgQ29kZSBQcm9qZWN0IFNlY3VyZSBFbWFpbCAoUy9taW1lKSBDQQ==", - "whitelist": false, - "attachment": { - "hash": "e34a2353b9ea221ccf98cccc3d39c3562f1daceb776f42298bbc37afdd4fc54a", - "size": 1752, - "filename": "xtYGt02m4umLJCyy0kfaczCboF12WILjsGOb1umDfX0=.pem", - "location": "security-state-staging/intermediates/53d673f8-b2c7-4c5c-9730-8965f2ec1dcb.pem", - "mimetype": "application/x-pem-file" - }, - "pubKeyHash": "xtYGt02m4umLJCyy0kfaczCboF12WILjsGOb1umDfX0=", - "crlite_enrolled": false, - "id": "81d6dcac-df61-4042-bd32-3070f7a85340", - "last_modified": 1709323057600 - }, { "schema": 1705981670999, "derHash": "edV7Fd+mXChw6v4Rtjd2WQnP6Te0nBXOfxlAMMqzla0=", @@ -21744,24 +21564,6 @@ "id": "d4d9fa7d-3f75-4dfc-885e-66ac80a4f31a", "last_modified": 1663786625894 }, - { - "schema": 1663786313489, - "derHash": "VlyCcCtexjICdU1PS3bMO64ypMkUbtO+zXOkBP+tTN4=", - "subject": "CN=UTN-USERFirst-Client Authentication and Email,OU=http://www.usertrust.com,O=The USERTRUST Network,L=Salt Lake City,ST=UT,C=US", - "subjectDN": "MIGuMQswCQYDVQQGEwJVUzELMAkGA1UECBMCVVQxFzAVBgNVBAcTDlNhbHQgTGFrZSBDaXR5MR4wHAYDVQQKExVUaGUgVVNFUlRSVVNUIE5ldHdvcmsxITAfBgNVBAsTGGh0dHA6Ly93d3cudXNlcnRydXN0LmNvbTE2MDQGA1UEAxMtVVROLVVTRVJGaXJzdC1DbGllbnQgQXV0aGVudGljYXRpb24gYW5kIEVtYWls", - "whitelist": false, - "attachment": { - "hash": "ea4a8d488e32504fd104cbe43ae869fa05d6c9a40760f4ad44d6138279f5a48c", - "size": 1674, - "filename": "Laj56jRU0hFGRko_nQKNxMf7tXscUsc8KwVyovWZotM=.pem", - "location": "security-state-staging/intermediates/ff1f6147-d1b8-4857-90c1-1c69f32d66f2.pem", - "mimetype": "application/x-pem-file" - }, - "pubKeyHash": "Laj56jRU0hFGRko/nQKNxMf7tXscUsc8KwVyovWZotM=", - "crlite_enrolled": false, - "id": "f9921d3b-2c14-4cd8-ba89-946e88ff8a45", - "last_modified": 1663786625873 - }, { "schema": 1663786305752, "derHash": "dnvCnbma9MKmJkkADRcvxswtCdQIxMq2qNmaHdXc99s=", @@ -30601,5 +30403,5 @@ "last_modified": 1559865884636 } ], - "timestamp": 1712674623155 + "timestamp": 1713391023368 } diff --git a/sourcestamp.txt b/sourcestamp.txt index 43cd678299..be20e28e6f 100644 --- a/sourcestamp.txt +++ b/sourcestamp.txt @@ -1,2 +1,2 @@ -20240416043247 -https://hg.mozilla.org/releases/mozilla-release/rev/624e9a169b06012fbb06583c8f172cfe34f8b3d7 +20240419144423 +https://hg.mozilla.org/releases/mozilla-release/rev/c5ee44e4135571bec3220340242f9189c59ca5ba diff --git a/testing/web-platform/meta/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_navigation_download_allow_downloads.sub.tentative.html.ini b/testing/web-platform/meta/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_navigation_download_allow_downloads.sub.tentative.html.ini new file mode 100644 index 0000000000..b0d48fef3b --- /dev/null +++ b/testing/web-platform/meta/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_navigation_download_allow_downloads.sub.tentative.html.ini @@ -0,0 +1,4 @@ +[iframe_sandbox_navigation_download_allow_downloads.sub.tentative.html] + expected: + if (os == "linux") and not fission: [OK, TIMEOUT] + if (os == "android") and fission: [TIMEOUT, OK] diff --git a/testing/web-platform/meta/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_navigation_download_allow_downloads.sub.tentative.https.html.ini b/testing/web-platform/meta/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_navigation_download_allow_downloads.sub.tentative.https.html.ini deleted file mode 100644 index b4dbc800df..0000000000 --- a/testing/web-platform/meta/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_navigation_download_allow_downloads.sub.tentative.https.html.ini +++ /dev/null @@ -1,4 +0,0 @@ -[iframe_sandbox_navigation_download_allow_downloads.sub.tentative.https.html] - expected: - if (os == "linux") and not fission: [OK, TIMEOUT] - if (os == "android") and fission: [TIMEOUT, OK] diff --git a/testing/web-platform/meta/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_window_open_download_allow_downloads.tentative.html.ini b/testing/web-platform/meta/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_window_open_download_allow_downloads.tentative.html.ini new file mode 100644 index 0000000000..2483b6391c --- /dev/null +++ b/testing/web-platform/meta/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_window_open_download_allow_downloads.tentative.html.ini @@ -0,0 +1,3 @@ +[iframe_sandbox_window_open_download_allow_downloads.tentative.html] + expected: + if (os == "android") and fission: [OK, TIMEOUT] diff --git a/testing/web-platform/meta/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_window_open_download_allow_downloads.tentative.https.html.ini b/testing/web-platform/meta/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_window_open_download_allow_downloads.tentative.https.html.ini deleted file mode 100644 index 773edf42b7..0000000000 --- a/testing/web-platform/meta/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_window_open_download_allow_downloads.tentative.https.html.ini +++ /dev/null @@ -1,3 +0,0 @@ -[iframe_sandbox_window_open_download_allow_downloads.tentative.https.html] - expected: - if (os == "android") and fission: [OK, TIMEOUT] diff --git a/testing/web-platform/tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_navigation_download_allow_downloads.sub.tentative.html b/testing/web-platform/tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_navigation_download_allow_downloads.sub.tentative.html new file mode 100644 index 0000000000..6b3b3104ef --- /dev/null +++ b/testing/web-platform/tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_navigation_download_allow_downloads.sub.tentative.html @@ -0,0 +1,52 @@ + + +Navigation resulted download in sandbox is allowed by allow-downloads. + + + + + + + + + diff --git a/testing/web-platform/tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_navigation_download_allow_downloads.sub.tentative.https.html b/testing/web-platform/tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_navigation_download_allow_downloads.sub.tentative.https.html deleted file mode 100644 index 6b3b3104ef..0000000000 --- a/testing/web-platform/tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_navigation_download_allow_downloads.sub.tentative.https.html +++ /dev/null @@ -1,52 +0,0 @@ - - -Navigation resulted download in sandbox is allowed by allow-downloads. - - - - - - - - - diff --git a/testing/web-platform/tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_window_open_download_allow_downloads.tentative.html b/testing/web-platform/tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_window_open_download_allow_downloads.tentative.html new file mode 100644 index 0000000000..158fc4f947 --- /dev/null +++ b/testing/web-platform/tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_window_open_download_allow_downloads.tentative.html @@ -0,0 +1,29 @@ + + +Downloads triggered by window.open from sandbox are blocked. + + + + + + + + + diff --git a/testing/web-platform/tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_window_open_download_allow_downloads.tentative.https.html b/testing/web-platform/tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_window_open_download_allow_downloads.tentative.https.html deleted file mode 100644 index 158fc4f947..0000000000 --- a/testing/web-platform/tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_window_open_download_allow_downloads.tentative.https.html +++ /dev/null @@ -1,29 +0,0 @@ - - -Downloads triggered by window.open from sandbox are blocked. - - - - - - - - - diff --git a/toolkit/components/antitracking/test/browser/browser_staticPartition_saveAs.js b/toolkit/components/antitracking/test/browser/browser_staticPartition_saveAs.js index daf3234858..b9984829eb 100644 --- a/toolkit/components/antitracking/test/browser/browser_staticPartition_saveAs.js +++ b/toolkit/components/antitracking/test/browser/browser_staticPartition_saveAs.js @@ -102,7 +102,6 @@ add_task(async function testContextMenuSaveImage() { set: [ ["privacy.partition.network_state", networkIsolation], ["privacy.dynamic_firstparty.use_site", partitionPerSite], - ["dom.block_download_insecure", false], ], }); @@ -198,7 +197,6 @@ add_task(async function testContextMenuSaveVideo() { set: [ ["privacy.partition.network_state", networkIsolation], ["privacy.dynamic_firstparty.use_site", partitionPerSite], - ["dom.block_download_insecure", false], ], }); diff --git a/toolkit/components/antitracking/test/browser/file_saveAsPageInfo.html b/toolkit/components/antitracking/test/browser/file_saveAsPageInfo.html index 8f22e911e7..aa3de2a555 100644 --- a/toolkit/components/antitracking/test/browser/file_saveAsPageInfo.html +++ b/toolkit/components/antitracking/test/browser/file_saveAsPageInfo.html @@ -1,6 +1,6 @@ - - + + diff --git a/toolkit/components/downloads/test/unit/test_DownloadLegacy.js b/toolkit/components/downloads/test/unit/test_DownloadLegacy.js index 839611ec22..972820f29e 100644 --- a/toolkit/components/downloads/test/unit/test_DownloadLegacy.js +++ b/toolkit/components/downloads/test/unit/test_DownloadLegacy.js @@ -11,8 +11,6 @@ // Execution of common tests -Services.prefs.setBoolPref("dom.block_download_insecure", false); - // This is used in common_test_Download.js // eslint-disable-next-line no-unused-vars var gUseLegacySaver = true; diff --git a/toolkit/components/extensions/test/browser/browser_ext_downloads_referrer.js b/toolkit/components/extensions/test/browser/browser_ext_downloads_referrer.js index 24d52dd8e0..c9e965c1e1 100644 --- a/toolkit/components/extensions/test/browser/browser_ext_downloads_referrer.js +++ b/toolkit/components/extensions/test/browser/browser_ext_downloads_referrer.js @@ -4,8 +4,8 @@ "use strict"; const URL_PATH = "browser/toolkit/components/extensions/test/browser/data"; -const TEST_URL = `https://example.com/${URL_PATH}/test_downloads_referrer.html`; -const DOWNLOAD_URL = `https://example.com/${URL_PATH}/test-download.txt`; +const TEST_URL = `http://example.com/${URL_PATH}/test_downloads_referrer.html`; +const DOWNLOAD_URL = `http://example.com/${URL_PATH}/test-download.txt`; async function triggerSaveAs({ selector }) { const contextMenu = window.document.getElementById("contentAreaContextMenu"); diff --git a/toolkit/components/nimbus/FeatureManifest.yaml b/toolkit/components/nimbus/FeatureManifest.yaml index 190e29d6db..7612ef2dc2 100644 --- a/toolkit/components/nimbus/FeatureManifest.yaml +++ b/toolkit/components/nimbus/FeatureManifest.yaml @@ -429,10 +429,9 @@ urlbar: * Remove the forcast text from the summary text. yelpMinKeywordLength: type: int - fallbackPref: browser.urlbar.yelp.minKeywordLength description: >- - If the length of user's query is less than this value plus - "yelp.showLessFrequentlyCount", Yelp suggestion never be shown. + The minimum prefix length of a Yelp keyword the user must type to + trigger the suggestion. yelpFeatureGate: type: boolean fallbackPref: browser.urlbar.yelp.featureGate diff --git a/toolkit/components/pdfjs/test/browser_pdfjs_octet_stream.js b/toolkit/components/pdfjs/test/browser_pdfjs_octet_stream.js index da630f726c..d2b4fe310f 100644 --- a/toolkit/components/pdfjs/test/browser_pdfjs_octet_stream.js +++ b/toolkit/components/pdfjs/test/browser_pdfjs_octet_stream.js @@ -5,7 +5,7 @@ const TESTROOT = getRootDirectory(gTestPath).replace( "chrome://mochitests/content/", - "https://example.com/" + "http://mochi.test:8888/" ); // Get a ref to the pdf we want to open. diff --git a/toolkit/components/telemetry/Histograms.json b/toolkit/components/telemetry/Histograms.json index 223b96f082..3be0da3295 100644 --- a/toolkit/components/telemetry/Histograms.json +++ b/toolkit/components/telemetry/Histograms.json @@ -12347,14 +12347,14 @@ "n_values": 10, "description": "How often would blocked mixed content be allowed if HSTS upgrades were allowed? 0=display/no-HSTS, 1=display/HSTS, 2=active/no-HSTS, 3=active/HSTS" }, - "INSECURE_DOWNLOADS": { + "MIXED_CONTENT_DOWNLOADS": { "record_in_processes": ["main", "content"], "products": ["firefox"], - "alert_emails": ["seceng-telemetry@mozilla.com", "ckerschb@mozilla.com"], - "bug_numbers": [1877195], - "expires_in_version": "130", + "alert_emails": ["seceng-telemetry@mozilla.com", "sstreich@mozilla.com"], + "bug_numbers": [1646768], + "expires_in_version": "90", "kind": "boolean", - "description": "Accumulates how many downloads are insecure (True = The download is insecure, False= The download is secure)" + "description": "Accumulates how many downloads are mixed-content (True = The download is MixedContent, False= is not MixedContent)" }, "MIXED_CONTENT_IMAGES": { "record_in_processes": ["main", "content"], diff --git a/uriloader/exthandler/tests/mochitest/browser_download_idn_blocklist.js b/uriloader/exthandler/tests/mochitest/browser_download_idn_blocklist.js index a5de2870af..0d49a898a0 100644 --- a/uriloader/exthandler/tests/mochitest/browser_download_idn_blocklist.js +++ b/uriloader/exthandler/tests/mochitest/browser_download_idn_blocklist.js @@ -24,10 +24,7 @@ server.registerFile(`/${encodeURIComponent(TEST_FILE)}`, file); */ add_task(async function test_idn_blocklisted_char_not_escaped() { await SpecialPowers.pushPrefEnv({ - set: [ - ["browser.download.always_ask_before_handling_new_types", false], - ["dom.block_download_insecure", false], - ], + set: [["browser.download.always_ask_before_handling_new_types", false]], }); info("Testing with " + TEST_URL); -- cgit v1.2.3