Skip to content

Bug 2071819 - turn obfuscation on in Fenix. - #438

Closed
pollym wants to merge 1 commit into
mozilla-firefox:autolandfrom
pollym:actually-really-switch-on-obfuscation
Closed

pollym wants to merge 1 commit into
mozilla-firefox:autolandfrom
pollym:actually-really-switch-on-obfuscation

Conversation

@pollym

@pollym pollym commented Nov 6, 2026 •

Copy link
Copy Markdown
Contributor

by removing -dontobfuscate.

NB Fenix now has the broadest possible keep rule to allow us to retain its full class and function names in stack traces for now. We can work on this to narrow the rule to what is really required and further improve performance.

here is a green try, updated after rebase and rule tweak to retain other r8 optimisation in fenix
(i rebased to try and get rid of the noise in the pr bots, which has nothing to do with this change, but it didn't work 🥲 )

perf compare running here - expecting this to be neutral (due to current broad keep rule).

this pr brings apk size down 0.8MB though, which is nice


Lando: link
Bugzilla: bug 2071819

⚠️ This pull request has 4 warnings.
🚫 This pull request has 2 blockers.

@lando-web
lando-web Bot requested a review from a team November 6, 2026 14:05

@mozilla-code-review mozilla-code-review Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

24 issues have been found in this revision.

24 issues are located outside of the files touched by the patch:

  • mfbt/RefPtr.h:49 Error: Member access into incomplete type 'nsIPrincipal' [clang-tidy: clang-diagnostic-error]
  • mfbt/RefPtr.h:48 Error: Member access into incomplete type 'nsIPrincipal' [clang-tidy: clang-diagnostic-error]
  • mfbt/RefPtr.h:49 Error: Member access into incomplete type 'nsINode' [clang-tidy: clang-diagnostic-error]
  • mfbt/RefPtr.h:48 Error: Member access into incomplete type 'nsINode' [clang-tidy: clang-diagnostic-error]
  • xpcom/base/nsCOMPtr.h:339 Error: No matching function for call to 'ToSupports' [clang-tidy: clang-diagnostic-error]
  • xpcom/base/nsCOMPtr.h:421 Error: No matching function for call to 'ToSupports' [clang-tidy: clang-diagnostic-error]
  • xpcom/base/nsCOMPtr.h:361 Error: Member access into incomplete type 'nsIPrincipal' [clang-tidy: clang-diagnostic-error]
  • xpcom/base/nsCOMPtr.h:327 Error: Static assertion failed due to requirement 'std::integral_constant<bool, false>::value': nsCOMPtr only works for types with IIDs. Either use RefPtr; add an IID to your type with NS_INLINE_DECL_STATIC_IID/ ;or make the nsCOMPtr point to a base class with an IID. [clang-tidy: clang-diagnostic-error]
  • xpcom/base/nsCOMPtr.h:358 Error: Incomplete type 'nsIPrincipal' named in nested name specifier [clang-tidy: clang-diagnostic-error]
  • xpcom/base/nsCOMPtr.h:358 Error: Member access into incomplete type 'nsIPrincipal' [clang-tidy: clang-diagnostic-error]
  • xpcom/base/nsCOMPtr.h:358 Error: Incomplete type 'nsINode' named in nested name specifier [clang-tidy: clang-diagnostic-error]
  • xpcom/base/nsCOMPtr.h:361 Error: Member access into incomplete type 'nsINode' [clang-tidy: clang-diagnostic-error]
  • xpcom/base/nsCOMPtr.h:358 Error: Member access into incomplete type 'nsINode' [clang-tidy: clang-diagnostic-error]
  • dom/bindings/TypedArray.h:977 Error: Use c++20 type alias [clang-tidy: modernize-type-traits,-warnings-as-errors]
    Checker reliability is high, meaning that the false positive ratio is low.
  • memory/replace/dmd/DMD.h:85 Error: Use of undeclared identifier 'MOZ_ASSERT' [clang-tidy: clang-diagnostic-error]
  • xpcom/string/nsReadableUtils.h:422 Error: Non-const lvalue reference to type 'nsAString' (aka 'nsTSubstring<char16_t>') cannot bind to a temporary of type 'Span<element_type, dynamic_extent>' (aka 'Span<char16_t, dynamic_extent>') [clang-tidy: clang-diagnostic-error]
  • xpcom/string/nsReadableUtils.h:411 Error: No member named 'Utf16ValidUpTo' in namespace 'mozilla' [clang-tidy: clang-diagnostic-error]
  • xpcom/string/nsReadableUtils.h:422 Error: No member named 'EnsureUtf16ValiditySpan' in namespace 'mozilla'; did you mean 'EnsureUTF16Validity'? [clang-tidy: clang-diagnostic-error]
  • xpcom/string/nsTSubstring.h:22 Error: "Using XPCOM strings is limited to code linked into libxul." [clang-tidy: clang-diagnostic-error]
  • xpcom/threads/TimerThreadMonitor.h:70 Error: Deleted member function should be public [clang-tidy: modernize-use-equals-delete,-warnings-as-errors]
    Checker reliability is high, meaning that the false positive ratio is low.
  • xpcom/threads/TimerThreadMonitor.h:71 Error: Deleted member function should be public [clang-tidy: modernize-use-equals-delete,-warnings-as-errors]
    Checker reliability is high, meaning that the false positive ratio is low.
  • xpcom/threads/TimerThreadMonitor.h:69 Error: Deleted member function should be public [clang-tidy: modernize-use-equals-delete,-warnings-as-errors]
    Checker reliability is high, meaning that the false positive ratio is low.
  • xpcom/threads/TimerThreadMonitor.h:72 Error: Deleted member function should be public [clang-tidy: modernize-use-equals-delete,-warnings-as-errors]
    Checker reliability is high, meaning that the false positive ratio is low.
  • xpcom/threads/TimerThreadMonitor.h:68 Error: Deleted member function should be public [clang-tidy: modernize-use-equals-delete,-warnings-as-errors]
    Checker reliability is high, meaning that the false positive ratio is low.

@mozilla-code-review
mozilla-code-review Bot dismissed their stale review November 6, 2026 16:39

This review is now deprecated.

@mozilla-code-review mozilla-code-review Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

24 issues have been found in this revision.

24 issues are located outside of the files touched by the patch:

  • mfbt/RefPtr.h:49 Error: Member access into incomplete type 'nsIPrincipal' [clang-tidy: clang-diagnostic-error]
  • mfbt/RefPtr.h:48 Error: Member access into incomplete type 'nsIPrincipal' [clang-tidy: clang-diagnostic-error]
  • mfbt/RefPtr.h:49 Error: Member access into incomplete type 'nsINode' [clang-tidy: clang-diagnostic-error]
  • mfbt/RefPtr.h:48 Error: Member access into incomplete type 'nsINode' [clang-tidy: clang-diagnostic-error]
  • xpcom/base/nsCOMPtr.h:339 Error: No matching function for call to 'ToSupports' [clang-tidy: clang-diagnostic-error]
  • xpcom/base/nsCOMPtr.h:421 Error: No matching function for call to 'ToSupports' [clang-tidy: clang-diagnostic-error]
  • xpcom/base/nsCOMPtr.h:361 Error: Member access into incomplete type 'nsIPrincipal' [clang-tidy: clang-diagnostic-error]
  • xpcom/base/nsCOMPtr.h:327 Error: Static assertion failed due to requirement 'std::integral_constant<bool, false>::value': nsCOMPtr only works for types with IIDs. Either use RefPtr; add an IID to your type with NS_INLINE_DECL_STATIC_IID/ ;or make the nsCOMPtr point to a base class with an IID. [clang-tidy: clang-diagnostic-error]
  • xpcom/base/nsCOMPtr.h:358 Error: Incomplete type 'nsIPrincipal' named in nested name specifier [clang-tidy: clang-diagnostic-error]
  • xpcom/base/nsCOMPtr.h:358 Error: Member access into incomplete type 'nsIPrincipal' [clang-tidy: clang-diagnostic-error]
  • xpcom/base/nsCOMPtr.h:358 Error: Incomplete type 'nsINode' named in nested name specifier [clang-tidy: clang-diagnostic-error]
  • xpcom/base/nsCOMPtr.h:361 Error: Member access into incomplete type 'nsINode' [clang-tidy: clang-diagnostic-error]
  • xpcom/base/nsCOMPtr.h:358 Error: Member access into incomplete type 'nsINode' [clang-tidy: clang-diagnostic-error]
  • dom/bindings/TypedArray.h:977 Error: Use c++20 type alias [clang-tidy: modernize-type-traits,-warnings-as-errors]
    Checker reliability is high, meaning that the false positive ratio is low.
  • memory/replace/dmd/DMD.h:85 Error: Use of undeclared identifier 'MOZ_ASSERT' [clang-tidy: clang-diagnostic-error]
  • xpcom/string/nsReadableUtils.h:422 Error: Non-const lvalue reference to type 'nsAString' (aka 'nsTSubstring<char16_t>') cannot bind to a temporary of type 'Span<element_type, dynamic_extent>' (aka 'Span<char16_t, dynamic_extent>') [clang-tidy: clang-diagnostic-error]
  • xpcom/string/nsReadableUtils.h:411 Error: No member named 'Utf16ValidUpTo' in namespace 'mozilla' [clang-tidy: clang-diagnostic-error]
  • xpcom/string/nsReadableUtils.h:422 Error: No member named 'EnsureUtf16ValiditySpan' in namespace 'mozilla'; did you mean 'EnsureUTF16Validity'? [clang-tidy: clang-diagnostic-error]
  • xpcom/string/nsTSubstring.h:22 Error: "Using XPCOM strings is limited to code linked into libxul." [clang-tidy: clang-diagnostic-error]
  • xpcom/threads/TimerThreadMonitor.h:70 Error: Deleted member function should be public [clang-tidy: modernize-use-equals-delete,-warnings-as-errors]
    Checker reliability is high, meaning that the false positive ratio is low.
  • xpcom/threads/TimerThreadMonitor.h:71 Error: Deleted member function should be public [clang-tidy: modernize-use-equals-delete,-warnings-as-errors]
    Checker reliability is high, meaning that the false positive ratio is low.
  • xpcom/threads/TimerThreadMonitor.h:69 Error: Deleted member function should be public [clang-tidy: modernize-use-equals-delete,-warnings-as-errors]
    Checker reliability is high, meaning that the false positive ratio is low.
  • xpcom/threads/TimerThreadMonitor.h:72 Error: Deleted member function should be public [clang-tidy: modernize-use-equals-delete,-warnings-as-errors]
    Checker reliability is high, meaning that the false positive ratio is low.
  • xpcom/threads/TimerThreadMonitor.h:68 Error: Deleted member function should be public [clang-tidy: modernize-use-equals-delete,-warnings-as-errors]
    Checker reliability is high, meaning that the false positive ratio is low.

@mcarare mcarare left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🚀

by removing -dontobfuscate.
The allowshrinking and allowoptimization flags allow R8 to shrink and optimize Fenix while keeping its names.

NB Fenix now has the broadest possible keep rule to allow us to retain its full class and function names in stack traces for now. We can work on this to narrow the rule to what is really required and further improve performance.
@pollym
pollym force-pushed the actually-really-switch-on-obfuscation branch from e24eca9 to 000a650 Compare November 9, 2026 15:19
@lando-web
lando-web Bot requested a review from a team November 9, 2026 15:19
@mozilla-code-review
mozilla-code-review Bot dismissed their stale review November 9, 2026 17:00

This review is now deprecated.

@mozilla-code-review mozilla-code-review Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

25 issues have been found in this revision.

25 issues are located outside of the files touched by the patch:

  • Cargo.lock Error: Crate depends on a vulnerable version of libsqlite3-sys.

Advisory:
libsqlite3-sys via C SQLite CVE-2026-119375
Package: libsqlite3-sys
ID: RUSTSEC-2026-0459
CVSS: CVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:P/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N
Report date: 2026-10-30
SQLite versions before 3.54.0 can return uninitialized page-cache memory when a process opens a database file together with a sibling write-ahead-log (-wal) file whose page size differs from the database's. A crafted pair of files can make ordinary queries return stale bytes from the process's memory. The attack vector is local and needs the victim to open the files.

As libsqlite3-sys bundles SQLite when it is built from its bundled source (the bundled feature, which rusqlite's bundled feature enables), it is susceptible to the vulnerability. The releases 0.6.0 to 0.38.2 bundle SQLite 3.13.0 to 3.53.2 and are affected; the earlier releases contain no SQLite source. libsqlite3-sys was updated to bundle the patched version of SQLite in 0.39.0 (SQLite 3.54.0) and 0.39.1 (SQLite 3.54.1), released with rusqlite 0.41. libsqlite3-sys 0.39 declares Rust 1.88 and rusqlite 0.41 declares Rust 1.89.

Only a process that opens a database file, with its -wal, that a less trusted party could have written is exposed. A build that links a system SQLite instead of the bundled source is not affected by the copy in this crate; its exposure is that of the system library's version. The bundled-sqlcipher feature builds SQLCipher instead of SQLite; in 0.39.0 and 0.39.1 it depends on sqlcipher-src =419.0.6, which bundles SQLite 3.53.4 and is affected.
URL: https://nvd.nist.gov/vuln/detail/CVE-2026-119375
Patched versions: [
">=0.39.0"
]
Unaffected versions: [
"<0.6.0"
]
Advisory metadata: {
"aliases": [
"CVE-2026-119375",
"GHSA-72w2-rjgg-q729"
],
"related": [],
"collection": "crates",
"categories": [
"memory-exposure"
],
"keywords": [
"sqlite",
"wal",
"uninitialized-memory",
"information-disclosure"
],
"informational": null,
"references": [
"https://sqlite.org/bugs/info/2026-08-17T15:54:41Z",
"https://github.com/sqlite/sqlite/commit/e5bf119821f25be1d7f10ef0a2edbe175289166e",
"https://sqlite.org/releaselog/3_54_0.html",
"https://github.com/rusqlite/rusqlite/releases/tag/v0.41.0"
],
"source": null,
"withdrawn": null,
"license": "CC0-1.0"
}

Package info: {
"name": "libsqlite3-sys",
"version": "0.35.0",
"source": "registry+https://github.com/rust-lang/crates.io-index",
"checksum": "133c182a6a2c87864fe97778797e46c7e999672690dc9fa3ee8e241aa4a9c13f",
"dependencies": [
{
"name": "cc",
"version": "1.4.5",
"source": null
},
{
"name": "pkg-config",
"version": "0.3.34",
"source": "registry+https://github.com/rust-lang/crates.io-index"
},
{
"name": "vcpkg",
"version": "0.2.999",
"source": null
}
],
"replace": null
} [cargo-audit: source-test-mozlint-cargo-audit]

  • dom/bindings/TypedArray.h:977 Error: Use c++20 type alias [clang-tidy: modernize-type-traits,-warnings-as-errors]
    Checker reliability is high, meaning that the false positive ratio is low.
  • mfbt/RefPtr.h:48 Error: Member access into incomplete type 'nsINode' [clang-tidy: clang-diagnostic-error]
  • mfbt/RefPtr.h:48 Error: Member access into incomplete type 'nsIPrincipal' [clang-tidy: clang-diagnostic-error]
  • mfbt/RefPtr.h:49 Error: Member access into incomplete type 'nsIPrincipal' [clang-tidy: clang-diagnostic-error]
  • mfbt/RefPtr.h:49 Error: Member access into incomplete type 'nsINode' [clang-tidy: clang-diagnostic-error]
  • xpcom/base/nsCOMPtr.h:421 Error: No matching function for call to 'ToSupports' [clang-tidy: clang-diagnostic-error]
  • xpcom/base/nsCOMPtr.h:358 Error: Member access into incomplete type 'nsINode' [clang-tidy: clang-diagnostic-error]
  • xpcom/base/nsCOMPtr.h:339 Error: No matching function for call to 'ToSupports' [clang-tidy: clang-diagnostic-error]
  • xpcom/base/nsCOMPtr.h:361 Error: Member access into incomplete type 'nsIPrincipal' [clang-tidy: clang-diagnostic-error]
  • xpcom/base/nsCOMPtr.h:327 Error: Static assertion failed due to requirement 'std::integral_constant<bool, false>::value': nsCOMPtr only works for types with IIDs. Either use RefPtr; add an IID to your type with NS_INLINE_DECL_STATIC_IID/ ;or make the nsCOMPtr point to a base class with an IID. [clang-tidy: clang-diagnostic-error]
  • xpcom/base/nsCOMPtr.h:361 Error: Member access into incomplete type 'nsINode' [clang-tidy: clang-diagnostic-error]
  • xpcom/base/nsCOMPtr.h:358 Error: Incomplete type 'nsIPrincipal' named in nested name specifier [clang-tidy: clang-diagnostic-error]
  • xpcom/base/nsCOMPtr.h:358 Error: Incomplete type 'nsINode' named in nested name specifier [clang-tidy: clang-diagnostic-error]
  • xpcom/base/nsCOMPtr.h:358 Error: Member access into incomplete type 'nsIPrincipal' [clang-tidy: clang-diagnostic-error]
  • memory/replace/dmd/DMD.h:85 Error: Use of undeclared identifier 'MOZ_ASSERT' [clang-tidy: clang-diagnostic-error]
  • xpcom/string/nsReadableUtils.h:422 Error: Non-const lvalue reference to type 'nsAString' (aka 'nsTSubstring<char16_t>') cannot bind to a temporary of type 'Span<element_type, dynamic_extent>' (aka 'Span<char16_t, dynamic_extent>') [clang-tidy: clang-diagnostic-error]
  • xpcom/string/nsReadableUtils.h:411 Error: No member named 'Utf16ValidUpTo' in namespace 'mozilla' [clang-tidy: clang-diagnostic-error]
  • xpcom/string/nsReadableUtils.h:422 Error: No member named 'EnsureUtf16ValiditySpan' in namespace 'mozilla'; did you mean 'EnsureUTF16Validity'? [clang-tidy: clang-diagnostic-error]
  • xpcom/string/nsTSubstring.h:22 Error: "Using XPCOM strings is limited to code linked into libxul." [clang-tidy: clang-diagnostic-error]
  • xpcom/threads/TimerThreadMonitor.h:71 Error: Deleted member function should be public [clang-tidy: modernize-use-equals-delete,-warnings-as-errors]
    Checker reliability is high, meaning that the false positive ratio is low.
  • xpcom/threads/TimerThreadMonitor.h:70 Error: Deleted member function should be public [clang-tidy: modernize-use-equals-delete,-warnings-as-errors]
    Checker reliability is high, meaning that the false positive ratio is low.
  • xpcom/threads/TimerThreadMonitor.h:69 Error: Deleted member function should be public [clang-tidy: modernize-use-equals-delete,-warnings-as-errors]
    Checker reliability is high, meaning that the false positive ratio is low.
  • xpcom/threads/TimerThreadMonitor.h:68 Error: Deleted member function should be public [clang-tidy: modernize-use-equals-delete,-warnings-as-errors]
    Checker reliability is high, meaning that the false positive ratio is low.
  • xpcom/threads/TimerThreadMonitor.h:72 Error: Deleted member function should be public [clang-tidy: modernize-use-equals-delete,-warnings-as-errors]
    Checker reliability is high, meaning that the false positive ratio is low.

@mozilla-code-review
mozilla-code-review Bot dismissed their stale review November 9, 2026 17:00

This review is now deprecated.

@mozilla-code-review mozilla-code-review Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

25 issues have been found in this revision.

25 issues are located outside of the files touched by the patch:

  • Cargo.lock Error: Crate depends on a vulnerable version of libsqlite3-sys.

Advisory:
libsqlite3-sys via C SQLite CVE-2026-119375
Package: libsqlite3-sys
ID: RUSTSEC-2026-0459
CVSS: CVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:P/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N
Report date: 2026-10-30
SQLite versions before 3.54.0 can return uninitialized page-cache memory when a process opens a database file together with a sibling write-ahead-log (-wal) file whose page size differs from the database's. A crafted pair of files can make ordinary queries return stale bytes from the process's memory. The attack vector is local and needs the victim to open the files.

As libsqlite3-sys bundles SQLite when it is built from its bundled source (the bundled feature, which rusqlite's bundled feature enables), it is susceptible to the vulnerability. The releases 0.6.0 to 0.38.2 bundle SQLite 3.13.0 to 3.53.2 and are affected; the earlier releases contain no SQLite source. libsqlite3-sys was updated to bundle the patched version of SQLite in 0.39.0 (SQLite 3.54.0) and 0.39.1 (SQLite 3.54.1), released with rusqlite 0.41. libsqlite3-sys 0.39 declares Rust 1.88 and rusqlite 0.41 declares Rust 1.89.

Only a process that opens a database file, with its -wal, that a less trusted party could have written is exposed. A build that links a system SQLite instead of the bundled source is not affected by the copy in this crate; its exposure is that of the system library's version. The bundled-sqlcipher feature builds SQLCipher instead of SQLite; in 0.39.0 and 0.39.1 it depends on sqlcipher-src =419.0.6, which bundles SQLite 3.53.4 and is affected.
URL: https://nvd.nist.gov/vuln/detail/CVE-2026-119375
Patched versions: [
">=0.39.0"
]
Unaffected versions: [
"<0.6.0"
]
Advisory metadata: {
"aliases": [
"CVE-2026-119375",
"GHSA-72w2-rjgg-q729"
],
"related": [],
"collection": "crates",
"categories": [
"memory-exposure"
],
"keywords": [
"sqlite",
"wal",
"uninitialized-memory",
"information-disclosure"
],
"informational": null,
"references": [
"https://sqlite.org/bugs/info/2026-08-17T15:54:41Z",
"https://github.com/sqlite/sqlite/commit/e5bf119821f25be1d7f10ef0a2edbe175289166e",
"https://sqlite.org/releaselog/3_54_0.html",
"https://github.com/rusqlite/rusqlite/releases/tag/v0.41.0"
],
"source": null,
"withdrawn": null,
"license": "CC0-1.0"
}

Package info: {
"name": "libsqlite3-sys",
"version": "0.35.0",
"source": "registry+https://github.com/rust-lang/crates.io-index",
"checksum": "133c182a6a2c87864fe97778797e46c7e999672690dc9fa3ee8e241aa4a9c13f",
"dependencies": [
{
"name": "cc",
"version": "1.4.5",
"source": null
},
{
"name": "pkg-config",
"version": "0.3.34",
"source": "registry+https://github.com/rust-lang/crates.io-index"
},
{
"name": "vcpkg",
"version": "0.2.999",
"source": null
}
],
"replace": null
} [cargo-audit: source-test-mozlint-cargo-audit]

  • dom/bindings/TypedArray.h:977 Error: Use c++20 type alias [clang-tidy: modernize-type-traits,-warnings-as-errors]
    Checker reliability is high, meaning that the false positive ratio is low.
  • mfbt/RefPtr.h:48 Error: Member access into incomplete type 'nsINode' [clang-tidy: clang-diagnostic-error]
  • mfbt/RefPtr.h:48 Error: Member access into incomplete type 'nsIPrincipal' [clang-tidy: clang-diagnostic-error]
  • mfbt/RefPtr.h:49 Error: Member access into incomplete type 'nsIPrincipal' [clang-tidy: clang-diagnostic-error]
  • mfbt/RefPtr.h:49 Error: Member access into incomplete type 'nsINode' [clang-tidy: clang-diagnostic-error]
  • xpcom/base/nsCOMPtr.h:421 Error: No matching function for call to 'ToSupports' [clang-tidy: clang-diagnostic-error]
  • xpcom/base/nsCOMPtr.h:358 Error: Member access into incomplete type 'nsINode' [clang-tidy: clang-diagnostic-error]
  • xpcom/base/nsCOMPtr.h:339 Error: No matching function for call to 'ToSupports' [clang-tidy: clang-diagnostic-error]
  • xpcom/base/nsCOMPtr.h:361 Error: Member access into incomplete type 'nsIPrincipal' [clang-tidy: clang-diagnostic-error]
  • xpcom/base/nsCOMPtr.h:327 Error: Static assertion failed due to requirement 'std::integral_constant<bool, false>::value': nsCOMPtr only works for types with IIDs. Either use RefPtr; add an IID to your type with NS_INLINE_DECL_STATIC_IID/ ;or make the nsCOMPtr point to a base class with an IID. [clang-tidy: clang-diagnostic-error]
  • xpcom/base/nsCOMPtr.h:361 Error: Member access into incomplete type 'nsINode' [clang-tidy: clang-diagnostic-error]
  • xpcom/base/nsCOMPtr.h:358 Error: Incomplete type 'nsIPrincipal' named in nested name specifier [clang-tidy: clang-diagnostic-error]
  • xpcom/base/nsCOMPtr.h:358 Error: Incomplete type 'nsINode' named in nested name specifier [clang-tidy: clang-diagnostic-error]
  • xpcom/base/nsCOMPtr.h:358 Error: Member access into incomplete type 'nsIPrincipal' [clang-tidy: clang-diagnostic-error]
  • memory/replace/dmd/DMD.h:85 Error: Use of undeclared identifier 'MOZ_ASSERT' [clang-tidy: clang-diagnostic-error]
  • xpcom/string/nsReadableUtils.h:422 Error: Non-const lvalue reference to type 'nsAString' (aka 'nsTSubstring<char16_t>') cannot bind to a temporary of type 'Span<element_type, dynamic_extent>' (aka 'Span<char16_t, dynamic_extent>') [clang-tidy: clang-diagnostic-error]
  • xpcom/string/nsReadableUtils.h:411 Error: No member named 'Utf16ValidUpTo' in namespace 'mozilla' [clang-tidy: clang-diagnostic-error]
  • xpcom/string/nsReadableUtils.h:422 Error: No member named 'EnsureUtf16ValiditySpan' in namespace 'mozilla'; did you mean 'EnsureUTF16Validity'? [clang-tidy: clang-diagnostic-error]
  • xpcom/string/nsTSubstring.h:22 Error: "Using XPCOM strings is limited to code linked into libxul." [clang-tidy: clang-diagnostic-error]
  • xpcom/threads/TimerThreadMonitor.h:71 Error: Deleted member function should be public [clang-tidy: modernize-use-equals-delete,-warnings-as-errors]
    Checker reliability is high, meaning that the false positive ratio is low.
  • xpcom/threads/TimerThreadMonitor.h:70 Error: Deleted member function should be public [clang-tidy: modernize-use-equals-delete,-warnings-as-errors]
    Checker reliability is high, meaning that the false positive ratio is low.
  • xpcom/threads/TimerThreadMonitor.h:69 Error: Deleted member function should be public [clang-tidy: modernize-use-equals-delete,-warnings-as-errors]
    Checker reliability is high, meaning that the false positive ratio is low.
  • xpcom/threads/TimerThreadMonitor.h:68 Error: Deleted member function should be public [clang-tidy: modernize-use-equals-delete,-warnings-as-errors]
    Checker reliability is high, meaning that the false positive ratio is low.
  • xpcom/threads/TimerThreadMonitor.h:72 Error: Deleted member function should be public [clang-tidy: modernize-use-equals-delete,-warnings-as-errors]
    Checker reliability is high, meaning that the false positive ratio is low.

lando-worker Bot pushed a commit that referenced this pull request Nov 10, 2026
by removing -dontobfuscate.

NB Fenix now has the broadest possible keep rule to allow us to retain its full class and function names in stack traces for now. We can work on this to narrow the rule to what is really required and further improve performance.

[here is a green try, updated after rebase and rule tweak to retain other r8 optimisation in fenix](https://treeherder.mozilla.org/jobs?repo=try&revision=37f18896f408a5885b30b518889390c58a7f877e)
(i rebased to try and get rid of the noise in the pr bots, which has nothing to do with this change, but it didn't work 🥲 )

[perf compare running here](https://perf.compare/compare-lando-results?landoInstance=lando-prod-2025&baseLando=116720&newLando=116918&baseRepo=try&newRepo=try&framework=15&initialized=1) - expecting this to be neutral (due to current broad keep rule).

this pr brings apk size down 0.8MB though, which is nice

Pull request: #438
@lando-worker

lando-worker Bot commented Nov 10, 2026

Copy link
Copy Markdown

Pull request closed by commit 7aaa812

@lando-worker lando-worker Bot closed this Nov 10, 2026
gecko-dev-updater pushed a commit to marco-c/gecko-dev-wordified-and-comments-removed that referenced this pull request Nov 11, 2026
by removing -dontobfuscate.

NB Fenix now has the broadest possible keep rule to allow us to retain its full class and function names in stack traces for now. We can work on this to narrow the rule to what is really required and further improve performance.

[here is a green try, updated after rebase and rule tweak to retain other r8 optimisation in fenix](https://treeherder.mozilla.org/jobs?repo=try&revision=37f18896f408a5885b30b518889390c58a7f877e)
(i rebased to try and get rid of the noise in the pr bots, which has nothing to do with this change, but it didn't work 🥲 )

[perf compare running here](https://perf.compare/compare-lando-results?landoInstance=lando-prod-2025&baseLando=116720&newLando=116918&baseRepo=try&newRepo=try&framework=15&initialized=1) - expecting this to be neutral (due to current broad keep rule).

this pr brings apk size down 0.8MB though, which is nice

Pull request: mozilla-firefox/firefox#438

UltraBlame original commit: b3e4771190d03185185b0783b20aa24554d0953a
gecko-dev-updater pushed a commit to marco-c/gecko-dev-wordified that referenced this pull request Nov 11, 2026
by removing -dontobfuscate.

NB Fenix now has the broadest possible keep rule to allow us to retain its full class and function names in stack traces for now. We can work on this to narrow the rule to what is really required and further improve performance.

[here is a green try, updated after rebase and rule tweak to retain other r8 optimisation in fenix](https://treeherder.mozilla.org/jobs?repo=try&revision=37f18896f408a5885b30b518889390c58a7f877e)
(i rebased to try and get rid of the noise in the pr bots, which has nothing to do with this change, but it didn't work 🥲 )

[perf compare running here](https://perf.compare/compare-lando-results?landoInstance=lando-prod-2025&baseLando=116720&newLando=116918&baseRepo=try&newRepo=try&framework=15&initialized=1) - expecting this to be neutral (due to current broad keep rule).

this pr brings apk size down 0.8MB though, which is nice

Pull request: mozilla-firefox/firefox#438

UltraBlame original commit: b3e4771190d03185185b0783b20aa24554d0953a
gecko-dev-updater pushed a commit to marco-c/gecko-dev-comments-removed that referenced this pull request Nov 11, 2026
by removing -dontobfuscate.

NB Fenix now has the broadest possible keep rule to allow us to retain its full class and function names in stack traces for now. We can work on this to narrow the rule to what is really required and further improve performance.

[here is a green try, updated after rebase and rule tweak to retain other r8 optimisation in fenix](https://treeherder.mozilla.org/jobs?repo=try&revision=37f18896f408a5885b30b518889390c58a7f877e)
(i rebased to try and get rid of the noise in the pr bots, which has nothing to do with this change, but it didn't work 🥲 )

[perf compare running here](https://perf.compare/compare-lando-results?landoInstance=lando-prod-2025&baseLando=116720&newLando=116918&baseRepo=try&newRepo=try&framework=15&initialized=1) - expecting this to be neutral (due to current broad keep rule).

this pr brings apk size down 0.8MB though, which is nice

Pull request: mozilla-firefox/firefox#438

UltraBlame original commit: b3e4771190d03185185b0783b20aa24554d0953a
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants