summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--browser/branding/aurora/branding.nsi2
-rw-r--r--browser/branding/nightly/branding.nsi2
-rw-r--r--browser/branding/official/branding.nsi2
-rw-r--r--browser/branding/unofficial/branding.nsi2
-rw-r--r--browser/components/BrowserGlue.sys.mjs16
-rw-r--r--browser/components/shopping/ShoppingSidebarChild.sys.mjs3
-rw-r--r--browser/components/shopping/ShoppingSidebarParent.sys.mjs110
-rw-r--r--browser/components/shopping/tests/browser/browser_private_mode.js62
-rw-r--r--browser/config/version.txt2
-rw-r--r--browser/config/version_display.txt2
-rw-r--r--build/pgo/server-locations.txt1
-rw-r--r--config/milestone.txt2
-rw-r--r--docshell/base/nsDocShellLoadState.cpp12
-rw-r--r--docshell/base/nsDocShellLoadState.h10
-rw-r--r--dom/canvas/test/webgl-mochitest/test_renderer_strings.html3
-rw-r--r--dom/media/platforms/ffmpeg/FFmpegAudioDecoder.cpp2
-rw-r--r--dom/security/metrics.yaml21
-rw-r--r--dom/security/nsHTTPSOnlyUtils.cpp75
-rw-r--r--dom/security/nsHTTPSOnlyUtils.h38
-rw-r--r--dom/security/test/https-first/browser_httpsfirst.js8
-rw-r--r--gfx/cairo/libpixman/src/moz.build2
-rw-r--r--image/test/reftest/generic/reftest.list2
-rw-r--r--mobile/android/android-components/components/feature/fxsuggest/src/main/java/mozilla/components/feature/fxsuggest/FxSuggestIngestionWorker.kt14
-rw-r--r--mobile/android/android-components/components/feature/fxsuggest/src/test/java/mozilla/components/feature/fxsuggest/FxSuggestIngestionWorkerTest.kt17
-rw-r--r--mobile/android/fenix/app/src/main/java/org/mozilla/fenix/FenixApplication.kt14
-rw-r--r--mobile/android/fenix/app/src/main/java/org/mozilla/fenix/settings/SecretSettingsFragment.kt23
-rw-r--r--mobile/android/fenix/app/src/main/res/values/static_strings.xml2
-rw-r--r--mobile/android/fenix/app/src/main/res/xml/secret_settings_preferences.xml5
-rw-r--r--mobile/android/version.txt2
-rw-r--r--netwerk/cookie/CookieService.cpp15
-rw-r--r--netwerk/ipc/DocumentLoadListener.cpp16
-rw-r--r--netwerk/ipc/DocumentLoadListener.h2
-rw-r--r--other-licenses/nsis/Plugins/InetBgDL.dllbin17856 -> 97696 bytes
-rw-r--r--services/settings/dumps/blocklists/addons-bloomfilters.json15
-rw-r--r--services/settings/dumps/main/devtools-compatibility-browsers.json301
-rw-r--r--services/settings/dumps/main/search-telemetry-v2.json478
-rw-r--r--services/settings/dumps/security-state/intermediates.json236
-rw-r--r--services/settings/dumps/security-state/onecrl.json197
-rw-r--r--sourcestamp.txt4
-rw-r--r--taskcluster/gecko_taskgraph/transforms/geckodriver_signing.py2
-rw-r--r--taskcluster/gecko_taskgraph/transforms/openh264_signing.py2
-rw-r--r--taskcluster/gecko_taskgraph/transforms/repackage_signing.py8
-rw-r--r--taskcluster/gecko_taskgraph/transforms/repackage_signing_partner.py4
-rw-r--r--taskcluster/gecko_taskgraph/util/signed_artifacts.py4
-rw-r--r--taskcluster/kinds/repackage-msix/kind.yml4
-rw-r--r--taskcluster/kinds/repackage-shippable-l10n-msix/kind.yml4
-rw-r--r--testing/web-platform/meta/cookies/attributes/attributes-ctl.sub.html.ini30
-rw-r--r--toolkit/components/glean/ipc/FOGIPC.cpp65
-rw-r--r--toolkit/components/processtools/metrics.yaml16
-rw-r--r--toolkit/moz.configure2
50 files changed, 1089 insertions, 772 deletions
diff --git a/browser/branding/aurora/branding.nsi b/browser/branding/aurora/branding.nsi
index f3c573733e..682fa9fda5 100644
--- a/browser/branding/aurora/branding.nsi
+++ b/browser/branding/aurora/branding.nsi
@@ -24,7 +24,7 @@
# The installer's certificate name and issuer expected by the stub installer
!define CertNameDownload "Mozilla Corporation"
-!define CertIssuerDownload "DigiCert SHA2 Assured ID Code Signing CA"
+!define CertIssuerDownload "DigiCert Trusted G4 Code Signing RSA4096 SHA384 2021 CA1"
# Dialog units are used so the UI displays correctly with the system's DPI
# settings.
diff --git a/browser/branding/nightly/branding.nsi b/browser/branding/nightly/branding.nsi
index b37853b776..636d2f7824 100644
--- a/browser/branding/nightly/branding.nsi
+++ b/browser/branding/nightly/branding.nsi
@@ -23,7 +23,7 @@
# The installer's certificate name and issuer expected by the stub installer
!define CertNameDownload "Mozilla Corporation"
-!define CertIssuerDownload "DigiCert SHA2 Assured ID Code Signing CA"
+!define CertIssuerDownload "DigiCert Trusted G4 Code Signing RSA4096 SHA384 2021 CA1"
# Dialog units are used so the UI displays correctly with the system's DPI
# settings.
diff --git a/browser/branding/official/branding.nsi b/browser/branding/official/branding.nsi
index bbdead7e4a..94ffbaa98f 100644
--- a/browser/branding/official/branding.nsi
+++ b/browser/branding/official/branding.nsi
@@ -28,7 +28,7 @@
# The installer's certificate name and issuer expected by the stub installer
!define CertNameDownload "Mozilla Corporation"
-!define CertIssuerDownload "DigiCert SHA2 Assured ID Code Signing CA"
+!define CertIssuerDownload "DigiCert Trusted G4 Code Signing RSA4096 SHA384 2021 CA1"
# Dialog units are used so the UI displays correctly with the system's DPI
# settings. These are tweaked to look good with the en-US strings; ideally
diff --git a/browser/branding/unofficial/branding.nsi b/browser/branding/unofficial/branding.nsi
index 1fc5c12d2a..4c52c1d0c0 100644
--- a/browser/branding/unofficial/branding.nsi
+++ b/browser/branding/unofficial/branding.nsi
@@ -23,7 +23,7 @@
# The installer's certificate name and issuer expected by the stub installer
!define CertNameDownload "Mozilla Corporation"
-!define CertIssuerDownload "DigiCert SHA2 Assured ID Code Signing CA"
+!define CertIssuerDownload "DigiCert Trusted G4 Code Signing RSA4096 SHA384 2021 CA1"
# Dialog units are used so the UI displays correctly with the system's DPI
# settings.
diff --git a/browser/components/BrowserGlue.sys.mjs b/browser/components/BrowserGlue.sys.mjs
index b6ae665df0..81889db040 100644
--- a/browser/components/BrowserGlue.sys.mjs
+++ b/browser/components/BrowserGlue.sys.mjs
@@ -4474,7 +4474,21 @@ BrowserGlue.prototype = {
// This is achieved by converting them into a string pref and encrypting the values
// stored inside it.
- if (!AppConstants.NIGHTLY_BUILD) {
+ // Note: we don't run this on nightly builds and we also do not run this
+ // for users with primary password enabled. That means both these sets of
+ // users will have the features turned on by default. For Nightly this is
+ // an intentional product decision; for primary password this is because
+ // we cannot encrypt the opt-out value without asking for the primary
+ // password, which in turn means we cannot migrate without doing so. It
+ // is also very difficult to postpone this migration because there is no
+ // way to know when the user has put in the primary password. We will
+ // probably reconsider some of this architecture in future, but for now
+ // this is the least-painful method considering the alternatives, cf.
+ // bug 1901899.
+ if (
+ !AppConstants.NIGHTLY_BUILD &&
+ !lazy.LoginHelper.isPrimaryPasswordSet()
+ ) {
const hasRunBetaMigration = Services.prefs
.getCharPref("browser.startup.homepage_override.mstone", "")
.startsWith("127.0");
diff --git a/browser/components/shopping/ShoppingSidebarChild.sys.mjs b/browser/components/shopping/ShoppingSidebarChild.sys.mjs
index ff80086d5d..1ffeb914e3 100644
--- a/browser/components/shopping/ShoppingSidebarChild.sys.mjs
+++ b/browser/components/shopping/ShoppingSidebarChild.sys.mjs
@@ -85,6 +85,9 @@ export class ShoppingSidebarChild extends RemotePageChild {
#product = null;
receiveMessage(message) {
+ if (this.browsingContext.usePrivateBrowsing) {
+ throw new Error("We should never be invoked in PBM.");
+ }
switch (message.name) {
case "ShoppingSidebar:UpdateProductURL":
let { url, isReload } = message.data;
diff --git a/browser/components/shopping/ShoppingSidebarParent.sys.mjs b/browser/components/shopping/ShoppingSidebarParent.sys.mjs
index a7733c9a28..e0208a818d 100644
--- a/browser/components/shopping/ShoppingSidebarParent.sys.mjs
+++ b/browser/components/shopping/ShoppingSidebarParent.sys.mjs
@@ -43,6 +43,9 @@ export class ShoppingSidebarParent extends JSWindowActorParent {
}
async receiveMessage(message) {
+ if (this.browsingContext.usePrivateBrowsing) {
+ throw new Error("We should never be invoked in PBM.");
+ }
switch (message.name) {
case "GetProductURL":
let sidebarBrowser = this.browsingContext.top.embedderElement;
@@ -168,6 +171,12 @@ class ShoppingSidebarManagerClass {
#initialized = false;
#everyWindowCallbackId = `shopping-${Services.uuid.generateUUID()}`;
+ // Public API methods - these check that we are not in private browsing
+ // mode. (It might be nice to eventually shift pref checks to the public
+ // API, too.)
+ //
+ // Note that any refactoring should preserve the PBM checks in public APIs.
+
ensureInitialized() {
if (this.#initialized) {
return;
@@ -220,6 +229,10 @@ class ShoppingSidebarManagerClass {
this.enabled = lazy.NimbusFeatures.shopping2023.getVariable("enabled");
for (let window of lazy.BrowserWindowTracker.orderedWindows) {
+ let isPBM = lazy.PrivateBrowsingUtils.isWindowPrivate(window);
+ if (isPBM) {
+ continue;
+ }
this.updateSidebarVisibilityForWindow(window);
}
}
@@ -233,6 +246,11 @@ class ShoppingSidebarManagerClass {
return;
}
+ let isPBM = lazy.PrivateBrowsingUtils.isWindowPrivate(window);
+ if (isPBM) {
+ return;
+ }
+
let document = window.document;
if (!this.isActive) {
@@ -254,6 +272,54 @@ class ShoppingSidebarManagerClass {
this._maybeToggleSidebar(selectedBrowser, currentURI, 0, false);
}
+ /**
+ * Called by TabsProgressListener whenever any browser navigates from one
+ * URL to another.
+ * Note that this includes hash changes / pushState navigations, because
+ * those can be significant for us.
+ */
+ onLocationChange(aBrowser, aLocationURI, aFlags) {
+ let isPBM = lazy.PrivateBrowsingUtils.isWindowPrivate(aBrowser.ownerGlobal);
+ if (isPBM) {
+ return;
+ }
+
+ lazy.ShoppingUtils.onLocationChange(aLocationURI, aFlags);
+
+ this._maybeToggleButton(aBrowser.getTabBrowser());
+ this._maybeToggleSidebar(aBrowser, aLocationURI, aFlags, true);
+ }
+
+ handleEvent(event) {
+ switch (event.type) {
+ case "TabSelect": {
+ if (!this.enabled) {
+ return;
+ }
+ this.updateSidebarVisibility();
+ if (event.detail?.previousTab.linkedBrowser) {
+ this._updateBCActiveness(event.detail.previousTab.linkedBrowser);
+ }
+ break;
+ }
+ case "visibilitychange": {
+ if (!this.enabled) {
+ return;
+ }
+ let { gBrowser } = event.target.ownerGlobal.top;
+ if (!gBrowser) {
+ return;
+ }
+ this.updateSidebarVisibilityForWindow(event.target.ownerGlobal.top);
+ this._updateBCActiveness(gBrowser.selectedBrowser);
+ }
+ }
+ }
+
+ // Private API methods - these assume we are not in private browsing
+ // mode. (It might be nice to eventually shift pref checks to the public
+ // API, too.)
+
_maybeToggleSidebar(aBrowser, aLocationURI, aFlags, aIsNavigation) {
let gBrowser = aBrowser.getTabBrowser();
let document = aBrowser.ownerDocument;
@@ -380,50 +446,6 @@ class ShoppingSidebarManagerClass {
: "shopping-sidebar-open-button2";
document.l10n.setAttributes(button, l10nId);
}
-
- /**
- * Called by TabsProgressListener whenever any browser navigates from one
- * URL to another.
- * Note that this includes hash changes / pushState navigations, because
- * those can be significant for us.
- */
- onLocationChange(aBrowser, aLocationURI, aFlags) {
- let isPBM = lazy.PrivateBrowsingUtils.isWindowPrivate(aBrowser.ownerGlobal);
- if (isPBM) {
- return;
- }
-
- lazy.ShoppingUtils.onLocationChange(aLocationURI, aFlags);
-
- this._maybeToggleButton(aBrowser.getTabBrowser());
- this._maybeToggleSidebar(aBrowser, aLocationURI, aFlags, true);
- }
-
- handleEvent(event) {
- switch (event.type) {
- case "TabSelect": {
- if (!this.enabled) {
- return;
- }
- this.updateSidebarVisibility();
- if (event.detail?.previousTab.linkedBrowser) {
- this._updateBCActiveness(event.detail.previousTab.linkedBrowser);
- }
- break;
- }
- case "visibilitychange": {
- if (!this.enabled) {
- return;
- }
- let { gBrowser } = event.target.ownerGlobal.top;
- if (!gBrowser) {
- return;
- }
- this.updateSidebarVisibilityForWindow(event.target.ownerGlobal.top);
- this._updateBCActiveness(gBrowser.selectedBrowser);
- }
- }
- }
}
const ShoppingSidebarManager = new ShoppingSidebarManagerClass();
diff --git a/browser/components/shopping/tests/browser/browser_private_mode.js b/browser/components/shopping/tests/browser/browser_private_mode.js
index 16d7ee733b..9877f4a34b 100644
--- a/browser/components/shopping/tests/browser/browser_private_mode.js
+++ b/browser/components/shopping/tests/browser/browser_private_mode.js
@@ -3,33 +3,63 @@
"use strict";
-// This test verifies that the shopping sidebar is not initialized if the
+// These tests verify that the shopping sidebar is not initialized if the
// user visits a shopping product page while in private browsing mode.
-add_task(async function test_private_window_disabled() {
- let privateWindow = await BrowserTestUtils.openNewBrowserWindow({
- private: true,
- });
-
- let browser = privateWindow.gBrowser.selectedBrowser;
- BrowserTestUtils.startLoadingURIString(
- browser,
- "https://example.com/product/B09TJGHL5F"
- );
- await BrowserTestUtils.browserLoaded(browser);
+const PRODUCT_PAGE = "https://example.com/product/Y4YM0Z1LL4";
- let shoppingButton = privateWindow.document.getElementById(
- "shopping-sidebar-button"
- );
+let verifyButtonNotShown = win => {
+ let shoppingButton = win.document.getElementById("shopping-sidebar-button");
ok(
BrowserTestUtils.isHidden(shoppingButton),
"Shopping Button should not be visible on a product page"
);
+};
+let verifySidebarNotShown = win => {
ok(
- !privateWindow.document.querySelector("shopping-sidebar"),
+ !win.document.querySelector("shopping-sidebar"),
"Shopping sidebar does not exist"
);
+};
+
+add_task(async function test_private_window_disabled() {
+ let privateWindow = await BrowserTestUtils.openNewBrowserWindow({
+ private: true,
+ });
+
+ let browser = privateWindow.gBrowser.selectedBrowser;
+ BrowserTestUtils.startLoadingURIString(browser, PRODUCT_PAGE);
+ await BrowserTestUtils.browserLoaded(browser);
+
+ verifyButtonNotShown(privateWindow);
+ verifySidebarNotShown(privateWindow);
+
+ await BrowserTestUtils.closeWindow(privateWindow);
+});
+
+// If a product page is open in a private window, and the feature is
+// preffed on, the sidebar and button should not be shown in the private
+// window (bug 1901979).
+add_task(async function test_bug_1901979_pref_toggle_private_windows() {
+ let privateWindow = await BrowserTestUtils.openNewBrowserWindow({
+ private: true,
+ });
+
+ let browser = privateWindow.gBrowser.selectedBrowser;
+ BrowserTestUtils.startLoadingURIString(browser, PRODUCT_PAGE);
+ await BrowserTestUtils.browserLoaded(browser);
+
+ verifyButtonNotShown(privateWindow);
+ verifySidebarNotShown(privateWindow);
+
+ // Flip the prefs to trigger the bug.
+ Services.prefs.setBoolPref("browser.shopping.experience2023.enabled", false);
+ Services.prefs.setBoolPref("browser.shopping.experience2023.enabled", true);
+
+ // Verify we still haven't displayed the button or sidebar.
+ verifyButtonNotShown(privateWindow);
+ verifySidebarNotShown(privateWindow);
await BrowserTestUtils.closeWindow(privateWindow);
});
diff --git a/browser/config/version.txt b/browser/config/version.txt
index 4aea959bf8..29810a755b 100644
--- a/browser/config/version.txt
+++ b/browser/config/version.txt
@@ -1 +1 @@
-127.0
+127.0.1
diff --git a/browser/config/version_display.txt b/browser/config/version_display.txt
index 4aea959bf8..29810a755b 100644
--- a/browser/config/version_display.txt
+++ b/browser/config/version_display.txt
@@ -1 +1 @@
-127.0
+127.0.1
diff --git a/build/pgo/server-locations.txt b/build/pgo/server-locations.txt
index 2d97a79f3f..145d353bb9 100644
--- a/build/pgo/server-locations.txt
+++ b/build/pgo/server-locations.txt
@@ -318,6 +318,7 @@ https://mismatch.badcertdomain.example.com:443 privileged,cer
# Hosts for HTTPS-First upgrades/downgrades
http://httpsfirst.com:80 privileged
https://httpsfirst.com:443 privileged,nocert
+https://invalid.example.com:443 privileged,nocert
# Hosts for sha1 console warning tests
https://sha1ee.example.com:443 privileged,cert=sha1_end_entity
diff --git a/config/milestone.txt b/config/milestone.txt
index 3da78dcd9c..fccd17fbc2 100644
--- a/config/milestone.txt
+++ b/config/milestone.txt
@@ -10,4 +10,4 @@
# hardcoded milestones in the tree from these two files.
#--------------------------------------------------------
-127.0
+127.0.1
diff --git a/docshell/base/nsDocShellLoadState.cpp b/docshell/base/nsDocShellLoadState.cpp
index b3812eedd3..30ffed97d0 100644
--- a/docshell/base/nsDocShellLoadState.cpp
+++ b/docshell/base/nsDocShellLoadState.cpp
@@ -24,6 +24,7 @@
#include "mozilla/dom/ContentChild.h"
#include "mozilla/dom/ContentParent.h"
#include "mozilla/dom/LoadURIOptionsBinding.h"
+#include "mozilla/dom/nsHTTPSOnlyUtils.h"
#include "mozilla/StaticPrefs_browser.h"
#include "mozilla/StaticPrefs_fission.h"
#include "mozilla/Telemetry.h"
@@ -165,6 +166,7 @@ nsDocShellLoadState::nsDocShellLoadState(const nsDocShellLoadState& aOther)
mPartitionedPrincipalToInherit(aOther.mPartitionedPrincipalToInherit),
mForceAllowDataURI(aOther.mForceAllowDataURI),
mIsExemptFromHTTPSFirstMode(aOther.mIsExemptFromHTTPSFirstMode),
+ mHttpsFirstDowngradeData(aOther.GetHttpsFirstDowngradeData()),
mOriginalFrameSrc(aOther.mOriginalFrameSrc),
mIsFormSubmission(aOther.mIsFormSubmission),
mLoadType(aOther.mLoadType),
@@ -632,6 +634,16 @@ void nsDocShellLoadState::SetIsExemptFromHTTPSFirstMode(
mIsExemptFromHTTPSFirstMode = aIsExemptFromHTTPSFirstMode;
}
+RefPtr<HTTPSFirstDowngradeData>
+nsDocShellLoadState::GetHttpsFirstDowngradeData() const {
+ return mHttpsFirstDowngradeData;
+}
+
+void nsDocShellLoadState::SetHttpsFirstDowngradeData(
+ RefPtr<HTTPSFirstDowngradeData> const& aHttpsFirstTelemetryData) {
+ mHttpsFirstDowngradeData = aHttpsFirstTelemetryData;
+}
+
bool nsDocShellLoadState::OriginalFrameSrc() const { return mOriginalFrameSrc; }
void nsDocShellLoadState::SetOriginalFrameSrc(bool aOriginalFrameSrc) {
diff --git a/docshell/base/nsDocShellLoadState.h b/docshell/base/nsDocShellLoadState.h
index 8a8aad5a2c..8b1c430128 100644
--- a/docshell/base/nsDocShellLoadState.h
+++ b/docshell/base/nsDocShellLoadState.h
@@ -24,6 +24,7 @@ class nsIURI;
class nsIDocShell;
class nsIChannel;
class nsIReferrerInfo;
+struct HTTPSFirstDowngradeData;
namespace mozilla {
class OriginAttributes;
template <typename, class>
@@ -148,6 +149,11 @@ class nsDocShellLoadState final {
void SetIsExemptFromHTTPSFirstMode(bool aIsExemptFromHTTPSFirstMode);
+ RefPtr<HTTPSFirstDowngradeData> GetHttpsFirstDowngradeData() const;
+
+ void SetHttpsFirstDowngradeData(
+ RefPtr<HTTPSFirstDowngradeData> const& aHttpsFirstTelemetryData);
+
bool OriginalFrameSrc() const;
void SetOriginalFrameSrc(bool aOriginalFrameSrc);
@@ -484,6 +490,10 @@ class nsDocShellLoadState final {
// will be exempt from HTTPS-Only-Mode upgrades.
bool mIsExemptFromHTTPSFirstMode;
+ // If set, this load is a HTTPS-First downgrade, and the downgrade data will
+ // be submitted to telemetry later if the load succeeds.
+ RefPtr<HTTPSFirstDowngradeData> mHttpsFirstDowngradeData;
+
// If this attribute is true, this load corresponds to a frame
// element loading its original src (or srcdoc) attribute.
bool mOriginalFrameSrc;
diff --git a/dom/canvas/test/webgl-mochitest/test_renderer_strings.html b/dom/canvas/test/webgl-mochitest/test_renderer_strings.html
index 257a16d45e..ac7d834cac 100644
--- a/dom/canvas/test/webgl-mochitest/test_renderer_strings.html
+++ b/dom/canvas/test/webgl-mochitest/test_renderer_strings.html
@@ -58,6 +58,7 @@ async function testKnownCiStrings() {
'llvmpipe', // Linux
'Intel(R) HD Graphics 400', // Mac
'Apple M1', // Mac
+ 'Apple M2', // Mac
'ANGLE (NVIDIA, NVIDIA GeForce 8800 GTX Direct3D11 vs_5_0 ps_5_0)', // Windows
].map(x => x + ', or similar'),
vendor: [
@@ -69,8 +70,10 @@ async function testKnownCiStrings() {
'llvmpipe (LLVM 10.0.0, 256 bits)', // Linux
'Intel(R) UHD Graphics 630', // Mac
'Apple M1', // Mac
+ 'Apple M2', // Mac
'ANGLE (NVIDIA, NVIDIA Tesla M60 Direct3D11 vs_5_0 ps_5_0, D3D11-23.21.13.9181)', // Windows
'ANGLE (NVIDIA, NVIDIA Tesla M60 Direct3D11 vs_5_0 ps_5_0, D3D11-30.0.14.7239)', // Windows 11
+ 'ANGLE (NVIDIA, NVIDIA Tesla M60 Direct3D11 vs_5_0 ps_5_0, D3D11-31.0.15.3815)', //Windows 11
],
unmasked_vendor: [
'Qualcomm', // Android
diff --git a/dom/media/platforms/ffmpeg/FFmpegAudioDecoder.cpp b/dom/media/platforms/ffmpeg/FFmpegAudioDecoder.cpp
index 381cbf71a8..c471c82e62 100644
--- a/dom/media/platforms/ffmpeg/FFmpegAudioDecoder.cpp
+++ b/dom/media/platforms/ffmpeg/FFmpegAudioDecoder.cpp
@@ -285,7 +285,7 @@ MediaResult FFmpegAudioDecoder<LIBAV_VER>::PostProcessOutput(
RefPtr<AudioData> data =
new AudioData(aSample->mOffset, pts, std::move(audio), numChannels,
- samplingRate, numChannels);
+ samplingRate, mAudioInfo.mChannelMap);
MOZ_ASSERT(duration == data->mDuration, "must be equal");
aResults.AppendElement(std::move(data));
diff --git a/dom/security/metrics.yaml b/dom/security/metrics.yaml
index d48069e4b1..1fa025f002 100644
--- a/dom/security/metrics.yaml
+++ b/dom/security/metrics.yaml
@@ -14,8 +14,9 @@ httpsfirst:
upgraded:
type: counter
description: >
- Counts how often a load is marked to be upgraded to HTTPS because of
- HTTPS-First (`dom.security.https_first` enabled).
+ Counts how often a load is successfully upgraded to HTTPS because of
+ HTTPS-First (`dom.security.https_first` enabled). This does not include
+ loads that get downgraded again.
bugs:
- https://bugzilla.mozilla.org/show_bug.cgi?id=1868380
data_reviews:
@@ -30,9 +31,10 @@ httpsfirst:
upgraded_schemeless:
type: counter
description: >
- Counts how often a load is marked to be upgraded to HTTPS because of
+ Counts how often a load is successfully upgraded to HTTPS because of
schemeless HTTPS-First (`dom.security.https_first` disabled, but load
- marked as schemeless).
+ marked as schemeless). This does not include loads that get downgraded
+ again.
bugs:
- https://bugzilla.mozilla.org/show_bug.cgi?id=1868380
data_reviews:
@@ -48,7 +50,7 @@ httpsfirst:
type: counter
description: >
How many regular HTTPS-First (`dom.security.https_first` enabled)
- upgrades get downgraded again.
+ upgrades fail and get downgraded again.
bugs:
- https://bugzilla.mozilla.org/show_bug.cgi?id=1868380
data_reviews:
@@ -64,7 +66,7 @@ httpsfirst:
type: counter
description: >
How many schemeless HTTPS-First (`dom.security.https_first` disabled, but
- load marked as schemeless) upgrades get downgraded again.
+ load marked as schemeless) upgrades fail and get downgraded again.
bugs:
- https://bugzilla.mozilla.org/show_bug.cgi?id=1868380
data_reviews:
@@ -118,8 +120,7 @@ httpsfirst:
description: >
If a HTTPS-First (`dom.security.https_first` enabled) upgrade isn't
successful, measures the timespan between the navigation start and the
- downgrade. This does not include the case in which the https request times
- out and the http request sent after 3s gets a response faster.
+ downgrade.
time_unit: millisecond
bugs:
- https://bugzilla.mozilla.org/show_bug.cgi?id=1868380
@@ -137,9 +138,7 @@ httpsfirst:
description: >
If a schemeless HTTPS-First (`dom.security.https_first` disabled, but load
marked as schemeless) upgrade isn't successful, measures the timespan
- between the navigation start and the downgrade. This does not include the
- case in which the https request times out and the http request sent after
- 3s gets a response faster.
+ between the navigation start and the downgrade.
time_unit: millisecond
bugs:
- https://bugzilla.mozilla.org/show_bug.cgi?id=1868380
diff --git a/dom/security/nsHTTPSOnlyUtils.cpp b/dom/security/nsHTTPSOnlyUtils.cpp
index 0bc99179dc..b5512d8f78 100644
--- a/dom/security/nsHTTPSOnlyUtils.cpp
+++ b/dom/security/nsHTTPSOnlyUtils.cpp
@@ -448,8 +448,6 @@ bool nsHTTPSOnlyUtils::ShouldUpgradeHttpsFirstRequest(nsIURI* aURI,
nsHTTPSOnlyUtils::LogLocalizedString("HTTPSFirstSchemeless", params,
nsIScriptError::warningFlag, aLoadInfo,
aURI, true);
-
- mozilla::glean::httpsfirst::upgraded_schemeless.Add();
} else {
nsAutoCString scheme;
@@ -464,10 +462,6 @@ bool nsHTTPSOnlyUtils::ShouldUpgradeHttpsFirstRequest(nsIURI* aURI,
isSpeculative ? "HTTPSOnlyUpgradeSpeculativeConnection"
: "HTTPSOnlyUpgradeRequest",
params, nsIScriptError::warningFlag, aLoadInfo, aURI, true);
-
- if (!isSpeculative) {
- mozilla::glean::httpsfirst::upgraded.Add();
- }
}
// Set flag so we know that we upgraded the request
@@ -594,7 +588,17 @@ nsHTTPSOnlyUtils::PotentiallyDowngradeHttpsFirstRequest(
nsIScriptError::warningFlag, loadInfo,
uri, true);
- // Record telemety
+ return newURI.forget();
+}
+
+void nsHTTPSOnlyUtils::UpdateLoadStateAfterHTTPSFirstDowngrade(
+ mozilla::net::DocumentLoadListener* aDocumentLoadListener,
+ nsDocShellLoadState* aLoadState) {
+ // We have to exempt the load from HTTPS-First to prevent a upgrade-downgrade
+ // loop
+ aLoadState->SetIsExemptFromHTTPSFirstMode(true);
+
+ // Add downgrade data for later telemetry usage to load state
nsDOMNavigationTiming* timing = aDocumentLoadListener->GetTiming();
if (timing) {
mozilla::TimeStamp navigationStart = timing->GetNavigationStartTimeStamp();
@@ -602,31 +606,60 @@ nsHTTPSOnlyUtils::PotentiallyDowngradeHttpsFirstRequest(
mozilla::TimeDuration duration =
mozilla::TimeStamp::Now() - navigationStart;
+ nsCOMPtr<nsIChannel> channel = aDocumentLoadListener->GetChannel();
+ nsCOMPtr<nsILoadInfo> loadInfo = channel->LoadInfo();
+
bool isPrivateWin =
loadInfo->GetOriginAttributes().mPrivateBrowsingId > 0;
bool isSchemeless =
loadInfo->GetWasSchemelessInput() &&
!nsHTTPSOnlyUtils::IsHttpsFirstModeEnabled(isPrivateWin);
- using namespace mozilla::glean::httpsfirst;
- auto downgradedMetric = isSchemeless ? downgraded_schemeless : downgraded;
- auto downgradedOnTimerMetric =
- isSchemeless ? downgraded_on_timer_schemeless : downgraded_on_timer;
- auto downgradeTimeMetric =
- isSchemeless ? downgrade_time_schemeless : downgrade_time;
-
nsresult channelStatus;
channel->GetStatus(&channelStatus);
- if (channelStatus == NS_ERROR_NET_TIMEOUT_EXTERNAL) {
- downgradedOnTimerMetric.AddToNumerator();
- } else {
- downgradeTimeMetric.AccumulateRawDuration(duration);
- }
- downgradedMetric.Add();
+
+ RefPtr downgradeData = mozilla::MakeRefPtr<HTTPSFirstDowngradeData>();
+ downgradeData->downgradeTime = duration;
+ downgradeData->isOnTimer = channelStatus == NS_ERROR_NET_TIMEOUT_EXTERNAL;
+ downgradeData->isSchemeless = isSchemeless;
+ aLoadState->SetHttpsFirstDowngradeData(downgradeData);
}
}
+}
- return newURI.forget();
+void nsHTTPSOnlyUtils::SubmitHTTPSFirstTelemetry(
+ nsCOMPtr<nsILoadInfo> const& aLoadInfo,
+ RefPtr<HTTPSFirstDowngradeData> const& aHttpsFirstDowngradeData) {
+ using namespace mozilla::glean::httpsfirst;
+ if (aHttpsFirstDowngradeData) {
+ // Successfully downgraded load
+
+ auto downgradedMetric = aHttpsFirstDowngradeData->isSchemeless
+ ? downgraded_schemeless
+ : downgraded;
+ auto downgradedOnTimerMetric = aHttpsFirstDowngradeData->isSchemeless
+ ? downgraded_on_timer_schemeless
+ : downgraded_on_timer;
+ auto downgradeTimeMetric = aHttpsFirstDowngradeData->isSchemeless
+ ? downgrade_time_schemeless
+ : downgrade_time;
+
+ if (aHttpsFirstDowngradeData->isOnTimer) {
+ downgradedOnTimerMetric.AddToNumerator();
+ }
+ downgradedMetric.Add();
+ downgradeTimeMetric.AccumulateRawDuration(
+ aHttpsFirstDowngradeData->downgradeTime);
+ } else if (aLoadInfo->GetHttpsOnlyStatus() &
+ nsILoadInfo::HTTPS_ONLY_UPGRADED_HTTPS_FIRST) {
+ // Successfully upgraded load
+
+ if (aLoadInfo->GetWasSchemelessInput()) {
+ upgraded_schemeless.Add();
+ } else {
+ upgraded.Add();
+ }
+ }
}
/* static */
diff --git a/dom/security/nsHTTPSOnlyUtils.h b/dom/security/nsHTTPSOnlyUtils.h
index 775fbf39e0..d582e62f36 100644
--- a/dom/security/nsHTTPSOnlyUtils.h
+++ b/dom/security/nsHTTPSOnlyUtils.h
@@ -176,6 +176,31 @@ class nsHTTPSOnlyUtils {
*/
static uint32_t GetStatusForSubresourceLoad(uint32_t aHttpsOnlyStatus);
+ /**
+ * When a downgrade is happening because of HTTPS-First, this function will
+ * update the load state for the new load accordingly. This includes
+ * information about the downgrade for later telemetry use.
+ * @param aDocumentLoadListener The calling document load listener.
+ * @param aLoadState The load state to be updated
+ */
+ static void UpdateLoadStateAfterHTTPSFirstDowngrade(
+ mozilla::net::DocumentLoadListener* aDocumentLoadListener,
+ nsDocShellLoadState* aLoadState);
+
+ /**
+ * When a load is successful, this should be called by the document load
+ * listener. In two cases, telemetry is then recorded:
+ * a) If downgrade data has been passed, the passed load is a successful
+ * downgrade, which means telemetry based on the downgrade data will be
+ * submitted.
+ * b) If the passed load info indicates that this load has been upgraded by
+ * HTTPS-First, this means the upgrade was successful, which will be
+ * recorded to telemetry.
+ */
+ static void SubmitHTTPSFirstTelemetry(
+ nsCOMPtr<nsILoadInfo> const& aLoadInfo,
+ RefPtr<HTTPSFirstDowngradeData> const& aHttpsFirstDowngradeData);
+
private:
/**
* Checks if it can be ruled out that the error has something
@@ -257,4 +282,17 @@ class TestHTTPAnswerRunnable final : public mozilla::Runnable,
RefPtr<nsITimer> mTimer;
};
+/**
+ * Data about a HTTPS-First downgrade used for Telemetry. We need to store this
+ * instead of directly submitting it when deciding to downgrade, because it is
+ * only interesting for us if the downgraded load is actually succesful.
+ */
+struct HTTPSFirstDowngradeData
+ : public mozilla::RefCounted<HTTPSFirstDowngradeData> {
+ MOZ_DECLARE_REFCOUNTED_TYPENAME(HTTPSFirstDowngradeData)
+ mozilla::TimeDuration downgradeTime;
+ bool isOnTimer = false;
+ bool isSchemeless = false;
+};
+
#endif /* nsHTTPSOnlyUtils_h___ */
diff --git a/dom/security/test/https-first/browser_httpsfirst.js b/dom/security/test/https-first/browser_httpsfirst.js
index e0bba26f73..060d7d362c 100644
--- a/dom/security/test/https-first/browser_httpsfirst.js
+++ b/dom/security/test/https-first/browser_httpsfirst.js
@@ -90,8 +90,14 @@ add_task(async function () {
"http://"
);
+ await runPrefTest(
+ "http://invalid.example.com",
+ "Should downgrade non-reachable site.",
+ "http://"
+ );
+
info("Checking expected telemetry");
- is(Glean.httpsfirst.upgraded.testGetValue(), 5);
+ is(Glean.httpsfirst.upgraded.testGetValue(), 1);
is(Glean.httpsfirst.upgradedSchemeless.testGetValue(), null);
is(Glean.httpsfirst.downgraded.testGetValue(), 3);
is(Glean.httpsfirst.downgradedSchemeless.testGetValue(), null);
diff --git a/gfx/cairo/libpixman/src/moz.build b/gfx/cairo/libpixman/src/moz.build
index 6d5cee9c8d..8354df8339 100644
--- a/gfx/cairo/libpixman/src/moz.build
+++ b/gfx/cairo/libpixman/src/moz.build
@@ -93,6 +93,8 @@ elif CONFIG['TARGET_CPU'] == 'arm':
'pixman-arm-simd-asm.S',
'pixman-arm-simd.c',
]
+ if CONFIG['HAVE_ARM_NEON'] or CONFIG['HAVE_ARM_SIMD']:
+ DEFINES['ASM_HAVE_SYNTAX_UNIFIED'] = True
if CONFIG['OS_TARGET'] == 'Android':
# For cpu-features.h
LOCAL_INCLUDES += [
diff --git a/image/test/reftest/generic/reftest.list b/image/test/reftest/generic/reftest.list
index 6729286168..4ef4f419e5 100644
--- a/image/test/reftest/generic/reftest.list
+++ b/image/test/reftest/generic/reftest.list
@@ -3,5 +3,5 @@ skip-if(Android) != moz-icon-1.html about:blank
== moz-icon-blank-1.html moz-icon-blank-1-ref.html
skip-if(Android) != moz-icon-blank-1-ref.html moz-icon-blank-1-antiref.html
skip-if(Android) != moz-icon-blank-1-ref.html moz-icon-blank-1-antiref2.html
-fuzzy-if(cocoaWidget,44-49,335-348) fuzzy-if(winWidget,64-140,45-191) == moz-icon-blank-1-almostref.html moz-icon-blank-1-ref.html
+fuzzy-if(cocoaWidget,44-49,335-348) fuzzy-if(winWidget,64-141,45-191) == moz-icon-blank-1-almostref.html moz-icon-blank-1-ref.html
pref(image.testing.decode-sync.enabled,false) == 1805599-1.html 1805599-1-ref.html
diff --git a/mobile/android/android-components/components/feature/fxsuggest/src/main/java/mozilla/components/feature/fxsuggest/FxSuggestIngestionWorker.kt b/mobile/android/android-components/components/feature/fxsuggest/src/main/java/mozilla/components/feature/fxsuggest/FxSuggestIngestionWorker.kt
index b30f8b0f4b..9784d9e79e 100644
--- a/mobile/android/android-components/components/feature/fxsuggest/src/main/java/mozilla/components/feature/fxsuggest/FxSuggestIngestionWorker.kt
+++ b/mobile/android/android-components/components/feature/fxsuggest/src/main/java/mozilla/components/feature/fxsuggest/FxSuggestIngestionWorker.kt
@@ -22,16 +22,10 @@ internal class FxSuggestIngestionWorker(
private val logger = Logger("FxSuggestIngestionWorker")
override suspend fun doWork(): Result {
- logger.info("Ingesting new suggestions")
- val storage = GlobalFxSuggestDependencyProvider.requireStorage()
- val success = storage.ingest()
- return if (success) {
- logger.info("Successfully ingested new suggestions")
- Result.success()
- } else {
- logger.error("Failed to ingest new suggestions")
- Result.retry()
- }
+ // Disable periodic ingestion until we figure out
+ // https://bugzilla.mozilla.org/show_bug.cgi?id=1900837
+ logger.info("Skipping ingesting new suggestions")
+ return Result.success()
}
internal companion object {
diff --git a/mobile/android/android-components/components/feature/fxsuggest/src/test/java/mozilla/components/feature/fxsuggest/FxSuggestIngestionWorkerTest.kt b/mobile/android/android-components/components/feature/fxsuggest/src/test/java/mozilla/components/feature/fxsuggest/FxSuggestIngestionWorkerTest.kt
index 84df98f78e..54c1e1dd67 100644
--- a/mobile/android/android-components/components/feature/fxsuggest/src/test/java/mozilla/components/feature/fxsuggest/FxSuggestIngestionWorkerTest.kt
+++ b/mobile/android/android-components/components/feature/fxsuggest/src/test/java/mozilla/components/feature/fxsuggest/FxSuggestIngestionWorkerTest.kt
@@ -18,6 +18,7 @@ import org.junit.Assert.assertEquals
import org.junit.Before
import org.junit.Test
import org.junit.runner.RunWith
+import org.mockito.Mockito.never
import org.mockito.Mockito.verify
@RunWith(AndroidJUnit4::class)
@@ -43,19 +44,9 @@ class FxSuggestIngestionWorkerTest {
val result = worker.startWork().await()
- verify(storage).ingest(any())
+ // Ingestion is disabled until we figure out
+ // https://bugzilla.mozilla.org/show_bug.cgi?id=1900837
+ verify(storage, never()).ingest(any())
assertEquals(ListenableWorker.Result.success(), result)
}
-
- @Test
- fun workShouldRetry() = runTest {
- whenever(storage.ingest(any())).thenReturn(false)
-
- val worker = TestListenableWorkerBuilder<FxSuggestIngestionWorker>(testContext).build()
-
- val result = worker.startWork().await()
-
- verify(storage).ingest(any())
- assertEquals(ListenableWorker.Result.retry(), result)
- }
}
diff --git a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/FenixApplication.kt b/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/FenixApplication.kt
index cd367fa467..6d0d37f0a5 100644
--- a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/FenixApplication.kt
+++ b/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/FenixApplication.kt
@@ -377,11 +377,15 @@ open class FenixApplication : LocaleAwareApplication(), Provider {
// new search suggestions. The worker requires us to have called
// `GlobalFxSuggestDependencyProvider.initialize`, which we did before
// scheduling these tasks. When disabled we stop the periodic work.
- if (settings().enableFxSuggest) {
- components.fxSuggest.ingestionScheduler.startPeriodicIngestion()
- } else {
- components.fxSuggest.ingestionScheduler.stopPeriodicIngestion()
- }
+
+ // Disable periodic ingestion until we figure out
+ // https://bugzilla.mozilla.org/show_bug.cgi?id=1900837
+ //
+ // Note: we will still ingest once for a fresh DB because of
+ // the `runStartupIngestion()` call below. This should be okay, the
+ // performance issues only happen when reingesting after a successful
+ // initial ingestion.
+ components.fxSuggest.ingestionScheduler.stopPeriodicIngestion()
}
components.core.fileUploadsDirCleaner.cleanUploadsDirectory()
}
diff --git a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/settings/SecretSettingsFragment.kt b/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/settings/SecretSettingsFragment.kt
index c50cbe6a1c..d65133b81d 100644
--- a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/settings/SecretSettingsFragment.kt
+++ b/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/settings/SecretSettingsFragment.kt
@@ -5,7 +5,6 @@
package org.mozilla.fenix.settings
import android.os.Bundle
-import androidx.core.content.edit
import androidx.lifecycle.lifecycleScope
import androidx.navigation.fragment.findNavController
import androidx.preference.EditTextPreference
@@ -16,7 +15,6 @@ import kotlinx.coroutines.flow.first
import kotlinx.coroutines.launch
import org.mozilla.fenix.BuildConfig
import org.mozilla.fenix.Config
-import org.mozilla.fenix.FeatureFlags
import org.mozilla.fenix.R
import org.mozilla.fenix.browser.tabstrip.isTabStripEligible
import org.mozilla.fenix.debugsettings.data.DefaultDebugSettingsRepository
@@ -83,27 +81,6 @@ class SecretSettingsFragment : PreferenceFragmentCompat() {
onPreferenceChangeListener = SharedPreferenceUpdater()
}
- requirePreference<SwitchPreference>(R.string.pref_key_enable_fxsuggest).apply {
- isVisible = FeatureFlags.fxSuggest
- isChecked = context.settings().enableFxSuggest
- onPreferenceChangeListener = object : Preference.OnPreferenceChangeListener {
- override fun onPreferenceChange(preference: Preference, newValue: Any?): Boolean {
- val newBooleanValue = newValue as? Boolean ?: return false
- val ingestionScheduler =
- requireContext().components.fxSuggest.ingestionScheduler
- if (newBooleanValue) {
- ingestionScheduler.startPeriodicIngestion()
- } else {
- ingestionScheduler.stopPeriodicIngestion()
- }
- requireContext().settings().preferences.edit {
- putBoolean(preference.key, newBooleanValue)
- }
- return true
- }
- }
- }
-
requirePreference<SwitchPreference>(R.string.pref_key_should_enable_felt_privacy).apply {
isVisible = true
isChecked = context.settings().feltPrivateBrowsingEnabled
diff --git a/mobile/android/fenix/app/src/main/res/values/static_strings.xml b/mobile/android/fenix/app/src/main/res/values/static_strings.xml
index 6ed8c8901c..d5339548dd 100644
--- a/mobile/android/fenix/app/src/main/res/values/static_strings.xml
+++ b/mobile/android/fenix/app/src/main/res/values/static_strings.xml
@@ -78,8 +78,6 @@
<string name="preferences_debug_settings_compose_top_sites" translatable="false">Enable Compose Top Sites</string>
<!-- Label for enabling the menu redesign -->
<string name="preferences_debug_settings_menu_redesign" translatable="false">Enable Menu Redesign</string>
- <!-- Label for enabling Firefox Suggest -->
- <string name="preferences_debug_settings_fxsuggest" translatable="false">Enable Firefox Suggest</string>
<!-- Label for enabling Toolbar Redesign incomplete portions -->
<string name="preferences_debug_settings_toolbar_redesign" translatable="false">Enable Toolbar Redesign incomplete portions</string>
<!-- Label for enabling Felt Privacy -->
diff --git a/mobile/android/fenix/app/src/main/res/xml/secret_settings_preferences.xml b/mobile/android/fenix/app/src/main/res/xml/secret_settings_preferences.xml
index a1774c1204..c1bc03395e 100644
--- a/mobile/android/fenix/app/src/main/res/xml/secret_settings_preferences.xml
+++ b/mobile/android/fenix/app/src/main/res/xml/secret_settings_preferences.xml
@@ -36,11 +36,6 @@
android:title="@string/preferences_debug_settings_toolbar_redesign"
app:iconSpaceReserved="false" />
<SwitchPreference
- android:defaultValue="false"
- android:key="@string/pref_key_enable_fxsuggest"
- android:title="@string/preferences_debug_settings_fxsuggest"
- app:iconSpaceReserved="false" />
- <SwitchPreference
android:key="@string/pref_key_should_enable_felt_privacy"
app:iconSpaceReserved="false"
android:title="@string/preferences_debug_felt_privacy"
diff --git a/mobile/android/version.txt b/mobile/android/version.txt
index 4aea959bf8..29810a755b 100644
--- a/mobile/android/version.txt
+++ b/mobile/android/version.txt
@@ -1 +1 @@
-127.0
+127.0.1
diff --git a/netwerk/cookie/CookieService.cpp b/netwerk/cookie/CookieService.cpp
index 78698d44a0..8457a99249 100644
--- a/netwerk/cookie/CookieService.cpp
+++ b/netwerk/cookie/CookieService.cpp
@@ -1624,21 +1624,6 @@ bool CookieService::GetTokenValue(nsACString::const_char_iterator& aIter,
// if on terminator, increment past & return true to process new cookie
if (isterminator(*aIter)) {
++aIter;
- while (aIter != aEndIter && isvalueseparator(*aIter)) {
- ++aIter;
- }
- nsACString::const_char_iterator end = aIter - 1;
- if (!isterminator(*end)) {
- // The cookie isn't valid because we have multiple terminators or
- // a terminator followed by a value separator. Add those invalid
- // characters to the cookie string or value so it will be rejected.
- if (aEqualsFound) {
- aTokenString.Rebind(start, end);
- } else {
- aTokenValue.Rebind(start, end);
- }
- return false;
- }
return true;
}
// fall-through: aIter is on ';', increment and return false
diff --git a/netwerk/ipc/DocumentLoadListener.cpp b/netwerk/ipc/DocumentLoadListener.cpp
index a133df4663..280348e449 100644
--- a/netwerk/ipc/DocumentLoadListener.cpp
+++ b/netwerk/ipc/DocumentLoadListener.cpp
@@ -644,6 +644,7 @@ auto DocumentLoadListener::Open(nsDocShellLoadState* aLoadState,
// See description of mFileName in nsDocShellLoadState.h
mIsDownload = !aLoadState->FileName().IsVoid();
mIsLoadingJSURI = net::SchemeIsJavascript(aLoadState->URI());
+ mHTTPSFirstDowngradeData = aLoadState->GetHttpsFirstDowngradeData().forget();
// Check for infinite recursive object or iframe loads
if (aLoadState->OriginalFrameSrc() || !mIsDocumentLoad) {
@@ -2427,9 +2428,7 @@ bool DocumentLoadListener::MaybeHandleLoadErrorWithURIFixup(nsresult aStatus) {
loadState->SetWasSchemelessInput(wasSchemelessInput);
if (isHTTPSFirstFixup) {
- // We have to exempt the load from HTTPS-First to prevent a
- // upgrade-downgrade loop.
- loadState->SetIsExemptFromHTTPSFirstMode(true);
+ nsHTTPSOnlyUtils::UpdateLoadStateAfterHTTPSFirstDowngrade(this, loadState);
}
// Ensure to set referrer information in the fallback channel equally to the
@@ -2571,6 +2570,17 @@ DocumentLoadListener::OnStartRequest(nsIRequest* aRequest) {
return NS_OK;
}
+ // If this is a successful load with a successful status code, we can possibly
+ // submit HTTPS-First telemetry.
+ if (NS_SUCCEEDED(status) && httpChannel) {
+ uint32_t responseStatus = 0;
+ if (NS_SUCCEEDED(httpChannel->GetResponseStatus(&responseStatus)) &&
+ responseStatus < 400) {
+ nsHTTPSOnlyUtils::SubmitHTTPSFirstTelemetry(
+ mChannel->LoadInfo(), mHTTPSFirstDowngradeData.forget());
+ }
+ }
+
mStreamListenerFunctions.AppendElement(StreamListenerFunction{
VariantIndex<0>{}, OnStartRequestParams{aRequest}});
diff --git a/netwerk/ipc/DocumentLoadListener.h b/netwerk/ipc/DocumentLoadListener.h
index 6f6ad357ae..69f7eafd0f 100644
--- a/netwerk/ipc/DocumentLoadListener.h
+++ b/netwerk/ipc/DocumentLoadListener.h
@@ -617,6 +617,8 @@ class DocumentLoadListener : public nsIInterfaceRequestor,
bool mOpenPromiseResolved = false;
const bool mIsDocumentLoad;
+
+ RefPtr<HTTPSFirstDowngradeData> mHTTPSFirstDowngradeData;
};
NS_DEFINE_STATIC_IID_ACCESSOR(DocumentLoadListener, DOCUMENT_LOAD_LISTENER_IID)
diff --git a/other-licenses/nsis/Plugins/InetBgDL.dll b/other-licenses/nsis/Plugins/InetBgDL.dll
index 6cb91637bd..fa6127631e 100644
--- a/other-licenses/nsis/Plugins/InetBgDL.dll
+++ b/other-licenses/nsis/Plugins/InetBgDL.dll
Binary files differ
diff --git a/services/settings/dumps/blocklists/addons-bloomfilters.json b/services/settings/dumps/blocklists/addons-bloomfilters.json
index 6cdec41139..aed250d702 100644
--- a/services/settings/dumps/blocklists/addons-bloomfilters.json
+++ b/services/settings/dumps/blocklists/addons-bloomfilters.json
@@ -3,6 +3,19 @@
{
"stash": {
"blocked": [
+ "{80f72148-c2c1-4690-b9bb-eb49b7e35aad}:1.2"
+ ],
+ "unblocked": []
+ },
+ "schema": 1718040172384,
+ "key_format": "{guid}:{version}",
+ "stash_time": 1718109305604,
+ "id": "5efe9fe9-e815-4eaa-8b3e-399a3c4e27eb",
+ "last_modified": 1718109362020
+ },
+ {
+ "stash": {
+ "blocked": [
"{a5eff3e0-fd15-4905-8799-a3c8a3a1eb56}:1.6",
"{437c932f-fa9f-459d-8dab-ea6219d23513}:1.7",
"{2aeb7e23-47e4-4a41-9125-f5a28e9b62cf}:1.4"
@@ -707,5 +720,5 @@
"last_modified": 1707395854769
}
],
- "timestamp": 1717094162111
+ "timestamp": 1718109362020
}
diff --git a/services/settings/dumps/main/devtools-compatibility-browsers.json b/services/settings/dumps/main/devtools-compatibility-browsers.json
index 0f422a8f37..ccb7f43884 100644
--- a/services/settings/dumps/main/devtools-compatibility-browsers.json
+++ b/services/settings/dumps/main/devtools-compatibility-browsers.json
@@ -1,202 +1,247 @@
{
"data": [
{
- "name": "Edge",
- "schema": 1716941107417,
- "status": "current",
- "version": "125",
- "browserid": "edge",
- "id": "f1147d5f-d690-43d0-879d-117c6ca24a16",
- "last_modified": 1716966331501
+ "name": "Chrome Android",
+ "schema": 1718237106974,
+ "status": "beta",
+ "version": "127",
+ "browserid": "chrome_android",
+ "id": "cd12d517-e366-4857-88e5-bfcf60d9d538",
+ "last_modified": 1718606078088
},
{
"name": "Firefox",
- "schema": 1715731507143,
+ "schema": 1718237107359,
"status": "planned",
- "version": "129",
+ "version": "130",
"browserid": "firefox",
- "id": "aed9aeed-2d00-44d3-9b04-065a3df6af27",
- "last_modified": 1715839095932
+ "id": "010b69b4-e137-4a3c-8d98-b22d532d0b6a",
+ "last_modified": 1718606078085
},
{
"name": "Firefox for Android",
- "schema": 1715731507714,
+ "schema": 1718237107716,
"status": "planned",
- "version": "129",
+ "version": "130",
"browserid": "firefox_android",
- "id": "0e014c85-acab-44d6-8108-3441175573e2",
- "last_modified": 1715839095930
+ "id": "232a420f-0598-4544-85b1-c72805873b55",
+ "last_modified": 1718606078082
+ },
+ {
+ "name": "Safari",
+ "schema": 1718237107783,
+ "status": "beta",
+ "version": "18",
+ "browserid": "safari",
+ "id": "f2e90b45-68bd-4a1c-8470-6d5c8d934e14",
+ "last_modified": 1718606078080
},
{
"name": "Safari on iOS",
- "schema": 1715731507984,
- "status": "current",
- "version": "17.5",
+ "schema": 1718237107850,
+ "status": "beta",
+ "version": "18",
"browserid": "safari_ios",
- "id": "4375a82d-f2f1-4883-8da7-0aedfb05b8f9",
- "last_modified": 1715839095923
+ "id": "12c2ba11-079f-439f-b326-3350f7999b38",
+ "last_modified": 1718606078077
},
{
- "name": "Safari",
- "schema": 1715731507854,
+ "name": "WebView Android",
+ "schema": 1718237108052,
+ "status": "beta",
+ "version": "127",
+ "browserid": "webview_android",
+ "id": "51d69a2e-b706-44ca-802d-121d29285060",
+ "last_modified": 1718606078074
+ },
+ {
+ "name": "WebView Android",
+ "schema": 1718237107985,
"status": "current",
- "version": "17.5",
- "browserid": "safari",
- "id": "24e30aff-fbf8-4a96-a036-84f970447d4b",
- "last_modified": 1715839095920
+ "version": "126",
+ "browserid": "webview_android",
+ "id": "97b0b530-34a9-4e02-949f-d525bf6bc793",
+ "last_modified": 1718606078065
+ },
+ {
+ "name": "Chrome Android",
+ "schema": 1718237106898,
+ "status": "current",
+ "version": "126",
+ "browserid": "chrome_android",
+ "id": "e8108829-a3d5-4363-86c9-7e9f1015c2fd",
+ "last_modified": 1718606078062
+ },
+ {
+ "name": "Chrome",
+ "schema": 1718237106686,
+ "status": "current",
+ "version": "126",
+ "browserid": "chrome",
+ "id": "329bb17c-2556-40a6-8e88-eb2fe353913a",
+ "last_modified": 1718606078060
},
{
"name": "Firefox",
- "schema": 1715731506990,
+ "schema": 1718237107202,
"status": "beta",
- "version": "127",
+ "version": "128",
"browserid": "firefox",
- "id": "1477a1c3-a8be-4e6f-916e-8cf8eb789e3f",
- "last_modified": 1715839095918
+ "id": "565161dc-52d8-4cb1-8cf3-8171b960f9e4",
+ "last_modified": 1718606078057
},
{
"name": "Firefox for Android",
- "schema": 1715731507415,
+ "schema": 1718237107577,
"status": "beta",
- "version": "127",
+ "version": "128",
"browserid": "firefox_android",
- "id": "13f02b93-14c9-4ca4-937d-0a83fb7fb3a5",
- "last_modified": 1715839095915
+ "id": "05aa43eb-3966-4fc1-8b33-53c493448d2d",
+ "last_modified": 1718606078055
},
{
"name": "Firefox for Android",
- "schema": 1715731507341,
+ "schema": 1718237107506,
"status": "current",
- "version": "126",
+ "version": "127",
"browserid": "firefox_android",
- "id": "b77524e9-58dc-4196-acbd-41dddc4daea2",
- "last_modified": 1715839095908
+ "id": "13f02b93-14c9-4ca4-937d-0a83fb7fb3a5",
+ "last_modified": 1718606078048
},
{
"name": "Firefox",
- "schema": 1715731506911,
+ "schema": 1718237107126,
"status": "current",
- "version": "126",
+ "version": "127",
"browserid": "firefox",
- "id": "70b05b0b-bbef-486c-901a-ea3221a28fc1",
- "last_modified": 1715839095906
+ "id": "1477a1c3-a8be-4e6f-916e-8cf8eb789e3f",
+ "last_modified": 1718606078046
},
{
"name": "Firefox for Android",
- "schema": 1715731507485,
+ "schema": 1718237107649,
"status": "nightly",
- "version": "128",
+ "version": "129",
"browserid": "firefox_android",
- "id": "05aa43eb-3966-4fc1-8b33-53c493448d2d",
- "last_modified": 1715839095903
+ "id": "0e014c85-acab-44d6-8108-3441175573e2",
+ "last_modified": 1718606078044
},
{
"name": "Firefox",
- "schema": 1715731507063,
+ "schema": 1718237107286,
"status": "nightly",
- "version": "128",
+ "version": "129",
"browserid": "firefox",
- "id": "565161dc-52d8-4cb1-8cf3-8171b960f9e4",
- "last_modified": 1715839095900
- },
- {
- "name": "Node.js",
- "schema": 1715126727137,
- "status": "current",
- "version": "22.0.0",
- "browserid": "nodejs",
- "id": "c28dfac7-c7de-4e20-8212-abc7c0de635a",
- "last_modified": 1715589742262
+ "id": "aed9aeed-2d00-44d3-9b04-065a3df6af27",
+ "last_modified": 1718606078041
},
{
"name": "Chrome",
- "schema": 1715385903539,
+ "schema": 1718237106760,
"status": "beta",
- "version": "126",
+ "version": "127",
"browserid": "chrome",
- "id": "329bb17c-2556-40a6-8e88-eb2fe353913a",
- "last_modified": 1715589742259
+ "id": "0e69f9d7-19f6-4c6e-bc36-731da4cee6e3",
+ "last_modified": 1718606078039
},
{
- "name": "Chrome Android",
- "schema": 1715385903774,
- "status": "beta",
- "version": "126",
- "browserid": "chrome_android",
- "id": "e8108829-a3d5-4363-86c9-7e9f1015c2fd",
- "last_modified": 1715589742256
+ "name": "Edge",
+ "schema": 1717286706296,
+ "status": "planned",
+ "version": "128",
+ "browserid": "edge",
+ "id": "edad0482-a612-4019-a601-53dc349514b8",
+ "last_modified": 1718005312987
},
{
- "name": "Opera",
- "schema": 1715385903851,
- "status": "nightly",
- "version": "111",
- "browserid": "opera",
- "id": "880cc50c-e430-43ac-aa57-d1f02fae0e30",
- "last_modified": 1715589742254
+ "name": "Node.js",
+ "schema": 1717286706438,
+ "status": "esr",
+ "version": "20.12.0",
+ "browserid": "nodejs",
+ "id": "93175823-df25-4102-bda0-e45955132cb5",
+ "last_modified": 1718005312984
},
{
- "name": "Opera Android",
- "schema": 1715385904000,
+ "name": "Deno",
+ "schema": 1717805106873,
"status": "current",
- "version": "82",
- "browserid": "opera_android",
- "id": "dad8a164-2e60-4363-a9b2-169aa15ea735",
- "last_modified": 1715589742251
+ "version": "1.44",
+ "browserid": "deno",
+ "id": "ea6c817d-237b-498b-964e-a8ca4668580a",
+ "last_modified": 1718005312981
},
{
- "name": "WebView Android",
- "schema": 1715385904222,
+ "name": "Edge",
+ "schema": 1717286706151,
"status": "beta",
"version": "126",
- "browserid": "webview_android",
- "id": "97b0b530-34a9-4e02-949f-d525bf6bc793",
- "last_modified": 1715589742248
+ "browserid": "edge",
+ "id": "c8bf4918-03b7-4be2-bf75-4d6139dbd7c9",
+ "last_modified": 1718005312974
},
{
- "name": "WebView Android",
- "schema": 1715385904147,
+ "name": "Edge",
+ "schema": 1717286706227,
+ "status": "nightly",
+ "version": "127",
+ "browserid": "edge",
+ "id": "9e227c6c-b6ca-4c69-868c-e133a0ee9dbd",
+ "last_modified": 1718005312971
+ },
+ {
+ "name": "Edge",
+ "schema": 1716941107417,
"status": "current",
"version": "125",
- "browserid": "webview_android",
- "id": "c9ec1a0b-5d6d-4727-9f93-fb4dd3f1979f",
- "last_modified": 1715589742235
+ "browserid": "edge",
+ "id": "f1147d5f-d690-43d0-879d-117c6ca24a16",
+ "last_modified": 1716966331501
},
{
- "name": "Chrome Android",
- "schema": 1715385903692,
+ "name": "Safari on iOS",
+ "schema": 1715731507984,
"status": "current",
- "version": "125",
- "browserid": "chrome_android",
- "id": "7cb3db05-b658-4c6c-a57a-c17a1ceefd38",
- "last_modified": 1715589742230
+ "version": "17.5",
+ "browserid": "safari_ios",
+ "id": "4375a82d-f2f1-4883-8da7-0aedfb05b8f9",
+ "last_modified": 1715839095923
},
{
- "name": "Chrome",
- "schema": 1715385903420,
+ "name": "Safari",
+ "schema": 1715731507854,
"status": "current",
- "version": "125",
- "browserid": "chrome",
- "id": "98f20ad9-f47a-476b-b376-be58dbcc76ff",
- "last_modified": 1715589742227
+ "version": "17.5",
+ "browserid": "safari",
+ "id": "24e30aff-fbf8-4a96-a036-84f970447d4b",
+ "last_modified": 1715839095920
},
{
- "name": "Edge",
- "schema": 1714867506498,
- "status": "planned",
- "version": "127",
- "browserid": "edge",
- "id": "9e227c6c-b6ca-4c69-868c-e133a0ee9dbd",
- "last_modified": 1715003394961
+ "name": "Node.js",
+ "schema": 1715126727137,
+ "status": "current",
+ "version": "22.0.0",
+ "browserid": "nodejs",
+ "id": "c28dfac7-c7de-4e20-8212-abc7c0de635a",
+ "last_modified": 1715589742262
},
{
- "name": "Edge",
- "schema": 1714867506401,
+ "name": "Opera",
+ "schema": 1715385903851,
"status": "nightly",
- "version": "126",
- "browserid": "edge",
- "id": "c8bf4918-03b7-4be2-bf75-4d6139dbd7c9",
- "last_modified": 1715003394956
+ "version": "111",
+ "browserid": "opera",
+ "id": "880cc50c-e430-43ac-aa57-d1f02fae0e30",
+ "last_modified": 1715589742254
+ },
+ {
+ "name": "Opera Android",
+ "schema": 1715385904000,
+ "status": "current",
+ "version": "82",
+ "browserid": "opera_android",
+ "id": "dad8a164-2e60-4363-a9b2-169aa15ea735",
+ "last_modified": 1715589742251
},
{
"name": "Samsung Internet",
@@ -226,24 +271,6 @@
"last_modified": 1713943930228
},
{
- "name": "Deno",
- "schema": 1712707507752,
- "status": "current",
- "version": "1.42",
- "browserid": "deno",
- "id": "a308f3c2-cc19-4a1e-825f-898696606328",
- "last_modified": 1712840749681
- },
- {
- "name": "Node.js",
- "schema": 1702685107693,
- "status": "esr",
- "version": "20.10.0",
- "browserid": "nodejs",
- "id": "0d78585f-e9e0-41e8-816a-22461158e36d",
- "last_modified": 1702890886929
- },
- {
"name": "Firefox for Android",
"schema": 1698797104411,
"status": "esr",
@@ -280,5 +307,5 @@
"last_modified": 1665656484764
}
],
- "timestamp": 1716966331504
+ "timestamp": 1718606078088
}
diff --git a/services/settings/dumps/main/search-telemetry-v2.json b/services/settings/dumps/main/search-telemetry-v2.json
index 1a1708529c..4fc276d018 100644
--- a/services/settings/dumps/main/search-telemetry-v2.json
+++ b/services/settings/dumps/main/search-telemetry-v2.json
@@ -1,95 +1,55 @@
{
"data": [
{
- "isSPA": true,
- "schema": 1712762409532,
+ "schema": 1717765743694,
"components": [
{
- "type": "ad_image_row",
+ "type": "ad_carousel",
"included": {
"parent": {
- "selector": "[data-testid='pam.container']"
+ "selector": ".pla-exp-container"
+ },
+ "related": {
+ "selector": "g-right-button, g-left-button, .exp-button"
},
"children": [
{
- "selector": "[data-slide-index]",
+ "selector": "[data-dtld]",
"countChildren": true
}
]
}
},
{
- "type": "ad_link",
- "included": {
- "parent": {
- "selector": "[data-testid='adResult']"
- }
- }
- },
- {
- "type": "incontent_searchbox",
- "topDown": true,
+ "type": "ad_carousel",
"included": {
"parent": {
- "selector": "._1zdrb._1cR1n"
+ "selector": ".sh-sr__shop-result-group"
},
"related": {
- "selector": "#search-suggestions"
+ "selector": "g-right-button, g-left-button"
},
"children": [
{
- "selector": "input[type='search']"
+ "selector": ".sh-np__click-target",
+ "countChildren": true
}
]
}
},
{
- "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": [
- {
- "type": "ad_carousel",
+ "type": "refined_search_buttons",
+ "topDown": true,
"included": {
"parent": {
- "selector": ".adsMvCarousel"
+ "selector": "#appbar g-scrolling-carousel"
},
"related": {
- "selector": ".cr"
+ "selector": "g-right-button, g-left-button"
},
"children": [
{
- "selector": ".pa_item",
- "countChildren": true
+ "selector": "a"
}
]
}
@@ -98,17 +58,17 @@
"type": "ad_link",
"excluded": {
"parent": {
- "selector": "aside"
+ "selector": "#rhs"
}
},
"included": {
"parent": {
- "selector": ".sb_adTA"
+ "selector": "[data-text-ad='1']"
},
"children": [
{
"type": "ad_sitelink",
- "selector": ".b_vlist2col"
+ "selector": "[role='list']"
}
]
}
@@ -117,11 +77,11 @@
"type": "ad_sidebar",
"included": {
"parent": {
- "selector": "aside"
+ "selector": "#rhs"
},
"children": [
{
- "selector": ".pa_item, .sb_adTA",
+ "selector": ".pla-unit, .mnr-c",
"countChildren": true
}
]
@@ -132,14 +92,36 @@
"topDown": true,
"included": {
"parent": {
- "selector": "form#sb_form"
+ "selector": "form[role='search']"
},
"related": {
- "selector": "#sw_as"
+ "selector": "div.logo + div + div"
},
"children": [
{
- "selector": "input[name='q']"
+ "selector": "input[type='text']"
+ },
+ {
+ "selector": "textarea[name='q']"
+ }
+ ]
+ }
+ },
+ {
+ "type": "ad_image_row",
+ "excluded": {
+ "parent": {
+ "selector": ".pla-exp-container"
+ }
+ },
+ "included": {
+ "parent": {
+ "selector": ".top-pla-group-inner"
+ },
+ "children": [
+ {
+ "selector": "[data-dtld]",
+ "countChildren": true
}
]
}
@@ -149,11 +131,11 @@
"topDown": true,
"included": {
"parent": {
- "selector": "div#bnp_cookie_banner"
+ "selector": "div.spoKVd"
},
"children": [
{
- "selector": "button#bnp_btn_accept",
+ "selector": "button#L2AGLb",
"eventListeners": [
{
"action": "clicked_accept",
@@ -162,7 +144,7 @@
]
},
{
- "selector": "button#bnp_btn_reject",
+ "selector": "button#W0wltc",
"eventListeners": [
{
"action": "clicked_reject",
@@ -171,7 +153,7 @@
]
},
{
- "selector": "a#bnp_btn_preference",
+ "selector": "button#VnjCcb",
"eventListeners": [
{
"action": "clicked_more_options",
@@ -188,121 +170,200 @@
}
],
"shoppingTab": {
- "regexp": "^/shop?",
- "selector": "#b-scopeListItem-shop a"
+ "regexp": "&tbm=shop",
+ "selector": "div[role='navigation'] a",
+ "inspectRegexpInSERP": true
},
"taggedCodes": [
- "MOZ2",
- "MOZ4",
- "MOZ5",
- "MOZA",
- "MOZB",
- "MOZD",
- "MOZE",
- "MOZI",
- "MOZL",
- "MOZM",
- "MOZO",
- "MOZR",
- "MOZT",
- "MOZW",
- "MOZX",
- "MZSL01",
- "MZSL02",
- "MZSL03"
+ "firefox-a",
+ "firefox-b",
+ "firefox-b-1",
+ "firefox-b-ab",
+ "firefox-b-1-ab",
+ "firefox-b-d",
+ "firefox-b-1-d",
+ "firefox-b-e",
+ "firefox-b-1-e",
+ "firefox-b-m",
+ "firefox-b-1-m",
+ "firefox-b-o",
+ "firefox-b-1-o",
+ "firefox-b-lm",
+ "firefox-b-1-lm",
+ "firefox-b-lg",
+ "firefox-b-huawei-h1611",
+ "firefox-b-is-oem1",
+ "firefox-b-oem1",
+ "firefox-b-oem2",
+ "firefox-b-tinno",
+ "firefox-b-pn-wt",
+ "firefox-b-pn-wt-us",
+ "ubuntu",
+ "ubuntu-sn"
],
- "telemetryId": "bing",
+ "telemetryId": "google",
"organicCodes": [],
- "codeParamName": "pc",
+ "codeParamName": "client",
"queryParamName": "q",
- "followOnCookies": [
- {
- "host": "www.bing.com",
- "name": "SRCHS",
- "codeParamName": "PC",
- "extraCodePrefixes": [
- "QBRE"
- ],
- "extraCodeParamName": "form"
- }
- ],
"queryParamNames": [
"q"
],
+ "signedInCookies": [
+ {
+ "host": "accounts.google.com",
+ "name": "SID"
+ }
+ ],
"domainExtraction": {
"ads": [
{
"method": "textContent",
- "selectors": "#b_results .b_ad .b_attribution cite, .adsMvCarousel cite, aside cite"
+ "selectors": ".sh-np__seller-container"
+ },
+ {
+ "method": "dataAttribute",
+ "options": {
+ "dataAttributeKey": "dtld"
+ },
+ "selectors": "[data-dtld]"
}
],
"nonAds": [
{
- "method": "textContent",
- "selectors": "#b_results .b_algo .b_attribution cite"
+ "method": "href",
+ "options": {
+ "queryParamKey": "url",
+ "queryParamValueIsHref": true
+ },
+ "selectors": ".mnIHsc > a:first-child"
+ },
+ {
+ "method": "href",
+ "selectors": "a[jsname='UWckNb']"
+ },
+ {
+ "method": "dataAttribute",
+ "options": {
+ "dataAttributeKey": "lpage"
+ },
+ "selectors": "[data-id='mosaic'] [data-lpage]"
}
]
},
- "searchPageRegexp": "^https://www\\.bing\\.com/search",
+ "searchPageRegexp": "^https://www\\.google\\.(?:.+)/search",
+ "ignoreLinkRegexps": [
+ "^https?://consent\\.google\\.(?:.+)/d\\?continue\\="
+ ],
"nonAdsLinkRegexps": [
- "^https://www.bing.com/ck/a"
+ "^https?://www\\.google\\.(?:.+)/url?(?:.+)&url="
+ ],
+ "adServerAttributes": [
+ "rw"
+ ],
+ "followOnParamNames": [
+ "oq",
+ "ved",
+ "ei"
],
"extraAdServersRegexps": [
- "^https://www\\.bing\\.com/acli?c?k"
+ "^https?://www\\.google(?:adservices)?\\.com/(?:pagead/)?aclk"
],
- "id": "e1eec461-f1f3-40de-b94b-3b670b78108c",
- "last_modified": 1712762409389
+ "nonAdsLinkQueryParamNames": [
+ "url"
+ ],
+ "id": "635a3325-1995-42d6-be09-dbe4b2a95453",
+ "last_modified": 1718041017650
},
{
- "schema": 1712243919540,
+ "isSPA": true,
+ "schema": 1712762409532,
"components": [
{
- "type": "ad_carousel",
+ "type": "ad_image_row",
"included": {
"parent": {
- "selector": ".pla-exp-container"
- },
- "related": {
- "selector": "g-right-button, g-left-button, .exp-button"
+ "selector": "[data-testid='pam.container']"
},
"children": [
{
- "selector": "[data-dtld]",
+ "selector": "[data-slide-index]",
"countChildren": true
}
]
}
},
{
- "type": "ad_carousel",
+ "type": "ad_link",
"included": {
"parent": {
- "selector": ".sh-sr__shop-result-group"
+ "selector": "[data-testid='adResult']"
+ }
+ }
+ },
+ {
+ "type": "incontent_searchbox",
+ "topDown": true,
+ "included": {
+ "parent": {
+ "selector": "._1zdrb._1cR1n"
},
"related": {
- "selector": "g-right-button, g-left-button"
+ "selector": "#search-suggestions"
},
"children": [
{
- "selector": ".sh-np__click-target",
- "countChildren": true
+ "selector": "input[type='search']"
}
]
}
},
{
- "type": "refined_search_buttons",
- "topDown": true,
+ "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": [
+ {
+ "type": "ad_carousel",
"included": {
"parent": {
- "selector": "#appbar g-scrolling-carousel"
+ "selector": ".adsMvCarousel"
},
"related": {
- "selector": "g-right-button, g-left-button"
+ "selector": ".cr"
},
"children": [
{
- "selector": "a"
+ "selector": ".pa_item",
+ "countChildren": true
}
]
}
@@ -311,17 +372,17 @@
"type": "ad_link",
"excluded": {
"parent": {
- "selector": "#rhs"
+ "selector": "aside"
}
},
"included": {
"parent": {
- "selector": "[data-text-ad='1']"
+ "selector": ".sb_adTA"
},
"children": [
{
"type": "ad_sitelink",
- "selector": "[role='list']"
+ "selector": ".b_vlist2col"
}
]
}
@@ -330,11 +391,11 @@
"type": "ad_sidebar",
"included": {
"parent": {
- "selector": "#rhs"
+ "selector": "aside"
},
"children": [
{
- "selector": ".pla-unit, .mnr-c",
+ "selector": ".pa_item, .sb_adTA",
"countChildren": true
}
]
@@ -345,36 +406,14 @@
"topDown": true,
"included": {
"parent": {
- "selector": "form[role='search']"
+ "selector": "form#sb_form"
},
"related": {
- "selector": "div.logo + div + div"
- },
- "children": [
- {
- "selector": "input[type='text']"
- },
- {
- "selector": "textarea[name='q']"
- }
- ]
- }
- },
- {
- "type": "ad_image_row",
- "excluded": {
- "parent": {
- "selector": ".pla-exp-container"
- }
- },
- "included": {
- "parent": {
- "selector": ".top-pla-group-inner"
+ "selector": "#sw_as"
},
"children": [
{
- "selector": "[data-dtld]",
- "countChildren": true
+ "selector": "input[name='q']"
}
]
}
@@ -384,11 +423,11 @@
"topDown": true,
"included": {
"parent": {
- "selector": "div.spoKVd"
+ "selector": "div#bnp_cookie_banner"
},
"children": [
{
- "selector": "button#L2AGLb",
+ "selector": "button#bnp_btn_accept",
"eventListeners": [
{
"action": "clicked_accept",
@@ -397,7 +436,7 @@
]
},
{
- "selector": "button#W0wltc",
+ "selector": "button#bnp_btn_reject",
"eventListeners": [
{
"action": "clicked_reject",
@@ -406,7 +445,7 @@
]
},
{
- "selector": "button#VnjCcb",
+ "selector": "a#bnp_btn_preference",
"eventListeners": [
{
"action": "clicked_more_options",
@@ -423,41 +462,44 @@
}
],
"shoppingTab": {
- "regexp": "&tbm=shop",
- "selector": "div[role='navigation'] a",
- "inspectRegexpInSERP": true
+ "regexp": "^/shop?",
+ "selector": "#b-scopeListItem-shop a"
},
"taggedCodes": [
- "firefox-a",
- "firefox-b",
- "firefox-b-1",
- "firefox-b-ab",
- "firefox-b-1-ab",
- "firefox-b-d",
- "firefox-b-1-d",
- "firefox-b-e",
- "firefox-b-1-e",
- "firefox-b-m",
- "firefox-b-1-m",
- "firefox-b-o",
- "firefox-b-1-o",
- "firefox-b-lm",
- "firefox-b-1-lm",
- "firefox-b-lg",
- "firefox-b-huawei-h1611",
- "firefox-b-is-oem1",
- "firefox-b-oem1",
- "firefox-b-oem2",
- "firefox-b-tinno",
- "firefox-b-pn-wt",
- "firefox-b-pn-wt-us",
- "ubuntu",
- "ubuntu-sn"
+ "MOZ2",
+ "MOZ4",
+ "MOZ5",
+ "MOZA",
+ "MOZB",
+ "MOZD",
+ "MOZE",
+ "MOZI",
+ "MOZL",
+ "MOZM",
+ "MOZO",
+ "MOZR",
+ "MOZT",
+ "MOZW",
+ "MOZX",
+ "MZSL01",
+ "MZSL02",
+ "MZSL03"
],
- "telemetryId": "google",
+ "telemetryId": "bing",
"organicCodes": [],
- "codeParamName": "client",
+ "codeParamName": "pc",
"queryParamName": "q",
+ "followOnCookies": [
+ {
+ "host": "www.bing.com",
+ "name": "SRCHS",
+ "codeParamName": "PC",
+ "extraCodePrefixes": [
+ "QBRE"
+ ],
+ "extraCodeParamName": "form"
+ }
+ ],
"queryParamNames": [
"q"
],
@@ -465,61 +507,25 @@
"ads": [
{
"method": "textContent",
- "selectors": ".sh-np__seller-container"
- },
- {
- "method": "dataAttribute",
- "options": {
- "dataAttributeKey": "dtld"
- },
- "selectors": "[data-dtld]"
+ "selectors": "#b_results .b_ad .b_attribution cite, .adsMvCarousel cite, aside cite"
}
],
"nonAds": [
{
- "method": "href",
- "options": {
- "queryParamKey": "url",
- "queryParamValueIsHref": true
- },
- "selectors": ".mnIHsc > a:first-child"
- },
- {
- "method": "href",
- "selectors": "a[jsname='UWckNb']"
- },
- {
- "method": "dataAttribute",
- "options": {
- "dataAttributeKey": "lpage"
- },
- "selectors": "[data-id='mosaic'] [data-lpage]"
+ "method": "textContent",
+ "selectors": "#b_results .b_algo .b_attribution cite"
}
]
},
- "searchPageRegexp": "^https://www\\.google\\.(?:.+)/search",
- "ignoreLinkRegexps": [
- "^https?://consent\\.google\\.(?:.+)/d\\?continue\\="
- ],
+ "searchPageRegexp": "^https://www\\.bing\\.com/search",
"nonAdsLinkRegexps": [
- "^https?://www\\.google\\.(?:.+)/url?(?:.+)&url="
- ],
- "adServerAttributes": [
- "rw"
- ],
- "followOnParamNames": [
- "oq",
- "ved",
- "ei"
+ "^https://www.bing.com/ck/a"
],
"extraAdServersRegexps": [
- "^https?://www\\.google(?:adservices)?\\.com/(?:pagead/)?aclk"
- ],
- "nonAdsLinkQueryParamNames": [
- "url"
+ "^https://www\\.bing\\.com/acli?c?k"
],
- "id": "635a3325-1995-42d6-be09-dbe4b2a95453",
- "last_modified": 1712582517281
+ "id": "e1eec461-f1f3-40de-b94b-3b670b78108c",
+ "last_modified": 1712762409389
},
{
"schema": 1705363206938,
@@ -786,5 +792,5 @@
"last_modified": 1698666532324
}
],
- "timestamp": 1713187389066
+ "timestamp": 1718041017650
}
diff --git a/services/settings/dumps/security-state/intermediates.json b/services/settings/dumps/security-state/intermediates.json
index 49a76e2cec..c3f3a44fc6 100644
--- a/services/settings/dumps/security-state/intermediates.json
+++ b/services/settings/dumps/security-state/intermediates.json
@@ -1,6 +1,42 @@
{
"data": [
{
+ "schema": 1718419986483,
+ "derHash": "iA+8RP5xqhvkDbEwkXsbrsG9iJsrPXR47aBHKGZ+i0Q=",
+ "subject": "CN=GoDaddy Secure Certificate Authority - G5,O=GoDaddy Inc.,C=US",
+ "subjectDN": "MFgxCzAJBgNVBAYTAlVTMRUwEwYDVQQKEwxHb0RhZGR5IEluYy4xMjAwBgNVBAMTKUdvRGFkZHkgU2VjdXJlIENlcnRpZmljYXRlIEF1dGhvcml0eSAtIEc1",
+ "whitelist": false,
+ "attachment": {
+ "hash": "b0ab60886b732344120e026a516f1347e7b00beb8696ea917d500d651dfe8aa9",
+ "size": 1983,
+ "filename": "xHVm0DkmnVuuM9hP1BXFOradZUCdIX-phuSB2CBWNiU=.pem",
+ "location": "security-state-staging/intermediates/848610e4-7c79-4502-9bb9-fd3613ddd9ba.pem",
+ "mimetype": "application/x-pem-file"
+ },
+ "pubKeyHash": "xHVm0DkmnVuuM9hP1BXFOradZUCdIX+phuSB2CBWNiU=",
+ "crlite_enrolled": false,
+ "id": "e91fe4d1-97c5-4d44-b3b9-eeafa19ab96f",
+ "last_modified": 1718420223252
+ },
+ {
+ "schema": 1718419986168,
+ "derHash": "KeUCmVMQQDaF3WJY+dBIVoeJYwQtR0nG1dl3OjEMMcA=",
+ "subject": "CN=Starfield Secure Certificate Authority - G5,O=Starfield Technologies\\, Inc.,C=US",
+ "subjectDN": "MGoxCzAJBgNVBAYTAlVTMSUwIwYDVQQKExxTdGFyZmllbGQgVGVjaG5vbG9naWVzLCBJbmMuMTQwMgYDVQQDEytTdGFyZmllbGQgU2VjdXJlIENlcnRpZmljYXRlIEF1dGhvcml0eSAtIEc1",
+ "whitelist": false,
+ "attachment": {
+ "hash": "1ab16093c00cfeb6b1281bd3570ee31b90544dbe82866716c4e0dc4dd23c0850",
+ "size": 2040,
+ "filename": "ZopoHb_DFyTNtOnoOeDm_G07T5xn8PEj_4_f_lJ927A=.pem",
+ "location": "security-state-staging/intermediates/3bb146a9-b858-4d9e-84a3-4898d6729add.pem",
+ "mimetype": "application/x-pem-file"
+ },
+ "pubKeyHash": "ZopoHb/DFyTNtOnoOeDm/G07T5xn8PEj/4/f/lJ927A=",
+ "crlite_enrolled": false,
+ "id": "c56b52a8-0671-4599-8084-0cb8e9fc79e8",
+ "last_modified": 1718420223250
+ },
+ {
"schema": 1717559643220,
"derHash": "zBufnkNw+2gUHSihFeqoY/jq23oE4r0js8YvnZ8XwmM=",
"subject": "CN=FIRMAPROFESIONAL ICA A01 QWAC 2022,O=Firmaprofesional SA,C=ES",
@@ -9559,42 +9595,6 @@
"last_modified": 1666727873688
},
{
- "schema": 1666727429335,
- "derHash": "MaCWocuRiHbuV8hbI0n8nMLCy0/Pm903eHzp2levR5A=",
- "subject": "CN=Alibaba Cloud GCC R3 TLS OV CA 2021,O=Alibaba Cloud Computing Co.\\, Ltd.,C=CN",
- "subjectDN": "MGcxCzAJBgNVBAYTAkNOMSowKAYDVQQKEyFBbGliYWJhIENsb3VkIENvbXB1dGluZyBDby4sIEx0ZC4xLDAqBgNVBAMTI0FsaWJhYmEgQ2xvdWQgR0NDIFIzIFRMUyBPViBDQSAyMDIx",
- "whitelist": false,
- "attachment": {
- "hash": "c64bbdc4fcc4298ffb453c1558ab7102e685784efb5cc1dae31840e3a119e67a",
- "size": 1735,
- "filename": "HacabMO6K4pM-shfB1EkMCGhH2TSlSvVizEDPU1Ruso=.pem",
- "location": "security-state-staging/intermediates/f8675c4a-871f-4996-b046-3c346fb294db.pem",
- "mimetype": "application/x-pem-file"
- },
- "pubKeyHash": "HacabMO6K4pM+shfB1EkMCGhH2TSlSvVizEDPU1Ruso=",
- "crlite_enrolled": false,
- "id": "136cca7b-196b-4678-a6b0-4b880a8df6c5",
- "last_modified": 1666727873674
- },
- {
- "schema": 1666727396635,
- "derHash": "HdCVRJ/7PP8UsiJNWWuD/ULytHaDVTx5fREVDJGGkb0=",
- "subject": "CN=GlobalSign Atlas R3 DV TLS CA H2 2021,O=GlobalSign nv-sa,C=BE",
- "subjectDN": "MFgxCzAJBgNVBAYTAkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMS4wLAYDVQQDEyVHbG9iYWxTaWduIEF0bGFzIFIzIERWIFRMUyBDQSBIMiAyMDIx",
- "whitelist": false,
- "attachment": {
- "hash": "e06bf97fe011b418ca619844016454cc4529a0fe9de1bf1ec3daa57af5a3a724",
- "size": 1715,
- "filename": "P_B6nUOG4cUlLNI8o81n2MESbUnYMzT49Flc6X5W1bk=.pem",
- "location": "security-state-staging/intermediates/f804d5ba-d989-47f7-8217-4f41b5fb5978.pem",
- "mimetype": "application/x-pem-file"
- },
- "pubKeyHash": "P/B6nUOG4cUlLNI8o81n2MESbUnYMzT49Flc6X5W1bk=",
- "crlite_enrolled": false,
- "id": "308fb64b-a058-4676-aa68-e8e33b332c2f",
- "last_modified": 1666727873661
- },
- {
"schema": 1666727359631,
"derHash": "R7LvvDZw59tLQfIsUfwC7oT7Lb8wgqSfLCaIEi6SEKE=",
"subject": "CN=emSign SSL CA - G1,OU=emSign PKI,O=eMudhra Technologies Limited,C=IN",
@@ -9775,24 +9775,6 @@
"last_modified": 1666727873463
},
{
- "schema": 1666727407351,
- "derHash": "ThpWTHGgQoiXDlPAN9HPwlwfm+/FJ2zzvVAe4mLwQgI=",
- "subject": "CN=GlobalSign Atlas R3 OV TLS CA H2 2021,O=GlobalSign nv-sa,C=BE",
- "subjectDN": "MFgxCzAJBgNVBAYTAkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMS4wLAYDVQQDEyVHbG9iYWxTaWduIEF0bGFzIFIzIE9WIFRMUyBDQSBIMiAyMDIx",
- "whitelist": false,
- "attachment": {
- "hash": "d499679a13f287b719305ece5b064b2730137bf3006a9913e7ab121e378f3262",
- "size": 1715,
- "filename": "D2Dxjr_K2WrUouIXuBMldR6ucBSdBjfQI6boJU6R6i8=.pem",
- "location": "security-state-staging/intermediates/fae57392-fd90-4733-a1bb-c543b9e8ff29.pem",
- "mimetype": "application/x-pem-file"
- },
- "pubKeyHash": "D2Dxjr/K2WrUouIXuBMldR6ucBSdBjfQI6boJU6R6i8=",
- "crlite_enrolled": false,
- "id": "105b6627-b2cd-462b-8da2-204dc969ac8c",
- "last_modified": 1666727873449
- },
- {
"schema": 1666727359279,
"derHash": "k6B4mNibLMoWa6bx+KFBOM5Dgo5JG4MZJryCR9ORzHI=",
"subject": "CN=Starfield Secure Certificate Authority - G2,OU=http://certs.starfieldtech.com/repository/,O=Starfield Technologies\\, Inc.,L=Scottsdale,ST=Arizona,C=US",
@@ -10729,24 +10711,6 @@
"last_modified": 1666727872580
},
{
- "schema": 1666727380169,
- "derHash": "kK8bYaCCZipjnKpoxqP7Qeu6N2DDUaSh6J+22srUhvw=",
- "subject": "CN=GlobalSign Atlas ECCR5 OV TLS CA H2 2021,O=GlobalSign nv-sa,C=BE",
- "subjectDN": "MFsxCzAJBgNVBAYTAkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMTEwLwYDVQQDEyhHbG9iYWxTaWduIEF0bGFzIEVDQ1I1IE9WIFRMUyBDQSBIMiAyMDIx",
- "whitelist": false,
- "attachment": {
- "hash": "cd5cf65b5f603e9fadcbf6fb536bc9043b3881094161a4a6e0b15cb311a3ed46",
- "size": 1272,
- "filename": "WZLG43M_xjDLnY1jaF9kQcG-7bpQC8fM0xt9RK4n3dY=.pem",
- "location": "security-state-staging/intermediates/626980a9-463c-4a9d-891e-45a1de9a7525.pem",
- "mimetype": "application/x-pem-file"
- },
- "pubKeyHash": "WZLG43M/xjDLnY1jaF9kQcG+7bpQC8fM0xt9RK4n3dY=",
- "crlite_enrolled": false,
- "id": "bfebb62d-c09f-4bec-9fe4-bfa95ea3ef7b",
- "last_modified": 1666727872565
- },
- {
"schema": 1666727424275,
"derHash": "CbwbE3wDEjnveIZz6U6xf18+yrB9Otv7SF51q/qvO5o=",
"subject": "CN=GlobalSign Domain Validation CA - SHA256 - G3,O=GlobalSign nv-sa,C=BE",
@@ -13627,24 +13591,6 @@
"last_modified": 1666727869830
},
{
- "schema": 1666727418384,
- "derHash": "EbbbW2jc3zRHmufnt7uqcWWQVXetg9R08ruXF84kTOo=",
- "subject": "CN=GlobalSign Atlas R3 AlphaSSL CA H2 2021,O=Globalsign nv-sa,C=BE",
- "subjectDN": "MFoxCzAJBgNVBAYTAkJFMRkwFwYDVQQKExBHbG9iYWxzaWduIG52LXNhMTAwLgYDVQQDEydHbG9iYWxTaWduIEF0bGFzIFIzIEFscGhhU1NMIENBIEgyIDIwMjE=",
- "whitelist": false,
- "attachment": {
- "hash": "9cf02d5a547d487093c6600cddc45835d2265d1a9e325589d4fc84f0f6d7d961",
- "size": 1715,
- "filename": "xecaLv-HFBkn7bPt0j9a3x6oQIAxlTk0PaC8CEgAAK8=.pem",
- "location": "security-state-staging/intermediates/60d13cbe-72e2-4434-bd54-82eab5032874.pem",
- "mimetype": "application/x-pem-file"
- },
- "pubKeyHash": "xecaLv+HFBkn7bPt0j9a3x6oQIAxlTk0PaC8CEgAAK8=",
- "crlite_enrolled": false,
- "id": "ff529e2f-a01e-4a10-b6be-ec1b7f25db92",
- "last_modified": 1666727869816
- },
- {
"schema": 1666727423438,
"derHash": "EAU3DtJ2sM7zkkTp5pnOSAe/mt4Fv6WfJjgJ+0YGtyw=",
"subject": "CN=Prodrive Technologies GCC R3 OV TLS CA 2022,O=Prodrive Technologies B.V.,C=NL",
@@ -19693,60 +19639,6 @@
"last_modified": 1665665823256
},
{
- "schema": 1665578919085,
- "derHash": "ROaDV24clg14TRe7IyXCXPG+TiBHDDHZ1zys7Ulslck=",
- "subject": "CN=GlobalSign Atlas E46 EV TLS CA H2 2021,O=GlobalSign nv-sa,C=BE",
- "subjectDN": "MFkxCzAJBgNVBAYTAkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMS8wLQYDVQQDEyZHbG9iYWxTaWduIEF0bGFzIEU0NiBFViBUTFMgQ0EgSDIgMjAyMQ==",
- "whitelist": false,
- "attachment": {
- "hash": "6cd9e29057bbe5b64edf3377a6113b0eaccbd584246dad3b5bd7e028d89f27c9",
- "size": 1252,
- "filename": "M57F0Wnxzruxx2skIABzM3bhMc1XFcJ5OmPMfoX_2Kw=.pem",
- "location": "security-state-staging/intermediates/1bbcc3cd-f827-4861-a10e-95361d1c9110.pem",
- "mimetype": "application/x-pem-file"
- },
- "pubKeyHash": "M57F0Wnxzruxx2skIABzM3bhMc1XFcJ5OmPMfoX/2Kw=",
- "crlite_enrolled": false,
- "id": "a7237377-ea8a-421a-9e89-eb5e456457e7",
- "last_modified": 1665579462842
- },
- {
- "schema": 1665557823626,
- "derHash": "Crsc3lPMrBcEg9r808258mIrp+R9MewP09snG0qqUwM=",
- "subject": "CN=GlobalSign Atlas R6 EV TLS CA H2 2021,O=GlobalSign nv-sa,C=BE",
- "subjectDN": "MFgxCzAJBgNVBAYTAkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMS4wLAYDVQQDEyVHbG9iYWxTaWduIEF0bGFzIFI2IEVWIFRMUyBDQSBIMiAyMDIx",
- "whitelist": false,
- "attachment": {
- "hash": "d6a647a904b2296b2de421924aee6694ee9acef681494c12c051da05b878733b",
- "size": 2406,
- "filename": "0mvzohE9hsg2CJwQhrPuumD2oI7MvADSjcdM3IhnqV4=.pem",
- "location": "security-state-staging/intermediates/2e408e2e-ba52-4bfd-8fce-a7fcfe0075be.pem",
- "mimetype": "application/x-pem-file"
- },
- "pubKeyHash": "0mvzohE9hsg2CJwQhrPuumD2oI7MvADSjcdM3IhnqV4=",
- "crlite_enrolled": false,
- "id": "8ebb9dc6-96b6-48c7-a893-297551984569",
- "last_modified": 1665579462830
- },
- {
- "schema": 1665578919278,
- "derHash": "OFqgChhI+Af2ZVYeiIsNT2lhQFLYJfPDOXDgD0w2WN0=",
- "subject": "CN=GlobalSign Atlas R46 EV TLS CA H2 2021,O=GlobalSign nv-sa,C=BE",
- "subjectDN": "MFkxCzAJBgNVBAYTAkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMS8wLQYDVQQDEyZHbG9iYWxTaWduIEF0bGFzIFI0NiBFViBUTFMgQ0EgSDIgMjAyMQ==",
- "whitelist": false,
- "attachment": {
- "hash": "6af7c086768ea998be52398129400eb39d0f5d4eb9230e1c2c7a9f228d5f6d58",
- "size": 2398,
- "filename": "6kj_jfSE7hoAQjieaM0YreYi-NU25dfVW4X5EvPet-c=.pem",
- "location": "security-state-staging/intermediates/5719a806-1c18-46c8-9229-0f467fd98968.pem",
- "mimetype": "application/x-pem-file"
- },
- "pubKeyHash": "6kj/jfSE7hoAQjieaM0YreYi+NU25dfVW4X5EvPet+c=",
- "crlite_enrolled": false,
- "id": "51e492fd-63e9-4386-9e4c-107cf4cc16b1",
- "last_modified": 1665579462816
- },
- {
"schema": 1665168564306,
"derHash": "NkeqwrKCvJQf56ZC49y5nPxbPG3OlEoelvgCjom3sJA=",
"subject": "CN=GTS CA 2P2,O=Google Trust Services LLC,C=US",
@@ -26173,24 +26065,6 @@
"last_modified": 1647658653936
},
{
- "schema": 1647442638278,
- "derHash": "slTzzerx0pq1PLQ56A+5lvHpCig+m1CFuHSdGOT1mHs=",
- "subject": "CN=GlobalSign Atlas R3 DV ACME CA H2 2021,O=GlobalSign nv-sa,C=BE",
- "subjectDN": "MFkxCzAJBgNVBAYTAkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMS8wLQYDVQQDEyZHbG9iYWxTaWduIEF0bGFzIFIzIERWIEFDTUUgQ0EgSDIgMjAyMQ==",
- "whitelist": false,
- "attachment": {
- "hash": "9b7764d2dd9d44f3454ff2c69278ccacf175873333cb4bc22bb78001354c66f5",
- "size": 1715,
- "filename": "Drirt5siv6auOz2CsdX1ih0Gq_A2hFkwS82cYSyOOSc=.pem",
- "location": "security-state-staging/intermediates/be7d54ce-f543-44f1-8741-28214b2ee3cd.pem",
- "mimetype": "application/x-pem-file"
- },
- "pubKeyHash": "Drirt5siv6auOz2CsdX1ih0Gq/A2hFkwS82cYSyOOSc=",
- "crlite_enrolled": false,
- "id": "1ea36836-d34e-48ad-a1c3-679ebae83102",
- "last_modified": 1647464240149
- },
- {
"schema": 1647442123610,
"derHash": "gCRH7lIcxmbNt7uuk6OF5V8gDXaj0TVqhURaxMvb7RI=",
"subject": "CN=Cybertrust Global Root,O=Cybertrust\\, Inc",
@@ -27865,42 +27739,6 @@
"last_modified": 1624913855021
},
{
- "schema": 1623916924551,
- "derHash": "aRbakW7hsemMsx7pRzDuzX8sB3llvbjU4Wo7gcWKKbY=",
- "subject": "CN=GlobalSign Atlas ECCR5 DV TLS CA H2 2021,O=GlobalSign nv-sa,C=BE",
- "subjectDN": "MFsxCzAJBgNVBAYTAkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMTEwLwYDVQQDEyhHbG9iYWxTaWduIEF0bGFzIEVDQ1I1IERWIFRMUyBDQSBIMiAyMDIx",
- "whitelist": false,
- "attachment": {
- "hash": "abdf25b3a11dd96af2217032fe2da76890e22dc7b40e8981301a8971d97f32a9",
- "size": 1268,
- "filename": "6-g1TUJXD0WhY01dlTAcFTi6R1z-L4XP4pPgJVUTHfA=.pem",
- "location": "security-state-staging/intermediates/2ff02552-6c42-4558-bb97-ca531ec69f7d.pem",
- "mimetype": "application/x-pem-file"
- },
- "pubKeyHash": "6+g1TUJXD0WhY01dlTAcFTi6R1z+L4XP4pPgJVUTHfA=",
- "crlite_enrolled": false,
- "id": "7760e5f2-11cf-4582-8639-e223f057cafa",
- "last_modified": 1623920278097
- },
- {
- "schema": 1623916935947,
- "derHash": "YbMM6uoMjGOXw1mYKYCctzyo+Be7nN8ADXRT5EJDgCg=",
- "subject": "CN=GlobalSign Atlas ECCR5 DV ACME CA H2 2021,O=GlobalSign nv-sa,C=BE",
- "subjectDN": "MFwxCzAJBgNVBAYTAkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMTIwMAYDVQQDEylHbG9iYWxTaWduIEF0bGFzIEVDQ1I1IERWIEFDTUUgQ0EgSDIgMjAyMQ==",
- "whitelist": false,
- "attachment": {
- "hash": "edb2ab3c9beabe368a1a743918ee6b2a8507da3e116b951154f6dcbac67de73c",
- "size": 1272,
- "filename": "N3T01UrP_szopZ--ULwPC9MuquTStnfM28bhLKuZ1rY=.pem",
- "location": "security-state-staging/intermediates/8859905c-00e5-4d2a-b3f0-e00fa03ce62c.pem",
- "mimetype": "application/x-pem-file"
- },
- "pubKeyHash": "N3T01UrP/szopZ++ULwPC9MuquTStnfM28bhLKuZ1rY=",
- "crlite_enrolled": false,
- "id": "bbc79d7d-1abd-4027-8cae-092d0491fd43",
- "last_modified": 1623920278014
- },
- {
"schema": 1622555926542,
"derHash": "COfqyZimLEFVzEy8Xtoy9bQaEsAS8pqzQzvTZjSBSfA=",
"subject": "CN=Certum Trusted Network CA 2,OU=Certum Certification Authority,O=Unizeto Technologies S.A.,C=PL",
@@ -31015,5 +30853,5 @@
"last_modified": 1559865884636
}
],
- "timestamp": 1717559823094
+ "timestamp": 1718553423053
}
diff --git a/services/settings/dumps/security-state/onecrl.json b/services/settings/dumps/security-state/onecrl.json
index 48e394966a..7d2a203473 100644
--- a/services/settings/dumps/security-state/onecrl.json
+++ b/services/settings/dumps/security-state/onecrl.json
@@ -1,6 +1,201 @@
{
"data": [
{
+ "schema": 1717606866930,
+ "details": {
+ "bug": "https://bugzilla.mozilla.org/show_bug.cgi?id=1900843",
+ "who": "",
+ "why": "",
+ "name": "",
+ "created": ""
+ },
+ "enabled": false,
+ "issuerName": "MFAxJDAiBgNVBAsTG0dsb2JhbFNpZ24gRUNDIFJvb3QgQ0EgLSBSNTETMBEGA1UEChMKR2xvYmFsU2lnbjETMBEGA1UEAxMKR2xvYmFsU2lnbg==",
+ "serialNumber": "eSmbgvwPOlXGliHHuCIbXw==",
+ "id": "322dfa7b-ab66-40bf-af29-e32a6dd7cd93",
+ "last_modified": 1717704918940
+ },
+ {
+ "schema": 1717606866367,
+ "details": {
+ "bug": "https://bugzilla.mozilla.org/show_bug.cgi?id=1900843",
+ "who": "",
+ "why": "",
+ "name": "",
+ "created": ""
+ },
+ "enabled": false,
+ "issuerName": "MEwxIDAeBgNVBAsTF0dsb2JhbFNpZ24gUm9vdCBDQSAtIFIzMRMwEQYDVQQKEwpHbG9iYWxTaWduMRMwEQYDVQQDEwpHbG9iYWxTaWdu",
+ "serialNumber": "fSpKUE1MI+QbVqikKzCRCw==",
+ "id": "4c28c51a-6db7-4899-99ae-0b6ac61202ea",
+ "last_modified": 1717704918936
+ },
+ {
+ "schema": 1717606866751,
+ "details": {
+ "bug": "https://bugzilla.mozilla.org/show_bug.cgi?id=1900843",
+ "who": "",
+ "why": "",
+ "name": "",
+ "created": ""
+ },
+ "enabled": false,
+ "issuerName": "MHsxCzAJBgNVBAYTAkdCMRswGQYDVQQIDBJHcmVhdGVyIE1hbmNoZXN0ZXIxEDAOBgNVBAcMB1NhbGZvcmQxGjAYBgNVBAoMEUNvbW9kbyBDQSBMaW1pdGVkMSEwHwYDVQQDDBhBQUEgQ2VydGlmaWNhdGUgU2VydmljZXM=",
+ "serialNumber": "fHxdvf2CERpzvs38JwG48A==",
+ "id": "2b8c2141-f0e1-4506-8d7a-be0e41acde66",
+ "last_modified": 1717704918933
+ },
+ {
+ "schema": 1717606866284,
+ "details": {
+ "bug": "https://bugzilla.mozilla.org/show_bug.cgi?id=1900843",
+ "who": "",
+ "why": "",
+ "name": "",
+ "created": ""
+ },
+ "enabled": false,
+ "issuerName": "MEUxCzAJBgNVBAYTAkJNMRkwFwYDVQQKExBRdW9WYWRpcyBMaW1pdGVkMRswGQYDVQQDExJRdW9WYWRpcyBSb290IENBIDI=",
+ "serialNumber": "dUFRzBHsibZGSbIwrYCQILseZqU=",
+ "id": "e6a81ddf-cf32-4846-8a91-42e9b1285627",
+ "last_modified": 1717704918929
+ },
+ {
+ "schema": 1717581426701,
+ "details": {
+ "bug": "https://bugzilla.mozilla.org/show_bug.cgi?id=1900843",
+ "who": "",
+ "why": "",
+ "name": "",
+ "created": ""
+ },
+ "enabled": false,
+ "issuerName": "MDQxCzAJBgNVBAYTAkZSMRIwEAYDVQQKDAlEaGlteW90aXMxETAPBgNVBAMMCENlcnRpZ25h",
+ "serialNumber": "OUcWep55zFAPGqHlCF5J5BJKEic=",
+ "id": "891e1719-0bf5-45a9-b61b-7f694feb7804",
+ "last_modified": 1717704918925
+ },
+ {
+ "schema": 1717606866455,
+ "details": {
+ "bug": "https://bugzilla.mozilla.org/show_bug.cgi?id=1900843",
+ "who": "",
+ "why": "",
+ "name": "",
+ "created": ""
+ },
+ "enabled": false,
+ "issuerName": "MEwxIDAeBgNVBAsTF0dsb2JhbFNpZ24gUm9vdCBDQSAtIFIzMRMwEQYDVQQKEwpHbG9iYWxTaWduMRMwEQYDVQQDEwpHbG9iYWxTaWdu",
+ "serialNumber": "eEqpJrbnW++td7NIAblS0A==",
+ "id": "d7fdf988-5bbb-43b1-99df-b5cb534ba121",
+ "last_modified": 1717704918922
+ },
+ {
+ "schema": 1717606866845,
+ "details": {
+ "bug": "https://bugzilla.mozilla.org/show_bug.cgi?id=1900843",
+ "who": "",
+ "why": "",
+ "name": "",
+ "created": ""
+ },
+ "enabled": false,
+ "issuerName": "MFoxCzAJBgNVBAYTAkZSMRIwEAYDVQQKDAlEaGlteW90aXMxHDAaBgNVBAsMEzAwMDIgNDgxNDYzMDgxMDAwMzYxGTAXBgNVBAMMEENlcnRpZ25hIFJvb3QgQ0E=",
+ "serialNumber": "Sv8S1Opltybu6pB7fMV4c4tDJxA=",
+ "id": "e2f17410-dc20-4840-b4d9-a345f83cffe9",
+ "last_modified": 1717704918918
+ },
+ {
+ "schema": 1717606866187,
+ "details": {
+ "bug": "https://bugzilla.mozilla.org/show_bug.cgi?id=1900843",
+ "who": "",
+ "why": "",
+ "name": "",
+ "created": ""
+ },
+ "enabled": false,
+ "issuerName": "MEoxCzAJBgNVBAYTAlVTMRIwEAYDVQQKEwlJZGVuVHJ1c3QxJzAlBgNVBAMTHklkZW5UcnVzdCBDb21tZXJjaWFsIFJvb3QgQ0EgMQ==",
+ "serialNumber": "QAGPK6zlV7rhg+Zdfhm+yw==",
+ "id": "5b70468c-9537-4cf7-b6cc-655781e4958b",
+ "last_modified": 1717704918914
+ },
+ {
+ "schema": 1717606866647,
+ "details": {
+ "bug": "https://bugzilla.mozilla.org/show_bug.cgi?id=1900843",
+ "who": "",
+ "why": "",
+ "name": "",
+ "created": ""
+ },
+ "enabled": false,
+ "issuerName": "MFAxJDAiBgNVBAsTG0dsb2JhbFNpZ24gRUNDIFJvb3QgQ0EgLSBSNTETMBEGA1UEChMKR2xvYmFsU2lnbjETMBEGA1UEAxMKR2xvYmFsU2lnbg==",
+ "serialNumber": "eSmbhHLMt1IRJtmqS3w+Hg==",
+ "id": "276d5823-5f40-4a75-ba0b-2fe35144eafc",
+ "last_modified": 1717704918911
+ },
+ {
+ "schema": 1717606865913,
+ "details": {
+ "bug": "https://bugzilla.mozilla.org/show_bug.cgi?id=1900843",
+ "who": "",
+ "why": "",
+ "name": "",
+ "created": ""
+ },
+ "enabled": false,
+ "issuerName": "MEcxCzAJBgNVBAYTAlVTMRIwEAYDVQQKEwlJZGVuVHJ1c3QxJDAiBgNVBAMTG1RydXN0SUQgRW50ZXJwcmlzZSBUTFMgQ0EgMw==",
+ "serialNumber": "QAGPK2OnXRav9TdQ+n+NOQ==",
+ "id": "33e13515-5564-40dd-89c9-70fd43f65f31",
+ "last_modified": 1717704918907
+ },
+ {
+ "schema": 1717606866552,
+ "details": {
+ "bug": "https://bugzilla.mozilla.org/show_bug.cgi?id=1900843",
+ "who": "",
+ "why": "",
+ "name": "",
+ "created": ""
+ },
+ "enabled": false,
+ "issuerName": "MEUxCzAJBgNVBAYTAkJNMRkwFwYDVQQKExBRdW9WYWRpcyBMaW1pdGVkMRswGQYDVQQDExJRdW9WYWRpcyBSb290IENBIDI=",
+ "serialNumber": "A1/hN80FUeTB8bAL66Wu5T+VJzQ=",
+ "id": "ab2cbd12-8f84-486f-a998-29898f0ddb93",
+ "last_modified": 1717704918903
+ },
+ {
+ "schema": 1717606866104,
+ "details": {
+ "bug": "https://bugzilla.mozilla.org/show_bug.cgi?id=1900843",
+ "who": "",
+ "why": "",
+ "name": "",
+ "created": ""
+ },
+ "enabled": false,
+ "issuerName": "MDQxCzAJBgNVBAYTAkZSMRIwEAYDVQQKDAlEaGlteW90aXMxETAPBgNVBAMMCENlcnRpZ25h",
+ "serialNumber": "Hk9yv7+W0/YZwdKqJa5SuM6j9sg=",
+ "id": "f80248d3-fdfe-4d00-ba1d-063c92184da8",
+ "last_modified": 1717704918900
+ },
+ {
+ "schema": 1717606866008,
+ "details": {
+ "bug": "https://bugzilla.mozilla.org/show_bug.cgi?id=1900843",
+ "who": "",
+ "why": "",
+ "name": "",
+ "created": ""
+ },
+ "enabled": false,
+ "issuerName": "MFoxCzAJBgNVBAYTAkZSMRIwEAYDVQQKDAlEaGlteW90aXMxHDAaBgNVBAsMEzAwMDIgNDgxNDYzMDgxMDAwMzYxGTAXBgNVBAMMEENlcnRpZ25hIFJvb3QgQ0E=",
+ "serialNumber": "Vpa/MHpWy1YxUNIl27d+tZ1sX5k=",
+ "id": "09f714f1-6ae1-4253-bcad-a8417e610ebd",
+ "last_modified": 1717704918896
+ },
+ {
"schema": 1709917272661,
"details": {
"bug": "https://bugzilla.mozilla.org/show_bug.cgi?id=1884400",
@@ -24121,5 +24316,5 @@
"last_modified": 1480349158647
}
],
- "timestamp": 1710189695302
+ "timestamp": 1717704918940
}
diff --git a/sourcestamp.txt b/sourcestamp.txt
index ce93c585e0..4faddd3dc2 100644
--- a/sourcestamp.txt
+++ b/sourcestamp.txt
@@ -1,2 +1,2 @@
-20240606181944
-https://hg.mozilla.org/releases/mozilla-release/rev/cfd3e02d8411b3a938cda7242dcf044cf03c03d1
+20240618110440
+https://hg.mozilla.org/releases/mozilla-release/rev/b8d39a885c8155af6a83ad631f71108ded7fb7af
diff --git a/taskcluster/gecko_taskgraph/transforms/geckodriver_signing.py b/taskcluster/gecko_taskgraph/transforms/geckodriver_signing.py
index 95b8d3dd54..25f861e662 100644
--- a/taskcluster/gecko_taskgraph/transforms/geckodriver_signing.py
+++ b/taskcluster/gecko_taskgraph/transforms/geckodriver_signing.py
@@ -121,7 +121,7 @@ def make_signing_description(config, jobs):
def _craft_upstream_artifacts(dep_job, dependency_kind, build_platform):
if build_platform.startswith("win"):
- signing_format = "autograph_authenticode_sha2"
+ signing_format = "autograph_authenticode_202404"
elif build_platform.startswith("linux"):
signing_format = "autograph_gpg"
elif build_platform.startswith("macosx"):
diff --git a/taskcluster/gecko_taskgraph/transforms/openh264_signing.py b/taskcluster/gecko_taskgraph/transforms/openh264_signing.py
index 00a55dad41..74aebbd90b 100644
--- a/taskcluster/gecko_taskgraph/transforms/openh264_signing.py
+++ b/taskcluster/gecko_taskgraph/transforms/openh264_signing.py
@@ -81,7 +81,7 @@ def make_signing_description(config, jobs):
}
if "win" in build_platform:
- upstream_artifact["formats"] = ["autograph_authenticode_sha2"]
+ upstream_artifact["formats"] = ["autograph_authenticode_202404"]
elif "mac" in build_platform:
upstream_artifact["formats"] = ["mac_single_file"]
upstream_artifact["singleFileGlobs"] = ["libgmpopenh264.dylib"]
diff --git a/taskcluster/gecko_taskgraph/transforms/repackage_signing.py b/taskcluster/gecko_taskgraph/transforms/repackage_signing.py
index 66c1f87d70..d4106efb29 100644
--- a/taskcluster/gecko_taskgraph/transforms/repackage_signing.py
+++ b/taskcluster/gecko_taskgraph/transforms/repackage_signing.py
@@ -29,10 +29,10 @@ repackage_signing_description_schema = Schema(
)
SIGNING_FORMATS = {
- "target.installer.exe": ["autograph_authenticode_sha2_stub"],
- "target.stub-installer.exe": ["autograph_authenticode_sha2_stub"],
- "target.installer.msi": ["autograph_authenticode_sha2"],
- "target.installer.msix": ["autograph_authenticode_sha2"],
+ "target.installer.exe": ["autograph_authenticode_202404_stub"],
+ "target.stub-installer.exe": ["autograph_authenticode_202404_stub"],
+ "target.installer.msi": ["autograph_authenticode_202404"],
+ "target.installer.msix": ["autograph_authenticode_202404"],
}
transforms = TransformSequence()
diff --git a/taskcluster/gecko_taskgraph/transforms/repackage_signing_partner.py b/taskcluster/gecko_taskgraph/transforms/repackage_signing_partner.py
index e3940fd846..5f7c893e92 100644
--- a/taskcluster/gecko_taskgraph/transforms/repackage_signing_partner.py
+++ b/taskcluster/gecko_taskgraph/transforms/repackage_signing_partner.py
@@ -93,7 +93,7 @@ def make_repackage_signing_description(config, jobs):
"paths": [
get_artifact_path(dep_job, f"{repack_id}/target.installer.exe"),
],
- "formats": ["autograph_authenticode_sha2", "autograph_gpg"],
+ "formats": ["autograph_authenticode_202404", "autograph_gpg"],
}
]
@@ -113,7 +113,7 @@ def make_repackage_signing_description(config, jobs):
f"{repack_id}/target.stub-installer.exe",
),
],
- "formats": ["autograph_authenticode_sha2", "autograph_gpg"],
+ "formats": ["autograph_authenticode_202404", "autograph_gpg"],
}
)
elif "mac" in build_platform:
diff --git a/taskcluster/gecko_taskgraph/util/signed_artifacts.py b/taskcluster/gecko_taskgraph/util/signed_artifacts.py
index 61dad14abf..302a2e09f7 100644
--- a/taskcluster/gecko_taskgraph/util/signed_artifacts.py
+++ b/taskcluster/gecko_taskgraph/util/signed_artifacts.py
@@ -98,14 +98,14 @@ def generate_specifications_of_artifacts_to_sign(
"artifacts": [
get_artifact_path(job, "{locale}/setup.exe"),
],
- "formats": ["autograph_authenticode_sha2"],
+ "formats": ["autograph_authenticode_202404"],
},
{
"artifacts": [
get_artifact_path(job, "{locale}/target.zip"),
],
"formats": [
- "autograph_authenticode_sha2",
+ "autograph_authenticode_202404",
"autograph_widevine",
"autograph_omnija",
],
diff --git a/taskcluster/kinds/repackage-msix/kind.yml b/taskcluster/kinds/repackage-msix/kind.yml
index 96ff07c77c..2b5f682ceb 100644
--- a/taskcluster/kinds/repackage-msix/kind.yml
+++ b/taskcluster/kinds/repackage-msix/kind.yml
@@ -101,8 +101,8 @@ jobs:
# level 3 repositories, some build types are expected to
# be signed with our fake certificate.
by-build-platform:
- .*-shippable: "CN=Mozilla Corporation, OU=Firefox Engineering Operations, O=Mozilla Corporation, L=Mountain View, S=California, C=US"
- .*-devedition: "CN=Mozilla Corporation, OU=Firefox Engineering Operations, O=Mozilla Corporation, L=Mountain View, S=California, C=US"
+ .*-shippable: "CN=Mozilla Corporation, OU=Firefox Engineering Operations, O=Mozilla Corporation, L=San Francisco, S=California, C=US"
+ .*-devedition: "CN=Mozilla Corporation, OU=Firefox Engineering Operations, O=Mozilla Corporation, L=San Francisco, S=California, C=US"
default: "CN=Mozilla Fake SPC"
publisher-display-name:
by-package-format:
diff --git a/taskcluster/kinds/repackage-shippable-l10n-msix/kind.yml b/taskcluster/kinds/repackage-shippable-l10n-msix/kind.yml
index 021896a7ad..8c7cff523b 100644
--- a/taskcluster/kinds/repackage-shippable-l10n-msix/kind.yml
+++ b/taskcluster/kinds/repackage-shippable-l10n-msix/kind.yml
@@ -102,8 +102,8 @@ jobs:
# level 3 repositories, some build types are expected to
# be signed with our fake certificate.
by-build-platform:
- .*-shippable: "CN=Mozilla Corporation, OU=Firefox Engineering Operations, O=Mozilla Corporation, L=Mountain View, S=California, C=US"
- .*-devedition: "CN=Mozilla Corporation, OU=Firefox Engineering Operations, O=Mozilla Corporation, L=Mountain View, S=California, C=US"
+ .*-shippable: "CN=Mozilla Corporation, OU=Firefox Engineering Operations, O=Mozilla Corporation, L=San Francisco, S=California, C=US"
+ .*-devedition: "CN=Mozilla Corporation, OU=Firefox Engineering Operations, O=Mozilla Corporation, L=San Francisco, S=California, C=US"
default: "CN=Mozilla Fake SPC"
publisher-display-name:
by-package-format:
diff --git a/testing/web-platform/meta/cookies/attributes/attributes-ctl.sub.html.ini b/testing/web-platform/meta/cookies/attributes/attributes-ctl.sub.html.ini
index 257448fa2e..75fcc6a22d 100644
--- a/testing/web-platform/meta/cookies/attributes/attributes-ctl.sub.html.ini
+++ b/testing/web-platform/meta/cookies/attributes/attributes-ctl.sub.html.ini
@@ -2,9 +2,21 @@
[Cookie with %x9 after Secure attribute is handled correctly.]
expected: FAIL
+ [Cookie with %xa after Domain attribute value is handled correctly.]
+ expected: FAIL
+
+ [Cookie with %xa after Path attribute value is handled correctly.]
+ expected: FAIL
+
[Cookie with %xa in Max-Age attribute value is handled correctly.]
expected: FAIL
+ [Cookie with %xa after Max-Age attribute value is handled correctly.]
+ expected: FAIL
+
+ [Cookie with %xa after Expires attribute value is handled correctly.]
+ expected: FAIL
+
[Cookie with %xa in Secure attribute is handled correctly.]
expected: FAIL
@@ -14,9 +26,21 @@
[Cookie with %xa in SameSite attribute value is handled correctly.]
expected: FAIL
+ [Cookie with %xd after Domain attribute value is handled correctly.]
+ expected: FAIL
+
+ [Cookie with %xd after Path attribute value is handled correctly.]
+ expected: FAIL
+
[Cookie with %xd in Max-Age attribute value is handled correctly.]
expected: FAIL
+ [Cookie with %xd after Max-Age attribute value is handled correctly.]
+ expected: FAIL
+
+ [Cookie with %xd after Expires attribute value is handled correctly.]
+ expected: FAIL
+
[Cookie with %xd in Secure attribute is handled correctly.]
expected: FAIL
@@ -25,3 +49,9 @@
[Cookie with %xd in SameSite attribute value is handled correctly.]
expected: FAIL
+
+ [Cookie with %xa after SameSite attribute value is handled correctly.]
+ expected: FAIL
+
+ [Cookie with %xd after SameSite attribute value is handled correctly.]
+ expected: FAIL
diff --git a/toolkit/components/glean/ipc/FOGIPC.cpp b/toolkit/components/glean/ipc/FOGIPC.cpp
index e44cf3e863..4ce009e4fa 100644
--- a/toolkit/components/glean/ipc/FOGIPC.cpp
+++ b/toolkit/components/glean/ipc/FOGIPC.cpp
@@ -37,6 +37,10 @@
#include "nsTArray.h"
#include "nsThreadUtils.h"
+#if defined(__APPLE__) && defined(__aarch64__)
+# define HAS_PROCESS_ENERGY
+#endif
+
using mozilla::dom::ContentParent;
using mozilla::gfx::GPUChild;
using mozilla::gfx::GPUProcessManager;
@@ -76,6 +80,29 @@ struct ProcessingTimeMarker {
}
};
+#ifdef HAS_PROCESS_ENERGY
+struct ProcessEnergyMarker {
+ static constexpr Span<const char> MarkerTypeName() {
+ return MakeStringSpan("ProcessEnergy");
+ }
+ static void StreamJSONMarkerData(baseprofiler::SpliceableJSONWriter& aWriter,
+ int64_t aUWh,
+ const ProfilerString8View& aType) {
+ aWriter.IntProperty("energy", aUWh);
+ aWriter.StringProperty("label", aType);
+ }
+ static MarkerSchema MarkerTypeDisplay() {
+ using MS = MarkerSchema;
+ MS schema{MS::Location::MarkerChart, MS::Location::MarkerTable};
+ schema.AddKeyLabelFormat("energy", "Energy (µWh)", MS::Format::Integer);
+ schema.SetTooltipLabel("{marker.name} - {marker.data.label}");
+ schema.SetTableLabel(
+ "{marker.name} - {marker.data.label}: {marker.data.energy}µWh");
+ return schema;
+ }
+};
+#endif
+
} // namespace geckoprofiler::markers
namespace mozilla::glean {
@@ -248,8 +275,26 @@ void GetTrackerType(nsAutoCString& aTrackerType) {
}
}
+#ifdef HAS_PROCESS_ENERGY
+static int64_t GetTaskEnergy() {
+ task_power_info_v2_data_t task_power_info;
+ mach_msg_type_number_t count = TASK_POWER_INFO_V2_COUNT;
+ kern_return_t kr = task_info(mach_task_self(), TASK_POWER_INFO_V2,
+ (task_info_t)&task_power_info, &count);
+ if (kr != KERN_SUCCESS) {
+ return 0;
+ }
+
+ // task_energy is in nanojoules. We want microwatt-hours.
+ return task_power_info.task_energy / 3.6 / 1e6;
+}
+#endif
+
void RecordPowerMetrics() {
static uint64_t previousCpuTime = 0, previousGpuTime = 0;
+#ifdef HAS_PROCESS_ENERGY
+ static int64_t previousProcessEnergy = 0;
+#endif
uint64_t cpuTime, newCpuTime = 0;
if (NS_SUCCEEDED(GetCpuTimeSinceProcessStartInMs(&cpuTime)) &&
@@ -265,7 +310,16 @@ void RecordPowerMetrics() {
newGpuTime = gpuTime - previousGpuTime;
}
- if (!newCpuTime && !newGpuTime) {
+#ifdef HAS_PROCESS_ENERGY
+ int64_t processEnergy = GetTaskEnergy();
+ int64_t newProcessEnergy = processEnergy - previousProcessEnergy;
+#endif
+
+ if (!newCpuTime && !newGpuTime
+#ifdef HAS_PROCESS_ENERGY
+ && newProcessEnergy <= 0
+#endif
+ ) {
// Nothing to record.
return;
}
@@ -358,6 +412,15 @@ void RecordPowerMetrics() {
previousGpuTime += newGpuTime;
}
+#ifdef HAS_PROCESS_ENERGY
+ if (newProcessEnergy) {
+ power::energy_per_process_type.Get(type).Add(newProcessEnergy);
+ PROFILER_MARKER("Process Energy", OTHER, {}, ProcessEnergyMarker,
+ newProcessEnergy, type);
+ previousProcessEnergy += newProcessEnergy;
+ }
+#endif
+
profiler_record_wakeup_count(type);
}
diff --git a/toolkit/components/processtools/metrics.yaml b/toolkit/components/processtools/metrics.yaml
index 6efbd22fa5..1d6e6bf133 100644
--- a/toolkit/components/processtools/metrics.yaml
+++ b/toolkit/components/processtools/metrics.yaml
@@ -112,6 +112,22 @@ power:
expires: never
telemetry_mirror: POWER_GPU_TIME_BOGUS_VALUES
+ energy_per_process_type:
+ type: labeled_counter
+ description: >
+ How much energy (in µWh) has been used, broken down by process type.
+ Only available on Apple Silicon.
+ bugs:
+ - https://bugzilla.mozilla.org/show_bug.cgi?id=1898057
+ data_reviews:
+ - https://bugzilla.mozilla.org/show_bug.cgi?id=1898057
+ data_sensitivity:
+ - technical
+ notification_emails:
+ - florian@mozilla.com
+ expires: never
+ labels: *per_process_type_labels
+
wakeups_per_process_type:
type: labeled_counter
description: >
diff --git a/toolkit/moz.configure b/toolkit/moz.configure
index 6ad16dc1b7..7282b80d81 100644
--- a/toolkit/moz.configure
+++ b/toolkit/moz.configure
@@ -3353,7 +3353,7 @@ with only_when(compile_environment):
set_config("MOZ_TREE_PIXMAN", True, when=in_tree_pixman)
set_define("MOZ_TREE_PIXMAN", True, when=in_tree_pixman)
- pkg_check_modules("MOZ_PIXMAN", "pixman-1 >= 0.36.0", when="--enable-system-pixman")
+ pkg_check_modules("MOZ_PIXMAN", "pixman-1 >= 0.40.0", when="--enable-system-pixman")
# Set MOZ_PIXMAN_CFLAGS to an explicit empty value when --enable-system-pixman is *not* used,
# for layout/style/extra-bindgen-flags
set_config("MOZ_PIXMAN_CFLAGS", [], when=in_tree_pixman)