Compare commits

...
Author SHA1 Message Date
Release Engineering Landoscript 0304f5a3e3 No Bug - Import translations from https://github.com/mozilla-l10n/android-l10n CLOSED TREE 2026-09-13 00:15:01 +00:00
Jonathan Kew fe9deb509e Bug 2071557 - Keep color-font palette entries as hb_color_t to reduce memory footprint. r=firefox-style-system-reviewers,emilio
Differential Revision: https://phabricator.services.mozilla.com/D325607
2026-09-12 21:37:37 +00:00
owlishDeveloper aabe491b92 Bug 2057685 - Part 4: Add GeckoView backend support for full page screenshot API r=geckoview-reviewers,ohall
Differential Revision: https://phabricator.services.mozilla.com/D318616
2026-09-12 20:28:11 +00:00
Silaghi afed2108b5 Revert "Bug 1992418 - add runtime.getVersion() r=robwu" for causing mochitests failures at apis.html
This reverts commit df22bd7905.
2026-09-12 20:23:11 +00:00
Cosmin Sabou 6dc230d73f Revert "Bug 2071557 - Keep color-font palette entries as hb_color_t to reduce memory footprint. r=firefox-style-system-reviewers,emilio" for causing build bustages on TestCOLRv1.
This reverts commit 3cb9d005f6.
2026-09-12 20:16:04 +00:00
Cosmin Sabou 53b235ad10 Revert "Bug 2057685 - Part 4: Add GeckoView backend support for full page screenshot API r=geckoview-reviewers,ohall" for causing build bustages on TestCOLRv1.
This reverts commit 64cf3d97f8.
2026-09-12 20:07:34 +00:00
Ryan VanderMeulen fccbd9a5a2 Bug 2071614 - Update JDK 8 to version 8u502-b07. r=firefox-build-system-reviewers,ahochheiden
Differential Revision: https://phabricator.services.mozilla.com/D325617
2026-09-12 19:50:47 +00:00
Ryan VanderMeulen 73d0b06bfb Bug 2071614 - Update JDK 17 to version 17.0.20.1+1. r=firefox-build-system-reviewers,ahochheiden
Differential Revision: https://phabricator.services.mozilla.com/D325616
2026-09-12 19:50:46 +00:00
Ting-Yu Lin 7c24ec4123 Bug 2057630 Part 6 - Add WPT to exercise sticky and transform. r=layout-reviewers,dshin
`anchor-scroll-to-sticky-006.html` renders the same as
`anchor-scroll-to-sticky-005`. The only difference between the two
tests is that 006 has an identity `scale: 1` added to `#sticky` to
exercise the anchor transform code path.

Differential Revision: https://phabricator.services.mozilla.com/D325535
2026-09-12 19:49:23 +00:00
Ting-Yu Lin e1b54aa821 Bug 2057630 Part 5 - Make anchor's scroll offset computation aware of sticky positioning. r=layout-reviewers,dshin
This patch introduces `GetPositionIgnoringScrollingAndSticky()` and
`GetOffsetToIgnoringScrollingAndSticky()`, and uses the latter in all
the helpers in `AnchorPositioningUtils` instead of
`GetOffsetToIgnoringScrolling()`. As a result, an anchor positioned
element whose anchor is sticky is now laid out against the sticky
anchor's scroll-ignored position.

`GetScrollOffsetFor()` then becomes `GetScrollOffsetTo()`, which
accumulates the difference between the anchor's scroll-ignored and
actual position in a single walk of the frame tree. Because both
accessors are evaluated on the same frames, any scroll container that
moves the anchor and the absolute containing block together cancels
out.

That eliminates the need to check the stop conditions in the old code,
and it works when the absolute containing block is fragmented or has
IB-split siblings.

Differential Revision: https://phabricator.services.mozilla.com/D324789
2026-09-12 19:49:22 +00:00
Ting-Yu Lin 888d43dc65 Bug 2057630 Part 4 - Make OffsetCalculator() take a position getter callable. r=layout-reviewers,dshin
It allows the caller to pass a lambda to accumulate a difference of
two position getters in one walk of the frame tree, which is needed by
the next part.

This patch does not change behavior.

Differential Revision: https://phabricator.services.mozilla.com/D325534
2026-09-12 19:49:21 +00:00
Ting-Yu Lin cb01fd0559 Bug 2057630 Part 3 - Add two helpers in StickyScrollContainer. r=layout-reviewers,emilio
`ComputeTranslationIgnoringScrolling()` is required for the next part.

Differential Revision: https://phabricator.services.mozilla.com/D324788
2026-09-12 19:49:21 +00:00
Ting-Yu Lin f92e5fb2fc Bug 2057630 Part 2 - Return the result in a struct from StickyScrollContainer::ComputeStickyLimits(). r=layout-reviewers,emilio
`ComputeStickyLimits()` returned its two rectangles through outparams.
Return them in a struct instead, which is easier to use at the call
sites.

Differential Revision: https://phabricator.services.mozilla.com/D324787
2026-09-12 19:49:20 +00:00
Ting-Yu Lin 56ab4b6060 Bug 2057630 Part 1 - Simplify implementation of ScrollContainerFrame::GetPositionOfChildIgnoringScrolling(). r=layout-reviewers,emilio
This patch does not change behavior.

Differential Revision: https://phabricator.services.mozilla.com/D324786
2026-09-12 19:49:19 +00:00
owlishDeveloper 64cf3d97f8 Bug 2057685 - Part 4: Add GeckoView backend support for full page screenshot API r=geckoview-reviewers,ohall
Differential Revision: https://phabricator.services.mozilla.com/D318616
2026-09-12 19:37:21 +00:00
Release Engineering Landoscript ab46b0f5d3 No Bug - Bumping Mobile l10n changesets r=release a=l10n-bump DONTBUILD CLOSED TREE
ach -> db22e234b0f9b083dfd778445904f7e7af57a305
an -> db22e234b0f9b083dfd778445904f7e7af57a305
ar -> db22e234b0f9b083dfd778445904f7e7af57a305
ast -> db22e234b0f9b083dfd778445904f7e7af57a305
az -> db22e234b0f9b083dfd778445904f7e7af57a305
be -> db22e234b0f9b083dfd778445904f7e7af57a305
bg -> db22e234b0f9b083dfd778445904f7e7af57a305
bn -> db22e234b0f9b083dfd778445904f7e7af57a305
br -> db22e234b0f9b083dfd778445904f7e7af57a305
bs -> db22e234b0f9b083dfd778445904f7e7af57a305
ca -> db22e234b0f9b083dfd778445904f7e7af57a305
cak -> db22e234b0f9b083dfd778445904f7e7af57a305
cs -> db22e234b0f9b083dfd778445904f7e7af57a305
cy -> db22e234b0f9b083dfd778445904f7e7af57a305
da -> db22e234b0f9b083dfd778445904f7e7af57a305
de -> db22e234b0f9b083dfd778445904f7e7af57a305
dsb -> db22e234b0f9b083dfd778445904f7e7af57a305
el -> db22e234b0f9b083dfd778445904f7e7af57a305
en-CA -> db22e234b0f9b083dfd778445904f7e7af57a305
en-GB -> db22e234b0f9b083dfd778445904f7e7af57a305
eo -> db22e234b0f9b083dfd778445904f7e7af57a305
es-AR -> db22e234b0f9b083dfd778445904f7e7af57a305
es-CL -> db22e234b0f9b083dfd778445904f7e7af57a305
es-ES -> db22e234b0f9b083dfd778445904f7e7af57a305
es-MX -> db22e234b0f9b083dfd778445904f7e7af57a305
et -> db22e234b0f9b083dfd778445904f7e7af57a305
eu -> db22e234b0f9b083dfd778445904f7e7af57a305
fa -> db22e234b0f9b083dfd778445904f7e7af57a305
ff -> db22e234b0f9b083dfd778445904f7e7af57a305
fi -> db22e234b0f9b083dfd778445904f7e7af57a305
fr -> db22e234b0f9b083dfd778445904f7e7af57a305
fy-NL -> db22e234b0f9b083dfd778445904f7e7af57a305
ga-IE -> db22e234b0f9b083dfd778445904f7e7af57a305
gd -> db22e234b0f9b083dfd778445904f7e7af57a305
gl -> db22e234b0f9b083dfd778445904f7e7af57a305
gn -> db22e234b0f9b083dfd778445904f7e7af57a305
gu-IN -> db22e234b0f9b083dfd778445904f7e7af57a305
he -> db22e234b0f9b083dfd778445904f7e7af57a305
hi-IN -> db22e234b0f9b083dfd778445904f7e7af57a305
hr -> db22e234b0f9b083dfd778445904f7e7af57a305
hsb -> db22e234b0f9b083dfd778445904f7e7af57a305
hu -> db22e234b0f9b083dfd778445904f7e7af57a305
hy-AM -> db22e234b0f9b083dfd778445904f7e7af57a305
ia -> db22e234b0f9b083dfd778445904f7e7af57a305
id -> db22e234b0f9b083dfd778445904f7e7af57a305
is -> db22e234b0f9b083dfd778445904f7e7af57a305
it -> db22e234b0f9b083dfd778445904f7e7af57a305
ja -> db22e234b0f9b083dfd778445904f7e7af57a305
ka -> db22e234b0f9b083dfd778445904f7e7af57a305
kab -> db22e234b0f9b083dfd778445904f7e7af57a305
kk -> db22e234b0f9b083dfd778445904f7e7af57a305
km -> db22e234b0f9b083dfd778445904f7e7af57a305
kn -> db22e234b0f9b083dfd778445904f7e7af57a305
ko -> db22e234b0f9b083dfd778445904f7e7af57a305
lij -> db22e234b0f9b083dfd778445904f7e7af57a305
lo -> db22e234b0f9b083dfd778445904f7e7af57a305
lt -> db22e234b0f9b083dfd778445904f7e7af57a305
ltg -> db22e234b0f9b083dfd778445904f7e7af57a305
lv -> db22e234b0f9b083dfd778445904f7e7af57a305
meh -> db22e234b0f9b083dfd778445904f7e7af57a305
mix -> db22e234b0f9b083dfd778445904f7e7af57a305
ml -> db22e234b0f9b083dfd778445904f7e7af57a305
mr -> db22e234b0f9b083dfd778445904f7e7af57a305
ms -> db22e234b0f9b083dfd778445904f7e7af57a305
my -> db22e234b0f9b083dfd778445904f7e7af57a305
nb-NO -> db22e234b0f9b083dfd778445904f7e7af57a305
ne-NP -> db22e234b0f9b083dfd778445904f7e7af57a305
nl -> db22e234b0f9b083dfd778445904f7e7af57a305
nn-NO -> db22e234b0f9b083dfd778445904f7e7af57a305
oc -> db22e234b0f9b083dfd778445904f7e7af57a305
pa-IN -> db22e234b0f9b083dfd778445904f7e7af57a305
pl -> db22e234b0f9b083dfd778445904f7e7af57a305
pt-BR -> db22e234b0f9b083dfd778445904f7e7af57a305
pt-PT -> db22e234b0f9b083dfd778445904f7e7af57a305
rm -> db22e234b0f9b083dfd778445904f7e7af57a305
ro -> db22e234b0f9b083dfd778445904f7e7af57a305
ru -> db22e234b0f9b083dfd778445904f7e7af57a305
sk -> db22e234b0f9b083dfd778445904f7e7af57a305
sl -> db22e234b0f9b083dfd778445904f7e7af57a305
son -> db22e234b0f9b083dfd778445904f7e7af57a305
sq -> db22e234b0f9b083dfd778445904f7e7af57a305
sr -> db22e234b0f9b083dfd778445904f7e7af57a305
sv-SE -> db22e234b0f9b083dfd778445904f7e7af57a305
ta -> db22e234b0f9b083dfd778445904f7e7af57a305
te -> db22e234b0f9b083dfd778445904f7e7af57a305
th -> db22e234b0f9b083dfd778445904f7e7af57a305
tl -> db22e234b0f9b083dfd778445904f7e7af57a305
tr -> db22e234b0f9b083dfd778445904f7e7af57a305
trs -> db22e234b0f9b083dfd778445904f7e7af57a305
uk -> db22e234b0f9b083dfd778445904f7e7af57a305
ur -> db22e234b0f9b083dfd778445904f7e7af57a305
uz -> db22e234b0f9b083dfd778445904f7e7af57a305
vi -> db22e234b0f9b083dfd778445904f7e7af57a305
wo -> db22e234b0f9b083dfd778445904f7e7af57a305
xh -> db22e234b0f9b083dfd778445904f7e7af57a305
zam -> db22e234b0f9b083dfd778445904f7e7af57a305
zh-CN -> db22e234b0f9b083dfd778445904f7e7af57a305
zh-TW -> db22e234b0f9b083dfd778445904f7e7af57a305
2026-09-12 18:49:17 +00:00
Release Engineering Landoscript 5454e6466f No Bug - Bumping Firefox l10n changesets r=release a=l10n-bump DONTBUILD CLOSED TREE
ach -> db22e234b0f9b083dfd778445904f7e7af57a305
af -> db22e234b0f9b083dfd778445904f7e7af57a305
an -> db22e234b0f9b083dfd778445904f7e7af57a305
ar -> db22e234b0f9b083dfd778445904f7e7af57a305
ast -> db22e234b0f9b083dfd778445904f7e7af57a305
az -> db22e234b0f9b083dfd778445904f7e7af57a305
be -> db22e234b0f9b083dfd778445904f7e7af57a305
bg -> db22e234b0f9b083dfd778445904f7e7af57a305
bn -> db22e234b0f9b083dfd778445904f7e7af57a305
bo -> db22e234b0f9b083dfd778445904f7e7af57a305
bqi -> db22e234b0f9b083dfd778445904f7e7af57a305
br -> db22e234b0f9b083dfd778445904f7e7af57a305
brx -> db22e234b0f9b083dfd778445904f7e7af57a305
bs -> db22e234b0f9b083dfd778445904f7e7af57a305
ca -> db22e234b0f9b083dfd778445904f7e7af57a305
ca-valencia -> db22e234b0f9b083dfd778445904f7e7af57a305
cak -> db22e234b0f9b083dfd778445904f7e7af57a305
ckb -> db22e234b0f9b083dfd778445904f7e7af57a305
cs -> db22e234b0f9b083dfd778445904f7e7af57a305
cy -> db22e234b0f9b083dfd778445904f7e7af57a305
da -> db22e234b0f9b083dfd778445904f7e7af57a305
de -> db22e234b0f9b083dfd778445904f7e7af57a305
dsb -> db22e234b0f9b083dfd778445904f7e7af57a305
el -> db22e234b0f9b083dfd778445904f7e7af57a305
en-CA -> db22e234b0f9b083dfd778445904f7e7af57a305
en-GB -> db22e234b0f9b083dfd778445904f7e7af57a305
eo -> db22e234b0f9b083dfd778445904f7e7af57a305
es-AR -> db22e234b0f9b083dfd778445904f7e7af57a305
es-CL -> db22e234b0f9b083dfd778445904f7e7af57a305
es-ES -> db22e234b0f9b083dfd778445904f7e7af57a305
es-MX -> db22e234b0f9b083dfd778445904f7e7af57a305
et -> db22e234b0f9b083dfd778445904f7e7af57a305
eu -> db22e234b0f9b083dfd778445904f7e7af57a305
fa -> db22e234b0f9b083dfd778445904f7e7af57a305
ff -> db22e234b0f9b083dfd778445904f7e7af57a305
fi -> db22e234b0f9b083dfd778445904f7e7af57a305
fr -> db22e234b0f9b083dfd778445904f7e7af57a305
fur -> db22e234b0f9b083dfd778445904f7e7af57a305
fy-NL -> db22e234b0f9b083dfd778445904f7e7af57a305
ga-IE -> db22e234b0f9b083dfd778445904f7e7af57a305
gd -> db22e234b0f9b083dfd778445904f7e7af57a305
gl -> db22e234b0f9b083dfd778445904f7e7af57a305
gn -> db22e234b0f9b083dfd778445904f7e7af57a305
gu-IN -> db22e234b0f9b083dfd778445904f7e7af57a305
he -> db22e234b0f9b083dfd778445904f7e7af57a305
hi-IN -> db22e234b0f9b083dfd778445904f7e7af57a305
hr -> db22e234b0f9b083dfd778445904f7e7af57a305
hsb -> db22e234b0f9b083dfd778445904f7e7af57a305
hu -> db22e234b0f9b083dfd778445904f7e7af57a305
hy-AM -> db22e234b0f9b083dfd778445904f7e7af57a305
hye -> db22e234b0f9b083dfd778445904f7e7af57a305
ia -> db22e234b0f9b083dfd778445904f7e7af57a305
id -> db22e234b0f9b083dfd778445904f7e7af57a305
is -> db22e234b0f9b083dfd778445904f7e7af57a305
it -> db22e234b0f9b083dfd778445904f7e7af57a305
ja -> db22e234b0f9b083dfd778445904f7e7af57a305
ja-JP-mac -> db22e234b0f9b083dfd778445904f7e7af57a305
ka -> db22e234b0f9b083dfd778445904f7e7af57a305
kab -> db22e234b0f9b083dfd778445904f7e7af57a305
kk -> db22e234b0f9b083dfd778445904f7e7af57a305
km -> db22e234b0f9b083dfd778445904f7e7af57a305
kn -> db22e234b0f9b083dfd778445904f7e7af57a305
ko -> db22e234b0f9b083dfd778445904f7e7af57a305
lij -> db22e234b0f9b083dfd778445904f7e7af57a305
lo -> db22e234b0f9b083dfd778445904f7e7af57a305
lt -> db22e234b0f9b083dfd778445904f7e7af57a305
ltg -> db22e234b0f9b083dfd778445904f7e7af57a305
lv -> db22e234b0f9b083dfd778445904f7e7af57a305
meh -> db22e234b0f9b083dfd778445904f7e7af57a305
mk -> db22e234b0f9b083dfd778445904f7e7af57a305
ml -> db22e234b0f9b083dfd778445904f7e7af57a305
mr -> db22e234b0f9b083dfd778445904f7e7af57a305
ms -> db22e234b0f9b083dfd778445904f7e7af57a305
my -> db22e234b0f9b083dfd778445904f7e7af57a305
nb-NO -> db22e234b0f9b083dfd778445904f7e7af57a305
ne-NP -> db22e234b0f9b083dfd778445904f7e7af57a305
nl -> db22e234b0f9b083dfd778445904f7e7af57a305
nn-NO -> db22e234b0f9b083dfd778445904f7e7af57a305
oc -> db22e234b0f9b083dfd778445904f7e7af57a305
pa-IN -> db22e234b0f9b083dfd778445904f7e7af57a305
pl -> db22e234b0f9b083dfd778445904f7e7af57a305
pt-BR -> db22e234b0f9b083dfd778445904f7e7af57a305
pt-PT -> db22e234b0f9b083dfd778445904f7e7af57a305
rm -> db22e234b0f9b083dfd778445904f7e7af57a305
ro -> db22e234b0f9b083dfd778445904f7e7af57a305
ru -> db22e234b0f9b083dfd778445904f7e7af57a305
sat -> db22e234b0f9b083dfd778445904f7e7af57a305
sc -> db22e234b0f9b083dfd778445904f7e7af57a305
scn -> db22e234b0f9b083dfd778445904f7e7af57a305
sco -> db22e234b0f9b083dfd778445904f7e7af57a305
si -> db22e234b0f9b083dfd778445904f7e7af57a305
sk -> db22e234b0f9b083dfd778445904f7e7af57a305
skr -> db22e234b0f9b083dfd778445904f7e7af57a305
sl -> db22e234b0f9b083dfd778445904f7e7af57a305
son -> db22e234b0f9b083dfd778445904f7e7af57a305
sq -> db22e234b0f9b083dfd778445904f7e7af57a305
sr -> db22e234b0f9b083dfd778445904f7e7af57a305
sv-SE -> db22e234b0f9b083dfd778445904f7e7af57a305
szl -> db22e234b0f9b083dfd778445904f7e7af57a305
ta -> db22e234b0f9b083dfd778445904f7e7af57a305
te -> db22e234b0f9b083dfd778445904f7e7af57a305
tg -> db22e234b0f9b083dfd778445904f7e7af57a305
th -> db22e234b0f9b083dfd778445904f7e7af57a305
tl -> db22e234b0f9b083dfd778445904f7e7af57a305
tr -> db22e234b0f9b083dfd778445904f7e7af57a305
trs -> db22e234b0f9b083dfd778445904f7e7af57a305
uk -> db22e234b0f9b083dfd778445904f7e7af57a305
ur -> db22e234b0f9b083dfd778445904f7e7af57a305
uz -> db22e234b0f9b083dfd778445904f7e7af57a305
vi -> db22e234b0f9b083dfd778445904f7e7af57a305
wo -> db22e234b0f9b083dfd778445904f7e7af57a305
xh -> db22e234b0f9b083dfd778445904f7e7af57a305
zh-CN -> db22e234b0f9b083dfd778445904f7e7af57a305
zh-TW -> db22e234b0f9b083dfd778445904f7e7af57a305
2026-09-12 18:49:15 +00:00
Roger Yang 958e07cb39 Bug 2069046 - Remove Nimbus flag for media session notification improvements. r=android-reviewers,alastun
Differential Revision: https://phabricator.services.mozilla.com/D323442
2026-09-12 17:17:22 +00:00
Jonathan Kew 3cb9d005f6 Bug 2071557 - Keep color-font palette entries as hb_color_t to reduce memory footprint. r=firefox-style-system-reviewers,emilio
Differential Revision: https://phabricator.services.mozilla.com/D325607
2026-09-12 17:13:30 +00:00
Updatebot 355f584751 Bug 2071580 - Update PDF.js to 0ce03b5a09eba84469d758b873990527143f4972 r=calixte
Differential Revision: https://phabricator.services.mozilla.com/D325600
2026-09-12 17:11:03 +00:00
Emilio Cobos Álvarez b4563de953 Bug 2071197 - Fix NewPresState() after field reorder. 2026-09-12 16:00:31 +00:00
Carlos Jeurissen df22bd7905 Bug 1992418 - add runtime.getVersion() r=robwu
Differential Revision: https://phabricator.services.mozilla.com/D267514
2026-09-12 15:50:12 +00:00
Emilio Cobos Álvarez 35a9baf9bd Bug 2071197 - Prevent two scroll events being sent on the same frame after bug 2015089. r=layout-reviewers,dshin
Save and restore scroll event generations to prevent sending two events
on the same frame.

Differential Revision: https://phabricator.services.mozilla.com/D325321
2026-09-12 15:13:20 +00:00
Ryan VanderMeulen 39dcc5beb7 Bug 2071588 - Rebase unpoison-thread-stacks patch for clang trunk after the section pragma GNUC guards. r=me 2026-09-12 15:11:42 +00:00
Emilio Cobos Álvarez 10607e264b Bug 2071179 - Update tests for unexpected passes. 2026-09-12 15:08:13 +00:00
Ryan VanderMeulen 536247f088 Revert "Bug 2066084. Give a preserve-3d participant with a hidden backface its own transform item so its descendants are culled with it. r=layout-reviewers,emilio" for various regressions.
This reverts commit 8d6a6899c7.
2026-09-12 13:28:23 +00:00
Ryan VanderMeulen 100c82c576 Revert "Bug 2067338. Misc cleanups to preserve3d wrapping display list code. r=layout-reviewers,emilio" for various regressions.
This reverts commit bc8429b28b.
2026-09-12 13:28:21 +00:00
Lando 0e28d397fd Bug 2069212: apply code formatting via Lando
# ignore-this-changeset
2026-09-12 10:48:51 +00:00
Timothy Nikkel 3f755e9a07 Bug 2069212. Adjust fuzz for testing/web-platform/tests/jpegxl/progressive-*.html. r=saschanaz
jxl-rs changed its dither pattern again in
https://github.com/libjxl/jxl-rs/commit/b76fd1421ed675bd35a4996fecafc124bf47f75e

I'm doing this in the .ini files instead of in the html test files themselves because bug 2070605 is pending with a merge from wpt that bumps these fuzz counts in the html files, but we need slightly more fuzz, and we need this to be green in order to land. After bug 2070605 is merged I will move these into the html files so it gets merged back to wpt.

Differential Revision: https://phabricator.services.mozilla.com/D325325
2026-09-12 10:48:37 +00:00
Timothy Nikkel 8b01005306 Bug 2069212. Update image/test/mochitest/test_jxl_progressive.html because progressive rendering has improved. r=saschanaz
Upstream jxl-rs has a fix for upsampling the LF preview in
https://github.com/libjxl/jxl-rs/commit/760c9d636aa15d6979208ec3a6fe59d734c387cc.
Comparing the before and after directly you can see that it was wrongly
sampling pixels past the right edge and treating those as black and the new
image is a clear improvment.

This also affects testing/web-platform/tests/jpegxl/progressive-1.html because
they are based on the same image, but there is an incoming wpt merge that
touches that reference for this same reason, so I can't touch it here or else I
would cause a conflict. After it's merged I will make sure everything is
sorted out fully.

Differential Revision: https://phabricator.services.mozilla.com/D325241
2026-09-12 10:48:37 +00:00
Timothy Nikkel ff302d8f2d Bug 2069212. Adjust fuzz for testing/web-platform/tests/jpegxl/sdr-alpha-reftest.html. r=saschanaz
jxl-rs changed its dither pattern again in
https://github.com/libjxl/jxl-rs/commit/b76fd1421ed675bd35a4996fecafc124bf47f75e

Differential Revision: https://phabricator.services.mozilla.com/D325240
2026-09-12 10:48:36 +00:00
Timothy Nikkel 42921bac93 Bug 2069212. Regenerate the JXL gtest reference so we can ask for an exact match. r=saschanaz
large-jxl-reference.webp held libjxl's decode of large.jxl. jxl-rs changed its
dither pattern again in
https://github.com/libjxl/jxl-rs/commit/b76fd1421ed675bd35a4996fecafc124bf47f75e
and now it is different from libjxl (it used to match). I want this test case
in particular to be an exact match (or as close as we can get) so I regenerated
it from jxl-rs. webp was used because I wanted a different format decoder to
check against and because this is a big file (necessary for testing
multithreaded decoding) and webp produced the smallest lossless file from a
decoder that wasn't jxl.

Differential Revision: https://phabricator.services.mozilla.com/D325239
2026-09-12 10:48:35 +00:00
Timothy Nikkel d3da296c00 Bug 2069212. Adapt our code to changes in jxl-rs. r=saschanaz
JxlParallelRunner gained a required num_threads method.

set_pixel_format now returns a Result, which we propagate. It only fails if the
pixel format changes after the first frame header is decoded, and we set ours
once right after basic info arrives.

Differential Revision: https://phabricator.services.mozilla.com/D325238
2026-09-12 10:48:34 +00:00
Timothy Nikkel 9fa5e2d0fe Bug 2069212. Reapply the jxl_simd macOS x86_64 workaround on top of 0.7.2. r=saschanaz,supply-chain-reviewers
This re-applies the bug 2043090 macOS x86_64 workaround

These files had significant changes this update so I re-verified that the
workaround was still both needed (on affected rust versions) and worked to
avoid the problem on the new files.

Differential Revision: https://phabricator.services.mozilla.com/D325237
2026-09-12 10:48:34 +00:00
Timothy Nikkel 9caa5af57e Bug 2069212. Upgrade jxl-rs to 0.7.2. r=saschanaz,supply-chain-reviewers
Differential Revision: https://phabricator.services.mozilla.com/D325232
2026-09-12 10:48:33 +00:00
Timothy Nikkel 49a7796d33 Bug 2069212. Back out the local jxl_simd workaround so the 0.7.2 vendor bump is a pure upstream delta. r=saschanaz,supply-chain-reviewers
This backs the bug 2043090 macOS x86_64 workaround

Differential Revision: https://phabricator.services.mozilla.com/D325231
2026-09-12 10:48:32 +00:00
Jonathan Kew f48bac4bf4 Bug 2067259 - Update mochitest expectations for revised font-family quoting behavior. r=firefox-style-system-reviewers,emilio
Differential Revision: https://phabricator.services.mozilla.com/D325338
2026-09-12 10:19:39 +00:00
Jonathan Kew a96f6b83c0 Bug 2067259 - Update WPT metadata to reflect revised behavior. r=firefox-style-system-reviewers,emilio
Mostly we're passing a bunch more tests now. The only "new" failure is because we don't implement
the ui-* generics, and therefore don't force things like (quoted) "ui-serif" to retain String syntax.

Differential Revision: https://phabricator.services.mozilla.com/D325337
2026-09-12 10:19:37 +00:00
Jonathan Kew b0b4f61f55 Bug 2067259 - When FamilyName is used for font names in src:local(), force its syntax to be Quoted. r=firefox-style-system-reviewers,emilio
Although the spec seems a little unclear on this IMO, it matches the behavior of both Chrome and Safari,
and is what css/css-fonts/font-family-src-quoted.html asserts:
https://github.com/web-platform-tests/wpt/blob/59ff8a4854a8d2d32ca0dc113760f2aaad70f4b5/css/css-fonts/font-family-src-quoted.html#L7

Differential Revision: https://phabricator.services.mozilla.com/D325335
2026-09-12 10:19:34 +00:00
Jonathan Kew 035464ff93 Bug 2067259 - Rework the criteria used to determine whether font-family names are quoted. r=firefox-style-system-reviewers,emilio
This reflects the decision in https://github.com/w3c/csswg-drafts/issues/5846,
and expectations of some recent WPTs (see later patch updating metadata).

Differential Revision: https://phabricator.services.mozilla.com/D325334
2026-09-12 10:19:32 +00:00
Dão Gottwald 948709ca85 Bug 2071359 - Use input tokens for the new tab search bar. r=emilio,desktop-theme-reviewers
The brand value the input text color gains is the page text color moz-input-text already inherited in-content.

Differential Revision: https://phabricator.services.mozilla.com/D325585
2026-09-12 08:42:23 +00:00
Emilio Cobos Álvarez 99e4377e2e Bug 2071179 - Prevent image function from ending up as WR fallback. r=gfx-reviewers,layout-reviewers,lsalzman,dshin
The image() function is incorrectly falling back to a blob image.

Use an exclusive switch so that it doesn't happen again. The only thing
we don't support in the WR path as far as I can tell is -moz-element().

-moz-symbolic-icon() works just like url(), and all the cases for url()
where we return false there's basically nothing to draw. cross-fade() is
not implemented in either path so let's return true for now so that we
intentionally switch to false if needed.

I don't get the EffectiveAppearance() check and I don't think it's
needed. Those go through
nsDisplayThemedBackground::CreateWebRenderCommands, and any
author-specified background disables the native appearance.

While at it don't bother to create WR commands for transparent colors,
which are common in the front-end and is a one-liner check.

Differential Revision: https://phabricator.services.mozilla.com/D325399
2026-09-12 08:12:58 +00:00
Abhishek Sharma 251c0992cd Bug 2065986 - pt3. Use bailout stub info to reconstruct stack r=jandem,iain
The bailout process is modified to use bailout stub information to rebuild
the stack one frame at a time instead of the existing bulk copy.

- The bailout tail uses the bailout stub information to setup the bailout
  registers, copy contents of frames (besides the return address) and jumps
  to the appropriate bailout stub.
- The bailout stub is setup so that simply calling back into the bailout
  tail materializes the expected return address - and the bailout tail can
  continue with the next frame.

Differential Revision: https://phabricator.services.mozilla.com/D320793
2026-09-12 08:11:44 +00:00
Abhishek Sharma 1f504e17f7 Bug 2065986 - pt2. Add bailout stub information to the BaselineBailoutInfo r=jandem,iain
The BaselineStackBuilder now adds BailoutStubInfo corresponding to each
rebuilt stack frame to the BaselineBailoutInfo. The stub info tells the
bailout tail where each frame's contents end and the bailout stub that
will materialize the return address for the frame's call into an outer
frame.

Differential Revision: https://phabricator.services.mozilla.com/D320792
2026-09-12 08:11:43 +00:00
Abhishek Sharma de748cf25a Bug 2065986 - pt1. Introduce bailout stubs in the baseline interpreter and fallback ics r=jandem,iain
Add bailout stubs to the Baseline Interpreter and the Fallback IC compiler. These
are currently a no-op - but will be jumped to by the bailout tail after copying
a single frame's contents. This allows the frame's return address, that is presently
directly copied into the stack, to be materialized with an actual call - making
bailout compatible with CET shadow stack on x86_64.

Differential Revision: https://phabricator.services.mozilla.com/D320791
2026-09-12 08:11:42 +00:00
Omar Gonzalez 9a17117b7b Bug 2063111 - updates to align with API contract r=mshillabeer,jlewis
Differential Revision: https://phabricator.services.mozilla.com/D322800
2026-09-12 06:51:50 +00:00
agoloman a1ede75a77 Revert "Bug 2058533 - Add a PromoCard highlighting the Collections to Tab Groups migration in the Tab Groups page r=android-reviewers,gl" for causing fenix failures @AddressAutofillTest#verifyAddAddressViewTest.
This reverts commit 1d37bac63c.
2026-09-12 06:49:22 +00:00
Release Engineering Landoscript f984cb1cff No Bug - Bumping Mobile l10n changesets r=release a=l10n-bump DONTBUILD CLOSED TREE
ach -> bf7c928228dd2a6c235f15c7449c4c8931c617c7
an -> bf7c928228dd2a6c235f15c7449c4c8931c617c7
ar -> bf7c928228dd2a6c235f15c7449c4c8931c617c7
ast -> bf7c928228dd2a6c235f15c7449c4c8931c617c7
az -> bf7c928228dd2a6c235f15c7449c4c8931c617c7
be -> bf7c928228dd2a6c235f15c7449c4c8931c617c7
bg -> bf7c928228dd2a6c235f15c7449c4c8931c617c7
bn -> bf7c928228dd2a6c235f15c7449c4c8931c617c7
br -> bf7c928228dd2a6c235f15c7449c4c8931c617c7
bs -> bf7c928228dd2a6c235f15c7449c4c8931c617c7
ca -> bf7c928228dd2a6c235f15c7449c4c8931c617c7
cak -> bf7c928228dd2a6c235f15c7449c4c8931c617c7
cs -> bf7c928228dd2a6c235f15c7449c4c8931c617c7
cy -> bf7c928228dd2a6c235f15c7449c4c8931c617c7
da -> bf7c928228dd2a6c235f15c7449c4c8931c617c7
de -> bf7c928228dd2a6c235f15c7449c4c8931c617c7
dsb -> bf7c928228dd2a6c235f15c7449c4c8931c617c7
el -> bf7c928228dd2a6c235f15c7449c4c8931c617c7
en-CA -> bf7c928228dd2a6c235f15c7449c4c8931c617c7
en-GB -> bf7c928228dd2a6c235f15c7449c4c8931c617c7
eo -> bf7c928228dd2a6c235f15c7449c4c8931c617c7
es-AR -> bf7c928228dd2a6c235f15c7449c4c8931c617c7
es-CL -> bf7c928228dd2a6c235f15c7449c4c8931c617c7
es-ES -> bf7c928228dd2a6c235f15c7449c4c8931c617c7
es-MX -> bf7c928228dd2a6c235f15c7449c4c8931c617c7
et -> bf7c928228dd2a6c235f15c7449c4c8931c617c7
eu -> bf7c928228dd2a6c235f15c7449c4c8931c617c7
fa -> bf7c928228dd2a6c235f15c7449c4c8931c617c7
ff -> bf7c928228dd2a6c235f15c7449c4c8931c617c7
fi -> bf7c928228dd2a6c235f15c7449c4c8931c617c7
fr -> bf7c928228dd2a6c235f15c7449c4c8931c617c7
fy-NL -> bf7c928228dd2a6c235f15c7449c4c8931c617c7
ga-IE -> bf7c928228dd2a6c235f15c7449c4c8931c617c7
gd -> bf7c928228dd2a6c235f15c7449c4c8931c617c7
gl -> bf7c928228dd2a6c235f15c7449c4c8931c617c7
gn -> bf7c928228dd2a6c235f15c7449c4c8931c617c7
gu-IN -> bf7c928228dd2a6c235f15c7449c4c8931c617c7
he -> bf7c928228dd2a6c235f15c7449c4c8931c617c7
hi-IN -> bf7c928228dd2a6c235f15c7449c4c8931c617c7
hr -> bf7c928228dd2a6c235f15c7449c4c8931c617c7
hsb -> bf7c928228dd2a6c235f15c7449c4c8931c617c7
hu -> bf7c928228dd2a6c235f15c7449c4c8931c617c7
hy-AM -> bf7c928228dd2a6c235f15c7449c4c8931c617c7
ia -> bf7c928228dd2a6c235f15c7449c4c8931c617c7
id -> bf7c928228dd2a6c235f15c7449c4c8931c617c7
is -> bf7c928228dd2a6c235f15c7449c4c8931c617c7
it -> bf7c928228dd2a6c235f15c7449c4c8931c617c7
ja -> bf7c928228dd2a6c235f15c7449c4c8931c617c7
ka -> bf7c928228dd2a6c235f15c7449c4c8931c617c7
kab -> bf7c928228dd2a6c235f15c7449c4c8931c617c7
kk -> bf7c928228dd2a6c235f15c7449c4c8931c617c7
km -> bf7c928228dd2a6c235f15c7449c4c8931c617c7
kn -> bf7c928228dd2a6c235f15c7449c4c8931c617c7
ko -> bf7c928228dd2a6c235f15c7449c4c8931c617c7
lij -> bf7c928228dd2a6c235f15c7449c4c8931c617c7
lo -> bf7c928228dd2a6c235f15c7449c4c8931c617c7
lt -> bf7c928228dd2a6c235f15c7449c4c8931c617c7
ltg -> bf7c928228dd2a6c235f15c7449c4c8931c617c7
lv -> bf7c928228dd2a6c235f15c7449c4c8931c617c7
meh -> bf7c928228dd2a6c235f15c7449c4c8931c617c7
mix -> bf7c928228dd2a6c235f15c7449c4c8931c617c7
ml -> bf7c928228dd2a6c235f15c7449c4c8931c617c7
mr -> bf7c928228dd2a6c235f15c7449c4c8931c617c7
ms -> bf7c928228dd2a6c235f15c7449c4c8931c617c7
my -> bf7c928228dd2a6c235f15c7449c4c8931c617c7
nb-NO -> bf7c928228dd2a6c235f15c7449c4c8931c617c7
ne-NP -> bf7c928228dd2a6c235f15c7449c4c8931c617c7
nl -> bf7c928228dd2a6c235f15c7449c4c8931c617c7
nn-NO -> bf7c928228dd2a6c235f15c7449c4c8931c617c7
oc -> bf7c928228dd2a6c235f15c7449c4c8931c617c7
pa-IN -> bf7c928228dd2a6c235f15c7449c4c8931c617c7
pl -> bf7c928228dd2a6c235f15c7449c4c8931c617c7
pt-BR -> bf7c928228dd2a6c235f15c7449c4c8931c617c7
pt-PT -> bf7c928228dd2a6c235f15c7449c4c8931c617c7
rm -> bf7c928228dd2a6c235f15c7449c4c8931c617c7
ro -> bf7c928228dd2a6c235f15c7449c4c8931c617c7
ru -> bf7c928228dd2a6c235f15c7449c4c8931c617c7
sk -> bf7c928228dd2a6c235f15c7449c4c8931c617c7
sl -> bf7c928228dd2a6c235f15c7449c4c8931c617c7
son -> bf7c928228dd2a6c235f15c7449c4c8931c617c7
sq -> bf7c928228dd2a6c235f15c7449c4c8931c617c7
sr -> bf7c928228dd2a6c235f15c7449c4c8931c617c7
sv-SE -> bf7c928228dd2a6c235f15c7449c4c8931c617c7
ta -> bf7c928228dd2a6c235f15c7449c4c8931c617c7
te -> bf7c928228dd2a6c235f15c7449c4c8931c617c7
th -> bf7c928228dd2a6c235f15c7449c4c8931c617c7
tl -> bf7c928228dd2a6c235f15c7449c4c8931c617c7
tr -> bf7c928228dd2a6c235f15c7449c4c8931c617c7
trs -> bf7c928228dd2a6c235f15c7449c4c8931c617c7
uk -> bf7c928228dd2a6c235f15c7449c4c8931c617c7
ur -> bf7c928228dd2a6c235f15c7449c4c8931c617c7
uz -> bf7c928228dd2a6c235f15c7449c4c8931c617c7
vi -> bf7c928228dd2a6c235f15c7449c4c8931c617c7
wo -> bf7c928228dd2a6c235f15c7449c4c8931c617c7
xh -> bf7c928228dd2a6c235f15c7449c4c8931c617c7
zam -> bf7c928228dd2a6c235f15c7449c4c8931c617c7
zh-CN -> bf7c928228dd2a6c235f15c7449c4c8931c617c7
zh-TW -> bf7c928228dd2a6c235f15c7449c4c8931c617c7
2026-09-12 06:49:12 +00:00
Release Engineering Landoscript 20d2b60d6b No Bug - Bumping Firefox l10n changesets r=release a=l10n-bump DONTBUILD CLOSED TREE
ach -> bf7c928228dd2a6c235f15c7449c4c8931c617c7
af -> bf7c928228dd2a6c235f15c7449c4c8931c617c7
an -> bf7c928228dd2a6c235f15c7449c4c8931c617c7
ar -> bf7c928228dd2a6c235f15c7449c4c8931c617c7
ast -> bf7c928228dd2a6c235f15c7449c4c8931c617c7
az -> bf7c928228dd2a6c235f15c7449c4c8931c617c7
be -> bf7c928228dd2a6c235f15c7449c4c8931c617c7
bg -> bf7c928228dd2a6c235f15c7449c4c8931c617c7
bn -> bf7c928228dd2a6c235f15c7449c4c8931c617c7
bo -> bf7c928228dd2a6c235f15c7449c4c8931c617c7
bqi -> bf7c928228dd2a6c235f15c7449c4c8931c617c7
br -> bf7c928228dd2a6c235f15c7449c4c8931c617c7
brx -> bf7c928228dd2a6c235f15c7449c4c8931c617c7
bs -> bf7c928228dd2a6c235f15c7449c4c8931c617c7
ca -> bf7c928228dd2a6c235f15c7449c4c8931c617c7
ca-valencia -> bf7c928228dd2a6c235f15c7449c4c8931c617c7
cak -> bf7c928228dd2a6c235f15c7449c4c8931c617c7
ckb -> bf7c928228dd2a6c235f15c7449c4c8931c617c7
cs -> bf7c928228dd2a6c235f15c7449c4c8931c617c7
cy -> bf7c928228dd2a6c235f15c7449c4c8931c617c7
da -> bf7c928228dd2a6c235f15c7449c4c8931c617c7
de -> bf7c928228dd2a6c235f15c7449c4c8931c617c7
dsb -> bf7c928228dd2a6c235f15c7449c4c8931c617c7
el -> bf7c928228dd2a6c235f15c7449c4c8931c617c7
en-CA -> bf7c928228dd2a6c235f15c7449c4c8931c617c7
en-GB -> bf7c928228dd2a6c235f15c7449c4c8931c617c7
eo -> bf7c928228dd2a6c235f15c7449c4c8931c617c7
es-AR -> bf7c928228dd2a6c235f15c7449c4c8931c617c7
es-CL -> bf7c928228dd2a6c235f15c7449c4c8931c617c7
es-ES -> bf7c928228dd2a6c235f15c7449c4c8931c617c7
es-MX -> bf7c928228dd2a6c235f15c7449c4c8931c617c7
et -> bf7c928228dd2a6c235f15c7449c4c8931c617c7
eu -> bf7c928228dd2a6c235f15c7449c4c8931c617c7
fa -> bf7c928228dd2a6c235f15c7449c4c8931c617c7
ff -> bf7c928228dd2a6c235f15c7449c4c8931c617c7
fi -> bf7c928228dd2a6c235f15c7449c4c8931c617c7
fr -> bf7c928228dd2a6c235f15c7449c4c8931c617c7
fur -> bf7c928228dd2a6c235f15c7449c4c8931c617c7
fy-NL -> bf7c928228dd2a6c235f15c7449c4c8931c617c7
ga-IE -> bf7c928228dd2a6c235f15c7449c4c8931c617c7
gd -> bf7c928228dd2a6c235f15c7449c4c8931c617c7
gl -> bf7c928228dd2a6c235f15c7449c4c8931c617c7
gn -> bf7c928228dd2a6c235f15c7449c4c8931c617c7
gu-IN -> bf7c928228dd2a6c235f15c7449c4c8931c617c7
he -> bf7c928228dd2a6c235f15c7449c4c8931c617c7
hi-IN -> bf7c928228dd2a6c235f15c7449c4c8931c617c7
hr -> bf7c928228dd2a6c235f15c7449c4c8931c617c7
hsb -> bf7c928228dd2a6c235f15c7449c4c8931c617c7
hu -> bf7c928228dd2a6c235f15c7449c4c8931c617c7
hy-AM -> bf7c928228dd2a6c235f15c7449c4c8931c617c7
hye -> bf7c928228dd2a6c235f15c7449c4c8931c617c7
ia -> bf7c928228dd2a6c235f15c7449c4c8931c617c7
id -> bf7c928228dd2a6c235f15c7449c4c8931c617c7
is -> bf7c928228dd2a6c235f15c7449c4c8931c617c7
it -> bf7c928228dd2a6c235f15c7449c4c8931c617c7
ja -> bf7c928228dd2a6c235f15c7449c4c8931c617c7
ja-JP-mac -> bf7c928228dd2a6c235f15c7449c4c8931c617c7
ka -> bf7c928228dd2a6c235f15c7449c4c8931c617c7
kab -> bf7c928228dd2a6c235f15c7449c4c8931c617c7
kk -> bf7c928228dd2a6c235f15c7449c4c8931c617c7
km -> bf7c928228dd2a6c235f15c7449c4c8931c617c7
kn -> bf7c928228dd2a6c235f15c7449c4c8931c617c7
ko -> bf7c928228dd2a6c235f15c7449c4c8931c617c7
lij -> bf7c928228dd2a6c235f15c7449c4c8931c617c7
lo -> bf7c928228dd2a6c235f15c7449c4c8931c617c7
lt -> bf7c928228dd2a6c235f15c7449c4c8931c617c7
ltg -> bf7c928228dd2a6c235f15c7449c4c8931c617c7
lv -> bf7c928228dd2a6c235f15c7449c4c8931c617c7
meh -> bf7c928228dd2a6c235f15c7449c4c8931c617c7
mk -> bf7c928228dd2a6c235f15c7449c4c8931c617c7
ml -> bf7c928228dd2a6c235f15c7449c4c8931c617c7
mr -> bf7c928228dd2a6c235f15c7449c4c8931c617c7
ms -> bf7c928228dd2a6c235f15c7449c4c8931c617c7
my -> bf7c928228dd2a6c235f15c7449c4c8931c617c7
nb-NO -> bf7c928228dd2a6c235f15c7449c4c8931c617c7
ne-NP -> bf7c928228dd2a6c235f15c7449c4c8931c617c7
nl -> bf7c928228dd2a6c235f15c7449c4c8931c617c7
nn-NO -> bf7c928228dd2a6c235f15c7449c4c8931c617c7
oc -> bf7c928228dd2a6c235f15c7449c4c8931c617c7
pa-IN -> bf7c928228dd2a6c235f15c7449c4c8931c617c7
pl -> bf7c928228dd2a6c235f15c7449c4c8931c617c7
pt-BR -> bf7c928228dd2a6c235f15c7449c4c8931c617c7
pt-PT -> bf7c928228dd2a6c235f15c7449c4c8931c617c7
rm -> bf7c928228dd2a6c235f15c7449c4c8931c617c7
ro -> bf7c928228dd2a6c235f15c7449c4c8931c617c7
ru -> bf7c928228dd2a6c235f15c7449c4c8931c617c7
sat -> bf7c928228dd2a6c235f15c7449c4c8931c617c7
sc -> bf7c928228dd2a6c235f15c7449c4c8931c617c7
scn -> bf7c928228dd2a6c235f15c7449c4c8931c617c7
sco -> bf7c928228dd2a6c235f15c7449c4c8931c617c7
si -> bf7c928228dd2a6c235f15c7449c4c8931c617c7
sk -> bf7c928228dd2a6c235f15c7449c4c8931c617c7
skr -> bf7c928228dd2a6c235f15c7449c4c8931c617c7
sl -> bf7c928228dd2a6c235f15c7449c4c8931c617c7
son -> bf7c928228dd2a6c235f15c7449c4c8931c617c7
sq -> bf7c928228dd2a6c235f15c7449c4c8931c617c7
sr -> bf7c928228dd2a6c235f15c7449c4c8931c617c7
sv-SE -> bf7c928228dd2a6c235f15c7449c4c8931c617c7
szl -> bf7c928228dd2a6c235f15c7449c4c8931c617c7
ta -> bf7c928228dd2a6c235f15c7449c4c8931c617c7
te -> bf7c928228dd2a6c235f15c7449c4c8931c617c7
tg -> bf7c928228dd2a6c235f15c7449c4c8931c617c7
th -> bf7c928228dd2a6c235f15c7449c4c8931c617c7
tl -> bf7c928228dd2a6c235f15c7449c4c8931c617c7
tr -> bf7c928228dd2a6c235f15c7449c4c8931c617c7
trs -> bf7c928228dd2a6c235f15c7449c4c8931c617c7
uk -> bf7c928228dd2a6c235f15c7449c4c8931c617c7
ur -> bf7c928228dd2a6c235f15c7449c4c8931c617c7
uz -> bf7c928228dd2a6c235f15c7449c4c8931c617c7
vi -> bf7c928228dd2a6c235f15c7449c4c8931c617c7
wo -> bf7c928228dd2a6c235f15c7449c4c8931c617c7
xh -> bf7c928228dd2a6c235f15c7449c4c8931c617c7
zh-CN -> bf7c928228dd2a6c235f15c7449c4c8931c617c7
zh-TW -> bf7c928228dd2a6c235f15c7449c4c8931c617c7
2026-09-12 06:49:10 +00:00
agoloman 42b57cbde5 Bug 2070424 - Update metadata for css/css-borders/corner-shape/render-corner-shape.html. 2026-09-12 06:06:13 +00:00
agoloman b69f1613d3 Bug 2070424 - Update metadata for css/css-borders/corner-shape/render-corner-shape.html. 2026-09-12 05:36:09 +00:00
Alexandru Marc f128b90fdc Revert "Bug 2063111 - updates to align with API contract r=mshillabeer,jlewis" for causing bc failures @ browser_smartformfill_stored_values
This reverts commit c0ce5ae5a3.
2026-09-12 05:27:50 +00:00
agoloman 5d6421bb6b Bug 2070424 - Update metadata for css/css-borders/corner-shape/render-corner-shape.html. 2026-09-12 05:11:21 +00:00
Omar Gonzalez c0ce5ae5a3 Bug 2063111 - updates to align with API contract r=mshillabeer,jlewis
Differential Revision: https://phabricator.services.mozilla.com/D322800
2026-09-12 04:10:48 +00:00
unifolia 4b8a1b7253 Bug 2060985 - Drop the xpcshell candidate-tabs test that another already covers r=omarg
test_getCandidateTabs_keepsOnlyUngroupedWebTabs already puts a grouped tab in the window and asserts it is left out, so test_getCandidateTabs_excludesAlreadyGroupedTabs asserted the same rule a second time.

Differential Revision: https://phabricator.services.mozilla.com/D324807
2026-09-12 04:10:20 +00:00
unifolia 1ddc4fc1c9 Bug 2060985 - Close three gaps in the Organize Tabs tests' shared fixture r=omarg
The fixture keeps the chat sidebar shut. Navigating a Smart Window off about:aiwindow auto-opens it, and its composer then autofocuses and takes chrome focus back out of the panel the test has just opened. On try that cost the toolbar button tests 4 of 18 runs, and none once the sidebar stayed shut. Organize Tabs does not involve the sidebar, so there is nothing to gain from racing it.

addWebTabs waits until clustering would look at every tab it added. A tab's load event can fire while the tab is still busy or has no title yet, and getCandidateTabs skips both, so a test could open the panel onto fewer tabs than it set up.

Teardown closes the window before popping the pref env, as the file did before it was split. Popping browser.smartwindow.autoTabGrouping.enabled first flips the lazy pref getter in a live window, which destroys the toolbar widget under a panel that may still be open.

Differential Revision: https://phabricator.services.mozilla.com/D316648
2026-09-12 04:10:19 +00:00
unifolia ea433875a7 Bug 2064041 - Let a slow Organize Tabs clustering run finish and fill the panel in instead of dropping its groups r=Mardak
Differential Revision: https://phabricator.services.mozilla.com/D324449
2026-09-12 04:09:47 +00:00
Ted Campbell b524a5c2c7 Bug 2071475: Disable secondary sentry data sources in Fenix. r=android-reviewers,jonalmeida,jdelorenzo
Sentry has a complex set of options and their defaults often change so begin to
lock down our expectations and assert them. Functionally this patch also disables
health pings, ANRs and caught-exception handling. We can revisit re-enabling them
in the future when we have been tie in to Fenix settings and more test coverage.
These changes are also applied to Focus via the shared lib-crash code.

This also removes the Sentry performance monitor ContentProvider from startup since
the feature was already disabled for us.

Differential Revision: https://phabricator.services.mozilla.com/D325521
2026-09-12 04:09:26 +00:00
iulian moraru b48578dc3b Revert "Bug 2067218 - Add a mutex to avoid duplicate helpers for a profile. r=aborondo,nrishel" for causing multiple marionette tests failures.
This reverts commit 95a29fb0af.

Revert "Bug 2067218 - Stop the notification helper when the pref is disabled. r=aborondo,nrishel"

This reverts commit 476a507146.

Revert "Bug 2067218 - Add a Nimbus-controlled pref gating the notification helper. r=iholmes"

This reverts commit b71eec14bf.

Revert "Bug 2067218 - Accept a --profile argument in the notification helper. r=aborondo,nrishel"

This reverts commit 9847f37108.
2026-09-12 04:06:21 +00:00
Sandor Molnar e898c68f5a Revert "Bug 2062112 - [Monitor Agent][FE] Create monitor component in tool bar panel r=ngrato,fluent-reviewers,desktop-theme-reviewers,sfoster,bolsson" for causing assertion failures
This reverts commit c8b54b532c.
2026-09-12 04:06:01 +00:00
Sandor Molnar 320c7eb7a1 Bug 1985986 - Update wpt metadata 2026-09-12 03:44:33 +00:00
Omar Gonzalez 9b752ab1bf Bug 2067618 - add guard statements to ensure SFF calls should be available r=Mardak
Differential Revision: https://phabricator.services.mozilla.com/D325473
2026-09-12 02:27:55 +00:00
Eugeniusz Lewandowski 9ae0afd977 Bug 2056581 - Have autoscroll take DPI into account. r=botond
Differential Revision: https://phabricator.services.mozilla.com/D317166
2026-09-12 02:11:34 +00:00
James Teh 0c89c90077 Bug 2055750: Only allow specific roles on documents. r=accessibility-platform-reviewers,eeejay
Differential Revision: https://phabricator.services.mozilla.com/D325317
2026-09-12 00:14:46 +00:00
Release Engineering Landoscript 60ca4d227a No Bug - Import translations from https://github.com/mozilla-l10n/android-l10n CLOSED TREE 2026-09-12 00:09:36 +00:00
Jeff Muizelaar 5ea2c7d67c Bug 2068188 - Use a string-literal wrapper type for simple payload marker field names. r=bas,profiler-reviewers,canova
This avoids the need to create the `defined_name_##arg` constants which will
let us add support for named arguments using string literals. It's also
simpler.

Differential Revision: https://phabricator.services.mozilla.com/D322682
2026-09-11 23:55:04 +00:00
Sotaro Ikeda a87e28e039 Bug 2068339 - Recycle MacIOSurfaceTextureHostOGL for WebGL/WebGPU on macOS r=gfx-reviewers,lsalzman
Recycle MacIOSurfaceTextureHostOGL to prevent RenderMacIOSurfaceTextureHost recreation.

Differential Revision: https://phabricator.services.mozilla.com/D322819
2026-09-11 23:36:07 +00:00
Sotaro Ikeda a96211f615 Bug 2071189 - Fix AndroidHardwareBuffer::MergeFences() r=gfx-reviewers,lsalzman
AndroidHardwareBuffer::MergeFences() expects that sync_merge() consumes file descriptor. But It does not consume file descriptors.

Differential Revision: https://phabricator.services.mozilla.com/D325277
2026-09-11 23:34:55 +00:00
MoHan Zhang 7ef0af0e28 Bug 2070621 - AITab: hydrate link-item favicons from Places r=rrando
After the model returns a validated surface, fill in `favicon` on the
link items the catalog allows one on — SourceLink items (SourceLinks
component, Header.references, Highlights sources) and Card items — from
the favicons Places has already stored, resolving data-model bindings
the same way the validator does. The generation prompt instructs the
model never to set favicon itself; the browser supplies it here.

Security considerations:
- Hydration reads only the local Places DB; no network request is made.
- Model-supplied favicon values are dropped before hydration, so the
  browser is the only favicon source. Places only has favicons for
  sites the user has visited, so these images automatically count as
  seen URLs and are not subject to further access control.
- Hydration runs after catalog validation and only writes a property
  the catalog already allows on those items, so the surface stays
  valid.

Differential Revision: https://phabricator.services.mozilla.com/D324698
2026-09-11 23:20:11 +00:00
Gabriel Luong 42bc18eba7 Bug 2068877 - Part 1: Refactor the default top sites fetching from DefaultTopSitesBinding r=android-reviewers,npoon
- Refactors how we fetch and parse the default top sites JSON into a reusable utility function.
- The intention is that we will split initial_shortcuts.json to contain the default pinned sites such as Google and a new JSON for default sites that will be used as a backfill.

Differential Revision: https://phabricator.services.mozilla.com/D323484
2026-09-11 22:41:36 +00:00
Alex Hochheiden 3c9f9a3dfa Bug 2060428 - Move the remaining Rust build settings into configure r=firefox-build-system-reviewers,sergesanspaille
While we're at it, make the dependency on `CARGOFLAGS` explicit.

Differential Revision: https://phabricator.services.mozilla.com/D320786
2026-09-11 22:40:35 +00:00
Punam Dahiya f13b979d7e Bug 2066808 - Do not open Smart Window from the UITour entrypoint on ESR r=Mardak,omc-reviewers,mimi
Differential Revision: https://phabricator.services.mozilla.com/D325206
2026-09-11 22:40:05 +00:00
Julie De Lorenzo 9df5234162 Bug 2071006 - Make content crash flow observe user crash reporting preferences,r=android-reviewers,tcampbell,jonalmeida
Differential Revision: https://phabricator.services.mozilla.com/D325214
2026-09-11 22:31:51 +00:00
Adam Vandolder 74cd305680 Bug 2061013 - Part 4: Add WPT for moderate eagerness speculation rule triggering prefetch on hover. r=dom-core-reviewers,jjaschke
Differential Revision: https://phabricator.services.mozilla.com/D325195
2026-09-11 22:30:53 +00:00
Adam Vandolder 5ef9925313 Bug 2061013 - Part 3: Fire prefetches for moderate eagerness speculation rules on hover. r=jjaschke
Differential Revision: https://phabricator.services.mozilla.com/D321440
2026-09-11 22:30:53 +00:00
Adam Vandolder 961ce625e0 Bug 2061013 - Part 2: Track prefetch candidates on the document. r=jjaschke
Differential Revision: https://phabricator.services.mozilla.com/D321439
2026-09-11 22:30:52 +00:00
Adam Vandolder f03c13c3c9 Bug 2061013 - Part 1: Add support for all eagerness speculation rule groups. r=jjaschke
Differential Revision: https://phabricator.services.mozilla.com/D316663
2026-09-11 22:30:51 +00:00
Byron Campen 984af61cae Bug 2058395: Don't do repeated sLD in this test. r=ng
Differential Revision: https://phabricator.services.mozilla.com/D325503
2026-09-11 22:29:53 +00:00
Sandor Molnar 482d23a87b Revert "Bug 1594264 - Enable sql normalization r=mak" for causing mochitest leak failures
This reverts commit c90dbfd108.
2026-09-11 22:15:16 +00:00
Sandor Molnar 50cac60629 Revert "Bug 1977639 - Report slow SQL over Glean r=mak" for causing mochitest leak failures
This reverts commit 34cb382e4c.
2026-09-11 22:15:14 +00:00
Dão Gottwald c0e6a2889d Bug 2070984 - Use inputmode=search for the search bars. r=mak
Differential Revision: https://phabricator.services.mozilla.com/D325066
2026-09-11 22:13:32 +00:00
Sandor Molnar fa9fa6f0db Revert "Bug 2061046 - Add AITab Header component, wire up page actions - r=omarg,fluent-reviewers,bolsson" for causing bc failures @ browser_aitab_actions.js
This reverts commit 384314f38c.
2026-09-11 22:05:49 +00:00
Brad Werth 43f508e272 Bug 2068367: Make Cairo _get_bitmap_surface free its tmp buffer. r=jfkthame
Differential Revision: https://phabricator.services.mozilla.com/D324784
2026-09-11 22:00:27 +00:00
unifolia c62985512b Bug 2063568 - Keep Organize Tabs from suggesting a group name the user's groups already use r=Mardak
Differential Revision: https://phabricator.services.mozilla.com/D324448
2026-09-11 21:42:55 +00:00
RuslanSemchenko 59a30438d7 Bug 105707 - Add bufsize bounds check to GetLine() in xpcshell REPL r=mccr8
Differential Revision: https://phabricator.services.mozilla.com/D324212
2026-09-11 21:35:04 +00:00
Dale Harvey f9ab34bb43 Bug 2054013 - Remove the actions searchmode flicker. r=daisuke,urlbar-reviewers
Differential Revision: https://phabricator.services.mozilla.com/D324237
2026-09-11 21:31:39 +00:00
Sandor Molnar 1b4d6cc64d Revert "Bug 2070984 - Use inputmode=search for the search bars. r=mak" for causing mochitest leak failures
This reverts commit e0f4201b41.
2026-09-11 21:13:08 +00:00
Hubert B Manilla dbfc60d674 Bug 2063209 - [devtools] Telemetry for stylesheet usage in the style editor r=devtools-reviewers,jdescottes
Differential Revision: https://phabricator.services.mozilla.com/D324008
2026-09-11 21:02:33 +00:00
Ed Lee dd23f8a786 Bug 2070268 - Remove boilerplate from Smart Form Fill page extraction. r=gcardieri?
Smart Form Fill's single extraction call in `SmartFormFillParent.#getPageText` passed `removeBoilerplate: false`, so menus, headers and footers were sent to the model verbatim for both the form's own page and each selected source tab. Because `MAX_PAGE_CONTENT_LENGTH` is split across the tabs and `sufficientLength` stops the DOM walk in document order, a boilerplate-heavy tab could exhaust its share of the budget before the walk reached content the model needs.

Set `removeBoilerplate: true`, matching `GetPageContent.#runExtraction` in Tools.sys.mjs. The option degrades safely: PageExtractorChild falls back to the full DOM walk when `isProbablyReaderable` fails, which is typical for the form's own page.

Differential Revision: https://phabricator.services.mozilla.com/D325057
2026-09-11 21:00:57 +00:00
Sylvestre Ledru e9348921de no bug - Null-check getenv("PATH") in relrhack (Coverity CID 1601588) r=firefox-build-system-reviewers,ahochheiden
Not a big deal but one less coverity issue

get_path constructed a std::stringstream directly from std::getenv("PATH"),
which is undefined behaviour when PATH is unset. Return an empty search path
instead.

Differential Revision: https://phabricator.services.mozilla.com/D325332
2026-09-11 20:48:18 +00:00
Florian Quèze a1561b3d9d Bug 2071231 - Name the XHR and DOM mutation breakpoint remove buttons, r=devtools-reviewers,nchevobbe.
CloseButton takes its accessible name from an optional tooltip prop, and these
two panes were the only callers that never passed one. Making the prop required
stops the next caller repeating it.

The a11y_checks annotation this retires was filed as Bug 1849028.

Differential Revision: https://phabricator.services.mozilla.com/D325411
2026-09-11 20:47:22 +00:00
Florian Quèze f93d234739 Bug 2071227 - Give the DevTools CodeMirror 6 editors an accessible name, r=devtools-reviewers,bomsy.
The contentAttributes facet is public, so this needs no bundle regeneration. The
name is overridable because not every consumer shows source code. The annotations
removed here were added by Bug 1849028.

Differential Revision: https://phabricator.services.mozilla.com/D325408
2026-09-11 20:47:19 +00:00
Florian Quèze ff977d7c66 Bug 2071238 - [devtools] Retire the blackboxed round's event breakpoints before unblackboxing, r=devtools-reviewers,nchevobbe.
The XHR load and the 50ms timer the blackboxed round starts can land after its
`wait(100)`, and unblackboxing first lets the timer pause the thread. The next
round's navigation then runs "beforeunload" inside that pause, where
EnterDebuggeeNoExecute refuses the debuggee, so the breakpoint the test waits
for never hits and the test times out with the toolbox window leaked.

Bug 2070797 removed this test's macOS skips on the strength of a mechanism that
is not macOS-specific; that still wants a macOS debug rebuild push for a real
denominator.

Differential Revision: https://phabricator.services.mozilla.com/D325407
2026-09-11 20:47:17 +00:00
Florian Quèze 8f10694afc Bug 1868969 - [devtools] Return no scopes when the frame front is gone, r=devtools-reviewers,bomsy.
getFrameScopes dereferenced whatever getActorByID returned. ThreadFront unmanages
every frame front from before("resumed"), while the redux state learns of the
resume only once the thread state resource is notified, so paused() can reach
fetchScopes with a frame that validates against the state and has no front left.

An absent scope is the shape the rest of the pipeline already expects:
getMappedScopes documents a null, mockCommandClient resolves with one, and
buildOriginalScopes was the only place that assumed otherwise.

Differential Revision: https://phabricator.services.mozilla.com/D325044
2026-09-11 20:47:15 +00:00
calu 033035effc Bug 2068164 - Stand up the Tab Groups strip Redux boilerplate and telemetry middleware r=android-reviewers,007
Differential Revision: https://phabricator.services.mozilla.com/D325462
2026-09-11 20:44:00 +00:00
Alex Hochheiden 8e17871d1f Bug 2071187 - Enable parallel git checkout in bootstrap and ./mach vcs-setup r=firefox-build-system-reviewers,sergesanspaille
git writes the working tree with one thread unless `checkout.workers` is set.
With one worker per core my testing shows checkouts 50% to 65% faster, both
locally and in CI. That covers the initial checkout after the clone and any
later checkout that moves HEAD across at least 100 files.

My local testing showed a switch between main and beta going from 23s to 14s.
It's possible for this setting to be a regression on niche hardware (slow hdds
or very few cores), so we only set it by default when it hasn't already been
set. A user can set `checkout.workers = 1` in the repo config or the global
config and they will opt out for good.

Differential Revision: https://phabricator.services.mozilla.com/D325266
2026-09-11 20:39:57 +00:00
David Parks b15f195b6f Bug 2057112: Part 4 - Add DLL-reporting failures to the third-party-modules ping r=win-reviewers,TravisLong,gstoll
Now that the parent identifies a child process's modules from the section
handle the child sends, and silently skips any handle it cannot identify,
we will need telemetry for how often that skipping happens. This patch
adds counters for that.

unverifiableLoads: the number of module loads in child processes where the DLL
blocklist hook reached the load but failed to duplicate the section handle.

rejectedSections: the number of module section handles a child process sent
to the parent that it refused as invalid module section handles.

The counters are per-process and are only ever incremented for child
processes, so the browser process reports zero for both. The counters are
reported by the process using the module, so their accuracy depends on
trusting the process itself. This is how the UntrustedModulesProcessor
has always worked, and is by design (for performance reasons).

Differential Revision: https://phabricator.services.mozilla.com/D324705
2026-09-11 20:26:17 +00:00
David Parks 800b21b1db Bug 2057112: Part 3 - Test that UntrustedModulesProcessor rejects invalid modules r=win-reviewers,gstoll
Check that ValidateAndResolveModuleSection rejects descriptors that are
non-IMAGE sections or are for below-medium-integrity modules.

Differential Revision: https://phabricator.services.mozilla.com/D324704
2026-09-11 20:26:16 +00:00
David Parks 476da53d95 Bug 2057112: Part 2 - Pass child process's module list by section handle r=win-reviewers,gstoll
Child processes now report loaded DLLs to the parent by section HANDLE instead
of by filename.  The DLL blocklist's NtMapViewOfSection hook already receives
the section a module is being mapped from, so it duplicates that section,
read-only, onto the ModuleLoadInfo for the load.  The parent identifies the
module from the HANDLE.

Because the section outlives the view, this also fixes reporting for two kinds
of load: a module the blocklist rejected, which is unmapped immediately, and a
module unloaded before the parent processed the batch.  Previously, either
could be deleted before the parent had a chance to consider them.

A handle cannot be forged into a reference to a different file and a child can
only send one it holds.  ValidateAndResolveModuleSection sanity checks:

1. The section must map, and the view must be MEM_IMAGE. A data section can
   be made over any openable file but an image section means the kernel
   accepted the file as a PE and the child's image-load policy applied to it.
2. The file must not be on a remote device.
3. The file must not carry a mandatory integrity label below medium.

These checks replicate the checks of the MITIGATION_IMAGE_LOAD_NO_REMOTE and
MITIGATION_IMAGE_LOAD_NO_LOW_LABEL child sandbox behaviors.  A child
can create a non-IMAGE section over any file it can open, so what it hands us
is not bounded by the image-load policy.  The check avoid considering such
files at all.  This currently applies to all child processes: content, gpu,
RDD, socket, utility (all kinds), and GMP.  All have these sandbox mitigations.

Also fixes a couple of ways that a version resource could misuse VerQueryValueW's
output in the parent: a zero length underflowing to SIZE_MAX in
QueryStringValue and a too-short buffer dereference in GetFromImage.

Differential Revision: https://phabricator.services.mozilla.com/D324703
2026-09-11 20:26:16 +00:00
David Parks 75b4e31ffc Bug 2057112: Part 1 - Rename ModulePaths to ModuleIdentifiers r=win-reviewers,necko-reviewers,media-playback-reviewers,padenot,gstoll
Rename-only, since ModuleIdentifiers will be used in later parts, instead of
just paths.  No substantive changes.

Differential Revision: https://phabricator.services.mozilla.com/D324702
2026-09-11 20:26:15 +00:00
Dão Gottwald e0f4201b41 Bug 2070984 - Use inputmode=search for the search bars. r=mak
Differential Revision: https://phabricator.services.mozilla.com/D325066
2026-09-11 20:19:15 +00:00
Nicholas Poon ec59230679 Bug 2071423 - Make SwitchTabsBaselineProfile CUJ correctly clean up open tabs r=android-reviewers,aaronmt,adhingra
Differential Revision: https://phabricator.services.mozilla.com/D325506
2026-09-11 20:14:34 +00:00
Sandor Molnar 52d9d7c385 Revert "Bug 2068188 - Use a string-literal wrapper type for simple payload marker field names. r=bas,profiler-reviewers,canova" for causing build bustages @ ProfilerMarkers.h
This reverts commit d38eccd9a9.
2026-09-11 20:12:18 +00:00
Sandor Molnar 935b29d847 Bug 1985986 - Update wpt metadata 2026-09-11 20:08:05 +00:00
Sandor Molnar be92328f2e Revert "Bug 2070444 - Run addon tasks on git-backed pushes, r=taskgraph-reviewers,jcristau" for causing build-signing timeouts
This reverts commit 1d22dc4916.

Revert "Bug 2070444 - Run artifact-build tasks on git-backed pushes, r=taskgraph-reviewers,jcristau" for causing build signing failures

This reverts commit 9bfd8889e8.
2026-09-11 19:58:52 +00:00
Maile Lucks 384314f38c Bug 2061046 - Add AITab Header component, wire up page actions - r=omarg,fluent-reviewers,bolsson
Differential Revision: https://phabricator.services.mozilla.com/D322792
2026-09-11 19:45:19 +00:00
Matthew Tighe 733b79bcbb Bug 2071128 - observe playback controller for current playback state r=android-reviewers,moyin
Differential Revision: https://phabricator.services.mozilla.com/D325213
2026-09-11 19:44:09 +00:00
Harshit 95a29fb0af Bug 2067218 - Add a mutex to avoid duplicate helpers for a profile. r=aborondo,nrishel
temp: guard test

Differential Revision: https://phabricator.services.mozilla.com/D322655
2026-09-11 19:39:40 +00:00
Harshit 476a507146 Bug 2067218 - Stop the notification helper when the pref is disabled. r=aborondo,nrishel
Differential Revision: https://phabricator.services.mozilla.com/D322521
2026-09-11 19:39:39 +00:00
Harshit b71eec14bf Bug 2067218 - Add a Nimbus-controlled pref gating the notification helper. r=iholmes
Differential Revision: https://phabricator.services.mozilla.com/D322520
2026-09-11 19:39:38 +00:00
Harshit 9847f37108 Bug 2067218 - Accept a --profile argument in the notification helper. r=aborondo,nrishel
Differential Revision: https://phabricator.services.mozilla.com/D322372
2026-09-11 19:39:37 +00:00
Chris H-C 34cb382e4c Bug 1977639 - Report slow SQL over Glean r=mak
sqlite3_normalized_sql is only available for prepared statements, so
this specifically does not report on simple sql executions.

This does not remove the existing Legacy Telemetry reporting (yet).

Differential Revision: https://phabricator.services.mozilla.com/D321975
2026-09-11 19:38:58 +00:00
Chris H-C c90dbfd108 Bug 1594264 - Enable sql normalization r=mak
Differential Revision: https://phabricator.services.mozilla.com/D321974
2026-09-11 19:38:57 +00:00
Jonathan Moss d4d2059b98 Bug 2070972 - Repeat the loopback video test frame with imagefreeze r=aryx
Use the current v4l2loopback control IDs. Repeat one green frame with GStreamer imagefreeze so the producer continues to supply frames while tests open and close the video device. The existing cleanup stops the producer.

Differential Revision: https://phabricator.services.mozilla.com/D325488
2026-09-11 19:38:24 +00:00
Jeff Muizelaar d38eccd9a9 Bug 2068188 - Use a string-literal wrapper type for simple payload marker field names. r=bas,profiler-reviewers,canova
This avoids the need to create the `defined_name_##arg` constants which will
let us add support for named arguments using string literals. It's also
simpler.

Differential Revision: https://phabricator.services.mozilla.com/D322682
2026-09-11 19:37:55 +00:00
Sylvestre Ledru 9d6b66e4ad Bug 2071214 - Null-check the menupopup frame in XULButtonAccessible::AreItemsOperable (Coverity CID 1286730) r=accessibility-platform-reviewers,morgan
do_QueryFrame returns nullptr when the frame is not an nsMenuPopupFrame, but
the result was dereferenced unconditionally. The first child of a menu button
is not guaranteed to be a menupopup, so a11y state queries on such a button
could dereference null.

Differential Revision: https://phabricator.services.mozilla.com/D325329
2026-09-11 19:37:25 +00:00
Sandor Molnar 4705d3f66c Revert "Bug 2067259 - Update mochitest expectations for revised font-family quoting behavior. r=firefox-style-system-reviewers,emilio" for causing multiple mochitest/wpt failures
This reverts commit df98b6d9d5.

Revert "Bug 2067259 - Update WPT metadata to reflect revised behavior. r=firefox-style-system-reviewers,emilio"

This reverts commit 2d8ea0cf9b.

Revert "Bug 2067259 - When FamilyName is used for font names in src:local(), force its syntax to be Quoted. r=firefox-style-system-reviewers,emilio"

This reverts commit 9b5381db88.

Revert "Bug 2067259 - Rework the criteria used to determine whether font-family names are quoted. r=firefox-style-system-reviewers,emilio"

This reverts commit 11750f08e2.
2026-09-11 19:34:52 +00:00
Sandor Molnar 14074048e1 Revert "Bug 2065486 - Update illustration for sync disconnected state in sidebar r=fxview-reviewers,desktop-theme-reviewers,nsharpley,emilio" for causing bc failures @ browser_syncedtabs_firefoxview.js
This reverts commit d89caae212.
2026-09-11 19:29:20 +00:00
Sandor Molnar a549011bd2 Revert "Bug 2069046 - Remove Nimbus flag for media session notification improvements. r=android-reviewers,alastun" for causing lint failures
This reverts commit e22ca5f09e.
2026-09-11 19:21:56 +00:00
Stephanie Cunnane 123b54d0de Bug 2068325 - Move selection shortcuts panel state off the AI action button. r=Mardak
Differential Revision: https://phabricator.services.mozilla.com/D323725
2026-09-11 19:11:29 +00:00
Sandor Molnar fa4f71e914 Revert "Bug 2068188 - Use a string-literal wrapper type for simple payload marker field names. r=bas,profiler-reviewers,canova" for causing build bustages @ ProfilerMarkers.h
This reverts commit 721c564be4.
2026-09-11 19:02:37 +00:00
nickgrato c8b54b532c Bug 2062112 - [Monitor Agent][FE] Create monitor component in tool bar panel r=ngrato,fluent-reviewers,desktop-theme-reviewers,sfoster,bolsson
Differential Revision: https://phabricator.services.mozilla.com/D321407
2026-09-11 18:54:50 +00:00
Irene Ni 00b604d747 Bug 2071406 - Restore transparency to New Tab card backgrounds. r=maxx,jules
Differential Revision: https://phabricator.services.mozilla.com/D325471
2026-09-11 18:54:20 +00:00
Roger Yang e22ca5f09e Bug 2069046 - Remove Nimbus flag for media session notification improvements. r=android-reviewers,alastun
Differential Revision: https://phabricator.services.mozilla.com/D323442
2026-09-11 18:53:50 +00:00
Valentin Pollet 17557ef363 Bug 2071288 - Fixed LlamaGenerateTask state update to happen before it notifies stream consumer r=nordzilla,ai-platform-reviewers
Differential Revision: https://phabricator.services.mozilla.com/D325375
2026-09-11 18:53:02 +00:00
Mike Conley 4f213efdc0 Bug 2070978 - Remove newtab trainhop compatibility shim from browser_asrouter_newtab_messages. r=omc-reviewers,mimi
This shim is not required once Firefox 155 hits the release channel, which it has,
so we can remove it now.

Differential Revision: https://phabricator.services.mozilla.com/D325054
2026-09-11 18:52:32 +00:00
Dão Gottwald 8c7de1ce9e Bug 2070133 - Make the search lifecycle diagram more legible and consistently numbered. r=mak
Differential Revision: https://phabricator.services.mozilla.com/D325226
2026-09-11 18:51:56 +00:00
David Parks 968f41f3f9 Bug 2070622 - Report which network geolocation service each request used r=geoprovider-reviewers,jjaschke
Record telemetry for the host of geo.provider.network.url as GLS, BeaconDB or
something else, and record that category in the geolocation.network_provider
labeled counter for every request the NetworkGeolocationProvider sends.

Differential Revision: https://phabricator.services.mozilla.com/D325201
2026-09-11 18:51:25 +00:00
Mark Striemer 9331009055 Bug 2063178 - Differentiate default and disabled checkbox/radio more r=akulyk,emilio
There wasn't much difference between default and disabled checkbox and
radio elements. Use some new colors.

Differential Revision: https://phabricator.services.mozilla.com/D324738
2026-09-11 18:50:39 +00:00
kpatenio fcdcb216e7 Bug 2055069 - sync youtube and pip playback rate settings. r=mconley
Differential Revision: https://phabricator.services.mozilla.com/D324740
2026-09-11 18:50:07 +00:00
Release Engineering Landoscript bb5d491645 No Bug - Bumping Mobile l10n changesets r=release a=l10n-bump DONTBUILD CLOSED TREE
ach -> 0720c0c62aa36259b077a7627000e9e50fc3935f
an -> 0720c0c62aa36259b077a7627000e9e50fc3935f
ar -> 0720c0c62aa36259b077a7627000e9e50fc3935f
ast -> 0720c0c62aa36259b077a7627000e9e50fc3935f
az -> 0720c0c62aa36259b077a7627000e9e50fc3935f
be -> 0720c0c62aa36259b077a7627000e9e50fc3935f
bg -> 0720c0c62aa36259b077a7627000e9e50fc3935f
bn -> 0720c0c62aa36259b077a7627000e9e50fc3935f
br -> 0720c0c62aa36259b077a7627000e9e50fc3935f
bs -> 0720c0c62aa36259b077a7627000e9e50fc3935f
ca -> 0720c0c62aa36259b077a7627000e9e50fc3935f
cak -> 0720c0c62aa36259b077a7627000e9e50fc3935f
cs -> 0720c0c62aa36259b077a7627000e9e50fc3935f
cy -> 0720c0c62aa36259b077a7627000e9e50fc3935f
da -> 0720c0c62aa36259b077a7627000e9e50fc3935f
de -> 0720c0c62aa36259b077a7627000e9e50fc3935f
dsb -> 0720c0c62aa36259b077a7627000e9e50fc3935f
el -> 0720c0c62aa36259b077a7627000e9e50fc3935f
en-CA -> 0720c0c62aa36259b077a7627000e9e50fc3935f
en-GB -> 0720c0c62aa36259b077a7627000e9e50fc3935f
eo -> 0720c0c62aa36259b077a7627000e9e50fc3935f
es-AR -> 0720c0c62aa36259b077a7627000e9e50fc3935f
es-CL -> 0720c0c62aa36259b077a7627000e9e50fc3935f
es-ES -> 0720c0c62aa36259b077a7627000e9e50fc3935f
es-MX -> 0720c0c62aa36259b077a7627000e9e50fc3935f
et -> 0720c0c62aa36259b077a7627000e9e50fc3935f
eu -> 0720c0c62aa36259b077a7627000e9e50fc3935f
fa -> 0720c0c62aa36259b077a7627000e9e50fc3935f
ff -> 0720c0c62aa36259b077a7627000e9e50fc3935f
fi -> 0720c0c62aa36259b077a7627000e9e50fc3935f
fr -> 0720c0c62aa36259b077a7627000e9e50fc3935f
fy-NL -> 0720c0c62aa36259b077a7627000e9e50fc3935f
ga-IE -> 0720c0c62aa36259b077a7627000e9e50fc3935f
gd -> 0720c0c62aa36259b077a7627000e9e50fc3935f
gl -> 0720c0c62aa36259b077a7627000e9e50fc3935f
gn -> 0720c0c62aa36259b077a7627000e9e50fc3935f
gu-IN -> 0720c0c62aa36259b077a7627000e9e50fc3935f
he -> 0720c0c62aa36259b077a7627000e9e50fc3935f
hi-IN -> 0720c0c62aa36259b077a7627000e9e50fc3935f
hr -> 0720c0c62aa36259b077a7627000e9e50fc3935f
hsb -> 0720c0c62aa36259b077a7627000e9e50fc3935f
hu -> 0720c0c62aa36259b077a7627000e9e50fc3935f
hy-AM -> 0720c0c62aa36259b077a7627000e9e50fc3935f
ia -> 0720c0c62aa36259b077a7627000e9e50fc3935f
id -> 0720c0c62aa36259b077a7627000e9e50fc3935f
is -> 0720c0c62aa36259b077a7627000e9e50fc3935f
it -> 0720c0c62aa36259b077a7627000e9e50fc3935f
ja -> 0720c0c62aa36259b077a7627000e9e50fc3935f
ka -> 0720c0c62aa36259b077a7627000e9e50fc3935f
kab -> 0720c0c62aa36259b077a7627000e9e50fc3935f
kk -> 0720c0c62aa36259b077a7627000e9e50fc3935f
km -> 0720c0c62aa36259b077a7627000e9e50fc3935f
kn -> 0720c0c62aa36259b077a7627000e9e50fc3935f
ko -> 0720c0c62aa36259b077a7627000e9e50fc3935f
lij -> 0720c0c62aa36259b077a7627000e9e50fc3935f
lo -> 0720c0c62aa36259b077a7627000e9e50fc3935f
lt -> 0720c0c62aa36259b077a7627000e9e50fc3935f
ltg -> 0720c0c62aa36259b077a7627000e9e50fc3935f
lv -> 0720c0c62aa36259b077a7627000e9e50fc3935f
meh -> 0720c0c62aa36259b077a7627000e9e50fc3935f
mix -> 0720c0c62aa36259b077a7627000e9e50fc3935f
ml -> 0720c0c62aa36259b077a7627000e9e50fc3935f
mr -> 0720c0c62aa36259b077a7627000e9e50fc3935f
ms -> 0720c0c62aa36259b077a7627000e9e50fc3935f
my -> 0720c0c62aa36259b077a7627000e9e50fc3935f
nb-NO -> 0720c0c62aa36259b077a7627000e9e50fc3935f
ne-NP -> 0720c0c62aa36259b077a7627000e9e50fc3935f
nl -> 0720c0c62aa36259b077a7627000e9e50fc3935f
nn-NO -> 0720c0c62aa36259b077a7627000e9e50fc3935f
oc -> 0720c0c62aa36259b077a7627000e9e50fc3935f
pa-IN -> 0720c0c62aa36259b077a7627000e9e50fc3935f
pl -> 0720c0c62aa36259b077a7627000e9e50fc3935f
pt-BR -> 0720c0c62aa36259b077a7627000e9e50fc3935f
pt-PT -> 0720c0c62aa36259b077a7627000e9e50fc3935f
rm -> 0720c0c62aa36259b077a7627000e9e50fc3935f
ro -> 0720c0c62aa36259b077a7627000e9e50fc3935f
ru -> 0720c0c62aa36259b077a7627000e9e50fc3935f
sk -> 0720c0c62aa36259b077a7627000e9e50fc3935f
sl -> 0720c0c62aa36259b077a7627000e9e50fc3935f
son -> 0720c0c62aa36259b077a7627000e9e50fc3935f
sq -> 0720c0c62aa36259b077a7627000e9e50fc3935f
sr -> 0720c0c62aa36259b077a7627000e9e50fc3935f
sv-SE -> 0720c0c62aa36259b077a7627000e9e50fc3935f
ta -> 0720c0c62aa36259b077a7627000e9e50fc3935f
te -> 0720c0c62aa36259b077a7627000e9e50fc3935f
th -> 0720c0c62aa36259b077a7627000e9e50fc3935f
tl -> 0720c0c62aa36259b077a7627000e9e50fc3935f
tr -> 0720c0c62aa36259b077a7627000e9e50fc3935f
trs -> 0720c0c62aa36259b077a7627000e9e50fc3935f
uk -> 0720c0c62aa36259b077a7627000e9e50fc3935f
ur -> 0720c0c62aa36259b077a7627000e9e50fc3935f
uz -> 0720c0c62aa36259b077a7627000e9e50fc3935f
vi -> 0720c0c62aa36259b077a7627000e9e50fc3935f
wo -> 0720c0c62aa36259b077a7627000e9e50fc3935f
xh -> 0720c0c62aa36259b077a7627000e9e50fc3935f
zam -> 0720c0c62aa36259b077a7627000e9e50fc3935f
zh-CN -> 0720c0c62aa36259b077a7627000e9e50fc3935f
zh-TW -> 0720c0c62aa36259b077a7627000e9e50fc3935f
2026-09-11 18:47:34 +00:00
Release Engineering Landoscript cf88d60515 No Bug - Bumping Firefox l10n changesets r=release a=l10n-bump DONTBUILD CLOSED TREE
ach -> 0720c0c62aa36259b077a7627000e9e50fc3935f
af -> 0720c0c62aa36259b077a7627000e9e50fc3935f
an -> 0720c0c62aa36259b077a7627000e9e50fc3935f
ar -> 0720c0c62aa36259b077a7627000e9e50fc3935f
ast -> 0720c0c62aa36259b077a7627000e9e50fc3935f
az -> 0720c0c62aa36259b077a7627000e9e50fc3935f
be -> 0720c0c62aa36259b077a7627000e9e50fc3935f
bg -> 0720c0c62aa36259b077a7627000e9e50fc3935f
bn -> 0720c0c62aa36259b077a7627000e9e50fc3935f
bo -> 0720c0c62aa36259b077a7627000e9e50fc3935f
bqi -> 0720c0c62aa36259b077a7627000e9e50fc3935f
br -> 0720c0c62aa36259b077a7627000e9e50fc3935f
brx -> 0720c0c62aa36259b077a7627000e9e50fc3935f
bs -> 0720c0c62aa36259b077a7627000e9e50fc3935f
ca -> 0720c0c62aa36259b077a7627000e9e50fc3935f
ca-valencia -> 0720c0c62aa36259b077a7627000e9e50fc3935f
cak -> 0720c0c62aa36259b077a7627000e9e50fc3935f
ckb -> 0720c0c62aa36259b077a7627000e9e50fc3935f
cs -> 0720c0c62aa36259b077a7627000e9e50fc3935f
cy -> 0720c0c62aa36259b077a7627000e9e50fc3935f
da -> 0720c0c62aa36259b077a7627000e9e50fc3935f
de -> 0720c0c62aa36259b077a7627000e9e50fc3935f
dsb -> 0720c0c62aa36259b077a7627000e9e50fc3935f
el -> 0720c0c62aa36259b077a7627000e9e50fc3935f
en-CA -> 0720c0c62aa36259b077a7627000e9e50fc3935f
en-GB -> 0720c0c62aa36259b077a7627000e9e50fc3935f
eo -> 0720c0c62aa36259b077a7627000e9e50fc3935f
es-AR -> 0720c0c62aa36259b077a7627000e9e50fc3935f
es-CL -> 0720c0c62aa36259b077a7627000e9e50fc3935f
es-ES -> 0720c0c62aa36259b077a7627000e9e50fc3935f
es-MX -> 0720c0c62aa36259b077a7627000e9e50fc3935f
et -> 0720c0c62aa36259b077a7627000e9e50fc3935f
eu -> 0720c0c62aa36259b077a7627000e9e50fc3935f
fa -> 0720c0c62aa36259b077a7627000e9e50fc3935f
ff -> 0720c0c62aa36259b077a7627000e9e50fc3935f
fi -> 0720c0c62aa36259b077a7627000e9e50fc3935f
fr -> 0720c0c62aa36259b077a7627000e9e50fc3935f
fur -> 0720c0c62aa36259b077a7627000e9e50fc3935f
fy-NL -> 0720c0c62aa36259b077a7627000e9e50fc3935f
ga-IE -> 0720c0c62aa36259b077a7627000e9e50fc3935f
gd -> 0720c0c62aa36259b077a7627000e9e50fc3935f
gl -> 0720c0c62aa36259b077a7627000e9e50fc3935f
gn -> 0720c0c62aa36259b077a7627000e9e50fc3935f
gu-IN -> 0720c0c62aa36259b077a7627000e9e50fc3935f
he -> 0720c0c62aa36259b077a7627000e9e50fc3935f
hi-IN -> 0720c0c62aa36259b077a7627000e9e50fc3935f
hr -> 0720c0c62aa36259b077a7627000e9e50fc3935f
hsb -> 0720c0c62aa36259b077a7627000e9e50fc3935f
hu -> 0720c0c62aa36259b077a7627000e9e50fc3935f
hy-AM -> 0720c0c62aa36259b077a7627000e9e50fc3935f
hye -> 0720c0c62aa36259b077a7627000e9e50fc3935f
ia -> 0720c0c62aa36259b077a7627000e9e50fc3935f
id -> 0720c0c62aa36259b077a7627000e9e50fc3935f
is -> 0720c0c62aa36259b077a7627000e9e50fc3935f
it -> 0720c0c62aa36259b077a7627000e9e50fc3935f
ja -> 0720c0c62aa36259b077a7627000e9e50fc3935f
ja-JP-mac -> 0720c0c62aa36259b077a7627000e9e50fc3935f
ka -> 0720c0c62aa36259b077a7627000e9e50fc3935f
kab -> 0720c0c62aa36259b077a7627000e9e50fc3935f
kk -> 0720c0c62aa36259b077a7627000e9e50fc3935f
km -> 0720c0c62aa36259b077a7627000e9e50fc3935f
kn -> 0720c0c62aa36259b077a7627000e9e50fc3935f
ko -> 0720c0c62aa36259b077a7627000e9e50fc3935f
lij -> 0720c0c62aa36259b077a7627000e9e50fc3935f
lo -> 0720c0c62aa36259b077a7627000e9e50fc3935f
lt -> 0720c0c62aa36259b077a7627000e9e50fc3935f
ltg -> 0720c0c62aa36259b077a7627000e9e50fc3935f
lv -> 0720c0c62aa36259b077a7627000e9e50fc3935f
meh -> 0720c0c62aa36259b077a7627000e9e50fc3935f
mk -> 0720c0c62aa36259b077a7627000e9e50fc3935f
ml -> 0720c0c62aa36259b077a7627000e9e50fc3935f
mr -> 0720c0c62aa36259b077a7627000e9e50fc3935f
ms -> 0720c0c62aa36259b077a7627000e9e50fc3935f
my -> 0720c0c62aa36259b077a7627000e9e50fc3935f
nb-NO -> 0720c0c62aa36259b077a7627000e9e50fc3935f
ne-NP -> 0720c0c62aa36259b077a7627000e9e50fc3935f
nl -> 0720c0c62aa36259b077a7627000e9e50fc3935f
nn-NO -> 0720c0c62aa36259b077a7627000e9e50fc3935f
oc -> 0720c0c62aa36259b077a7627000e9e50fc3935f
pa-IN -> 0720c0c62aa36259b077a7627000e9e50fc3935f
pl -> 0720c0c62aa36259b077a7627000e9e50fc3935f
pt-BR -> 0720c0c62aa36259b077a7627000e9e50fc3935f
pt-PT -> 0720c0c62aa36259b077a7627000e9e50fc3935f
rm -> 0720c0c62aa36259b077a7627000e9e50fc3935f
ro -> 0720c0c62aa36259b077a7627000e9e50fc3935f
ru -> 0720c0c62aa36259b077a7627000e9e50fc3935f
sat -> 0720c0c62aa36259b077a7627000e9e50fc3935f
sc -> 0720c0c62aa36259b077a7627000e9e50fc3935f
scn -> 0720c0c62aa36259b077a7627000e9e50fc3935f
sco -> 0720c0c62aa36259b077a7627000e9e50fc3935f
si -> 0720c0c62aa36259b077a7627000e9e50fc3935f
sk -> 0720c0c62aa36259b077a7627000e9e50fc3935f
skr -> 0720c0c62aa36259b077a7627000e9e50fc3935f
sl -> 0720c0c62aa36259b077a7627000e9e50fc3935f
son -> 0720c0c62aa36259b077a7627000e9e50fc3935f
sq -> 0720c0c62aa36259b077a7627000e9e50fc3935f
sr -> 0720c0c62aa36259b077a7627000e9e50fc3935f
sv-SE -> 0720c0c62aa36259b077a7627000e9e50fc3935f
szl -> 0720c0c62aa36259b077a7627000e9e50fc3935f
ta -> 0720c0c62aa36259b077a7627000e9e50fc3935f
te -> 0720c0c62aa36259b077a7627000e9e50fc3935f
tg -> 0720c0c62aa36259b077a7627000e9e50fc3935f
th -> 0720c0c62aa36259b077a7627000e9e50fc3935f
tl -> 0720c0c62aa36259b077a7627000e9e50fc3935f
tr -> 0720c0c62aa36259b077a7627000e9e50fc3935f
trs -> 0720c0c62aa36259b077a7627000e9e50fc3935f
uk -> 0720c0c62aa36259b077a7627000e9e50fc3935f
ur -> 0720c0c62aa36259b077a7627000e9e50fc3935f
uz -> 0720c0c62aa36259b077a7627000e9e50fc3935f
vi -> 0720c0c62aa36259b077a7627000e9e50fc3935f
wo -> 0720c0c62aa36259b077a7627000e9e50fc3935f
xh -> 0720c0c62aa36259b077a7627000e9e50fc3935f
zh-CN -> 0720c0c62aa36259b077a7627000e9e50fc3935f
zh-TW -> 0720c0c62aa36259b077a7627000e9e50fc3935f
2026-09-11 18:47:31 +00:00
Sandor Molnar 2c6988bdea Revert "Bug 2065751 - Advertise the Escape shortcut in the find bar's close button tooltip while the bar has focus. r=mstriemer,fluent-reviewers,bolsson" for causing bc failures @ browser_findbar.js
This reverts commit 186a3b9047.
2026-09-11 18:44:17 +00:00
Giulia Cardieri 14d4b1b674 Bug 2067228: Add form fill outcomes test for SFF telemetry r=omarg
Differential Revision: https://phabricator.services.mozilla.com/D323739
2026-09-11 18:22:58 +00:00
Giulia Cardieri e84fa84384 Bug 2070263: Add autofill store as an option for SFF r=omarg
Differential Revision: https://phabricator.services.mozilla.com/D324729
2026-09-11 18:22:27 +00:00
Andrew Halberstadt ddb90ec24b Bug 2071338 - Set 'metadata.source' to Github for tasks that clone-with Git , r=taskgraph-reviewers,jcristau
Differential Revision: https://phabricator.services.mozilla.com/D325434
2026-09-11 18:21:57 +00:00
Lando 1cdd67d329 Bug 2063316: apply code formatting via Lando
# ignore-this-changeset
2026-09-11 18:21:38 +00:00
Dave Townsend 490a0964f7 Bug 2063316: Add additional properties to downgrade ping. r=nika,niklas,janerik
Differential Revision: https://phabricator.services.mozilla.com/D320429
2026-09-11 18:21:21 +00:00
Dave Townsend 732bf65881 Bug 2063316: Record the time of the most recent update in the installation directory. r=application-update-reviewers,iholmes
Differential Revision: https://phabricator.services.mozilla.com/D322904
2026-09-11 18:21:20 +00:00
Dave Townsend 29f1aafc3c Bug 2063316: Add tests for CheckCompatibility and download ping generation. r=nika
Differential Revision: https://phabricator.services.mozilla.com/D320428
2026-09-11 18:21:20 +00:00
Florian Quèze e5e3a5b9cd Bug 1985564 - Stop expecting the wrapped line to be exactly six line heights tall, r=devtools-reviewers,ochameau.
The long line wraps over five rows on mac and Windows and six on Linux, so
browser_dbg-preview-wrapped-lines.js perma-failed on both and was turned off as
flaky. What it tests is the previews on a wrapped line, so it only needs to
know that the line wrapped; pinning the font does not make the count portable,
which D262814 measured with Ahem. The test drags the split box splitter, which
is not keyboard operable until Bug 1860733, so the fail-if that was sitting
commented out is now live and Bug 1860733 removes it.

Differential Revision: https://phabricator.services.mozilla.com/D325027
2026-09-11 18:20:42 +00:00
Florian Quèze cf40a63415 Bug 2070955 - Let the variable preview popup's object tree manage focus, r=devtools-reviewers,ochameau.
ObjectInspector turns focusable: false into onFocus: null, and Popup.js is its
only caller, so no item in the popup's tree ever becomes focused and
Tree._onKeyDown returns on its first line: a role="tree" that a click focuses and
every key ignores. Bug 2070909 names an active descendant only on a tree that
manages focus, so the popup's rows satisfy the keyboard focusability check only
once both have landed; Bug 2070909 removes the four annotations.

Differential Revision: https://phabricator.services.mozilla.com/D325022
2026-09-11 18:20:40 +00:00
Florian Quèze cc84399405 Bug 1814093 - [devtools] Re-enable browser_dbg-watchpoints.js, r=devtools-reviewers,ochameau.
Disabled for a `selectSource` timeout in Bug 1814093, and forward-ported as the
Bug 2028047 arm of the same skip. While it reported nothing, Bug 1911054 renamed
`getSelectedInlinePreviews` and dropped an `await`, and Bug 1843320 added a
location line to the "why paused" panel.

The test also clicks source tree and scopes rows, which are not reachable from
the accessibility API until Bug 2070909, so it is annotated for a11y_checks
until that lands and removes the annotation.

`rightClickObjectInspectorNode` waited for an object inspector node count change
that a right click never causes, so its poll ran on until shutdown holding the
toolbox window, which the window-leak check reports; it now only opens the menu.

Differential Revision: https://phabricator.services.mozilla.com/D325029
2026-09-11 18:20:38 +00:00
Florian Quèze 638fd537f9 Bug 2070911 - Give the event listener category expander an accessible name, r=devtools-reviewers,ochameau.
button.event-listener-expand holds only an arrow image, so it had no accessible
name and nothing exposed whether its category was open. Name it after the
category text shown beside it and add aria-expanded. head.js clicks this button
on every toggleEventBreakpoint(), which is what put "Interactive elements must
be labeled" behind the two Bug 1849028 annotations retired here. The tracer
sidebar's Bug 1924435 skip also fails on the tree defect, so Bug 2070909
retires that one.

Differential Revision: https://phabricator.services.mozilla.com/D325021
2026-09-11 18:20:35 +00:00
Jeff Muizelaar 721c564be4 Bug 2068188 - Use a string-literal wrapper type for simple payload marker field names. r=bas,profiler-reviewers,canova
This avoids the need to create the `defined_name_##arg` constants which will
let us add support for named arguments using string literals. It's also
simpler.

Differential Revision: https://phabricator.services.mozilla.com/D322682
2026-09-11 18:20:11 +00:00
Iain Ireland cf52112a2b Bug 2036256: Add test r=jonco
I'm not sure how bad the bug is, so I'm putting the test in a separate patch just in case.

Differential Revision: https://phabricator.services.mozilla.com/D297931
2026-09-11 18:19:47 +00:00
Jonathan Kew df98b6d9d5 Bug 2067259 - Update mochitest expectations for revised font-family quoting behavior. r=firefox-style-system-reviewers,emilio
Differential Revision: https://phabricator.services.mozilla.com/D325338
2026-09-11 18:19:11 +00:00
Jonathan Kew 2d8ea0cf9b Bug 2067259 - Update WPT metadata to reflect revised behavior. r=firefox-style-system-reviewers,emilio
Mostly we're passing a bunch more tests now. The only "new" failure is because we don't implement
the ui-* generics, and therefore don't force things like (quoted) "ui-serif" to retain String syntax.

Differential Revision: https://phabricator.services.mozilla.com/D325337
2026-09-11 18:19:09 +00:00
Jonathan Kew 9b5381db88 Bug 2067259 - When FamilyName is used for font names in src:local(), force its syntax to be Quoted. r=firefox-style-system-reviewers,emilio
Although the spec seems a little unclear on this IMO, it matches the behavior of both Chrome and Safari,
and is what css/css-fonts/font-family-src-quoted.html asserts:
https://github.com/web-platform-tests/wpt/blob/59ff8a4854a8d2d32ca0dc113760f2aaad70f4b5/css/css-fonts/font-family-src-quoted.html#L7

Differential Revision: https://phabricator.services.mozilla.com/D325335
2026-09-11 18:19:07 +00:00
Jonathan Kew 11750f08e2 Bug 2067259 - Rework the criteria used to determine whether font-family names are quoted. r=firefox-style-system-reviewers,emilio
This reflects the decision in https://github.com/w3c/csswg-drafts/issues/5846,
and expectations of some recent WPTs (see later patch updating metadata).

Differential Revision: https://phabricator.services.mozilla.com/D325334
2026-09-11 18:19:05 +00:00
Luca Greco b80046bff0 Bug 2070562 - about:addons default and AMO curated nova themes preview should follow the current OS light/dark mode. r=willdurand
Differential Revision: https://phabricator.services.mozilla.com/D324746
2026-09-11 18:18:40 +00:00
Iain Ireland b9c3e085ff Bug 2037691: Support arm64 in SIMD.h r=jandem
Claude wrote the first draft of this quite a while ago. I went through and eyeballed that it looked mostly like the existing x86 implementation, and there are reasonable justifications for the differences. In particular, the difference between _mm_movemask_epi8 (which produces a 16-bit result with 1 bit per SIMD lane) and NeonMovemask (which produces a 64 bit result with 4 bits per SIMD lane) explains why we have (eg) `orMask & 0xf` vs `orMask & 0xffff` in Check4x4Chars. Note also that x86 support for sizeof(TValue) == 4 and sizeof(TValue) == 8 is only available in SIMD_avx2.cpp, whereas arm64 supports all sizes unconditionally.

I didn't spend much time reviewing the correctness of the underlying algorithms; I did that a lot for the initial landing, and we haven't had any problems with the x86 version, so I think we should be fine as long as the translation is right.

I also had a fresh instance of Claude review the patch. The main interesting point from its review was that our memchr implementation is competing against hand-tuned libc implementations. On x86 our primary competition is the Windows C runtime, which is (IIUC) less aggressively optimized, so Alex's benchmarking in bug 1776013 eventually convinced us that we should use our own memchr. That might not be true here. CI results were inconclusive, leaning if anything towards the default memchr being fastest. I'm conservatively disabling SIMD::memchr for now.

Codex's review didn't find anything else.

Differential Revision: https://phabricator.services.mozilla.com/D325185
2026-09-11 18:18:22 +00:00
Mark Banner 7bd194b64b Bug 2071252 - Fix urlbar metrics.yaml to use literal rather than block scalar headers for descriptions for better formatting. r=urlbar-reviewers,dao
Differential Revision: https://phabricator.services.mozilla.com/D325355
2026-09-11 18:17:37 +00:00
Mark Banner 59030f0267 Bug 2071252 - Fix browser search metrics.yaml to use literal rather than block scalar headers for descriptions for better formatting. r=search-reviewers,scunnane
Differential Revision: https://phabricator.services.mozilla.com/D325354
2026-09-11 18:17:36 +00:00
longsonr cdabea1dc9 Bug 2071205 - Fix SVGPathSegment API r=emilio,webidl
Differential Revision: https://phabricator.services.mozilla.com/D325320
2026-09-11 18:17:03 +00:00
Adham-A ea6b888b0b Bug 1985986 - Fix RTL glyph ink overflow measurement for contained glyphs. r=layout-reviewers,jfkthame
Differential Revision: https://phabricator.services.mozilla.com/D324373
2026-09-11 18:16:25 +00:00
Moyin af13762c4c Bug 2064846 - Calculate the duration of a piece of article r=android-reviewers,matt-tighe
Differential Revision: https://phabricator.services.mozilla.com/D324962
2026-09-11 18:15:53 +00:00
Alex Hochheiden 115df1170b Bug 2035575 - Add a duplicate transform to copy another kind's tasks with overrides r=ahal,taskgraph-reviewers
Manually duplicating every task definition produced by a kind lets the copy
drift as the source changes. Test variants already avoid this for a single
test task, but a difference compiled into artifacts needs a separate build of
every task it affects.

Differential Revision: https://phabricator.services.mozilla.com/D320191
2026-09-11 18:15:22 +00:00
Julien Cristau e10bbf0dae Bug 2062847 - Let the android-gradle-build python tests use non-shippable artifact builds r=firefox-build-system-reviewers,sergesanspaille
The android-gradle-build python tests run artifact builds, but
`mach artifact install` only searches the `.shippable` index for opt
builds. For each of the 50 candidate pushheads it looks up
`gecko.v2.autoland.shippable.revision.<rev>.mobile.android-<arch>-opt`.
Shippable Android builds aren't scheduled by default on autoland, so when
none of the last 50 autoland pushes ran a shippable build, the search
comes up empty, fails with "no built artifacts found", and every
artifact-build test in the suite fails at once. It passes only when one
of those 50 pushes happens to have a shippable Android build, which is
why it shows up as an intermittent.

Add a MOZ_ARTIFACT_ALLOW_NON_SHIPPABLE environment variable that makes
the index lookup fall back to the regular per-push opt build when no
shippable build is found, and set it for the android-gradle-build task.
The shippable index is still tried first, so branches that only publish
shippable builds (central, beta, release, esr) keep resolving to those.

Differential Revision: https://phabricator.services.mozilla.com/D324866
2026-09-11 18:14:40 +00:00
jsimplicio 4c91297a52 Bug 2054561 - Message bar spec update for Nova r=desktop-theme-reviewers,mkennedy,translations-reviewers,thecount,nordzilla,emilio
Differential Revision: https://phabricator.services.mozilla.com/D311913
2026-09-11 18:14:02 +00:00
Paul Adenot 0d8a98b84c Bug 2070838 - Don't report a speech recognition session stopped during init as an error. r=media-webspeech-reviewers,azebrowski
Bringing the engine up takes as long as loading the model's weights, so stop()
can land while the session is still initializing. The engine's abandoned init
then reached the page as "network", instead of the nomatch and end that
stopping a session owes it.

Differential Revision: https://phabricator.services.mozilla.com/D324937
2026-09-11 18:13:32 +00:00
Dale Harvey d6f561d006 Bug 2071208 - Make sure recent searches widget can be enabled by Nimbus. r=maxx
Differential Revision: https://phabricator.services.mozilla.com/D325331
2026-09-11 18:13:07 +00:00
Irene Ni 7494a82306 Bug 2066474 - Restore selected checkmark on lists widget switcher menu. r=maxx
Differential Revision: https://phabricator.services.mozilla.com/D321275
2026-09-11 18:12:36 +00:00
Maxx Crawford f88ffead06 Bug 2068811 - Add newtab nova launch message strings r=fluent-reviewers,bolsson
Differential Revision: https://phabricator.services.mozilla.com/D324452
2026-09-11 18:12:08 +00:00
alastor0325 767274e9d6 Bug 2071106 - Part 4: Test that a clear lead stream is granted an input trust authority. r=media-playback-reviewers,padenot
Adds TestMFMediaSourceProtection, which builds an MFMediaSource the way
MFMediaEngineParent does and drives IMFTrustedInput against a mock CDM.

The failure this covers needs SL3000 hardware DRM and a licence server, so it
cannot be reached from a mochitest, but we can test it on gtest.

Differential Revision: https://phabricator.services.mozilla.com/D325211
2026-09-11 17:43:50 +00:00
alastor0325 3dee287405 Bug 2071106 - Part 3: Log the image size and encryption state of the media engine setup. r=media-playback-reviewers,padenot
The metadata log reported only the display size, and the media source summary
reported neither size, so both now carry the image and display size.

Differential Revision: https://phabricator.services.mozilla.com/D325210
2026-09-11 17:43:50 +00:00
alastor0325 c0682d0a70 Bug 2071106 - Part 2: Add a pref to disable the protected activation recovery, off by default. r=media-playback-reviewers,padenot
When activation failed with `MF_E_TOPO_UNSUPPORTED` or
`MF_E_INCOMPATIBLE_SAMPLE_PROTECTION` we re-drove the protected pipeline
through the hardware-context-reset path, which closes every session with
reason `hardware-context-reset`. Per the EME specification that invites the
application to create new sessions and retry, so a conformant player retries
indefinitely. Netflix reported this as repeated `F7717-1273 (unexpected
hardware-context-reset)`.

Neither error is documented as transient. Microsoft publishes no guidance for
either code, and Chromium, which drives the same Media Engine and PlayReady
path, treats both as terminal and reserves hardware-context-reset for
`DRM_E_TEE_INVALID_HWDRM_STATE` alone. The retry could not have helped in any
case, because `ExternalEngineStateMachine::SetCDMProxy` does not re-send the
CDM proxy to the recreated engine, so the new engine never sets its media
source and never builds a topology.

The mechanism is left in place behind a pref so this can be flipped back on a
release branch if disabling it regresses something. Removing it belongs in a
follow-up.

Differential Revision: https://phabricator.services.mozilla.com/D325209
2026-09-11 17:43:49 +00:00
alastor0325 2f0d4e5ac5 Bug 2071106 - Part 1: Request an input trust authority for a clear lead video stream. r=media-playback-reviewers,padenot
Bug 2022030 Part 5 (D287632) made `IsEncrypted()` return false on the clear
lead segment to reflect the real encryption status. That function also tells
Media Foundation whether the stream needs the protected media path, which a
clear lead still does because the encrypted part follows in the same stream.

The video descriptor was therefore marked `MF_SD_PROTECTED`, but the
`IMFInputTrustAuthority` Media Foundation asked for while resolving the
topology was refused with `MF_E_NOT_PROTECTED`. It cannot resolve a protected
branch without one, so the topology failed with `MF_E_TOPO_UNSUPPORTED`.
Reverting this makes clear lead PlayReady streams play on Netflix again.

Differential Revision: https://phabricator.services.mozilla.com/D325208
2026-09-11 17:43:48 +00:00
Sarah Clements d89caae212 Bug 2065486 - Update illustration for sync disconnected state in sidebar r=fxview-reviewers,desktop-theme-reviewers,nsharpley,emilio
* Add asset property for sync error map and consolidate the getMessageCardForState logic
* Remove height and width from new svgs so they scale

Differential Revision: https://phabricator.services.mozilla.com/D321595
2026-09-11 17:43:09 +00:00
Paul Adenot 477e1f9b54 Bug 2071261 - Quote the Norwegian locale tag in the speech recognition model mapping. r=media-webspeech-reviewers,azebrowski
YAML reads a bare `no` as false, so the multilingual model's supported_locales
declared "False" instead of "no": a key the model's prompt dictionary does not
have, offered to language negotiation as if it were a tag. Requesting it
negotiated fine and then failed in parakeet_capi_stream_begin_lang. This
was failing to set an explicit language, and falling-back to
autodetection, which wasn't intended.

gen_speech_models.py now rejects a non-string locale rather than stringifying
whatever YAML handed it.

Differential Revision: https://phabricator.services.mozilla.com/D325362
2026-09-11 17:42:35 +00:00
Matthew Gaudet 70abc663a8 Bug 2070973 - Wait until after promise is resolved to clear scheduling state r=dom-core-reviewers,smaug
Differential Revision: https://phabricator.services.mozilla.com/D325060
2026-09-11 17:41:52 +00:00
Iain Ireland 065193d607 Bug 2071118: Fix interruptRegexp for PBL r=jandem
Differential Revision: https://phabricator.services.mozilla.com/D325200
2026-09-11 17:41:20 +00:00
any1here 367638bee9 Bug 2070378 - Hide Manage AI and Labs quick actions when disabled by preference or policy r=urlbar-reviewers,Standard8
Differential Revision: https://phabricator.services.mozilla.com/D324472
2026-09-11 17:40:43 +00:00
Ruhollah Majdoddin 186a3b9047 Bug 2065751 - Advertise the Escape shortcut in the find bar's close button tooltip while the bar has focus. r=mstriemer,fluent-reviewers,bolsson
The find bar's close button tooltip is only "Close find bar", so nothing in
the UI says that Escape closes the bar.

Escape is handled by a capturing keypress listener on the find bar element
itself, so it only closes the bar while focus is inside it. Following bug
1199929, the shortcut is advertised only while that holds: the tooltip
swaps between two Fluent ids as focus enters and leaves the bar.

The key name is hardcoded rather than looked up.
ShortcutUtils.getKeyString("VK_ESCAPE") would read it from
keys.properties, but that table has no per-platform variant and would
give capital "Esc" on macOS, where the existing Escape strings use
lowercase, and .properties is a legacy format. { $shortcut } does not
apply either -- there is no <key> element here, and this Escape
handling is not remappable.

This work was done with AI assistance; I have reviewed and can explain
every line.

Differential Revision: https://phabricator.services.mozilla.com/D320643
2026-09-11 17:39:35 +00:00
Sylvestre Ledru d489e02a8c Bug 2066697 - Quote file-bug.py arguments in the bug-filing skill r=ai4dev-reviewers,padenot DONTBUILD
Unquoted field=value arguments break when the value contains shell glob
characters, e.g. a see_also URL with a query string.

Differential Revision: https://phabricator.services.mozilla.com/D325257
2026-09-11 17:39:01 +00:00
Sylvestre Ledru e173c24599 Bug 2058821 - doc: apply the markdownlint fixes over the tree r=firefox-source-docs-reviewers,ipc-reviewers,devtools-reviewers,releng-reviewers,android-reviewers,bhearsum,nchevobbe,ahal,tcampbell DONTBUILD
Mostly mechanical: `markdownlint-cli2 --fix` over the directories the md
linter covers (blank lines around fences and lists, list indentation, bare
URLs wrapped in angle brackets, stray spaces inside code spans).

A few spots needed to be fixed by hand because they were malformed in the
first place: reference links left dangling by the RST conversion in
ipc/docs/ipdl.md and devtools/docs/user/debugger-api/index.md, an `{image}`
directive whose options had escaped the fence in
docs/contributing/debugging/capturing_minidump.md, and text where a literal
asterisk or underscore was being parsed as emphasis.

Differential Revision: https://phabricator.services.mozilla.com/D315001
2026-09-11 17:38:33 +00:00
lola_t b14ad10e3f Bug 2067125 Add ListenSheetIntegration and ListenSheetBehaviour r=android-reviewers,moyin
Differential Revision: https://phabricator.services.mozilla.com/D324345
2026-09-11 17:38:05 +00:00
Dão Gottwald fc05d1ba33 Bug 2071258 - Render each mermaid diagram at its own size instead of the column width. r=firefox-source-docs-reviewers,sylvestre
Differential Revision: https://phabricator.services.mozilla.com/D325363
2026-09-11 17:37:34 +00:00
Sylvestre Ledru 2af023094e Bug 2071212 - Initialize SECItem::type before PK11_ImportSymKey in NSSCipherStrategy::Init (Coverity CID 1700949) r=dom-storage-reviewers,jari
keyItem was default-constructed and only had data and len assigned, leaving
type indeterminate when it was handed to PK11_ImportSymKey. Use aggregate
initialization with siBuffer, matching the `SECItem empty = {siBuffer, nullptr,
0}` on the following line.

Differential Revision: https://phabricator.services.mozilla.com/D325327
2026-09-11 17:37:05 +00:00
Sarah Clements 5b5214a6a7 Bug 2070260 - Migrate old sidebar users to hide-launcher visibility and enable sidebar.revamp in all builds r=kcochrane,firefox-desktop-core-reviewers ,mossop,fluent-reviewers,settings-reviewers,sessionstore-reviewers,tgiles,sthompson,bolsson,jsudiaman
* Add migration and enable sidebar.revamp in beta and release
* Remove show sidebar checkbox from the tab browsing section in about:preferences
* Fix sidebar bug where switcher label isn't showing if a tool isn't already saved in preferences

Differential Revision: https://phabricator.services.mozilla.com/D324600
2026-09-11 17:36:38 +00:00
AndiAJ 9fecf287d5 Bug 2071253 - Fix verifyTabsTrayListViewTest UI test r=aaronmt
The UI test was sometimes failing because it failed to verify that the normal tabs list is displayed.

To fix this, I've changed for waiting for the empty tabs list to not exist to waiting for the normal tabs list to exists.
I've also removed some redundant actions from the tests.

  This change also fixes **verifyTabsTrayGridViewTest** UI test

Both tests successfully passed 50x on Firebase 

Differential Revision: https://phabricator.services.mozilla.com/D325356
2026-09-11 17:36:09 +00:00
unifolia 0d23b5ed27 Bug 2064054 - Make the Organize Tabs flyout a dismissable popup so Wayland can place it beside the panel r=Mardak
Differential Revision: https://phabricator.services.mozilla.com/D324447
2026-09-11 17:35:39 +00:00
AndiAJ 18cdfeacc1 Bug 2071272 - Convert deleteDownloadedFileTest regression UI test to efficiency framework r=jajohnson
The UI test successfully passed 50x on Firebase 
All UI tests successfully passed 1x on Firebase 

Differential Revision: https://phabricator.services.mozilla.com/D325371
2026-09-11 17:35:16 +00:00
sarah541 1d37bac63c Bug 2058533 - Add a PromoCard highlighting the Collections to Tab Groups migration in the Tab Groups page r=android-reviewers,gl
Differential Revision: https://phabricator.services.mozilla.com/D323690
2026-09-11 17:34:48 +00:00
Sandor Molnar 232fa29495 Revert "Bug 2062329 - Attribute MLModelHubService downloads to the requesting task. r=ai-platform-reviewers,valentinp" for causing bc failures @ browser_speech_recognition_telemetry.js
This reverts commit 62a4a5d638.

Revert "Bug 2062329 - Measure inference cost and init failures in the HWInference process. r=media-playback-reviewers,alwu"

This reverts commit 7783c6fb9e.

Revert "Bug 2062329 - Measure speech recognition latency in the content process. r=media-playback-reviewers,alwu"

This reverts commit 189550601a.

Revert "Bug 2062329 - Record speech recognition usage, outcomes and errors with Glean. r=media-playback-reviewers,alwu,TravisLong"

This reverts commit 39db08efe3.

Revert "Bug 2062329 - Add use counters for the SpeechRecognition API. r=dom-core-reviewers,webidl,smaug"

This reverts commit 84ede0b820.
2026-09-11 17:32:37 +00:00
Sandor Molnar 2cc9db3b01 Bug 2071004 - Update wpt metadata for /html/canvas/element/manual/imagebitmap/createImageBitmap-resolves-in-task.any.html 2026-09-11 17:30:33 +00:00
scottdowne 1ef27a4b11 Bug 2071368 - Format DiscoveryStreamFeed.test.js with Prettier.
Differential Revision: https://phabricator.services.mozilla.com/D325449
2026-09-11 15:46:39 +00:00
Leo Tenenbaum 09c4a957c1 Bug 2071064 - Call ClearForm when unlinking form controls. r=dom-core-reviewers,smaug
Differential Revision: https://phabricator.services.mozilla.com/D325435
2026-09-11 15:34:54 +00:00
Ryan VanderMeulen 1dfefda069 Bug 2071075 - Build the macOS onnxruntime toolchains on Linux workers. r=jcristau
The aarch64 task was already a cross build on the Intel b-osx-1015 workers, so neither build executes what it
compiles. build.py's --osx_arch only acts on a macOS host, so the Darwin cmake variables are passed directly,
the way build-llvm-common.sh does for compiler-rt, with linux64-clang-toolchain replacing the Mach-O
macosx64-clang and the mac cmake/ninja fetches. Deployment targets are set explicitly to Firefox's (10.15
x86_64, 11.0 arm64).

-fuse-ld=lld goes in the compile flags because cmake's try_compile checks, including the one behind
--enable_lto, don't inherit CMAKE_*_LINKER_FLAGS and would silently disable LTO. CMAKE_ASM_COMPILER_TARGET is
needed or the .S files are assembled for the host.

Differential Revision: https://phabricator.services.mozilla.com/D325157
2026-09-11 15:34:21 +00:00
Ryan VanderMeulen 0f715ac101 Bug 2071075 - Build the macOS openssl and xz cpython dependencies on Linux workers. r=jcristau
macosx64-xz, macosx64-aarch64-xz and macosx64-aarch64-openssl never execute what they compile and already
fetch macosx64-sdk-toolchain, so they only need linux64-clang-toolchain instead of the Mach-O macosx64-clang,
plus --target/--host.

libtool picks its linker with its own PATH search rather than honoring -fuse-ld, so xz also gets LD=ld64.lld,
and -Wno-unused-command-line-argument keeps its -Werror configure probe from rejecting -fuse-ld. Both scripts
pin AR/RANLIB to llvm-ar/llvm-ranlib so the static archives get a symbol index.

pack.sh is now located via $GECKO_PATH: $(dirname $0) breaks on the Linux worker, which invokes scripts with a
path relative to the initial directory, once build-xz.sh has cd'd elsewhere.

Differential Revision: https://phabricator.services.mozilla.com/D325156
2026-09-11 15:34:20 +00:00
Ryan VanderMeulen 684471d51c Bug 2071075 - Build the win32 and aarch64 WindowsAppSDK repack toolchains on Linux workers. r=jcristau
The win32 and aarch64 WindowsAppSDK repacks only unzip and re-tar an MSIX, exactly like the x86_64 one that
already runs on Linux; drop their Windows worker override.

Differential Revision: https://phabricator.services.mozilla.com/D325155
2026-09-11 15:34:20 +00:00
Ryan VanderMeulen 714d1f97e1 Bug 2071075 - Build the macOS Android repack toolchains on Linux workers. r=jcristau
The macOS Android toolchains (JDK, SDK, arm64 AVD and arm64 system images) only download and repack upstream
archives, so they don't need a macOS worker. The JDK is downloaded for macOS/arm64 via new --os-name/--os-arch
overrides for android.py --jdk-only. sdkmanager selects packages by matching the host OS and CPU architecture,
so downloading the macOS/arm64 packages from this Linux/x86_64 host needs both REPO_OS_OVERRIDE=macosx and
-Dos.arch=aarch64. The AVD prewarm was already a no-op because arm64.json sets emulator_prewarm to false, and
system images are host-independent, so neither of those two repacks needs either override.

They were also in the TL Treeherder group despite targeting macOS arm64; move them to TMA64 to match the other
cross-built toolchains.

Differential Revision: https://phabricator.services.mozilla.com/D325154
2026-09-11 15:34:19 +00:00
Stephanie Cunnane fe3550cd24 Bug 2070734 - Document the contextmenu_visual SAP in the search telemetry docs. r=search-reviewers,Standard8 DONTBUILD
Differential Revision: https://phabricator.services.mozilla.com/D324790
2026-09-11 15:33:41 +00:00
Gregory Mierzwinski df4afcdd3f Bug 1883400 - Integrate hardware info into perfdocs checks and generation. r=perftest-reviewers,mozperftest-reviewers,aglavic
This patch integrates the new hardware doc generation into perfdocs. It adds the ability to list all of our hardware info in the performance-infrstructure docs, and also provides links from the test documentation to it.

With this change, any new tasks with undocumented tools will trigger failures in perfdocs. Those pools will need to either be listed under an existing hardware type, or will need a new hardware section added for it.

Differential Revision: https://phabricator.services.mozilla.com/D323368
2026-09-11 15:33:07 +00:00
Gregory Mierzwinski 03ea427c40 Bug 1883400 - Add new component for listing hardware info in perfdocs. r=perftest-reviewers,mozperftest-reviewers,aglavic
This patch adds a new class that will be used to gather, and build the documentation for hardware information across all performance tests. The existing content here is based on the platforms wiki found here: https://wiki.mozilla.org/Performance/Platforms

A new YAML file is added in the main perfdocs directory to track all the hardware along with their mapping to worker pools. The platform labels are gathered dynamically and added to these new docs so they don't need to be included in the YAML either. The new class is a singleton to make it simpler to use in multiple different places.

Differential Revision: https://phabricator.services.mozilla.com/D323367
2026-09-11 15:33:07 +00:00
Eemeli Aro 0482e9a63e Bug 2067110 - Check string allocation in mozJSModuleLoader::CreateTextModuleFromSource. r=arai
Differential Revision: https://phabricator.services.mozilla.com/D325003
2026-09-11 15:29:49 +00:00
Eemeli Aro 62803d7584 Bug 2067109 - Check string allocation in WorkletModuleLoader::CreateTextModule. r=dom-core-reviewers,jjaschke
Differential Revision: https://phabricator.services.mozilla.com/D325002
2026-09-11 15:29:49 +00:00
Eemeli Aro c81b3051a4 Bug 2067108 - Check string allocation in WorkerModuleLoader::CreateTextModule. r=edenchuang
Differential Revision: https://phabricator.services.mozilla.com/D325001
2026-09-11 15:29:48 +00:00
Eemeli Aro 8398fd4d32 Bug 2067107 - Check string allocation in ModuleLoader::CreateTextModule. r=dom-core-reviewers,jjaschke
Differential Revision: https://phabricator.services.mozilla.com/D325000
2026-09-11 15:29:47 +00:00
Sylvestre Ledru aed6a14648 Bug 2062203 - Null-check node before deref in nsNavHistoryFolderResultNode::OnItemMoved (Coverity CID 1644887) r=places-reviewers,Standard8
The same-folder branch dereferenced `node` for `mBookmarkIndex` and passed it
to ReindexRange before reaching the null check that already guarded the rest of
the branch. `node` comes from FindChildById and is only known to be non-null
when it was returned, so move the existing assertion and check above the first
dereference rather than leaving them in the middle of the branch.

Differential Revision: https://phabricator.services.mozilla.com/D317484
2026-09-11 15:29:09 +00:00
Anna Weine 23fc182891 Bug 2063292 - Report certificate duplication in about:networking tokens r=fluent-reviewers,bolsson,leggert
Differential Revision: https://phabricator.services.mozilla.com/D318474
2026-09-11 15:28:08 +00:00
Mark Banner a0364d50fd Bug 2069131 - Rename most browser/base/content/test browser-chrome directories to match eslint-test-paths conventions. r=frontend-codestyle-reviewers,Gijs
This handles most of the directories, where the changes required do not affect tests outside of the browser/base/content/test directory.

Differential Revision: https://phabricator.services.mozilla.com/D323419
2026-09-11 15:27:28 +00:00
Lando 23f8b955a3 Bug 2040367, 2068126: apply code formatting via Lando
# ignore-this-changeset
2026-09-11 15:27:08 +00:00
Jonathan Kew 817600ffae Bug 2068126 - Skrifa support for installed DWrite fonts where local file is unavailable. r=AlaskanEmily
Differential Revision: https://phabricator.services.mozilla.com/D322918
2026-09-11 15:26:22 +00:00
Jonathan Kew a5d3fcab58 Bug 2040367 - Implement InitSkrifaFontFace in gfxDWriteFontEntry for locally-installed font files. r=AlaskanEmily
Differential Revision: https://phabricator.services.mozilla.com/D322714
2026-09-11 15:26:21 +00:00
alin lastun f113f65f2a Bug 2070834 - Onboarding: restore marketing card link text r=android-reviewers,twhite
Restore body-line-one-text to nova_onboarding_marketing_body

|Before| |After|
|{F80483946}| |{F80483994}|

Differential Revision: https://phabricator.services.mozilla.com/D325396
2026-09-11 15:25:48 +00:00
scottdowne b2c8479058 Bug 2062299 - Migrate DiscoveryStreamFeed unit tests to Jest. r=reemhamz
Differential Revision: https://phabricator.services.mozilla.com/D317602
2026-09-11 15:25:10 +00:00
scottdowne fb79ce2409 Bug 2062300 - Migrate PrefsFeed unit tests to Jest. r=reemhamz
Differential Revision: https://phabricator.services.mozilla.com/D317601
2026-09-11 15:25:09 +00:00
scottdowne c375058d5e Bug 2062301 - Migrate ActivityStream unit tests to Jest. r=reemhamz
Differential Revision: https://phabricator.services.mozilla.com/D317600
2026-09-11 15:25:08 +00:00
scottdowne 012abe9d16 Bug 2062305 - Migrate Widgets container and Nova WidgetsManagementPanel unit tests to Jest/RTL. r=reemhamz
Differential Revision: https://phabricator.services.mozilla.com/D317599
2026-09-11 15:25:07 +00:00
scottdowne 9c82f006d3 Bug 2062306 - Migrate TopSites hover card and web notification unit tests to Jest/RTL. r=reemhamz
Differential Revision: https://phabricator.services.mozilla.com/D317598
2026-09-11 15:25:07 +00:00
Scott Downe c3d78f0ac1 Bug 2062302 - Migrate AboutPreferences and SectionsManager unit tests to Jest. r=reemhamz
Differential Revision: https://phabricator.services.mozilla.com/D317597
2026-09-11 15:25:06 +00:00
scottdowne 6046e5b47c Bug 2062303 - Migrate ActivityStreamMessageChannel and DownloadsManager unit tests to Jest. r=reemhamz
Differential Revision: https://phabricator.services.mozilla.com/D317596
2026-09-11 15:25:05 +00:00
scottdowne 56f9a85cf1 Bug 2062307 - Migrate content-src/lib unit tests to Jest/RTL. r=reemhamz
Differential Revision: https://phabricator.services.mozilla.com/D317595
2026-09-11 15:25:04 +00:00
scottdowne 864e2a34d3 Bug 2062304 - Migrate simple lib/ unit tests to Jest. r=reemhamz
Differential Revision: https://phabricator.services.mozilla.com/D317593
2026-09-11 15:25:03 +00:00
scottdowne 81e3ebdc3a Bug 2024070 - Migrate common/Actions.test.js to Jest. r=reemhamz
Differential Revision: https://phabricator.services.mozilla.com/D317603
2026-09-11 15:25:02 +00:00
Reem H 187127c9c2 Bug 2018713 - Migrate DiscoveryStreamComponents unit tests to Jest/RTL. r=reemhamz
Differential Revision: https://phabricator.services.mozilla.com/D315094
2026-09-11 15:25:02 +00:00
Reem H 02b14c0a5e Bug 2018712 - Migrate CustomizeMenu unit tests to Jest/RTL. r=reemhamz
Differential Revision: https://phabricator.services.mozilla.com/D315096
2026-09-11 15:25:01 +00:00
Reem H 22b6936944 Bug 2018711 - Migrate Widgets unit tests to Jest/RTL. r=reemhamz
Differential Revision: https://phabricator.services.mozilla.com/D315095
2026-09-11 15:25:00 +00:00
Reem H 1a63eb64ee Bug 2018708 - Migrate TopSites unit tests to Jest/RTL. r=reemhamz
Differential Revision: https://phabricator.services.mozilla.com/D315082
2026-09-11 15:24:59 +00:00
Silaghi 5620235d00 Revert "Bug 1985986 - Fix RTL glyph ink overflow measurement for contained glyphs. r=layout-reviewers,jfkthame" for causing wr tests failures at css/css-text/shaping
This reverts commit adde773bf4.
2026-09-11 15:17:55 +00:00
Silaghi 4ae8a044e5 Revert "Bug 2062112 - [Monitor Agent][FE] Create monitor component in tool bar panel r=ngrato,fluent-reviewers,desktop-theme-reviewers,sfoster,bolsson" for causing bc and tv tests failures
This reverts commit f0d8095427.
2026-09-11 15:06:37 +00:00
Norisz Fay d52ea4b46d Revert "Bug 1977639, Bug 1594264 - Report slow SQL over Glean r=mak" for causing bustages @ mozStorageConnection.cpp
This reverts commit fbae83314c.

Revert "Bug 1594264 - Enable sql normalization r=mak"

This reverts commit ace0d66578.
2026-09-11 14:50:01 +00:00
moz-wptsync-bot 59d8828ca8 Bug 2071004 - [wpt-sync] Update web-platform-tests to 26c986aeff1d15dd441ccf7e5fdb9aa07f0ce50b, a=testonly
MANUAL PUSH: wpt sync bot

wpt-head: 26c986aeff1d15dd441ccf7e5fdb9aa07f0ce50b
wpt-type: landing
2026-09-11 14:49:11 +00:00
moz-wptsync-bot 616d45ed98 Bug 2070939 [wpt PR 62549] - Update wpt metadata, a=testonly
wpt-pr: 62549
wpt-type: metadata
2026-09-11 14:49:09 +00:00
Romain Menke 20c4c1ce4d Bug 2070939 [wpt PR 62549] - [css-color] fix fuzzy color tests, a=testonly
Automatic update from web-platform-tests
[css-color] fix fuzzy color tests (#62549)

* [css-color] fix fuzzy color tests

* fmt
--

wpt-commits: 26c986aeff1d15dd441ccf7e5fdb9aa07f0ce50b
wpt-pr: 62549
2026-09-11 14:49:07 +00:00
Daniel Vogelheim 40b874626b Bug 2070931 [wpt PR 62560] - Mark XML fragments' scripts as already started., a=testonly
Automatic update from web-platform-tests
Mark XML fragments' scripts as already started.

HTML spec says: "If the parser was created as part of the XML fragment
parsing algorithm, then the element's already started must be set to true."
This CL does that. Also adds a test.

Bug: 542115030
Change-Id: Id3925fb343a8919d0c8f9dba7f71ccce31ec41c5
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8356066
Reviewed-by: David Baron <dbaron@chromium.org>
Commit-Queue: Daniel Vogelheim <vogelheim@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1694473}

--

wpt-commits: 56cbcaa233de2a233884ccfe07f6e626cc70a6c3
wpt-pr: 62560
2026-09-11 14:49:05 +00:00
Felipe Erias fb622640e6 Bug 2070921 [wpt PR 62542] - [CSS] Support smooth text-decoration-thickness transitions, a=testonly
Automatic update from web-platform-tests
[CSS] Support smooth text-decoration-thickness transitions

CSS Text Decoration requires `text-decoration-thickness` to animate by
computed value:

https://drafts.csswg.org/css-text-decor-4/#text-decoration-thickness-property

However, `text-decoration-thickness` was missing from both
LengthPropertyFunctions::GetLength() and `transition: all`,
so text thickness changed immediately instead of transitioning.

LengthPropertyFunctions::GetLength() extracts the value of
`text-decoration-thickness` from the computed style into a `Length`,
unless that value is `from-font`. Both `from-font` and `auto` keep
animating discretely.

Mark the property interpolable so it participates in `transition: all`.

Tests:
  external/wpt/css/css-text-decor/animations/text-decoration-thickness-interpolation.html
  external/wpt/css/css-text-decor/animations/discrete-no-interpolation.html

Bug: 361393675
Change-Id: Ic16c7077570ca242d61e6122a143256ad4acf242
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8335028
Commit-Queue: Felipe Erias <felipeerias@igalia.com>
Reviewed-by: Kevin Ellis <kevers@chromium.org>
Reviewed-by: Rune Lillesveen <futhark@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1694368}

--

wpt-commits: 047b14a0c3401e88571ef853942a6ea7581e4aef
wpt-pr: 62542
2026-09-11 14:49:03 +00:00
Javier Contreras Tenorio 760fe1c453 Bug 2070916 [wpt PR 62543] - [gap-decorations] Fix crash with huge row gaps, a=testonly
Automatic update from web-platform-tests
[gap-decorations] Fix crash with huge row gaps

When a row-gap offset saturated during grid fragmentation (due to a
value higher than LayoutUnit::Max), the spillover calculation could
produce an incorrect adjustment, due to the saturation hiding the true
distance past the edge. The adjustment persisted in the break token,
which corrupted later fragments and led to a null dereference.

Skip the adjustment when the gap offset is saturated. The difference
cannot be represented safely, and suppressing it avoids corrupting
subsequent fragments. Add a regression crash test.

Fixed: 542066231
Change-Id: I0489c0990f26ac3541397a90aff28790f57a0323
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8349009
Commit-Queue: Javier Contreras <javiercon@microsoft.com>
Reviewed-by: Kurt Catti-Schmidt <kschmi@microsoft.com>
Cr-Commit-Position: refs/heads/main@{#1694366}

--

wpt-commits: 30e0b7899c8b1988d81296397413100f504d2651
wpt-pr: 62543
2026-09-11 14:49:01 +00:00
moz-wptsync-bot 96588ccb45 Bug 2070910 [wpt PR 62536] - Update wpt metadata, a=testonly
wpt-pr: 62536
wpt-type: metadata
2026-09-11 14:48:59 +00:00
Frédéric Wang Nélar 17a31fe0a6 Bug 2070910 [wpt PR 62536] - [scroll-axis-lock] Add basic tests for inheritance/animation., a=testonly
Automatic update from web-platform-tests
[scroll-axis-lock] Add basic tests for inheritance/animation.

Add tests to cover initial value, inheritance and discrete animation
type. Also add test for the invalid value "proximity" that was initially
considered in an early proposal.

Bug: 479472367
Change-Id: I109114965e2e312aacb263f157f73f347a722930
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8352984
Commit-Queue: Frédéric Wang Nélar <fwang@igalia.com>
Reviewed-by: Robert Flack <flackr@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1694355}

--

wpt-commits: cdba7c5a8588cfe67dfc2156704f8b074d76170b
wpt-pr: 62536
2026-09-11 14:48:57 +00:00
Frédéric Wang Nélar 49c2960504 Bug 2070907 [wpt PR 62531] - [compression-dictionary] Tweak server to follow RFC9842's "Vary" header requirement, a=testonly
Automatic update from web-platform-tests
[compression-dictionary] Tweak server to follow RFC9842's "Vary" header requirement

Our tests currently add "Vary" headers to some resources in order to
make sure the test server fulfills the minimal requirement of
https://datatracker.ietf.org/doc/html/rfc9842#section-6.2. However, this
is not done for `compressed-data.py`, so fix that. Note that
fetch/compression-dictionary/resources/static/Makefile adds that header
but in general the script might not properly merge the headers when
a compressed output is later used as a dictionary, so add a comment about
to clarify that.

Bug: 522338661, 40255884
Change-Id: I6be14f7418cce81b4fafeecb2510dc4aaca9ade3
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8163980
Commit-Queue: Frédéric Wang Nélar <fwang@igalia.com>
Reviewed-by: Patrick Meenan <pmeenan@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1694354}

--

wpt-commits: f27884313681660c06919a389a9bba1d23bfbdd9
wpt-pr: 62531
2026-09-11 14:48:55 +00:00
moz-wptsync-bot 25e8ea5dbe Bug 2070878 [wpt PR 62491] - Update wpt metadata, a=testonly
wpt-pr: 62491
wpt-type: metadata
2026-09-11 14:48:53 +00:00
Sam Weinig 2f4def44b8 Bug 2070878 [wpt PR 62491] - [css-fonts-4] Update palette-mix() tests for recent changes spec changes, a=testonly
Automatic update from web-platform-tests
[css-fonts-4] Update palette-mix() tests for recent changes spec changes (#62491)

Discussed in https://github.com/w3c/csswg-drafts/issues/14452

- Moved tests into css/css-fonts/parsing
- Updated computed value tests to include testing values with 1 and more than 2 components.
- Updated computed value tests to include testing values with interpolation method elided.
- Updated computed value tests to follow color-mix/CSS Value 5 mix function rules.
- Added specified value tests (palette-mix-valid.html)
- Added invalid value tests (palette-mix-invalid.html)
--

wpt-commits: 3a1177e6c76f1a7f854f3ae4b93a00835e171fad
wpt-pr: 62491
2026-09-11 14:48:51 +00:00
chicoxyzzy f2f3eb9cea Bug 2070863 [wpt PR 62352] - WebKit export of https://bugs.webkit.org/show_bug.cgi?id=322115, a=testonly
Automatic update from web-platform-tests
WebKit export of https://bugs.webkit.org/show_bug.cgi?id=322115

--

wpt-commits: 3fa23e3dda225639447aeadbeeb73f5445a6e999
wpt-pr: 62352
2026-09-11 14:48:49 +00:00
BruceDai 8c89ce89e3 Bug 2070656 [wpt PR 62541] - webnn: allow 0-D output for gather operator, a=testonly
Automatic update from web-platform-tests
webnn: allow 0-D output for gather operator

This CL updates the minimum allowed rank of gather's output to 0 in
required_datatypes_ranks.json by executing the script
tools/generate-required-datatypes-ranks.py, per Spec change [1].

No new conformance tests are needed: the existing conformance tests
and validation tests already exercise the 0-D output path.

[1] Spec change: https://github.com/webmachinelearning/webnn/pull/953

Change-Id: If127608d7e5cf80a402e0544169e9fa67237d66c
Bug: 557288874
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8361354
Auto-Submit: Dai, Feng <feng.dai@intel.com>
Reviewed-by: Hu, Ningxin <ningxin.hu@intel.com>
Reviewed-by: Reilly Grant <reillyg@chromium.org>
Commit-Queue: Hu, Ningxin <ningxin.hu@intel.com>
Cr-Commit-Position: refs/heads/main@{#1694279}

--

wpt-commits: fadb01bc53cd4a9fac9352c977df1787425b856e
wpt-pr: 62541
2026-09-11 14:48:47 +00:00
Mahesh Kannan 5844804a83 Bug 2070654 [wpt PR 62482] - [WebAudio] Add tests and baseline failure for unaligned looping, a=testonly
Automatic update from web-platform-tests
[WebAudio] Add tests and baseline failure for unaligned looping

This is Part 1 of a 2-part CL addressing crbug.com/553218226.

This CL introduces test coverage for looping AudioBufferSourceNodes
across boundary conditions, refactors the test suite using a factory
and generator paradigm to reduce boilerplate, and checks in the baseline
failure for unaligned buffer looping:

1. audiobuffersource-loop-continuous.html:
   WPT test covering multi-cycle looping of unaligned buffer lengths
   (65,201 frames) and grain duration boundaries.

2. audiobuffersource-loop-continuous-expected.txt:
   Captures the existing trunk failure where frame 65,200 is duplicated
   and frame 0 is skipped upon wrap.

3. AudioBufferSourceHandlerTest:
   - Refactored test fixture to AudioBufferSourceHandlerTestBase with
     shared ProcessOnAudioThread helper returning std::array.
   - Introduced CreateAudioBuffer generator helper and
     CreateEnvironmentWithBuffer factory helper, cutting boilerplate.
   - LoopOffsetBeyondLoopEndPositiveRate: Tests clamping when
     offset >= loopEnd.
   - LoopOffsetBelowLoopStartPositiveRate: Tests intro playback before
     loopStart.
   - LoopSingleSampleBuffer: Tests 1-sample buffer looping without
     division by zero.
   - LoopInvertedBoundsFallbackToWholeBuffer: Tests fallback to whole
     buffer when loopStart >= loopEnd per W3C §1.15.3.
   - LoopNegativeRateBackwardWrap: Tests backwards looping with negative
     playbackRate, including boundary wrap back to loopEnd.
   - LoopingUnalignedBufferFractionalLoopEndInterpolation: Tests
     fractional loopEnd interpolation.
   - DISABLED_LoopingUnalignedBufferPrecision: Reproduction of
     bug 553218226, to be re-enabled in Part 2.
   - DISABLED_LoopingUnalignedBufferExplicitLoopEnd: Tests explicit
     loopEnd = buffer.duration, to be re-enabled in Part 2.
   - DISABLED_LoopingGranularityWrapPrecision: Granularity matrix
     reproduction in AudioBufferSourceGranularityTest, to be
     re-enabled in Part 2.
   - DISABLED_VaryingRatesInterpolatedWrapPrecision: Rate 0.5 wrap
     reproduction, to be re-enabled in Part 2.

TAG=agy
CONV=dcf17c2a-023a-4313-a7d5-deba45eca250

Bug: 553218226
Test: external/wpt/webaudio/the-audio-api/the-audiobuffersourcenode-interface/audiobuffersource-loop-continuous.html
Test: out/Release/blink_unittests --gtest_filter="*AudioBufferSource*"
Change-Id: I4262acd240362268b5a1dff20b8c6721e3c2d8bb
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8333135
Reviewed-by: Michael Wilson <mjwilson@chromium.org>
Commit-Queue: Mahesh Kannan <kmaheshb@google.com>
Cr-Commit-Position: refs/heads/main@{#1694250}

--

wpt-commits: 9eac876da93ec14a01a1633087c15d4430330013
wpt-pr: 62482
2026-09-11 14:48:45 +00:00
Sam Sneddon a31d9a717c Bug 2060691 [wpt PR 61730] - Fix Android Emulator install/startup on macOS, a=testonly
Automatic update from web-platform-tests
Drop unneeded logging.basicConfig() calls, already handled within wpt.py

--
Raise on HTTP errors when downloading Android SDK cmdline-tools

download_and_extract() never checked the HTTP status code, so a 404
(or any other error) response body was written to disk and handed to
unzip, producing an opaque "End-of-central-directory signature not
found" failure instead of the actual cause.

--
Fix macOS Android SDK cmdline-tools download using wrong OS tag

`platform.system().lower()` returns "darwin" on macOS, matching the
supported OS check, but then the actual tag matching used "macosx",
causing it to silently fall through to the Linux cmdline-tools zip. To
avoid this, we rearrange the conditions to make the unsupported
platform error the fallback and not a separate branch.

The tag, had it ever been returned, was also wrong: the pinned
cmdline-tools version uses "mac".

--
Fix Android emulator setup crashing when ANDROID_USER_HOME is set

android.py previously set ANDROID_SDK_HOME, intending it as "the SDK
is installed here", but that isn't what it is: ANDROID_SDK_HOME is the
legacy (Android Studio <= 4.3) variable for the prefs/AVD root, not
the SDK install location.

This becomes even worse if ANDROID_USER_HOME is set in the user's
environemnt: if ANDROID_USER_HOME and ANDROID_SDK_HOME are both set
but point at different paths, avdmanager ends up outputting the
confusing and hard to action message "Can't locate Android SDK
installation directory for the AVD .ini file".

Thus, all we need to actually do is set ANDROID_SDK_ROOT, the variable
that actually means what its name suggests.

--
Pre-create the AVD directory before running avdmanager create avd

avdmanager only honors ANDROID_AVD_HOME as the AVD directory if that
directory already exists on disk, thus the the AVD lands somewhere
android.py does not expect, leading to start-android-emulator being
unable to find it.

--
Install a native arm64 Android image on arm64 hosts

Normalize CPU arch names to match canonical forms expected by
mozrunner and the Android emulator; mozrunner expects Firefox's
canonical build-config CPU name, and on macOS where uname returns
"arm64" and not "aarch64" it fell through to the 32-bit "arm" AVD.

The Android emulator's QEMU2 backend requires the AVD system image to
match the host architecture, thus we also add and install
AVD_MANIFEST_ARM64 (arm64-v8a system image, mozemulator-arm64 AVD) on
arm64 hosts instead.

--

wpt-commits: ed83091d791ef609b6aee574ebdf3c5a9e88409a, fd0a3fddff8490663c62b96c4cc37c08691ced24, 006e8ac86a1f56c5280eb31beb03952fc328491e, 2c53cd1bd03686cef080cdfc46c966e15869e782, 703cb532d9edd1637ceb03b7fc7c12420206c788, a7a7685c5c075830b999e1d0cd1277902abe4c0f
wpt-pr: 61730
2026-09-11 14:48:43 +00:00
Sam Sneddon 9a9eabcced Bug 1977508 [wpt PR 53779] - Fix #51279: HTTP/2 port should be configured like any other port, a=testonly
Automatic update from web-platform-tests
Fix #51279: HTTP/2 port should be configured like any other port

This makes HTTP/2's port configuration comparable to the WebTransport
over HTTP/3 server, while still obeying the command line flags.

--

wpt-commits: 28c0e0b8a87f9d9775a3adef3ba596a30a47b98b
wpt-pr: 53779
2026-09-11 14:48:41 +00:00
Euclid Ye ab36e4cb66 Bug 2070646 [wpt PR 62513] - wpt: Make more touch-action pointerevents tests work under 800x600, a=testonly
Automatic update from web-platform-tests
make more pointerevents `touch-action` tests work with 800x600

Signed-off-by: Euclid Ye <yezhizhenjiakang@gmail.com>

--

wpt-commits: 0f3d7adfe0b0f8cebd7e911363f8810aec2a133b
wpt-pr: 62513
2026-09-11 14:48:38 +00:00
moz-wptsync-bot f75f90027b Bug 2070643 [wpt PR 62537] - Update wpt metadata, a=testonly
wpt-pr: 62537
wpt-type: metadata
2026-09-11 14:48:36 +00:00
David Liu ac5e05c155 Bug 2070643 [wpt PR 62537] - [css] Add 'before' keyword to scroll-snap-stop, a=testonly
Automatic update from web-platform-tests
[css] Add 'before' keyword to scroll-snap-stop

Add the 'before' keyword to the 'scroll-snap-stop' property, guarded by
the CSSScrollSnapStopBefore runtime enabled feature.

Also update CSSParserFastPaths to recognize 'before' when the runtime
flag is enabled, and add a tentative web platform test for parsing.

Bug: 556233544
Change-Id: I5b14ebc68dfac83594373266f4e1c51e989553e4
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8344868
Reviewed-by: Robert Flack <flackr@chromium.org>
Reviewed-by: Vladimir Levin <vmpstr@chromium.org>
Commit-Queue: David Liu <lcdavid@google.com>
Cr-Commit-Position: refs/heads/main@{#1694180}

--

wpt-commits: 4b2491428345116c0b4d94c5cb6b1467a1f31b81
wpt-pr: 62537
2026-09-11 14:48:34 +00:00
Mason Freed 2f200b82da Bug 2070640 [wpt PR 62539] - Fix flaky combined interest/command invoker web tests, a=testonly
Automatic update from web-platform-tests
Fix flaky combined interest/command invoker web tests

In interestfor-command-invoker and menubar-interest-command-invoker, an
invoker element with both interestfor and command=toggle-popover was
configured with interest-delay: 100ms. When clickOn() runs in automated
tests, it first dispatches pointer moves over the element. If the
action sequence takes more than 100ms before dispatching the
pointerdown/up actions, the start delay expired and opens the popover
via interest. The subsequent click event triggered the toggle-popover
command on the already-open popover, toggling it closed and causing the
assertion to fail.

The tests only need the end delay (interest-delay-end) to be short to
quickly verify that loss of interest does not close a popover opened
via command. Fix this by setting interest-delay to "1000s 100ms",
providing a large start delay while preserving the 100ms end delay.

Fixed: 557681063, 558137248
Change-Id: I827cab079c8da5c267c0a41157af4eba4a1e9ab0
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8373386
Commit-Queue: Mason Freed <masonf@chromium.org>
Auto-Submit: Mason Freed <masonf@chromium.org>
Reviewed-by: David Grogan <dgrogan@chromium.org>
Commit-Queue: David Grogan <dgrogan@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1694179}

--

wpt-commits: 9386f5829dfcaa0988dad8c4e4813b5012ff4f4a
wpt-pr: 62539
2026-09-11 14:48:32 +00:00
moz-wptsync-bot e2e5f448ae Bug 2070638 [wpt PR 62538] - Update wpt metadata, a=testonly
wpt-pr: 62538
wpt-type: metadata
2026-09-11 14:48:30 +00:00
Alison Maher ed7b9aef51 Bug 2070638 [wpt PR 62538] - [Masonry] Support row spanner fragmentation, a=testonly
Automatic update from web-platform-tests
[Masonry] Support row spanner fragmentation

Row spanners mostly already worked since they are only laid out in the
first lane they start in, and unlike columns, don't impact breaks in
subsequent rows.

However, row grid-lanes fragmentation used the immediately preceding
physical lane to determine whether a later row should wait for the next
fragmentainer. A row spanner adds non-start entries to every row it
covers, so that lane may appear complete even while the spanner's owning
lane still has a continuation.

Track completion only for items that start in each lane, and use the
previously processed lane when deciding whether an existing continuation
will resume later rows. This keeps row spanners associated with their
first row while allowing independent items in later rows to be processed
when their tracks begin in the current fragmentainer.

Bug: 343257585
Change-Id: I984981d27098ab42eecd7ea5df63623a04c3dbe9
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8352700
Commit-Queue: Alison Maher <almaher@microsoft.com>
Reviewed-by: Morten Stenshorne <mstensho@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1694076}

--

wpt-commits: 7ae93982098471da9c37a180dde9968166aa1a18
wpt-pr: 62538
2026-09-11 14:48:28 +00:00
moz-wptsync-bot 6881cfae85 Bug 2070635 [wpt PR 62529] - Update wpt metadata, a=testonly
wpt-pr: 62529
wpt-type: metadata
2026-09-11 14:48:26 +00:00
Noam Rosenthal bd7acb1349 Bug 2070635 [wpt PR 62529] - [parser] Store stable element identity in adoption agency Bookmark, a=testonly
Automatic update from web-platform-tests
[parser] Store stable element identity in adoption agency Bookmark

Previously, HTMLFormattingElementList::Bookmark stored a raw interior
Entry* pointer into the HeapVector<Entry> entries_ buffer.
During HTMLTreeBuilder::CallTheAdoptionAgency(), DOM operations (such
as reparenting the furthest-block in step 4.14) can synchronously
dispatch events when subtrees are detached, notably the pagehide event
on an iframe. An event listener could then call document.write(),
re-entering the parser and appending to active formatting elements.
This would reallocate the HeapVector and leave the Bookmark's raw
interior pointer dangling, leading to a UAF / use-after-poison write
when SwapTo() resumes.
This CL fixes the issue by:
1. Changing Bookmark to store a stable Element* reference instead of
   an interior Entry* pointer into HeapVector storage.
2. Updating SwapTo() to resolve elements dynamically via ReverseFind(),
   failing closed safely if re-entrant script cleared or modified the
   list.
3. Removing the step 4.13.4 bookmark-regeneration workaround that
   existed purely to work around Entry* vector shifts.
4. Validating that formatting_element and furthest_block remain in
   OpenElements() after step 4.14 DOM insertion before continuing.
5. Adding a regression crashtest for re-entrant document.write() via
   iframe pagehide.

Fixed: 557729858
Change-Id: I337a48aa7c0ad1d7fc0c08380b7df4864cb1cc39
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8363808
Reviewed-by: Mason Freed <masonf@chromium.org>
Commit-Queue: Noam Rosenthal <nrosenthal@google.com>
Cr-Commit-Position: refs/heads/main@{#1693910}

--

wpt-commits: 7108d5cc4493efb6dc8c6b82fc3d91589e0ba9e6
wpt-pr: 62529
2026-09-11 14:48:24 +00:00
moz-wptsync-bot 07fba7c28d Bug 2070631 [wpt PR 62469] - Update wpt metadata, a=testonly
wpt-pr: 62469
wpt-type: metadata
2026-09-11 14:48:22 +00:00
Celeste Pan bed7bb8a3a Bug 2070631 [wpt PR 62469] - [Align] Parse flow-start and flow-end keyword, a=testonly
Automatic update from web-platform-tests
[Align] Parse `flow-start` and `flow-end` keyword

Parse the `flow-start` and `flow-end` keywords and ensure that they
evaluate to the same value as `start` and `end` when no placement
reversals are applied. The change is gated behind a separate flag from
grid lanes, since it will apply to all layout modes. We decided we
wanted those keywords in the resolution of this CSSWG issue [1].

A follow-up change will be needed to implement and test `flow-start` and
`flow-end` when `fill-reverse` and `track-reverse` are applied, as well
as for using the `kFlowStart/End` keyword in the code instead of
`kFlexStart/End`.

Copies of tests were added in both the `css-flex` and `css-align`
folders.

[1] https://github.com/w3c/csswg-drafts/issues/14052

Bug: 343257585, 555299635
Change-Id: I5dc0707fbcfeff3674d1884aaf38afa1c9e860fa
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8307932
Reviewed-by: Alison Maher <almaher@microsoft.com>
Commit-Queue: Celeste Pan <celestepan@microsoft.com>
Cr-Commit-Position: refs/heads/main@{#1693943}

--

wpt-commits: 272061587f284327e2f620b29c6444e7a193f628
wpt-pr: 62469
2026-09-11 14:48:20 +00:00
Ho Cheung 87fce733e5 Bug 2070628 [wpt PR 62535] - Reland "Fix WebAssembly.Module messaging with AudioWorklet", a=testonly
Automatic update from web-platform-tests
Reland "Fix WebAssembly.Module messaging with AudioWorklet"

This reverts commit 6e3202a1d816a4e5e156bdf9bd0fd0244ba65892.

Reason for revert: Fix Wasm attachment loss in component-build tests.

Original change's description:
> Revert "Fix WebAssembly.Module messaging with AudioWorklet"
>
> This reverts commit 4b8042b1960f0fdc9eafb3ace18fb951628bb8c3.
>
> Reason for revert: Causing CI failure
>
> Failure Link: https://ci.chromium.org/ui/p/chromium/builders/ci/Win10%20Tests%20x64%20(dbg)/55231/overview
>
> Original change's description:
> > Fix WebAssembly.Module messaging with AudioWorklet
> >
> > Worklets have opaque origins but share their creator's agent cluster.
> > Use the creator document's origin for Chromium's additional same-origin
> > check when an AudioWorklet message requires it only for WebAssembly
> > modules.
> >
> > Keep strict same-origin checks for File System Access handles, including
> > mixed messages, and retain the agent-cluster check. Add WPT and unit
> > coverage for the global and processor ports and rejection cases.
> >
> > Bug: 40210558
> > Change-Id: I556705cbd7491eec71e7e6a060eada9b77ace87d
> > Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8334848
> > Reviewed-by: Hongchan Choi <hongchan@chromium.org>
> > Commit-Queue: Aaron Teo <hocheung@chromium.org>
> > Reviewed-by: Jeremy Roman <jbroman@chromium.org>
> > Cr-Commit-Position: refs/heads/main@{#1692867}
>
> Bug: 40210558
> Change-Id: I8920bffbd1ccb61564c7a312eb18a98da47a4654
> Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8365744
> Owners-Override: Jiacheng Guo <gjc@google.com>
> Bot-Commit: rubber-stamper@appspot.gserviceaccount.com <rubber-stamper@appspot.gserviceaccount.com>
> Commit-Queue: Jiacheng Guo <gjc@google.com>
> Cr-Commit-Position: refs/heads/main@{#1693158}

Bug: 40210558
Change-Id: If77a370294b719823627b9d24d44809f4414e526
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8364650
Reviewed-by: Jeremy Roman <jbroman@chromium.org>
Commit-Queue: Aaron Teo <hocheung@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1693925}

--

wpt-commits: da984a3bceec321e72a1fe53e44145fc7c7d34d4
wpt-pr: 62535
2026-09-11 14:48:18 +00:00
Johann Hofmann 566ff02dfd Bug 2070623 [wpt PR 62532] - Delete Top-Level Storage Access API Web Platform Tests, a=testonly
Automatic update from web-platform-tests
Delete Top-Level Storage Access API Web Platform Tests

Following the deprecation and removal of document.requestStorageAccessFor
(crrev.com/c/8261139), this CL removes the obsolete Web Platform Tests
and associated test expectations and filter entries:

- Delete external/wpt/top-level-storage-access-api/
- Delete external/wpt/html/anonymous-iframe/requestStorageAccessFor.tentative.https.window.js
- Clean up skip entries in NeverFixTests
- Clean up entries in TestLists/chrome.filter and TestLists/rel-ready.blink_wpt_tests.filter
- Clean up entries in FlagExpectations/surface-embed

Bug: 551997654
TAG=agy

Change-Id: I21dbea5c42678c9cb00e98119db11e747fb29239
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8361509
Auto-Submit: Johann Hofmann <johannhof@chromium.org>
Commit-Queue: Chris Fredrickson <cfredric@chromium.org>
Reviewed-by: Chris Fredrickson <cfredric@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1693930}

--

wpt-commits: b46e71b2f22c73fbcecaf26009e3082fddbaa744
wpt-pr: 62532
2026-09-11 14:48:16 +00:00
moz-wptsync-bot 51428e2b7c Bug 2070618 [wpt PR 62530] - Update wpt metadata, a=testonly
wpt-pr: 62530
wpt-type: metadata
2026-09-11 14:48:14 +00:00
Noam Rosenthal 415b5266c8 Bug 2070618 [wpt PR 62530] - Changed TrustedParserOptions to an empty TrustedHTMLParserOptions, a=testonly
Automatic update from web-platform-tests
Changed TrustedParserOptions to an empty TrustedHTMLParserOptions

As part of recent spec review.

R=vogelheim

Bug: 491743369
Change-Id: Ia03a2b1e27b40684d60f673036a4f4914c93ed16
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8361511
Commit-Queue: Mike Taylor <miketaylr@chromium.org>
Auto-Submit: Noam Rosenthal <nrosenthal@google.com>
Reviewed-by: Mason Freed <masonf@chromium.org>
Reviewed-by: Mike Taylor <miketaylr@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1693835}

--

wpt-commits: 1fad8a9882fb980dbcf9b997a899adf7b465c386
wpt-pr: 62530
2026-09-11 14:48:12 +00:00
Adam Page fa13dbaaa9 Bug 1873378 [wpt PR 43874] - Add tests for invalidly nested heading nodes, a=testonly
Automatic update from web-platform-tests
Add tests for invalidly nested heading nodes (#43874)

* add nested heading tests
* add parity checks for parsing error correction and accname accumulations
* reset aria-utils and relocate heading-related functions
* refactor ancestor role tests to check computed role
* reorganize tests to ease parity comparisons
* identify test as tentative
* add new subtest for heading impostors
* move failing subtests into tentative test
* replicate passing subtests back into main test
* remove tentative test
--

wpt-commits: 0dc7683798d856f39fe0ade75300e4d64929a1ea
wpt-pr: 43874
2026-09-11 14:48:10 +00:00
moz-wptsync-bot 9530dfc1b4 Bug 2070610 [wpt PR 62527] - Update wpt metadata, a=testonly
wpt-pr: 62527
wpt-type: metadata
2026-09-11 14:48:08 +00:00
Seokho Song a2f8d26092 Bug 2070610 [wpt PR 62527] - Store container selector cache in ContainerQueryList, a=testonly
Automatic update from web-platform-tests
Store container selector cache in ContainerQueryList

The selector cache maps each container selector to its resolved
container element, reducing container lookup from O(N) in tree
depth to O(1) once the cache is set.

Hold the cache on each ContainerQueryList instance and use it when
evaluating the query list. The cache is not used while the element
is in a display:none subtree.

Invalidate the cache when the resolved container may change:
- A style change affects container query evaluation
  (DiffAffectsContainerQueries). This bumps a controller cache
  generation, invalidating all caches.
- The element's layout tree is detached. This invalidates the caches
  of the lists on that element.

A local microbenchmark reading matches on 500 lists under a 1000-deep
ancestor chain:

---Before---

Time:
avg 8.175000011920929 ms
median 8.149999976158142 ms
stdev 0.19432745050615563 ms
min 7.800000071525574 ms
max 8.600000023841858 ms

---After---

Time:
avg 1.0600000083446501 ms
median 1.0499999523162842 ms
stdev 0.1698296159003472 ms
min 0.8999999761581421 ms
max 1.6999999284744263 ms

Bug: 40887402
Change-Id: I38d4be957c61067d615046dddc41487fa97c7d1a
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8255022
Commit-Queue: Seokho Song <seokho@chromium.org>
Reviewed-by: Rune Lillesveen <futhark@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1693827}

--

wpt-commits: 7926f3ca1cd9f7f1df88db0bb0cee14f278a559b
wpt-pr: 62527
2026-09-11 14:48:06 +00:00
Takashi Toyoshima e49341649a Bug 2070607 [wpt PR 62515] - OOR-CORS: Avoid CorsURLLoader restart on redirect, a=testonly
Automatic update from web-platform-tests
OOR-CORS: Avoid CorsURLLoader restart on redirect

CorsURLLoader previously restarted requests from scratch via
StartRequest() on redirects requiring CORS or preflights. This destroyed
the underlying URLRequest redirect history, causing Fetch Metadata
headers (e.g. Sec-Fetch-Site) to be incorrectly computed.

This CL introduces base::Feature kAvoidCorsURLLoaderRestartOnRedirect
(enabled by default) to handle redirects in-place via
network_loader_->FollowRedirect() and update headers directly. If a
redirect requires a CORS preflight, CorsURLLoader runs the preflight
asynchronously without tearing down the active loader.

Key changes:
- In-place redirect and preflight handling in CorsURLLoader under
  kAvoidCorsURLLoaderRestartOnRedirect.
- Strict validation of redirected URLs and origin permissions via
  OriginAccessList for credentials and client certificates.
- WHATWG Fetch compliant credential handling across cross-origin
  redirects.
- Parameterized test coverage for both in-place and legacy restart
  paths.

Bug: 513518289
Change-Id: Ic250535f64bf316df656d6cbe29e27cdbac7272a
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8278433
Reviewed-by: Kenichi Ishibashi <bashi@chromium.org>
Commit-Queue: Takashi Toyoshima <toyoshim@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1693621}

--

wpt-commits: cbe79fa305818bc3adc21500db2ded241c887aee
wpt-pr: 62515
2026-09-11 14:48:04 +00:00
Helmut Januschka fd38fde73b Bug 2070605 [wpt PR 62510] - Roll jxl: 0.6.0 => 0.7.1 in //third_party/rust, a=testonly
Automatic update from web-platform-tests
Roll jxl: 0.6.0 => 0.7.1 in //third_party/rust

This CL has been created semi-automatically. The expected review process
and other details can be found at //tools/crates/create_update_cl.md.

Updated crates:

* jxl: 0.6.0 => 0.7.1; https://docs.rs/crate/jxl/0.7.1
* jxl_macros: 0.6.0 => 0.7.1;
  https://docs.rs/crate/jxl_macros/0.7.1
* jxl_simd: 0.6.0 => 0.7.1;
  https://docs.rs/crate/jxl_simd/0.7.1
* jxl_transforms: 0.6.0 => 0.7.1;
  https://docs.rs/crate/jxl_transforms/0.7.1

Update the Chromium integration for the 0.7 API changes, including
thread-count reporting, ordered parallel task scheduling, fallible
pixel-format setup, and the new dithering table input. Update affected
JPEG XL progressive web test tolerances.

Version 0.7.1 includes https://github.com/libjxl/jxl-rs/pull/947, which
moves large static data behind boxes to avoid a binary size regression.

Bug: None
Change-Id: Ida280ae6f3d5b1050175af2d18ac22a68fd3448a
Binary-Size: Size increase is unavoidable
Fuchsia-Binary-Size: Size increase is unavoidable.
Disable-Rts: True
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8366384
Reviewed-by: Luca Versari <veluca@google.com>
Reviewed-by: Kent Tamura <tkent@chromium.org>
SLSA-Policy-Verified: SLSA Policy Verification Service <devtools-gerritcodereview-exitgate@google.com>
Commit-Queue: Helmut Januschka <helmut@januschka.com>
Reviewed-by: Łukasz Anforowicz <lukasza@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1693573}

--

wpt-commits: a5efc221a1f71f22df7e6e61c5531e93e8589e5d
wpt-pr: 62510
2026-09-11 14:48:01 +00:00
Hyowon Kim e012e6ebfd Bug 2070603 [wpt PR 62509] - Stabilize text-combine-upright-compression reftests, a=testonly
Automatic update from web-platform-tests
Stabilize text-combine-upright-compression reftests

These tests use a custom font. The screenshot was taken before the font
finished loading, so the page first rendered with a fallback font.
This CL adds reftest-wait so the screenshot waits until the font is
ready. A small 1px difference still remains, so this also adds a fuzzy
match.

Bug: 40527323
Change-Id: I58c2400e868b40cb3d25e770ccc62e090f365c9a
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8357089
Commit-Queue: Hyowon Kim <hyowon@igalia.com>
Reviewed-by: Koji Ishii <kojii@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1693486}

--

wpt-commits: 28380411f7ec46e8c2e5e4f8c603c51188aeeddd
wpt-pr: 62509
2026-09-11 14:47:59 +00:00
Jason Leo e6493d2ad0 Bug 2070558 [wpt PR 62508] - Require an explicit alpha argument in CSS alpha(), a=testonly
Automatic update from web-platform-tests
Require an explicit alpha argument in CSS alpha()

Follow the CSSWG resolution [1], with a stable runtime flag for rollback.

[1]: https://github.com/w3c/csswg-drafts/issues/14070#issuecomment-5202934726

Bug: 543376113
Change-Id: I6006309440c0ae96a85bcea89d1ac611115498ea
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8361849
Reviewed-by: Rune Lillesveen <futhark@chromium.org>
Commit-Queue: Jason Leo <cgqaq@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1693478}

--

wpt-commits: 1e1d8dd80740aabb3add63644a768b3ebd9b12de
wpt-pr: 62508
2026-09-11 14:47:57 +00:00
Adam Rice 6b600d3979 Bug 2070553 [wpt PR 62497] - Check is_shutting_down_ in PipeToEngine::ReadRequestChunkStepsBody, a=testonly
Automatic update from web-platform-tests
Check is_shutting_down_ in PipeToEngine::ReadRequestChunkStepsBody

When a WritableStream errors during pipeTo with preventCancel: true,
WritableError schedules a microtask that shuts down the pipe and
releases the writer lock. If a chunk is enqueued to the ReadableStream
in the same tick, ReadRequestChunkStepsBody runs in a subsequent
microtask. Without checking is_shutting_down_, it attempts to write to
the released writer, triggering a CHECK(stream) crash.

Bail out early from ReadRequestChunkStepsBody if is_shutting_down_ is
true, matching the Streams Standard requirement that no writes be
initiated after shutdown has begun.

TAG=agy
CONV=ed3e939c-7110-4854-b07e-e1c1faad30db

Bug: 556160930
Change-Id: Ic86ca5f52534e349076c8dfde93a70524439f958
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8351108
Reviewed-by: Nidhi Jaju <nidhijaju@chromium.org>
Commit-Queue: Adam Rice <ricea@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1693472}

--

wpt-commits: 27c8d8bee624b851f2ab7cd6c32ad07fc19f3007
wpt-pr: 62497
2026-09-11 14:47:55 +00:00
moz-wptsync-bot fca1c39e12 Bug 2070548 [wpt PR 62507] - Update wpt metadata, a=testonly
wpt-pr: 62507
wpt-type: metadata
2026-09-11 14:47:53 +00:00
Thomas Nguyen ac8d270d48 Bug 2070548 [wpt PR 62507] - [CE[ Use HasTagName for tag checks in HTMLCapabilityElementBase, a=testonly
Automatic update from web-platform-tests
[CE[ Use HasTagName for tag checks in HTMLCapabilityElementBase

HTML elements created with an XML namespace prefix (such as via
createElementNS) retain a prefix in their QualifiedName. Direct equality
comparisons using TagQName() == html_names::kInstallTag evaluate to
false due to the prefix difference, preventing tag-specific logic from
matching.
Replace direct QualifiedName comparisons with HasTagName() across
HTMLCapabilityElementBase. This ensures subframe and sandbox state
validation correctly handles prefixed install elements.

Fixed: 517366426
Change-Id: Ib1a96940975207c5d23ec789745d0fdc7e8f9550
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8364205
Reviewed-by: Rune Lillesveen <futhark@chromium.org>
Commit-Queue: Thomas Nguyen <tungnh@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1693416}

--

wpt-commits: cb3918a1725342ff9e0876558383723833ee6e5b
wpt-pr: 62507
2026-09-11 14:47:51 +00:00
moz-wptsync-bot f4aa850cfa Bug 2070546 [wpt PR 62477] - Update wpt metadata, a=testonly
wpt-pr: 62477
wpt-type: metadata
2026-09-11 14:47:49 +00:00
Daniel Vogelheim 0baecbd39c Bug 2070546 [wpt PR 62477] - [Sanitizer] Fix initialization of default PI allow/remove lists., a=testonly
Automatic update from web-platform-tests
[Sanitizer] Fix initialization of default PI allow/remove lists.

Observe the |allowCommentsPIsAndDataAttributes| flag when initializing
a Sanitizer config with neither allow- nor remove-lists for PIs.

Also fix the test case which had malformed test data. This caused the
test to silently fail and hide the bug.

Ref: https://html.spec.whatwg.org/multipage/dynamic-markup-insertion.html#canonicalize-the-configuration, step 3.*

Fix: 556213916
Change-Id: I80950f53de418f4d2478dfc795fa7364d1435c08
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8352664
Commit-Queue: Daniel Vogelheim <vogelheim@chromium.org>
Reviewed-by: Noam Rosenthal <nrosenthal@google.com>
Cr-Commit-Position: refs/heads/main@{#1693355}

--

wpt-commits: 47287651c23621ce276cae0dc1a437ab705fb92a
wpt-pr: 62477
2026-09-11 14:47:47 +00:00
Thomas Nguyen 567fd48e8d Bug 2070543 [wpt PR 62506] - [PEPC] Disallow container-type, container-name, and contain-intrinsic*, a=testonly
Automatic update from web-platform-tests
[PEPC] Disallow container-type, container-name, and contain-intrinsic*

container-type: size enables size containment, which causes the
element's fit-content width to resolve from contain-intrinsic-width
instead of the user-agent controlled shadow-DOM label. The width bounds
applied in AdjustStyle() are expressed as calc-size(fit-content, k *
size), so an author-supplied intrinsic width can replace the label width
those bounds are meant to track, allowing clickjacking boundaries to be
bypassed.
Since contain is already disallowed, remove
valid_for_permission_element: true from container-type, container-name,
and contain-intrinsic-* (width, height, inline-size, block-size, size)
as well.

Fixed: 514061289
Change-Id: I09daff39d72a39da4ebe687bd33b0a9d37fae9dc
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8363545
Reviewed-by: Rune Lillesveen <futhark@chromium.org>
Commit-Queue: Thomas Nguyen <tungnh@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1693346}

--

wpt-commits: 6a9ec55672f8bdda04f8ae619d52c2f798ab9eeb
wpt-pr: 62506
2026-09-11 14:47:45 +00:00
Jiacheng Guo 6693270407 Bug 2070542 [wpt PR 62499] - Revert "Fix WebAssembly.Module messaging with AudioWorklet", a=testonly
Automatic update from web-platform-tests
Revert "Fix WebAssembly.Module messaging with AudioWorklet"

This reverts commit 4b8042b1960f0fdc9eafb3ace18fb951628bb8c3.

Reason for revert: Causing CI failure

Failure Link: https://ci.chromium.org/ui/p/chromium/builders/ci/Win10%20Tests%20x64%20(dbg)/55231/overview

Original change's description:
> Fix WebAssembly.Module messaging with AudioWorklet
>
> Worklets have opaque origins but share their creator's agent cluster.
> Use the creator document's origin for Chromium's additional same-origin
> check when an AudioWorklet message requires it only for WebAssembly
> modules.
>
> Keep strict same-origin checks for File System Access handles, including
> mixed messages, and retain the agent-cluster check. Add WPT and unit
> coverage for the global and processor ports and rejection cases.
>
> Bug: 40210558
> Change-Id: I556705cbd7491eec71e7e6a060eada9b77ace87d
> Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8334848
> Reviewed-by: Hongchan Choi <hongchan@chromium.org>
> Commit-Queue: Aaron Teo <hocheung@chromium.org>
> Reviewed-by: Jeremy Roman <jbroman@chromium.org>
> Cr-Commit-Position: refs/heads/main@{#1692867}

Bug: 40210558
Change-Id: I8920bffbd1ccb61564c7a312eb18a98da47a4654
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8365744
Owners-Override: Jiacheng Guo <gjc@google.com>
Bot-Commit: rubber-stamper@appspot.gserviceaccount.com <rubber-stamper@appspot.gserviceaccount.com>
Commit-Queue: Jiacheng Guo <gjc@google.com>
Cr-Commit-Position: refs/heads/main@{#1693158}

--

wpt-commits: 0312887a72b0592da8fa7a2244256e5da96d5e30
wpt-pr: 62499
2026-09-11 14:47:43 +00:00
moz-wptsync-bot 10759d068d Bug 2070541 [wpt PR 62494] - Update wpt metadata, a=testonly
wpt-pr: 62494
wpt-type: metadata
2026-09-11 14:47:41 +00:00
Felipe Erias 59ec4a319d Bug 2070541 [wpt PR 62494] - [CSS] Handle color-mix() and palette-mix() percentages adding up to zero, a=testonly
Automatic update from web-platform-tests
[CSS] Handle color-mix() and palette-mix() percentages adding up to zero

When the two percentages of color-mix() add up to zero, CSS Color 5
specifies a progress percentage of 0.5 and an alpha multiplier of 0,
so the result is transparent.

https://www.w3.org/TR/css-color-5/#color-mix-result
https://github.com/w3c/csswg-drafts/issues/14013

CSS Fonts 4 applies the same rules to palette-mix().

https://www.w3.org/TR/css-fonts-4/#font-palette-prop

Blink rejected color-mix() and palette-mix() at parse time when both
percentages were literally `0%`. When the zero sum came from calc()
instead, the values parsed but percentage normalization reported
failure. Then color-mix() went on with a progress percentage of 0,
and palette-mix() was replaced by the normal palette, as if the value
had not been specified.

Remove the parse-time rejection. Make
CSSColorMixValue::NormalizePercentages() always produce a progress
percentage and an alpha multiplier, using 0.5 and 0 for a zero sum. Keep
a palette mix with equal endpoints when the alpha multiplier is not 1,
as collapsing it into a single palette would drop the multiplier.

Tests:
  external/wpt/css/css-color/parsing/color-valid-color-mix-function.html
  external/wpt/css/css-color/parsing/color-computed-color-mix-function.html
  StyleBuilderConverterTest.ResolveColorValue_ZeroCombinedPercentage
  StyleBuilderConverterPageTest.PaletteMix_ZeroCombinedPercentage

Bug: 445726759
Change-Id: I79682e00f313722a09f3a9a337aac4eabd0cb0c6
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8337347
Commit-Queue: Felipe Erias <felipeerias@igalia.com>
Reviewed-by: Anders Hartvoll Ruud <andruud@chromium.org>
Reviewed-by: Kevin Babbitt <kbabbitt@microsoft.com>
Reviewed-by: Rune Lillesveen <futhark@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1693091}

--

wpt-commits: 16cc06485392b22d0c96dc54d290480dfac2d695
wpt-pr: 62494
2026-09-11 14:47:39 +00:00
youennf 8d61d63e0f Bug 2070536 [wpt PR 62419] - WebKit export of https://bugs.webkit.org/show_bug.cgi?id=323290, a=testonly
Automatic update from web-platform-tests
WebKit export of https://bugs.webkit.org/show_bug.cgi?id=323290 (#62419)
--

wpt-commits: 94fb622d35cf4a979e99538a6e441068de93cb87
wpt-pr: 62419
2026-09-11 14:47:37 +00:00
moz-wptsync-bot a11d39d5b7 Bug 2065897 [wpt PR 62160] - Update wpt metadata, a=testonly
wpt-pr: 62160
wpt-type: metadata
2026-09-11 14:47:35 +00:00
Shannon Booth 28eefa27c8 Bug 2065897 [wpt PR 62160] - [webdriver] Test same-URL navigation replaces the current history entry, a=testonly
Automatic update from web-platform-tests
[webdriver] Test same-URL navigation replaces the current history entry

See https://github.com/whatwg/html/pull/12824
--

wpt-commits: e6d42a5ffcc6d6a4f66401ecaadd21f2c688ddbe
wpt-pr: 62160
2026-09-11 14:47:33 +00:00
Anne van Kesteren 2c6f75449b Bug 2070331 [wpt PR 62512] - Test an SVG image with a height of 0 and no width, a=testonly
Automatic update from web-platform-tests
Test an SVG image with a height of 0 and no width

See https://github.com/WebKit/WebKit/pull/73144.

--

wpt-commits: 92054a74d0c6a1ed2e9024d71ebf2880f2af02e2
wpt-pr: 62512
2026-09-11 14:47:31 +00:00
Psychpsyo (Cameron) 7f296bf960 Bug 2064811 [wpt PR 62056] - script: Prevent text editing commands from running in uneditable nodes., a=testonly
Automatic update from web-platform-tests
script: Prevent text editing commands from running in uneditable nodes.

Signed-off-by: Psychpsyo (Cameron) <60073468+Psychpsyo@users.noreply.github.com>

--

wpt-commits: 863077959ca8c1a7ceecfbe2534b75d2527b9013
wpt-pr: 62056
2026-09-11 14:47:29 +00:00
moz-wptsync-bot 47b62489d5 Bug 2070328 [wpt PR 62330] - Update wpt metadata, a=testonly
wpt-pr: 62330
wpt-type: metadata
2026-09-11 14:47:27 +00:00
mxmgorin ebe3478c40 Bug 2070328 [wpt PR 62330] - layout: Advance the containing block walk past boxless ancestors, a=testonly
Automatic update from web-platform-tests
layout: Advance the containing block walk past boxless ancestors

Signed-off-by: mxmgorin <102797145+mxmgorin@users.noreply.github.com>

--

wpt-commits: 7c028795db256ec4450cbafeb5752e03749b41d1
wpt-pr: 62330
2026-09-11 14:47:25 +00:00
moz-wptsync-bot 0c90e2fe26 Bug 2070323 [wpt PR 62416] - Update wpt metadata, a=testonly
wpt-pr: 62416
wpt-type: metadata
2026-09-11 14:47:23 +00:00
Josh Matthews 94eaaac747 Bug 2070323 [wpt PR 62416] - script: Return actual placeholder container element if it exists., a=testonly
Automatic update from web-platform-tests
script: Return actual placeholder container element if it exists.

Signed-off-by: Josh Matthews <josh@joshmatthews.net>

--

wpt-commits: 4e8c9d131c21e82e33547583336bded759c4a5bd
wpt-pr: 62416
2026-09-11 14:47:21 +00:00
Tim van der Lippe b5016bc532 Bug 2070318 [wpt PR 62432] - script: Fix crash when first child of head is selected for delete, a=testonly
Automatic update from web-platform-tests
script: Fix crash when first child of head is selected for delete

Fixes a crash observed when combined with keybinding support. This
is also tested in various ways in
`delete-in-child-of-head.tentative.html`, but requires quite a bit
of machinery. The new test is more straightforward and uses fewer
features, in line with WPT philosophy.

Part of #25005

Testing: new WPT crash test

Signed-off-by: Tim van der Lippe <tvanderlippe@gmail.com>

--

wpt-commits: 54a8e7cf9336b35f3153e04c10aa5586db69e2ee
wpt-pr: 62432
2026-09-11 14:47:19 +00:00
Euclid Ye a3f789a801 Bug 2070315 [wpt PR 62498] - wpt: Make a few touch-action pointerevents tests work under 800x600, a=testonly
Automatic update from web-platform-tests
make a few `touch-action` pointerevents tests work under 800x600

Signed-off-by: Euclid Ye <yezhizhenjiakang@gmail.com>

--

wpt-commits: 243110c04f0911a6dbaaac6f537780bd522641f3
wpt-pr: 62498
2026-09-11 14:47:17 +00:00
Noam Rosenthal 3e5adbc1e5 Bug 2070313 [wpt PR 62484] - Sanitizer: Assert that different calls don't modify the baseline configuration or each other, a=testonly
Automatic update from web-platform-tests
Add test to ensure that different calls don't modify the baseline configuration (#62484)
--

wpt-commits: 0968c868d8095217d18d86b34c7f21dccae58768
wpt-pr: 62484
2026-09-11 14:47:15 +00:00
moz-wptsync-bot cad78ef4a5 Bug 2070308 [wpt PR 62488] - Update wpt metadata, a=testonly
wpt-pr: 62488
wpt-type: metadata
2026-09-11 14:47:13 +00:00
Anne van Kesteren 9e7835dbea Bug 2070308 [wpt PR 62488] - Add parser tests for the form element pointer and template, a=testonly
Automatic update from web-platform-tests
Add parser tests for the form element pointer and template

See https://github.com/whatwg/html/issues/12257

--

wpt-commits: 17d68806f7be968ed38196f068db03fb3a5dff2a
wpt-pr: 62488
2026-09-11 14:47:11 +00:00
Anne van Kesteren 315ac3fa25 Bug 2070303 [wpt PR 62485] - Add parser tests for template and the frameset-ok flag, a=testonly
Automatic update from web-platform-tests
Add parser tests for template and the frameset-ok flag

See https://github.com/whatwg/html/issues/3178.

--

wpt-commits: bc92608bb08e48ca548ada1a31dbdcad71478b94
wpt-pr: 62485
2026-09-11 14:47:09 +00:00
Luke Warlow 9aa6fdd187 Bug 2039212 [wpt PR 59846] - Add idlharness tests for MathML, a=testonly
Automatic update from web-platform-tests
Add idlharness tests for MathML

--

wpt-commits: 728b4051657df658226709044d4b4408feeb1bd2
wpt-pr: 59846
2026-09-11 14:47:07 +00:00
wpt-pr-bot febd191ad3 Bug 2070293 [wpt PR 62490] - Update Test262 tests, a=testonly
Automatic update from web-platform-tests
Update Test262 tests

--

wpt-commits: f2666d25c2aa2e1a33cf553c0386c65482dbcdc9
wpt-pr: 62490
2026-09-11 14:47:04 +00:00
wpt-pr-bot 634c57bb57 Bug 2071004 [wpt PR 62489] - Update Wasm tests, a=testonly
Automatic update from web-platform-tests
Update Wasm tests (core)

--

wpt-commits: 820eb8f931dbfa2f188d6f55c6bc9e125ddc3312
wpt-pr: 62489
2026-09-11 14:47:03 +00:00
moz-wptsync-bot 1617f05ac4 Bug 2070286 [wpt PR 62495] - Update wpt metadata, a=testonly
wpt-pr: 62495
wpt-type: metadata
2026-09-11 14:47:00 +00:00
Ahmad Saleem a3f2466b14 Bug 2070286 [wpt PR 62495] - WebKit export of https://bugs.webkit.org/show_bug.cgi?id=197369, a=testonly
Automatic update from web-platform-tests
WebKit export of https://bugs.webkit.org/show_bug.cgi?id=197369 (#62495)
--

wpt-commits: b6f59abf99b066fe807c162a02bc2f7daaf01c4e
wpt-pr: 62495
2026-09-11 14:46:58 +00:00
Ahmad Saleem d8372b7f9b Bug 2070283 [wpt PR 62472] - WebKit export of https://bugs.webkit.org/show_bug.cgi?id=322109, a=testonly
Automatic update from web-platform-tests
WebKit export of https://bugs.webkit.org/show_bug.cgi?id=322109 (#62472)
--

wpt-commits: 671d5bcf0e06113a76f2afa2d9718bedd33e48e6
wpt-pr: 62472
2026-09-11 14:46:56 +00:00
Luke Warlow 480979ff8d Bug 2070279 [wpt PR 62424] - WebKit export of https://bugs.webkit.org/show_bug.cgi?id=320463, a=testonly
Automatic update from web-platform-tests
WebKit export of https://bugs.webkit.org/show_bug.cgi?id=320463

--

wpt-commits: a53926ac643a128435401793216d72e11a5928d7
wpt-pr: 62424
2026-09-11 14:46:54 +00:00
Ho Cheung de43376305 Bug 2070275 [wpt PR 62470] - Fix WebAssembly.Module messaging with AudioWorklet, a=testonly
Automatic update from web-platform-tests
Fix WebAssembly.Module messaging with AudioWorklet

Worklets have opaque origins but share their creator's agent cluster.
Use the creator document's origin for Chromium's additional same-origin
check when an AudioWorklet message requires it only for WebAssembly
modules.

Keep strict same-origin checks for File System Access handles, including
mixed messages, and retain the agent-cluster check. Add WPT and unit
coverage for the global and processor ports and rejection cases.

Bug: 40210558
Change-Id: I556705cbd7491eec71e7e6a060eada9b77ace87d
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8334848
Reviewed-by: Hongchan Choi <hongchan@chromium.org>
Commit-Queue: Aaron Teo <hocheung@chromium.org>
Reviewed-by: Jeremy Roman <jbroman@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1692867}

--

wpt-commits: b89af32bc8f42d678f444eb0703bca015ddcf240
wpt-pr: 62470
2026-09-11 14:46:52 +00:00
moz-wptsync-bot 091cd6acce Bug 2070273 [wpt PR 62479] - Update wpt metadata, a=testonly
wpt-pr: 62479
wpt-type: metadata
2026-09-11 14:46:50 +00:00
Ian Kilpatrick 9e2e41e113 Bug 2070273 [wpt PR 62479] - [layout] Don't compute borders for sections/rows., a=testonly
Automatic update from web-platform-tests
[layout] Don't compute borders for sections/rows.

Internal table elements (rows, row groups, header/footer groups)
shouldn't have borders on their fragments.

When an out-of-flow positioned descendant inside a fragmented context
queried the containing block's fragment borders, it would contract a
potentially 0-sized table row/section fragment by these borders,
resulting in a negative containing block size.

Fixed: 514535250
Change-Id: I04ff07e99380effdb5735b4a3e947bbf3588cf7b
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8355633
Reviewed-by: Alison Maher <almaher@microsoft.com>
Commit-Queue: Ian Kilpatrick <ikilpatrick@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1692857}

--

wpt-commits: b09f5cdca2bec4e3095a0dedc2e5d62102252de3
wpt-pr: 62479
2026-09-11 14:46:48 +00:00
Adam Rice c22ac0b081 Bug 2070269 [wpt PR 62454] - Add regression test for crbug.com/552159676, a=testonly
Automatic update from web-platform-tests
Add regression test for crbug.com/552159676

Add a web platform test that verifies that the expression `new
WebSocket(url, undefined, {})` does not throw.

The change https://crrev.com/c/8197225 changed the behavior of this
expression even though it was intended to preserve existing behavior
when the flag was not set. So the test is also added to the
virtual/stable configuration to stop the same regression happening
again.

Modify the "protocol_array" WebSocket handler to not crash when no
subprotocol is specified so that the test will still pass even with the
WebSocketOptionBag Blink feature enabled.

No behavior change.

BUG=552159676

Change-Id: Id83238ada57d5d48bf21880546fa86df19a3e3c9
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8317547
Reviewed-by: Dominic Farolino <dom@chromium.org>
Commit-Queue: Adam Rice <ricea@chromium.org>
Reviewed-by: Nidhi Jaju <nidhijaju@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1692775}

--

wpt-commits: e207ce80ef256418e5b6b3c7f184dc427d1d8575
wpt-pr: 62454
2026-09-11 14:46:46 +00:00
moz-wptsync-bot 5db842365b Bug 2070238 [wpt PR 62458] - Update wpt metadata, a=testonly
wpt-pr: 62458
wpt-type: metadata
2026-09-11 14:46:44 +00:00
Helmut Januschka dba344610b Bug 2070238 [wpt PR 62458] - Make coord-box offset-path follow corner-shape, a=testonly
Automatic update from web-platform-tests
Make coord-box offset-path follow corner-shape

ApplyMotionPathTransform() built the path for offset-path: border-box
(and other coord-box values) from a BasicShapeInset using only the
containing block's border-radius, so corner-shape was ignored and the
motion path always traced rounded corners. Build the path from
ContouredBorderGeometry::ContouredBorder() instead, which produces the
identical rounded-rect path when the corner curvature is round and the
contoured (bevel/scoop/notch/squircle) path otherwise, matching the
painted border contour.

Bug: 525581076
Change-Id: I91ab6bf2b122397b122e3223fd7fcf44a998aac3
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8346030
Commit-Queue: Helmut Januschka <helmut@januschka.com>
Reviewed-by: Noam Rosenthal <nrosenthal@google.com>
Auto-Submit: Helmut Januschka <helmut@januschka.com>
Cr-Commit-Position: refs/heads/main@{#1692754}

--

wpt-commits: eee69bd6491969fcbce67cf22f467ab9a5b285b1
wpt-pr: 62458
2026-09-11 14:46:42 +00:00
moz-wptsync-bot 9b1899ed83 Bug 2070234 [wpt PR 62478] - Update wpt metadata, a=testonly
wpt-pr: 62478
wpt-type: metadata
2026-09-11 14:46:40 +00:00
Philip Rogers 99c52bbc32 Bug 2070234 [wpt PR 62478] - [html-in-canvas] Fire paint events in reverse document order, a=testonly
Automatic update from web-platform-tests
[html-in-canvas] Fire paint events in reverse document order

Canvas paint events need to fire on descendant canvases before their
ancestors. The explainer has been updated to state that "`paint` events
fire in reverse document order, and in reverse tree order within each
document", and this patch implements this new behavior.

See: https://github.com/WICG/html-in-canvas/pull/164

Fixed: 556304549
Change-Id: I3d74eedb413d862cc35c7cc3c930de1f213898b9
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8351250
Reviewed-by: Stefan Zager <szager@chromium.org>
Commit-Queue: Stefan Zager <szager@chromium.org>
Auto-Submit: Philip Rogers <pdr@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1692750}

--

wpt-commits: bffb67c057d61153a89c2a6d76fd6f6a98fd00fb
wpt-pr: 62478
2026-09-11 14:46:38 +00:00
moz-wptsync-bot 0b03de0757 Bug 2070229 [wpt PR 62475] - Update wpt metadata, a=testonly
wpt-pr: 62475
wpt-type: metadata
2026-09-11 14:46:36 +00:00
Christopher Cameron 310fdf999c Bug 2070229 [wpt PR 62475] - Avoid precision loss when encoding linear float16 canvases, a=testonly
Automatic update from web-platform-tests
Avoid precision loss when encoding linear float16 canvases

When encoding images from a linear float16 canvas (using toBlob,
toDataURL, or convertToBlob), converting directly to 8-bit linear
integers produces quantization artifacts at dark values (e.g. an
sRGB-value gradient with 256 stops will only produce 183 unique output
values).

Add ImageEncoderUtils::GetColorInfoForEncoder to select an
appropriate non-linear encoding color space (sRGB transfer function)
when serializing linear float16 canvases, and ensure premultiplied alpha
is converted to unpremultiplied alpha upfront. Include a gfx::HDRMetadata
parameter which we can use, in the future, to select between sRGB and PQ.

Apply this conversion in CanvasAsyncBlobCreator and ImageDataBuffer's
StaticBitmapImage constructor. Log a warning in ImageDataBuffer(SkPixmap)
if callers higher in the stack have not already performed any necessary
conversion.

Add WPT tests for toBlob, toDataURL, and convertToBlob with both JPEG
and PNG formats across HTMLCanvasElement and OffscreenCanvas.

TAG=agy
CONV=6afb9a4e-b9e1-4c5a-9273-c80de68abad8

Bug: 454152417
Change-Id: Ifb6a25195e0cb39c80cabf00fab2ee39f6db8fcf
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8342747
Reviewed-by: Florin Malita <fmalita@chromium.org>
Commit-Queue: ccameron chromium <ccameron@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1692722}

--

wpt-commits: 9b965429d81f9f0eab13f47c20c0e6a4f88c67b3
wpt-pr: 62475
2026-09-11 14:46:34 +00:00
moz-wptsync-bot 6eefbc2381 Bug 2070226 [wpt PR 62473] - Update wpt metadata, a=testonly
wpt-pr: 62473
wpt-type: metadata
2026-09-11 14:46:32 +00:00
Mason Freed f1303090b2 Bug 2070226 [wpt PR 62473] - Do not close command-invoked popovers on loss of interest, a=testonly
Automatic update from web-platform-tests
Do not close command-invoked popovers on loss of interest

When an invoker has both command and interest invoker attributes (e.g.
commandfor and interestfor), opening the popover via the command
invoker should not cause the popover to close when the button or
popover subsequently loses interest.

Previously, Element::InterestLost unconditionally hid the target
popover on loss of interest, regardless of how it was opened.

This CL introduces a PopoverInvokedVia enum to PopoverData to track how
the popover was invoked (kNone, kInterest, or kCommand).
Element::InterestLost now only hides popovers that were invoked via
interest.

If a popover opened via interest is subsequently invoked via a command
(such as show-popover or menu activation), its invocation status
upgrades to kCommand and its invoker is updated so that it persists
when interest is lost.

Fixed: 556283651
Bug: 406566432
Change-Id: Ibf92fa4c837b9a4640b66aca6febdd1d35fb04fe
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8344388
Reviewed-by: David Baron <dbaron@chromium.org>
Commit-Queue: Mason Freed <masonf@chromium.org>
Auto-Submit: Mason Freed <masonf@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1692665}

--

wpt-commits: d6328700c6601806db16fc87bfe37bf32514f972
wpt-pr: 62473
2026-09-11 14:46:30 +00:00
moz-wptsync-bot f31b9252c0 Bug 2070222 [wpt PR 62474] - Update wpt metadata, a=testonly
wpt-pr: 62474
wpt-type: metadata
2026-09-11 14:46:28 +00:00
Rune Lillesveen 036e2c8eaa Bug 2070222 [wpt PR 62474] - Fuzzy matching for corner-shape tests, a=testonly
Automatic update from web-platform-tests
Fuzzy matching for corner-shape tests

Increase maxDifference to make tests match in Chrome.

Numbers based on wpt.fyi results.

Bug: 555826997, 557075192
Change-Id: Iada20c7b0303f6d3de3a94bd7285ae729c86c78e
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8352705
Auto-Submit: Rune Lillesveen <futhark@chromium.org>
Commit-Queue: Philip Rogers <pdr@chromium.org>
Reviewed-by: Philip Rogers <pdr@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1692606}

--

wpt-commits: 21420d4c0d4b260cc110cbfe350eebb3395d92d7
wpt-pr: 62474
2026-09-11 14:46:26 +00:00
moz-wptsync-bot cd3220403d Bug 2070221 [wpt PR 62476] - Update wpt metadata, a=testonly
wpt-pr: 62476
wpt-type: metadata
2026-09-11 14:46:24 +00:00
Andrew Martinez bc3f924b76 Bug 2070221 [wpt PR 62476] - WebKit export of https://bugs.webkit.org/show_bug.cgi?id=323026, a=testonly
Automatic update from web-platform-tests
WebKit export of https://bugs.webkit.org/show_bug.cgi?id=323026 (#62476)

Co-authored-by: Andrew Martinez <amartinez55@apple.com>
--

wpt-commits: d46c7643ab50d2bb3e3584ed6a5e05263fe09ab6
wpt-pr: 62476
2026-09-11 14:46:22 +00:00
Yanling Wang 6248825b57 Bug 2070219 [wpt PR 62471] - [Masonry] Fix intrinsic size of empty row containers, a=testonly
Automatic update from web-platform-tests
[Masonry] Fix intrinsic size of empty row containers

Avoid counting border, scrollbar, and padding twice when computing
intrinsic inline size for an empty row direction grid-lanes container.

Bug: 343257585
Change-Id: I6086a4ffc8c26d6f2dae1da0c0a01ea9cd4f5968
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8351020
Reviewed-by: Alison Maher <almaher@microsoft.com>
Commit-Queue: Yanling Wang <yanlingwang@microsoft.com>
Cr-Commit-Position: refs/heads/main@{#1692564}

--

wpt-commits: 6f9e382f6be798771268d70f1c3c04dc42072e0b
wpt-pr: 62471
2026-09-11 14:46:20 +00:00
moz-wptsync-bot 6aa9af5558 Bug 2070215 [wpt PR 62461] - Update wpt metadata, a=testonly
wpt-pr: 62461
wpt-type: metadata
2026-09-11 14:46:17 +00:00
Alison Maher 5350791dff Bug 2070215 [wpt PR 62461] - [Masonry] Support fragmented column spanners, a=testonly
Automatic update from web-platform-tests
[Masonry] Support fragmented column spanners

Column grid-lanes fragmentation previously walked each lane
independently. A spanner could therefore be visited before earlier items
in all of its occupied lanes had been processed, or be treated as
unstarted again after resuming from a child break token. Breaks inside a
spanner also only blocked its start lane, allowing later content from
another occupied lane into the current fragmentainer.

Make the iterator defer column spanners until all preceding items across
their span have been visited. Resumed spanners advance each occupied
lane past its shared entry, and a fragmented spanner defers later
content in its complete span. Row spanners will be handled in a follow
up.

There is a new crashing test, but this should be fixed once we support
break rule handling in grid lanes.

Bug: 343257585
Change-Id: I36ab0ecaa1eb8d2cb70062609cb2bd8f3112def3
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8349061
Reviewed-by: Morten Stenshorne <mstensho@chromium.org>
Commit-Queue: Alison Maher <almaher@microsoft.com>
Cr-Commit-Position: refs/heads/main@{#1692557}

--

wpt-commits: c9b23530118915a2eaa34cbe9c33fc3fefb7ae41
wpt-pr: 62461
2026-09-11 14:46:15 +00:00
Ahmad Saleem aeecddbcef Bug 2070209 [wpt PR 62463] - WebKit export of https://bugs.webkit.org/show_bug.cgi?id=323401, a=testonly
Automatic update from web-platform-tests
WebKit export of https://bugs.webkit.org/show_bug.cgi?id=323401 (#62463)
--

wpt-commits: d317428a65e0312e0a199d5db69591e252431dfe
wpt-pr: 62463
2026-09-11 14:46:13 +00:00
moz-wptsync-bot d30d2453fe Bug 2056969 [wpt PR 61482] - Update wpt metadata, a=testonly
wpt-pr: 61482
wpt-type: metadata
2026-09-11 14:46:11 +00:00
Dana Estra 5140b835d1 Bug 2056969 [wpt PR 61482] - Adopt webvtt-test.css and webvtt-ref.css in more webvtt wpt tests, a=testonly
Automatic update from web-platform-tests
Adopt webvtt-test.css and webvtt-ref.css in more webvtt wpt tests (#61482)
--

wpt-commits: c29bd2aeeb937753c3b946a3670b24e5dfb62f88
wpt-pr: 61482
2026-09-11 14:46:09 +00:00
moz-wptsync-bot 752bbe45b6 Bug 2060739 [wpt PR 61740] - Update wpt metadata, a=testonly
wpt-pr: 61740
wpt-type: metadata
2026-09-11 14:46:07 +00:00
Dana Estra 50dad75566 Bug 2060739 [wpt PR 61740] - Update several WebVTT tests to use shared css files and fix tests that do not match spec, a=testonly
Automatic update from web-platform-tests
Update several WebVTT tests to use shared css files and fix any tests that do not match spec (#61740)
--

wpt-commits: d451b2ba2000b1ec27de64318bcbc3c6254c1c16
wpt-pr: 61740
2026-09-11 14:46:05 +00:00
moz-wptsync-bot 925a7e487d Bug 2070198 [wpt PR 62459] - Update wpt metadata, a=testonly
wpt-pr: 62459
wpt-type: metadata
2026-09-11 14:46:03 +00:00
Suraj 56f5d8d2c3 Bug 2070198 [wpt PR 62459] - WebKit export of https://bugs.webkit.org/show_bug.cgi?id=323162, a=testonly
Automatic update from web-platform-tests
WebKit export of https://bugs.webkit.org/show_bug.cgi?id=323162 (#62459)
--

wpt-commits: f03739a2f16163acf61e079813e8d5a0305b56ce
wpt-pr: 62459
2026-09-11 14:46:01 +00:00
moz-wptsync-bot 66a1be4b1d Bug 2064579 [wpt PR 62029] - Update wpt metadata, a=testonly
wpt-pr: 62029
wpt-type: metadata
2026-09-11 14:45:59 +00:00
Blink WPT Bot d29719177e Bug 2064579 [wpt PR 62029] - [Proofreader] Re-enable Proofreader WPT tests, a=testonly
Automatic update from web-platform-tests
[Proofreader] Re-enable Proofreader WPT tests (#62029)

Unskips external/wpt/ai/proofreader/* across AIExpectations_Manifest*
and re-enables the includeCorrectionTypes test case now that the
dedicated small expert model component is configured.

Follows https://crrev.com/i/9691777.

Bug: 446717936
Change-Id: I5cdabe0acd916ca307faad0b4c5a5bd8f8c8e5f5
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8262246
Reviewed-by: Reilly Grant <reillyg@chromium.org>
Commit-Queue: Isaac Ahouma <iahouma@google.com>
Cr-Commit-Position: refs/heads/main@{#1681719}

Co-authored-by: Isaac Ahouma <iahouma@google.com>
--

wpt-commits: 972e0e100fa754629cd00e549d6fa20a243af2bd
wpt-pr: 62029
2026-09-11 14:45:57 +00:00
Rune Lillesveen 72ece59468 Bug 2070192 [wpt PR 62452] - Do RuleSet invalidation before ResetStyle, a=testonly
Automatic update from web-platform-tests
Do RuleSet invalidation before ResetStyle

The RuleSet invalidation does selector matching which will reject
rules in implicit @scopes when an element has not seen an implicit
scope. When we do not simply append sheets, we call ResetStyle() in
order to rebuild metadata properly, including the information on
Elements whether it has seen an implicit @scope.

The problem is that we need that information when doing the selector
matching when invalidating for removed stylesheets. Otherwise, we will
not invalidate for selectors inside implicit scope rules for any removed
stylesheets.

Effectively, we need to have the implicit scopes for both the added and
removed stylesheets. Add the implicit scopes for the new active
stylesheets before doing RuleSet invalidation. Then, if the change is
not an append, we reset style and rebuild everything as necessary,
including implicit scopes.

Bug: 555286423
Change-Id: I08a32b546ca75d22ce47a383c1bb3508d35d11d0
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8352487
Reviewed-by: Anders Hartvoll Ruud <andruud@chromium.org>
Commit-Queue: Rune Lillesveen <futhark@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1692379}

--

wpt-commits: 0a399602563b82d26b1fd869ae6253ec3e6da3b5
wpt-pr: 62452
2026-09-11 14:45:55 +00:00
moz-wptsync-bot fa05226170 Bug 2070191 [wpt PR 62450] - Update wpt metadata, a=testonly
wpt-pr: 62450
wpt-type: metadata
2026-09-11 14:45:53 +00:00
Noam Rosenthal 0ec87e8852 Bug 2070191 [wpt PR 62450] - streamHTML: Use the adopted element's execution context for TT check, a=testonly
Automatic update from web-platform-tests
streamHTML: Use the adopted element's execution context for TT check

Trusted Types essentially applies to a node tree. Consistently
use the ContainerNode's ExecutionContext, rather than the ScriptState's (which is the ExecutionContext of the currently executing JavaScript thread). Those are mostly the same, but would differ e.g. a document can reach into an iframe (or vice versa).

Bug: 556013783
Change-Id: I0c8eed185aa12d335ea0f1c287bd751817e66be4
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8339912
Reviewed-by: Daniel Vogelheim <vogelheim@chromium.org>
Commit-Queue: Noam Rosenthal <nrosenthal@google.com>
Cr-Commit-Position: refs/heads/main@{#1692368}

--

wpt-commits: 4a5da312b17ceb66e4c4f6fbf2664d700d261ce8
wpt-pr: 62450
2026-09-11 14:45:51 +00:00
moz-wptsync-bot 61b7432392 Bug 2070188 [wpt PR 62434] - Update wpt metadata, a=testonly
wpt-pr: 62434
wpt-type: metadata
2026-09-11 14:45:49 +00:00
Stephen Chenney bfabd671b4 Bug 2070188 [wpt PR 62434] - [HiC] Allow negative width and height for src and dest rects, a=testonly
Automatic update from web-platform-tests
[HiC] Allow negative width and height for src and dest rects

The spec says drawElementImage() should use the bounding rect
when given negative width or height. Implement this and add tests.

We need to check WebGL and WebGPU to see what they expect.

Bug: 512509721
Change-Id: Ieb41221d6e30a0daf53fe9cbcd463ef2a6a87807
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8265530
Commit-Queue: Stephen Chenney <schenney@chromium.org>
Reviewed-by: Stefan Zager <szager@chromium.org>
Reviewed-by: Philip Rogers <pdr@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1692361}

--

wpt-commits: c922a747efb68fd9bbeba2741cab1715f5c384c6
wpt-pr: 62434
2026-09-11 14:45:47 +00:00
Noam Rosenthal e82bc132ec Bug 2070181 [wpt PR 62368] - Omit firing change events synchronously on removal, a=testonly
Automatic update from web-platform-tests
Omit firing change events synchronously on removal

This is still under the same OmitBlurEventOnElementRemoval flag, as
those events are fired together with blur/focusout events.

Also use an enum instead of a boolean for this behavior.

Bug: 41484175
Change-Id: Ib7e6d9c0b3f4b10e20e30328674ab8af1832de37
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8313948
Reviewed-by: Mason Freed <masonf@chromium.org>
Commit-Queue: Noam Rosenthal <nrosenthal@google.com>
Cr-Commit-Position: refs/heads/main@{#1692334}

--

wpt-commits: af50fa206c0effac2fea2f81c0cf797376938bbe
wpt-pr: 62368
2026-09-11 14:45:45 +00:00
moz-wptsync-bot d2342f3d66 Bug 2070175 [wpt PR 62456] - Update wpt metadata, a=testonly
wpt-pr: 62456
wpt-type: metadata
2026-09-11 14:45:43 +00:00
Antti Koivisto 70faf6d52f Bug 2070175 [wpt PR 62456] - WebKit export of https://bugs.webkit.org/show_bug.cgi?id=323319, a=testonly
Automatic update from web-platform-tests
WebKit export of https://bugs.webkit.org/show_bug.cgi?id=323319 (#62456)
--

wpt-commits: 6832bf17e64a59954a2884c0df055dcb27cd8c85
wpt-pr: 62456
2026-09-11 14:45:41 +00:00
Antti Koivisto 766c2a128f Bug 2070174 [wpt PR 62455] - WebKit export of https://bugs.webkit.org/show_bug.cgi?id=323198, a=testonly
Automatic update from web-platform-tests
WebKit export of https://bugs.webkit.org/show_bug.cgi?id=323198 (#62455)
--

wpt-commits: a8a7ff4dcea2b13c73e5aad99636d618cfd0b464
wpt-pr: 62455
2026-09-11 14:45:39 +00:00
moz-wptsync-bot 8e4b8b3205 Bug 2040457 [wpt PR 59947] - Update wpt metadata, a=testonly
wpt-pr: 59947
wpt-type: metadata
2026-09-11 14:45:36 +00:00
Filip Skokan 9f9775e272 Bug 2040457 [wpt PR 59947] - [WebCrypto] add Hybrid KEMs, a=testonly
Automatic update from web-platform-tests
[WebCryptoAPI] Add tests for Hybrid KEMs (#59947)
--

wpt-commits: 55ce71bb9deaf4b8a30fe80f95558a10699fb433
wpt-pr: 59947
2026-09-11 14:45:34 +00:00
Sammy Gill 3523e6d635 Bug 2070160 [wpt PR 62406] - WebKit export of https://bugs.webkit.org/show_bug.cgi?id=323179, a=testonly
Automatic update from web-platform-tests
WebKit export of https://bugs.webkit.org/show_bug.cgi?id=323179 (#62406)
--

wpt-commits: 5c0dc39b95cba49532a6c593ef04d078fb21a8c8
wpt-pr: 62406
2026-09-11 14:45:32 +00:00
Silaghi 70c19d5521 Revert "Bug 2068624 - Remove unused environment.build fields r=TravisLong"
This reverts commit 96ff9e8d84.
2026-09-11 14:36:40 +00:00
Silaghi c467928188 Revert "Bug 2068624 - Remove unused Legacy Telemetry environment.profile fields r=TravisLong" for causing xpcshells and TV failures
This reverts commit 9e4c0ceb5f.

Revert "Bug 2068624 - Remove unused Legacy Telemetry environment.system.sec section r=TravisLong"

This reverts commit af16f91c51.

Revert "Bug 2068624 - Remove unused Legacy Telemetry environment.system.hdd fields r=TravisLong"

This reverts commit aae565df3a.

Revert "Bug 2068624 - Remove unused Legacy Telemetry environment.system.os fields r=TravisLong"

This reverts commit f08f25d1de.

Revert "Bug 2068624 - Remove unused Legacy Telemetry environment.system.cpu fields r=TravisLong"

This reverts commit f18845100a.

Revert "Bug 2068624 - Remove unused Legacy Telemetry environment.system fields r=TravisLong"

This reverts commit 2878a668e9.

Revert "Bug 2068624 - Remove unused Legacy Telemetry environment.services r=TravisLong"

This reverts commit 4486568ab6.

Revert "Bug 2068624 - Remove unused Legacy Telemetry environment.settings pieces r=TravisLong"

This reverts commit a34a04ddef.
2026-09-11 14:36:38 +00:00
Chris H-C fbae83314c Bug 1977639 - Report slow SQL over Glean r=mak
sqlite3_normalized_sql is only available for prepared statements, so
this specifically does not report on simple sql executions.

This does not remove the existing Legacy Telemetry reporting (yet).

Differential Revision: https://phabricator.services.mozilla.com/D321975
2026-09-11 14:16:11 +00:00
Chris H-C ace0d66578 Bug 1594264 - Enable sql normalization r=mak
Differential Revision: https://phabricator.services.mozilla.com/D321974
2026-09-11 14:16:10 +00:00
Gabriel Luong ae92f64294 Bug 1977695 - Part 3: Disable Homepage as a New Tab by default in UI tests r=android-reviewers,aaronmt,jonalmeida,ajoltan
Differential Revision: https://phabricator.services.mozilla.com/D257717
2026-09-11 14:09:23 +00:00
Gabriel Luong 426fa9dd28 Bug 1977695 - Part 2: Enable Homepage as a New Tab for Debug and Nightly build r=android-reviewers,jonalmeida
Differential Revision: https://phabricator.services.mozilla.com/D257579
2026-09-11 14:09:22 +00:00
nickgrato f0d8095427 Bug 2062112 - [Monitor Agent][FE] Create monitor component in tool bar panel r=ngrato,fluent-reviewers,desktop-theme-reviewers,sfoster,bolsson
Differential Revision: https://phabricator.services.mozilla.com/D321407
2026-09-11 14:03:48 +00:00
Danielle Graham 6ca1f7140b Bug 2068080 - replace aiwindow website select borders with token r=flozia
Differential Revision: https://phabricator.services.mozilla.com/D323425
2026-09-11 14:02:18 +00:00
Dão Gottwald b03a1a7a10 Bug 1586591 - Remove moz-input-box. r=desktop-theme-reviewers,tgiles,emilio
Thunderbird's compose window was the last consumer outside this repo; it moved off in bug 2066237, which has landed in comm-central.

The urlbar's a11y-checks exemption goes with it, since the wrapper no longer carries the combobox role that the check keyed on; the old searchbar still does.

Differential Revision: https://phabricator.services.mozilla.com/D321477
2026-09-11 14:01:21 +00:00
Dão Gottwald e33ac8a34a Bug 1586591 - Move the smartbar off moz-input-box onto the shared text context menu. r=tgiles,flozia
The AI window's document had no text context menu of its own, so it now loads editMenuOverlay.js. The smartbar reaches it through the document hosting the input, which in smartbar mode is not this.document.

EditContextMenu grows two things the smartbar needs: an anchor for a menu opened from a keyboard contextmenu event, and the input it was opened on, so the ProseMirror paste workaround only fires for the smartbar's own input.

Differential Revision: https://phabricator.services.mozilla.com/D321475
2026-09-11 14:01:20 +00:00
Nicolas Guichard 08f3e323f0 Bug 2033336 - Update grcov to v0.10.8. r=marco
This new grcov release includes a bugfix for GCNOs pointing to C++
files outside the objdir with relative paths, as we typically get when
building with unified sources.

See https://github.com/mozilla/grcov/pull/1519 for details.

Differential Revision: https://phabricator.services.mozilla.com/D325306
2026-09-11 13:56:35 +00:00
Nicolas Guichard 9234a501f9 Bug 2070023 - Call grcov with --llvm in parse_build_tests_ccov.py. r=marco
For bug 2008110 I added the --llvm flag in codecoverage.py but missed
it here.

This aims to fix lots of errors like:
```
[ERROR] Error when running gcov: gcov execution failed on uniffi-40f9f7591a3b9d67_1.gcno
gcov stdout:
gcov stderr: uniffi-40f9f7591a3b9d67_1.gcno:version 'B11*', prefer 'B22*'
```
on Android CCov builds

and
```
[ERROR] Error when running gcov: Failed to execute gcov process
```
on Linux/Windows CCov builds.

grcov should never call gcov because our CCov builds are always built
with Clang.

Differential Revision: https://phabricator.services.mozilla.com/D324372
2026-09-11 13:56:34 +00:00
Erik Nordin db89fb9055 Bug 2065915 - Distinguish target-language fluent strings in Full-Page Translations r=gregtatum,fluent-reviewers,translations-reviewers,bolsson
This commit distinguishes the target-language fluent string label
in the main view of the FullPageTranslationsPanel from the target-language
fluent string label in the revisit view of the panel. These strings are
the same in English, but may not be the same in every language, so we
should not reuse the same string across these two different contexts.

https://github.com/projectfluent/fluent/wiki/Good-Practices-for-Developers

Differential Revision: https://phabricator.services.mozilla.com/D321756
2026-09-11 13:44:59 +00:00
Randell Jesup 11452663c1 Bug 2007202: Make a scriptable interface for WebTransport stats data for xpcshell tests r=necko-reviewers,valentin
Differential Revision: https://phabricator.services.mozilla.com/D324954
2026-09-11 13:44:20 +00:00
Randell Jesup dd81880e29 Bug 2007783: Add support for WebTransport supportsReliableOnly attribute r=dom-core-reviewers,webidl,smaug
Differential Revision: https://phabricator.services.mozilla.com/D285404
2026-09-11 13:44:19 +00:00
Randell Jesup 15ceda062d Bug 2007202: report real WebTransport stats after a server-initiated close r=necko-reviewers,kershaw
neqo drops the session while processing the close, so by the time we drain
the SessionClosed event webtransport_session_stats() fails and we fell back
to Http3WebTransportSession's default-constructed mCachedStats: getStats()
after a server-initiated close reported zeros for every field.

Everything in WebTransportStatsData other than the session's datagram
counters comes from connection-level neqo counters, which are still
available at that point, so fall back to those rather than to zeros.

Differential Revision: https://phabricator.services.mozilla.com/D318359
2026-09-11 13:44:18 +00:00
Randell Jesup 04abbb6397 Bug 2007202: Add more tests for getStats edge cases r=jib,necko-reviewers,valentin
Differential Revision: https://phabricator.services.mozilla.com/D286505
2026-09-11 13:44:17 +00:00
Randell Jesup fc737da6ff Bug 2007202: Update WebTransport getStats tests to include all fields r=jib
Differential Revision: https://phabricator.services.mozilla.com/D280255
2026-09-11 13:44:17 +00:00
Randell Jesup a8818bc810 Bug 2007202: Get stats from a WebTransport connection on close r=necko-reviewers,kershaw
Differential Revision: https://phabricator.services.mozilla.com/D287811
2026-09-11 13:44:16 +00:00
Randell Jesup 903617b6e0 Bug 2007202: Implement WebTransport getStats() r=saschanaz,necko-reviewers,webidl,kershaw,smaug,valentin
Differential Revision: https://phabricator.services.mozilla.com/D277255
2026-09-11 13:44:15 +00:00
Danielle Graham b3d24d4d77 Bug 2036958 - consider pending tabs when blurring to tab on close r=jswinarton,tabbrowser-reviewers
Since findTabToBlurTo would select an unloaded tab when closing the active tab, even if a loaded tab was right next to it, I opted to add a filter on the visible tabs for just loaded(pending) tabs (as long as theres at least one) before running the rest of the adjacent-tab/MRU selection logic. If everything left is unloaded, falls back to the old behaviour since we have to pick something.

For a possible case where the MRU tab is unloaded and that pref is on, this will also fall back to the next loaded tab instead of reloading it, since that case seemed more likely to be expected based on this bug report and also like an edge case but open to other opinions on that!

This also should not impact the successor/owner selection, those should still take precedence.

Added a few tests as well - these tests unload the tab using a discardTab helper that calls discardBrowser and handles a race condition I came across with browserLoaded. Otherwise this looked to be the same path that unloading a tab takes but let me know if I'm missing anything there.
  - the basic case from the bug report (adjacent tab unloaded skips to loaded one)
  - same thing through the MRU path when MRU pref is on
  - multiple unloaded tabs in a row, to make sure it keeps walking past all of them
  - a test confirming successor still wins even when unloaded

Differential Revision: https://phabricator.services.mozilla.com/D324747
2026-09-11 13:43:29 +00:00
Chris H-C 9e4c0ceb5f Bug 2068624 - Remove unused Legacy Telemetry environment.profile fields r=TravisLong
Differential Revision: https://phabricator.services.mozilla.com/D325169
2026-09-11 13:42:56 +00:00
Chris H-C af16f91c51 Bug 2068624 - Remove unused Legacy Telemetry environment.system.sec section r=TravisLong
Differential Revision: https://phabricator.services.mozilla.com/D325168
2026-09-11 13:42:56 +00:00
Chris H-C aae565df3a Bug 2068624 - Remove unused Legacy Telemetry environment.system.hdd fields r=TravisLong
Differential Revision: https://phabricator.services.mozilla.com/D325167
2026-09-11 13:42:55 +00:00
Chris H-C f08f25d1de Bug 2068624 - Remove unused Legacy Telemetry environment.system.os fields r=TravisLong
Differential Revision: https://phabricator.services.mozilla.com/D325166
2026-09-11 13:42:54 +00:00
Chris H-C f18845100a Bug 2068624 - Remove unused Legacy Telemetry environment.system.cpu fields r=TravisLong
Differential Revision: https://phabricator.services.mozilla.com/D325165
2026-09-11 13:42:53 +00:00
Chris H-C 2878a668e9 Bug 2068624 - Remove unused Legacy Telemetry environment.system fields r=TravisLong
Differential Revision: https://phabricator.services.mozilla.com/D325164
2026-09-11 13:42:53 +00:00
Chris H-C 4486568ab6 Bug 2068624 - Remove unused Legacy Telemetry environment.services r=TravisLong
Differential Revision: https://phabricator.services.mozilla.com/D323063
2026-09-11 13:42:52 +00:00
Chris H-C a34a04ddef Bug 2068624 - Remove unused Legacy Telemetry environment.settings pieces r=TravisLong
This does deliberately decrease the frequency of
environment-change-reason "main" pings for when private browsing mode
has a separate search engine and that search engine's data changes.
This is not a currently-shipping configuration and search counts are
determined by events not by this configuration, so we're fine.

Differential Revision: https://phabricator.services.mozilla.com/D323062
2026-09-11 13:42:51 +00:00
Chris H-C 96ff9e8d84 Bug 2068624 - Remove unused environment.build fields r=TravisLong
`environment.build` has the honour of being the only section of the
Environment that has required fields. And some of those required fields
must be of specific types and/or specific patterns.

This means that "removing" the seven unused fields results in:
* 2 set to "" to satisfy required strings
* 2 set to "00." to satisfy required strings with version patterns
* 1 set to null as vendor is required but can be null or string
* 2 actually removed (displayVersion and updaterAvailable)

And it only results in one decrement of the count, for updaterAvailable,
as the rest weren't ever mirrored in Glean inside the Environment
(because they were either already instrumented in client_info, or they
weren't useful data to mirror).

Differential Revision: https://phabricator.services.mozilla.com/D323061
2026-09-11 13:42:50 +00:00
Andrew Halberstadt b835aaa088 Bug 2070944 - [ci] Don't schedule clang-external in non-try L1 reviewbot graphs, r=taskgraph-reviewers,bhearsum
This task has a dependency that requires a secret, so don't schedule it
in L1 contexts. We exempt try from this because reviewbot is already
restricted to trusted users there.

Differential Revision: https://phabricator.services.mozilla.com/D324984
2026-09-11 13:41:10 +00:00
Andrew Halberstadt f634efe2eb Bug 2070944 - [ci] Add ability to key attributes.code-review by project and level, r=taskgraph-reviewers,bhearsum
Differential Revision: https://phabricator.services.mozilla.com/D324983
2026-09-11 13:41:09 +00:00
Alexandra Borovova 2589de2295 Bug 2070424 - Update metadata for css/css-borders/corner-shape/render-corner-shape.html.
Differential Revision: https://phabricator.services.mozilla.com/D325374
2026-09-11 13:40:37 +00:00
ffxbld 6a72702b8a No Bug, mozilla-central repo-update remote-settings tld-suffixes ct-logs - r=release-managers,diannaS
Differential Revision: https://phabricator.services.mozilla.com/D325139
2026-09-11 13:40:07 +00:00
Mark Banner a5be3e6db7 Bug 2057690 - Add Wikipedia search for Sardinian. r=search-reviewers,scunnane
Differential Revision: https://phabricator.services.mozilla.com/D318805
2026-09-11 13:40:06 +00:00
Silaghi 21e13a7a94 Revert "Bug 2059979 - Fix network monitor opening files in last tab. r=devtools-reviewers,jdescottes" for causing lint failures
This reverts commit 3327bb6f5c.
2026-09-11 13:32:12 +00:00
Silaghi 175bf52313 Revert "Bug 2071285 - Add Promise::MaybeSafeResolve and use it for Streams r=mgaudet" for causing build bustages
This reverts commit b8df7498e4.
2026-09-11 13:02:56 +00:00
Abel Kalu 3327bb6f5c Bug 2059979 - Fix network monitor opening files in last tab. r=devtools-reviewers,jdescottes
Differential Revision: https://phabricator.services.mozilla.com/D325233
2026-09-11 13:00:27 +00:00
Paul Adenot 62a4a5d638 Bug 2062329 - Attribute MLModelHubService downloads to the requesting task. r=ai-platform-reviewers,valentinp
MLModelHubService used the constant "ml-model-hub-service" as the feature ID for every native caller, so the existing firefox_ai_runtime.model_download events could not be selected by feature.

Pass the caller-provided task name as featureId, matching getModelBlob(). The browser test downloads through nsIMLModelHub and checks that every lifecycle event is attributed to speech-recognition.

Remove an attribute that was wrongly added and causes this to fail.

Differential Revision: https://phabricator.services.mozilla.com/D322658
2026-09-11 12:54:10 +00:00
Paul Adenot 7783c6fb9e Bug 2062329 - Measure inference cost and init failures in the HWInference process. r=media-playback-reviewers,alwu
Recorded in the utility process, where inference happens:

- model_load_time measures reading the GGUF into memory. Like
  session_init_time it only has a sample on success, which its description
  now says.
- inference_realtime_factor records one per-session mean of per-chunk
  throughput as audio duration divided by compute time, times 100 (400 means
  4x faster than real time). Recognition happens continuously on chunks of
  similar size, so getting the average is meaningful here. The range reaches
  100x rather than 20x, because hardware that runs this model comfortably
  sits above 20x and would otherwise land entirely in the top bucket; the
  bounds also put a bucket boundary exactly at 100, so falling behind real
  time is a clean cut.
- init_failure gains the inference-process labels, one per step that can
  fail, so a spike says where init broke rather than only that it did. The
  previous model_load_failed covered six unrelated steps, two of which were
  not model loads at all, and other covered four.

The tests verify that starting without an installed model reaches the
corresponding failure label and run real recognition end-to-end. They check
that the timing metrics have one session-level sample and log values rather
than asserting timings, since those depend on the machine.

Differential Revision: https://phabricator.services.mozilla.com/D319566
2026-09-11 12:54:09 +00:00
Paul Adenot 189550601a Bug 2062329 - Measure speech recognition latency in the content process. r=media-playback-reviewers,alwu
Two timing distributions are recorded content-side:

- session_init_time measures the page-visible wait between start() and the
  model becoming ready for recognition. It only has a sample when init
  succeeded, so its description says to read it against init_failure: a
  regression turning slow inits into failures would otherwise look like an
  improvement.
- result_latency records one sample per session: the mean capture-to-JS
  latency of its results, using the capture timestamps already plumbed end to
  end by AudioCaptureTiming.h.

Differential Revision: https://phabricator.services.mozilla.com/D319565
2026-09-11 12:54:09 +00:00
Paul Adenot 39db08efe3 Bug 2062329 - Record speech recognition usage, outcomes and errors with Glean. r=media-playback-reviewers,alwu,TravisLong
session_ended is recorded from Reset(), the one path every teardown goes
through. No transcript text or audio is recorded.

A session_id on both events pairs them, so a start and its outcome can be
joined instead of subtracted as two populations across a day boundary.

session_started also reports the model and locale the session negotiated to,
not just the tag the page asked for: en, en-US and en-us all run the same
model, and only the negotiated locale can be grouped on.

init_failure records the start failures whose cause content knows, because
the error codes the spec makes us fire are coarser: service-not-allowed alone
covers four distinct causes. The unsupported-language one is rejected before
[[started]], so it records no session events at all and would otherwise be
invisible; it is also exactly why error and session_ended do not add up.

Differential Revision: https://phabricator.services.mozilla.com/D319564
2026-09-11 12:54:08 +00:00
Paul Adenot 84ede0b820 Bug 2062329 - Add use counters for the SpeechRecognition API. r=dom-core-reviewers,webidl,smaug
Differential Revision: https://phabricator.services.mozilla.com/D319563
2026-09-11 12:54:07 +00:00
Nicolas Silva 1745b6748d Bug 2068160 - Part 14 - Retire VisPixel in favour of RasterPixel. r=gw
Visibility space is now always a surface's raster space, so the transitional
VisPixel unit and the parallel "visibility spatial node" naming no longer
describe anything distinct. VisPixel, VisRect and LayoutToVisTransform become the
existing RasterPixel, RasterRect and LayoutToRasterTransform, which already carry
exactly this meaning in the quad code: the raster node's local space, unscaled,
with RasterPixel * device_pixel_scale = DevicePixel.

SurfaceInfo::visibility_spatial_node_index was a copy of
raster_spatial_node_index, so it goes, along with the visibility_node() function
that had become an identity. DirtyRegion's field and doc comment, and the
remaining locals and parameters, are renamed to match.

Pure rename plus field removal; no behaviour change.

Differential Revision: https://phabricator.services.mozilla.com/D322981
2026-09-11 12:52:09 +00:00
Martin Stransky 8c7bfdabd0 Bug 2070816 [Wayland] Enable session restore on release r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D324877
2026-09-11 12:51:40 +00:00
Martin Stransky 16ec491ea9 Bug 2070815 [Wayland] Disable session restore on Gnome due to Bug 2064100 r=emilio,gtk-reviewers
Differential Revision: https://phabricator.services.mozilla.com/D324876
2026-09-11 12:51:28 +00:00
Luca Greco f3f505a9a4 Bug 2070028 - Fix confirm/alert dialogs not shown when triggered from a webextensions popup and sidebar panels. r=desktop-theme-reviewers,tabbrowser-reviewers,kcochrane,nchevobbe
Differential Revision: https://phabricator.services.mozilla.com/D324922
2026-09-11 12:48:09 +00:00
Lando 06e2cfc060 Bug 2059617: apply code formatting via Lando
# ignore-this-changeset
2026-09-11 12:47:50 +00:00
Martin Stransky 1dd3ee5528 Bug 2059617 [Wayland] Convert integer workspace id to uuid r=emilio,gtk-reviewers
Integer workspace ID causes conflicts on session restore so use uuid everywhere and ignore integer ones to avoid protocol errors.

Differential Revision: https://phabricator.services.mozilla.com/D324871
2026-09-11 12:47:39 +00:00
Martin Stransky 90b9841a0a Bug 2059617 [Wayland] Rename session ID to workspace ID r=emilio,gtk-reviewers
Differential Revision: https://phabricator.services.mozilla.com/D324870
2026-09-11 12:47:37 +00:00
Iain Ireland 28c4ba65ee Bug 2071089: Skip null elements when tracing Wasm GC ref-array payloads. r=bvisness
Differential Revision: https://phabricator.services.mozilla.com/D325177
2026-09-11 12:43:19 +00:00
Kagami Sascha Rosylight b8df7498e4 Bug 2071285 - Add Promise::MaybeSafeResolve and use it for Streams r=mgaudet
Differential Revision: https://phabricator.services.mozilla.com/D324569
2026-09-11 12:42:27 +00:00
Tymur Boiko b2c8bedfdf Bug 2070739 [Linux][Vulkan Video] Size DMA-BUF copy queues from lavu's created count. r=stransky,media-playback-reviewers
InitCtx used the ICD hardware queueCount, which can exceed the queues actually passed to vkCreateDevice (limit_queues, NVIDIA caps). vkGetDeviceQueue2 then fails and Cleanup waits on uninitialized fences.

Differential Revision: https://phabricator.services.mozilla.com/D324797
2026-09-11 11:59:01 +00:00
Janika 2f745fb803 Bug 2070529 - Update enteprise compatibility for AppUpdateURL, Bookmarks, DisablePrivateBrowsing r=bsmth
Differential Revision: https://phabricator.services.mozilla.com/D325324
2026-09-11 11:58:31 +00:00
Florian Quèze 1a3bcfb869 Bug 1767707 - Flush the pref file synchronously before launching the background task, r=jdescottes,devtools-reviewers.
devtools.browsertoolbox.enable-test-server reaches the browser toolbox only
through #initProfile copying this profile's prefs.js, so it took effect only
when the write happened to win the race against the task's startup. Without it
installTestingServer() is never called and initBrowserToolboxTask's connect
loop spins until the test times out.

preferences.allow.omt-write cannot serve here: Preferences.cpp caches it on
first use, so flipping it in a test is a no-op.

Differential Revision: https://phabricator.services.mozilla.com/D325045
2026-09-11 11:30:11 +00:00
Florian Quèze 7982471ee8 Bug 1932082 - [devtools] Wait for the syntax tree before asserting shift+tab focus, r=devtools-reviewers,bomsy.
browser_dbg-keyboard-navigation.js pressed shift+tab as soon as .cm-content
existed. CodeMirror only renders a fold button for a line its syntax tree says
is foldable, and that parse is incremental, so on a slow run focus went to the
source header's end pane toggle instead - what the test expected when
CodeMirror 5 had no fold gutter (Bug 1924829).

The expected side of that assertion was already a constant: the fold gutter
always contains a visibility: hidden spacer button, so the lookup matched
whether or not any button was focusable.

Differential Revision: https://phabricator.services.mozilla.com/D325043
2026-09-11 11:30:09 +00:00
Florian Quèze f002e44b00 Bug 2070933 - Give the sectioned-source-map test its own page, r=devtools-reviewers,nchevobbe.
Only browser_dbg-breakpoints-sourcemap-with-sections.js needs xbundle.js's
uncleared throwing setInterval; the nine other tests that load
doc-sourcemaps.html inherit it. Its output keeps lastOutputTime fresh, so
browser-test.js reads a hung test as merely slow and grants it every
MAX_UNEXPECTED_TIMEOUTS extension instead of failing it after one window.

Differential Revision: https://phabricator.services.mozilla.com/D325041
2026-09-11 11:30:07 +00:00
Florian Quèze 678b7bcf9a Bug 2001947 - Let each IME composition finish in the content process, r=jdescottes,devtools-reviewers.
Pausing focuses the toolbox frame, which blurs the content browser and makes the
parent process commit the composition in progress while the content process is
stopped in the debugger and cannot finish it. Starting the next composition on
top of that leaves the two processes disagreeing, and the parent can then assert
in ContentCacheInParent::OnCompositionEvent.

Committing explicitly is not open to the test: once it resumes,
nsITextInputProcessor.commitComposition already fails with NS_ERROR_FAILURE, so
it can only avoid Bug 2070926.

Differential Revision: https://phabricator.services.mozilla.com/D325039
2026-09-11 11:30:04 +00:00
Florian Quèze 52f64e7e39 Bug 2070925 - Make setDebuggerReady(false) suspend the debuggee again, r=edenchuang,dom-worker-reviewers.
The hold suspended nothing: !mDebuggerReady && !mRemoteDebuggerReady can never
both be true, since the two flags are cleared on mutually exclusive
UseRemoteDebugger() branches. So no debuggee runnable has been queued since
Bug 1899503.

Restoring the hold means the three flush sites drop the mDebuggerRegistered term,
which a remote worker never sets, and which RegisterDebuggerMainThread has
normally already set for a local one.

Differential Revision: https://phabricator.services.mozilla.com/D325036
2026-09-11 11:30:02 +00:00
Florian Quèze 4ccc3b2b3b Bug 2070924 - Do not skip remote worker debugger registration on an early wake-up, r=edenchuang,dom-worker-reviewers.
EnableRemoteDebugger waited for the worker thread to bind its
PRemoteWorkerDebugger child endpoint with a bare if rather than a while
(Bug 1899503), so an early wake returned without registering, leaving the
worker invisible to nsIWorkerDebuggerManager and DevTools with no target actor
for it.

Looping on mRemoteDebugger alone would hang when the worker thread never binds
at all, the case the bare if was written for, so the predicate is a separate
flag, cleared whenever a new endpoint pair is armed: a worker frozen into the
bfcache unregisters its debugger and binds again on thaw.

Differential Revision: https://phabricator.services.mozilla.com/D325035
2026-09-11 11:30:00 +00:00
Florian Quèze 6abfa5161b Bug 2070923 - Render the toolbox toolbar before Toolbox.open() resolves, r=devtools-reviewers,jdescottes.
ToolboxController renders no tab and no command button until its canRender state
is set, and open() only schedules that from an idle callback, which can be
starved past the end of open(). The tracer tests then hand a null
command-button-jstracer to synthesizeMouseAtCenter.

Bug 1399548 added the gate to stop the component rendering before the toolbar
buttons were built, when #buildButtons() was asynchronous; it is synchronous now,
so no intermediate render is left to prevent. Awaiting the idle callback instead
would leave open() pending once its window is gone.

Differential Revision: https://phabricator.services.mozilla.com/D325033
2026-09-11 11:29:57 +00:00
Jan de Mooij 21d827cca7 Bug 2045957 - Add test. r=spidermonkey-reviewers,mgaudet
See also bug 2045958. The generator-return implementation is very different now
after bug 2063576 but still good to have a test case for this.

Differential Revision: https://phabricator.services.mozilla.com/D325056
2026-09-11 11:16:24 +00:00
Jan de Mooij e8c5f7d307 Bug 2070796 - Don't use the scratch double register in convertUInt32ToDouble on x86. r=iain
This is building on bug 2057638 part 1.

Instead of materializing `0x1p52` in `ScratchDoubleReg`, we can OR/subtract it
using the constant pool. This gives us a single implementation of `convertUInt32ToDouble`
on x86. The overload taking a `ScratchDoubleScope` (and clobbering the input) existed
only for `MacroAssembler::boxUint32` after bug 2057638.

Assembly before, when a scratch register was available (version added in bug 2057638 part 1):
```
  vmovq     <pool>, %xmm7        8 bytes
  vmovd     %ecx, %xmm1          4
  por       %xmm7, %xmm1         4
  subsd     %xmm7, %xmm1         4
```

Assembly before, when no scratch register was available (only `boxUint32` after bug 2057638):
```
  subl      $-2147483648, %edx   6 bytes
  xorpd     %xmm7, %xmm7         4
  cvtsi2sd  %edx, %xmm7          4
  addsd     <pool>, %xmm7        8
```

Assembly after, used in all cases:
```
  vmovd     %ecx, %xmm1          4 bytes
  por       <pool>, %xmm1        8
  subpd     <pool>, %xmm1        8
```

The `Uint32Array`-to-double path is 3-4% faster on a micro-benchmark. The two
Baseline paths that call `boxUint32` are ~2% faster. Wasm `f64.convert_i32_u` and
atomics on a `Uint32Array` are neutral. Wasm `f32.convert_i32_u` is ~0.5% slower.

Differential Revision: https://phabricator.services.mozilla.com/D324864
2026-09-11 11:13:52 +00:00
Adham-A adde773bf4 Bug 1985986 - Fix RTL glyph ink overflow measurement for contained glyphs. r=layout-reviewers,jfkthame
Differential Revision: https://phabricator.services.mozilla.com/D324373
2026-09-11 11:13:14 +00:00
Emilio Cobos Álvarez 744fd55cbf Bug 2069391 - Make main thread atom caches work for the UTF-8 path as well. r=smaug
Claude wrote the tests but they look sensible to me (basically a copy of
the utf-16 string).

Differential Revision: https://phabricator.services.mozilla.com/D323649
2026-09-11 11:01:45 +00:00
Valentin Gosu 7287c0a261 Bug 2070126 - Make about:logging capture the threads required by a preset passed by URL r=padenot
Differential Revision: https://phabricator.services.mozilla.com/D324250
2026-09-11 10:48:58 +00:00
Lars Eggert a82f826396 Bug 2068800 - Stop presenting network resets on https as SSL errors r=dom-core-reviewers,smaug,valentin
NS_ERROR_NET_RESET and NS_ERROR_NET_INTERRUPT on an https URI are not evidence
of TLS version intolerance: the heuristic applies only during the handshake,
insecure fallback was disabled in bug 1479501, and genuine TLS failures reach
nssFailure2 by their own path.

Give netReset and NS_ERROR_NET_EMPTY_RESPONSE distinct error-page configs, and
test the empty-response case with an actual empty response.

Differential Revision: https://phabricator.services.mozilla.com/D323597
2026-09-11 10:48:00 +00:00
Martin Stransky e986c9e88a Bug 2070806 [Linux] Init mMappedRegionData and move class members init to header r=emilio,gtk-reviewers,sylvestre
Differential Revision: https://phabricator.services.mozilla.com/D324882
2026-09-11 10:45:28 +00:00
serge-sans-paille 59dd421fef Bug 2068585 - Get rid of collections.OrderedDict r=mozperftest-reviewers,aglavic
dict is ordered since 3.6

Differential Revision: https://phabricator.services.mozilla.com/D322960
2026-09-11 10:44:51 +00:00
serge-sans-paille f63822ff43 Bug 2068585 - Get rid of collections.OrderedDict r=whimboo
dict is ordered since 3.6

Differential Revision: https://phabricator.services.mozilla.com/D322959
2026-09-11 10:44:49 +00:00
serge-sans-paille aa399322c6 Bug 2068585 - Get rid of collections.OrderedDict r=ipc-reviewers,mccr8
dict is ordered since 3.6

Differential Revision: https://phabricator.services.mozilla.com/D322958
2026-09-11 10:44:46 +00:00
Eemeli Aro 662ff47544 Bug 2064983 - Remove Glean metrics for urlfixup.suffix. r=aryx,urlbar-reviewers,daleharvey
The metrics show that URL fixup is actively used via
each of the `fixup`, `urlbar`, and `smartbar` call sites,
a bit under 1 million times a day.
The vast majority (over 99%) use the default `.com` suffix,
but the localized regional variants `.cz`, `.sk`, `.dk`, and `.no`
are also each used at least 1000 times a day.

This reverts commit e79790d0b7.

Differential Revision: https://phabricator.services.mozilla.com/D324959
2026-09-11 10:21:28 +00:00
Florian Quèze 66f7f4704b Bug 2070908 - Activate the application when asked to raise a window on macOS, r=mac-reviewers,devtools-reviewers,bradwerth,jdescottes.
Raise::Yes did nothing while Firefox was not the active application, where GTK
activates through gtk_window_present_with_time. Only nsFocusManager::RaiseWindow
reaches this on macOS, after BrowsingContext::CanFocusCheck grants the raise,
and mozilla.widget.raise-on-setfocus is a kill switch. The mac arms un-skipped
here are the browser-chrome harness waiting forever for a focus event once the
Browser Toolbox has taken activation: Bug 1937229, Bug 1937315, Bug 1767721,
Bug 1781499.

Differential Revision: https://phabricator.services.mozilla.com/D325018
2026-09-11 10:16:43 +00:00
Sylvestre Ledru 337ccdaedb Bug 2062203 - Guard null worker private in FetchStreamReader::ReportErrorToConsole (Coverity CID 1416404) r=dom-worker-reviewers,edenchuang
Differential Revision: https://phabricator.services.mozilla.com/D317481
2026-09-11 10:15:48 +00:00
Sylvestre Ledru 05357d46cc Bug 2071213 - Unmap the keymap on the xkb_context failure path in KeymapWrapper::HandleKeymap (Coverity CID 1695158) r=stransky,gtk-reviewers
The mmap of the compositor-provided keymap succeeds before xkb_context_new is
called. The failure path closed the fd but returned without munmap, leaking the
mapping every time xkb_context_new fails in a handler the compositor can call
repeatedly.

Differential Revision: https://phabricator.services.mozilla.com/D325330
2026-09-11 10:08:14 +00:00
Sylvestre Ledru 3f60675a4e no bug - license: don't document files that don't ship r=sergesanspaille
Differential Revision: https://phabricator.services.mozilla.com/D325178
2026-09-11 10:07:19 +00:00
Dão Gottwald 1074aebedd Bug 2071163 - Let mermaid diagrams follow the page color scheme. r=firefox-source-docs-reviewers,sylvestre
Bug 2070774 pinned both mermaid themes to the light one because the page could not follow. A classDef or style that hardcodes a fill keeps that color in either scheme, so those nodes need an explicit color too, or the dark theme's label color lands on a light fill at 1.4:1.

Differential Revision: https://phabricator.services.mozilla.com/D325248
2026-09-11 09:54:06 +00:00
Dão Gottwald 63ce0ef60c Bug 2071163 - Derive a dark color scheme for firefox-source-docs. r=firefox-source-docs-reviewers,sylvestre
sphinx-rtd-theme has no dark mode and no custom properties to re-point, so the override is derived from the theme's own stylesheets at build time rather than checked in.

Differential Revision: https://phabricator.services.mozilla.com/D325247
2026-09-11 09:54:05 +00:00
Dão Gottwald 0ab1a9f0dc Bug 2071163 - Give the branding wordmarks a dark-mode fill fallback. r=sylvestre
The added rule only declares color-scheme, which is what makes light-dark() resolve; nothing competes with the context-fill in the presentation attribute, so the chrome consumers that supply one are unaffected. The fallback is what a web embed paints, since context paint is restricted to chrome://, resource:// and a short allowlist.

Differential Revision: https://phabricator.services.mozilla.com/D325246
2026-09-11 09:54:04 +00:00
Dão Gottwald 4d90f4a736 Bug 2071176 - Only capitalize a bug reference where a sentence or a commit subject starts. r=padenot,ai4dev-reviewers DONTBUILD
Differential Revision: https://phabricator.services.mozilla.com/D325249
2026-09-11 09:52:10 +00:00
Julien Cristau 6f7068b2be Bug 1868149 - use moz-phab instead of arcanist in periodic-updates job. r=releng-reviewers,ahal
Differential Revision: https://phabricator.services.mozilla.com/D283288
2026-09-11 09:43:16 +00:00
Damien Carver 0653ae5f15 Bug 2070987 - Rename BaseMarkerType::StoreName to ETWStoreName. r=profiler-reviewers,sandbox-reviewers,bobowen,canova
StoreName only ever controlled whether the name passed to an individual
marker call is emitted as an extra MarkerName field on the ETW event; the
profiler's own marker storage always records the name. The old name did not
convey that, so rename it to ETWStoreName.

Also rewrite its documentation, in BaseMarkerType and in markers-guide.md,
to explain when to set it: leave it false when every marker of the type is
recorded with the same name, since the name then carries no per-marker
information, and set it to true only when callers pass a distinct name per
marker and the duplication cost of a copy of that string in every recorded
ETW event is acceptable.

Differential Revision: https://phabricator.services.mozilla.com/D325300
2026-09-11 09:42:26 +00:00
Jan-Erik Rediger 0f1d790182 Bug 2067718 - Update generated TS type definitions, including the Glean one r=zombie
This was done using:

  mach ts build
  mach ts update

Differential Revision: https://phabricator.services.mozilla.com/D323513
2026-09-11 09:27:27 +00:00
Sylvestre Ledru 2fafa1ee1d Bug 2071196 - Avoid 32-bit overflow when converting chunk indices to file offsets in CacheFile (Coverity CID 1286534) r=necko-reviewers,valentin
kChunkSize is an int32_t and the chunk index is a uint32_t, so
`aIndex * kChunkSize` is evaluated in 32 bits and wraps once the index reaches
16384, i.e. for entries larger than 4GB. Both results feed int64_t offsets.
CacheFile::BytesFromChunk already casts before multiplying; do the same at the
two remaining sites.

Differential Revision: https://phabricator.services.mozilla.com/D325296
2026-09-11 09:23:40 +00:00
zhuangxiaosen bc3360c732 Bug 2069515 - Use documentGlobal instead of the removed ownerGlobal in FormAutofillPreferences r=credential-management-reviewers,dimi
Differential Revision: https://phabricator.services.mozilla.com/D324835
2026-09-11 09:21:08 +00:00
geppy a993bf5ca9 Bug 1981904 - make chatbot inert during onboarding r=ayeddi,Mardak
Differential Revision: https://phabricator.services.mozilla.com/D283788
2026-09-11 08:46:34 +00:00
Damien Carver 6e3d0df73f Bug 2070947 - Clarify the integer precision limit in the Hexadecimal marker format doc. r=canova,profiler-reviewers DONTBUILD
The note on MarkerSchema::Format::Hexadecimal claimed values wider than a
32-bit unsigned integer might get truncated. The actual limit is JS
Number.MAX_SAFE_INTEGER (2^53-1) and it applies to every integer format,
so say that, and point at the supported way to display a 64-bit value:
convert it to a hexadecimal string in StreamJSONMarkerData and use the
String format.

Differential Revision: https://phabricator.services.mozilla.com/D324988
2026-09-11 08:38:39 +00:00
Julien Cristau 265666bcba Bug 1988569 - Bump the A-C changelog to the next nightly version during merge-day main bump r=tthibaud,releng-reviewers,ahal DONTBUILD
Automate the changelog step of the nightly development cycle by adding a
regex-replacement to the bump-main behaviour, so landoscript opens a new
'In Development' section for the upcoming version and demotes the
current one when main is bumped. This replaces the manual changelog edit
previously done by mobile/android/beta-cut.py.

Differential Revision: https://phabricator.services.mozilla.com/D324635
2026-09-11 08:30:22 +00:00
Emilio Cobos Álvarez 4ce0e4ecdd Bug 2015089 - Follow-up null-check + consistency nits. r=hiro,layout-reviewers
Make the code more similar between scroll / scrollend and add a missing
nullcheck.

Differential Revision: https://phabricator.services.mozilla.com/D325293
2026-09-11 08:29:50 +00:00
Sylvestre Ledru a166bc2c69 Bug 2069385 - Move the SpiderMonkey check scripts into tools/lint/spidermonkey r=linter-reviewers,spidermonkey-reviewers,sergesanspaille,mgaudet
Now that the checks no longer run from `mach build`, mozlint is their only
consumer, so keep them next to the linter that drives them instead of in
config/.

check_js_opcode.py derived topsrcdir from its own depth in the tree, so bump
it to match the new location.

Since /config/** was packaged wholesale into the standalone SpiderMonkey
source tarball but /tools/ is cherry-picked, add an explicit filter so the
checks stay available there.

Differential Revision: https://phabricator.services.mozilla.com/D323630
2026-09-11 08:29:23 +00:00
Sylvestre Ledru 0bf3dd6197 Bug 2069385 - Stop running the SpiderMonkey source checks as part of regular builds r=linter-reviewers,spidermonkey-reviewers,sergesanspaille,mgaudet
The SpiderMonkey style, opcode and MacroAssembler checks ran from `mach build`,
so every build paid for a lint pass unrelated to compilation. Expose them
through mozlint as the `spidermonkey` linter instead, which is what CI already
schedules, and drop the build-time invocation.

Differential Revision: https://phabricator.services.mozilla.com/D323629
2026-09-11 08:29:22 +00:00
Nicolas Silva 8e9079528d Bug 1900953 - Use Device space instead of world space in composite.glsl. r=gfx-reviewers,gw
The shader already conflates the two with code that like 'world_pos = mix(device_rect.xy, device_rect.zw, aPosition.xy);'. For the compositor, device space and world space happen to be the same because we only composite at the root, however device space is a more useful concept (a space that lines up with the pixel grid of the destination texture) while world space tends to be a bit of a trap (the hard-coded root of the spatial tree) that is best avoided.

Differential Revision: https://phabricator.services.mozilla.com/D324881
2026-09-11 07:55:19 +00:00
Nicolas Silva bbac0edf66 Bug 1900953 - Use raster space instead of world space in shaders. r=gfx-reviewers,gw
World space is the root coordinate space. The coordinate space in shaders that is a device scale away from device space is actually raster space.

Differential Revision: https://phabricator.services.mozilla.com/D324880
2026-09-11 07:55:16 +00:00
Emilio Cobos Álvarez 5b5dced46d Bug 2015089 - Simplify scroll event handling. r=hiro,layout-reviewers
This makes the scroll event handling more per-spec, and I think it's a
much simpler approach than bug 2015089.

Note that this subtly changes behavior around the edges, which I'm not
totally happy about: With this patch, if you reframe, you might end up
with two scroll events in the same frame, while pre-patch you end up
just with one. However, pre-patch has a separate set of issues, e.g. you
might end up with _zero_ scroll events rather than one if you scroll and
then go display: none or reframe.

With this setup it is very easy to fix tho, by keeping mWeakFrame in
ScrollEvent and refusing to fire if the frame is dead. So if this causes
trouble it is trivial to go back to the previous behavior. But I think
it's better to incorrectly fire one more event than incorrectly not
firing any event...

Differential Revision: https://phabricator.services.mozilla.com/D324919
2026-09-11 07:55:04 +00:00
Florian Quèze 0e7fcd812f Bug 2070797 - Stop skipping debugger tests on tsan, asan and mac, r=devtools-reviewers,ochameau.
No failure on try. Bug 1607636, cited by one of them, is a general intermittent
rather than a tsan defect; Bug 1591064 is a task about enabling ToolboxTask
tests on asan.

Bug 1959062's mac skip can never apply on macosx1470-64, whose test set is
cppunittest only, and Bug 2028047 mirrored it onto macOS 15 across every test
carrying it, without evidence for this file.

Differential Revision: https://phabricator.services.mozilla.com/D325019
2026-09-11 07:54:23 +00:00
Florian Quèze 8987e9a119 Bug 2070932 - Identify the ember app's router.js by URL, r=devtools-reviewers,ochameau.
Four original sources on the ember quickstart page are named router.js, three of
them from vendor.js, and findSource() returns the first one in insertion order.
When vendor.map is processed before quickstart.map the test picks
ember-routing/services/router.js, whose line 13 is a comment, so addBreakpoint()
never dispatches SET_BREAKPOINT and the helper waits until the test times out.

Naming a source by its full URL is the case Bug 1755736 kept URL support for
when it narrowed findSource() to an exact file-name match.

Differential Revision: https://phabricator.services.mozilla.com/D325040
2026-09-11 07:54:22 +00:00
Florian Quèze 8ba72e18a7 Bug 2001947 - Deselect the compositionend event breakpoint once its round is over, r=devtools-reviewers,ochameau.
Left enabled, this one pauses the debuggee once more after the textInput step, so
the smooth scrollTo of the scrollend step never resolves and the test hangs there.
Bug 2001947 comment 0 is that hang.

Differential Revision: https://phabricator.services.mozilla.com/D325038
2026-09-11 07:54:22 +00:00
Florian Quèze 0cef53fdf1 Bug 2001947 - Focus the browser element directly, r=devtools-reviewers,ochameau.
SpecialPowers.focus() takes a window, and its windowGlobalChild lookup does not
apply to a browser element, so every call logged a TypeError. The element was
focused regardless, which is all this helper wanted.

Differential Revision: https://phabricator.services.mozilla.com/D325037
2026-09-11 07:54:21 +00:00
Florian Quèze 0abaeaf640 Bug 2070970 - [devtools] Stop leaving preview popup waits polling in browser_dbg-preview-invalid-tokens.js, r=devtools-reviewers,ochameau.
waitForElement polls through waitUntil, which re-arms a timeout on the top
level browser window for as long as its predicate is false. Racing it against
a timeout and then taking the timeout branch leaves that poll running, and its
closure retains dbg, and with it the debugger, webconsole and toolbox
documents, until shutdown. Asserting on findElement after a plain wait leaves
nothing behind, so the flush hover added by Bug 1767711 is no longer needed
and the debug skip added by Bug 1958748 can go.

Differential Revision: https://phabricator.services.mozilla.com/D325023
2026-09-11 07:54:20 +00:00
Florian Quèze 048573cab6 Bug 2070917 - [devtools] Re-enable browser_dbg-sourcemapped-stepping.js, r=devtools-reviewers,ochameau.
Bug 1528855 removed the pause points that kept stepping on original statement
boundaries, and the loop that stepped past a position the previous step already
reported. It disabled this test in the same landing. Neither came back, so the
expectations here are the positions the debugger reports today rather than the
pre-2019 ones.

Three changes passed the test by while it was off: Bug 1755736 made `findSource`
match a filename or a full URL, so its `input.` URL stopped matching `input.js`;
Bug 1849998 made test-facing columns 1-based; and Bug 1856270 added
`shouldWaitForLoadedScopes` for pausing in original sources.

Differential Revision: https://phabricator.services.mozilla.com/D325030
2026-09-11 07:54:19 +00:00
Florian Quèze e7d24be42b Bug 2070920 - [devtools] Re-enable browser_dbg-reloading.js, r=devtools-reviewers,ochameau.
The test named its source by a partial path, which stopped matching when
Bug 1755736 narrowed `findSource` from a substring search to an exact file-name
match; that bug kept full-URL support for pages like this one, where several
original sources share a file name, so the narrow match stays as it is. The
reloads also waited on the document's path, which never named a source.

Abandoning a reload leaks the toolbox window: the last one cannot settle until
the page load the breakpoint holds completes, so `navigateTo` stays suspended
with `dbg` in its frame until shutdown. Resuming at the end settles all three.

Differential Revision: https://phabricator.services.mozilla.com/D325032
2026-09-11 07:54:19 +00:00
Florian Quèze 535a0dee53 Bug 2027953 - [devtools] Don't sync breakpoints against a destroyed target, r=devtools-reviewers,ochameau.
`newGeneratedSources` checks that a source actor's target is alive when the
resource comes in, but not after awaiting the source maps, and then dispatches
`checkPendingBreakpoints` without awaiting it. A target destroyed in that window
leaves an unhandled `targetFront.getSourceContentForResource failed: TypeError:
this.commands is undefined` rejection, which fails
sourcemaps/browser_dbg-sourcemaps-reloading.js and browser_dbg-reloading.js.

Differential Revision: https://phabricator.services.mozilla.com/D325031
2026-09-11 07:54:18 +00:00
Nicolas Silva c7588ee9e1 Bug 2070844 - Make Lee Salzman the module owner of Moz2D. r=lsalzman,shtrom
Differential Revision: https://phabricator.services.mozilla.com/D324905
2026-09-11 07:53:32 +00:00
Nicolas Silva 1eed015ea3 Bug 2070844 - Add a SWGL submodule. r=lsalzman
Differential Revision: https://phabricator.services.mozilla.com/D324904
2026-09-11 07:53:32 +00:00
Punam Dahiya 06db999ddd Bug 2071073 - Give Smart Window pref-state metrics application lifetime so they report on every ping r=Mardak
smart_window.model, smart_window.memories_optin and smart_window.set_default_optin are current-state mirrors of prefs, set once per session in SmartWindowTelemetry.init() and re-set on change by the pref observers. They used the default `ping` lifetime, so the value was cleared after the first metrics ping of a session and was absent from every later ping. Reading any of them off a client's most recent ping reported the `unset` sentinel for most clients that actually have a value.

This gives all three `lifetime: application`, matching the already-correct smart_window.enabled. `application` clears on restart but init() re-sets the value each session, so it stays current without going stale, and it is now carried on every metrics ping.

This also closes the updateModelMetric race: because the value now persists rather than being cleared after the first ping, a value that resolves too late for the first ping is still reported on subsequent pings instead of being lost for the whole session.

Note for data stewards: this changes how often these existing metrics are transmitted, not what is collected.

Differential Revision: https://phabricator.services.mozilla.com/D325133
2026-09-11 07:53:00 +00:00
Chris Peterson 4886ee24f5 Bug 2069688 - mozglue: Include ProfileBuffer.h in ProfilerBacktrace.cpp for C++23 compatibility. r=profiler-reviewers,dcarver
C++23 P2448R2 [1] relaxed the requirements for constexpr destructors.
C++23 makes UniquePtr's destructor constexpr. Clang instantiates
constexpr function templates when they are first referenced. The
'= nullptr' default argument for aProfileBufferStorageOrNull creates
a temporary UniquePtr<ProfileBuffer>, so callers may instantiate its
destructor while parsing ProfilerBacktrace.h.

The destructor requires a complete class definition for ProfileBuffer,
but ProfilerBacktrace.h only forward declares ProfileBuffer.

Include ProfileBuffer.h so ProfileBuffer is complete at the point of
instantiation.

[1] https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2022/p2448r2.html

In file included from mozglue/baseprofiler/core/ProfilerBacktrace.cpp:7:
...
MacOSX26.1.sdk/usr/include/c++/v1/__memory/unique_ptr.h:76:19: error: invalid application of 'sizeof' to an incomplete type 'mozilla::baseprofiler::ProfileBuffer'
   76 |     static_assert(sizeof(_Tp) >= 0, "cannot delete an incomplete type");
      |                   ^~~~~~~~~~~
mozglue/baseprofiler/core/ProfilerBacktrace.h:45:62: note: in instantiation of member function 'std::unique_ptr<mozilla::baseprofiler::ProfileBuffer>::~unique_ptr' requested here
   45 |       UniquePtr<ProfileBuffer> aProfileBufferStorageOrNull = nullptr);
      |                                                              ^
mozglue/baseprofiler/core/ProfilerBacktrace.h:21:7: note: forward declaration of 'mozilla::baseprofiler::ProfileBuffer'
   21 | class ProfileBuffer;
      |       ^

Differential Revision: https://phabricator.services.mozilla.com/D323891
2026-09-11 07:21:58 +00:00
Chris Peterson 1f929f1242 Bug 2069692 - Make some JSAPI global variables constexpr or constinit for C++23 compatibility. r=spidermonkey-reviewers,jandem
C++23 P2448R2 [1] relaxes the requirements for constexpr functions.
A defaulted destructor is now constexpr when it meets the general
constexpr function requirements. This makes the affected test object
types eligible for constant initialization, so the global-variable
initialization checker rejects their MOZ_RUNINIT annotations.

To resolve the checker warnings, make the immutable JSClass,
external-string callback, and proxy-handler objects constexpr. Make the
callback and proxy-handler constructors constexpr as required.

TestJSPrincipals must remain mutable because its reference count changes.
Mark system_principals constinit and directly initialize the JSPrincipals
base with RefCount. Define the constexpr TestJSPrincipals constructor in
the header so its definition is available when system_principals is
constant-initialized.

[1] https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2022/p2448r2.html

js/src/jsapi-tests/testSetPropertyIgnoringNamedGetter.cpp:42:1: error: Global variable flagged as MOZ_RUNINIT but actually has constant initialisation. Consider removing the annotation or (as a last resort) flagging it as MOZ_GLOBINIT.
42 | MOZ_RUNINIT const CustomProxyHandler customProxyHandler;
   | ^

/builds/worker/checkouts/gecko/js/src/jsapi-tests/tests.cpp(421,19): error: non-constexpr declaration of 'TestJSPrincipals' follows constexpr declaration
421 | TestJSPrincipals::TestJSPrincipals(int rc)
    |                   ^
/builds/worker/checkouts/gecko/js/src/jsapi-tests/tests.h(303,22): note: previous declaration is here
303 |   constexpr explicit TestJSPrincipals(int rc = 0);
    |                      ^

Differential Revision: https://phabricator.services.mozilla.com/D323894
2026-09-11 07:21:13 +00:00
Chris Peterson 78cb174eb3 Bug 2069687 - intl: Move the Encoder and Decoder factory methods out of the Encoding class definition for C++23 compatibility. r=hsivonen
C++23 P2448R2 [1] relaxed the requirements for constexpr destructors.
In C++23, Clang makes UniquePtr's destructor automatically constexpr.
Clang eagerly instantiates its body for the local UniquePtr<Encoder>
and UniquePtr<Decoder> variables in Encoding's inline factory methods.
Encoder and Decoder are only forward-declared at that point, so the
deleter's complete-type check fails.

To resolve this, move the NewDecoder() and NewDecoder factory methods
after the Encoding class definition so they have complete class
definitions for Encoder and Decoder.

[1] https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2022/p2448r2.html

MacOSX26.1.sdk/usr/include/c++/v1/__memory/unique_ptr.h:76:19: error: invalid application of 'sizeof' to an incomplete type 'mozilla::Encoder'
76 |     static_assert(sizeof(_Tp) >= 0, "cannot delete an incomplete type");
   |                   ^~~~~~~~~~~
MacOSX26.1.sdk/usr/include/c++/v1/__memory/unique_ptr.h:300:7: note: in instantiation of member function 'std::default_delete<mozilla::Encoder>::operator()' requested here
300 |       __deleter_(__tmp);
    |       ^
MacOSX26.1.sdk/usr/include/c++/v1/__memory/unique_ptr.h:269:71: note: in instantiation of member function 'std::unique_ptr<mozilla::Encoder>::reset' requested here
269 |   _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX23 ~unique_ptr() { reset(); }
    |                                                                       ^
obj-aarch64-apple-darwin25.0.0/dist/include/mozilla/Encoding.h:736:24: note: in instantiation of member function 'std::unique_ptr<mozilla::Encoder>::~unique_ptr' requested here
736 |     UniquePtr<Encoder> encoder(encoding_new_encoder(this));
    |                        ^
obj-aarch64-apple-darwin25.0.0/dist/include/mozilla/Encoding.h:28:7: note: forward declaration of 'mozilla::Encoder'
 28 | class Encoder;
    |       ^

Differential Revision: https://phabricator.services.mozilla.com/D323890
2026-09-11 07:20:26 +00:00
Chris Peterson edcf975216 Bug 2069686 - uniffi: Move PromiseHandler's destructor out of line for C++23 compatibility. r=nika
C++23 P2448R2 [1] relaxed the requirements for constexpr destructors.
C++23 makes UniquePtr's destructor, move constructor, and null
assignment operator automatically constexpr.

Clang defines PromiseHandler's virtual destructor inline when the
enclosing AsyncCallbackMethodHandlerBase class is still incomplete.
This instantiates the destruction path for
UniquePtr<AsyncCallbackMethodHandlerBase>, whose default deleter
requires AsyncCallbackMethodHandlerBase to be complete.

To resolve this, move PromiseHandler's destructor definition to
Callbacks.cpp where AsyncCallbackMethodHandlerBase is complete.

[1] https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2022/p2448r2.html

MacOSX26.5.sdk/usr/include/c++/v1/__memory/unique_ptr.h:75:19: error: invalid application of 'sizeof' to an incomplete type 'mozilla::uniffi::AsyncCallbackMethodHandlerBase'
75 |     static_assert(sizeof(_Tp) >= 0, "cannot delete an incomplete type");
   |                   ^~~~~~~~~~~
toolkit/components/uniffi-js/Callbacks.h:137:5: note: in instantiation of member function 'std::unique_ptr<mozilla::uniffi::AsyncCallbackMethodHandlerBase>::~unique_ptr' requested here
137 |     ~PromiseHandler() = default;
    |     ^
toolkit/components/uniffi-js/Callbacks.h:137:5: note: in defaulted destructor for 'mozilla::uniffi::AsyncCallbackMethodHandlerBase::PromiseHandler' first required here
toolkit/components/uniffi-js/Callbacks.h:75:7: note: definition of 'mozilla::uniffi::AsyncCallbackMethodHandlerBase' is not complete until the closing '}'
75 | class AsyncCallbackMethodHandlerBase {
   |       ^

Differential Revision: https://phabricator.services.mozilla.com/D324858
2026-09-11 07:19:54 +00:00
Chris Peterson 82b54c3f40 Bug 2069691 - gfx: Move RenderSourceNLRS's destructor out of line for C++23 compatibility. r=gfx-reviewers,lsalzman
C++23 P2448R2 [1] relaxed the requirements for constexpr destructors.
In C++23 mode, Clang makes RenderSourceNLRS's defaulted destructor
automatically constexpr. Clang defines that destructor in NativeLayer.h
with only a forward declaration of gl::MozFramebuffer.

Defining RenderSourceNLRS's destructor instantiates the destructor of
its UniquePtr<gl::MozFramebuffer> member. Its default deleter requires
MozFramebuffer to be complete, so libc++'s completeness check fails.

To resolve this, move RenderSourceNLRS's destructor to NativeLayer.cpp,
where MozFramebuffer.h provides the complete type. This avoids adding
its GL header dependencies to NativeLayer.h.

[1] https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2022/p2448r2.html

MacOSX26.4.sdk/usr/include/c++/v1/__memory/unique_ptr.h:75:19: error: invalid application of 'sizeof' to an incomplete type 'mozilla::gl::MozFramebuffer'
   75 |     static_assert(sizeof(_Tp) >= 0, "cannot delete an incomplete type");
      |                   ^~~~~~~~~~~
obj-macos/dist/include/mozilla/layers/NativeLayer.h:264:7: note: in instantiation of member function 'std::unique_ptr<mozilla::gl::MozFramebuffer>::~unique_ptr' requested here
  264 | class RenderSourceNLRS : public profiler_screenshots::RenderSource {
      |       ^
obj-macos/dist/include/mozilla/layers/NativeLayer.h:264:7: note: in implicit destructor for 'mozilla::layers::RenderSourceNLRS' first required here
obj-macos/dist/include/mozilla/layers/NativeLayer.h:22:7: note: forward declaration of 'mozilla::gl::MozFramebuffer'
   22 | class MozFramebuffer;
      |       ^

Differential Revision: https://phabricator.services.mozilla.com/D323893
2026-09-11 07:19:09 +00:00
Chris Peterson 1ccbebd6ad Bug 2069689 - storage: Move some constructors and destructors out of line for C++23 compatibility. r=dom-storage-reviewers,janv
C++23 P2448R2 [1] relaxed the requirements for constexpr destructors.
In C++23, UniquePtr's destructor, move constructor, and null assignment
operator constexpr.

FileSystemDatabaseManagerVersion001's inline destructor destroys
UniquePtr<FileSystemFileManager> while FileSystemFileManager is only
forward declared. LSWriteOptimizerBase's inline constructors and Reset()
can destroy or reset UniquePtr<WriteInfo> before the nested WriteInfo
definition.

Move these definitions to the corresponding .cpp files, where the
UniquePtr pointee types are complete.

[1] https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2022/p2448r2.html

obj-aarch64-apple-darwin25.3.0/dist/include/mozilla/dom/LSWriteOptimizer.h:43:3: note: in instantiation of member function 'std::unique_ptr<mozilla::dom::LSWriteOptimizerBase::WriteInfo>::~unique_ptr' requested here
   43 |   LSWriteOptimizerBase() : mLastSerialNumber(0), mTotalDelta(0) {}
      |   ^
obj-aarch64-apple-darwin25.3.0/dist/include/mozilla/dom/LSWriteOptimizer.h:31:9: note: forward declaration of 'mozilla::dom::LSWriteOptimizerBase::WriteInfo'
   31 |   class WriteInfo;
      |         ^

Differential Revision: https://phabricator.services.mozilla.com/D323892
2026-09-11 07:18:21 +00:00
serge-sans-paille dae4ee5b80 Bug 2068585 - Get rid of collections.OrderedDict r=layout-reviewers,dshin
dict is ordered since 3.6

Differential Revision: https://phabricator.services.mozilla.com/D322957
2026-09-11 07:17:11 +00:00
serge-sans-paille ba3c806e8d Bug 2068585 - Get rid of collections.OrderedDict r=ahochheiden
dict is ordered since 3.6

Differential Revision: https://phabricator.services.mozilla.com/D322956
2026-09-11 07:17:09 +00:00
serge-sans-paille 55bee541e7 Bug 2068585 - Get rid of collections.OrderedDict r=ahochheiden
dict is ordered since 3.6

Differential Revision: https://phabricator.services.mozilla.com/D322955
2026-09-11 07:17:07 +00:00
Lee Salzman df6bb4f2c8 Bug 2068375. r=gfx-reviewers,bradwerth
Differential Revision: https://phabricator.services.mozilla.com/D325172
2026-09-11 07:16:26 +00:00
Ryan VanderMeulen 5b74429796 Bug 2071151 - Cherry-pick the upstream clang 23 fixes and fix cctools-port and winchecksec. r=firefox-build-system-reviewers,ahochheiden
llvmorg-24-init-8185-gbe215a25f001.patch and llvmorg-24-init-8187-gbc6c76a4d4f8.patch are the upstream
extract_symbols.py fixes for the clang::interp exports and the Registry<T> accessors, so
filter-symbols_clang_23.patch shrinks back to the Mozilla-specific size reductions. That also keeps it
applying to clang-trunk, which already has both fixes. llvmorg-24-init-7807-g651d01e873c6.patch cherry-picks
the upstream fix for a TypePrinter infinite recursion on FullyQualifiedName template parameters, which the
mozsearch plugin hits on UniquePtr<T[N]>.

libdispatch trips the new -Wunused-but-set-global (backport of the upstream fix the tpoechtrager fork lacks),
cctools-port's configure needs to copy LLVM 23's new llvm-c/Visibility.h and llvm-config.h next to lto.h, and
pe-parse's unused to_string template fails the /W4 /WX build whenever clang has -Wunused-template in -Wall
(23.1.0 did, 23.1.1 backed it out pending a libc++ cleanup), so keep it off explicitly.

Differential Revision: https://phabricator.services.mozilla.com/D325225
2026-09-11 07:15:48 +00:00
Sotaro Ikeda 700a830445 Bug 2070788 - Rename RenderCompositor::GetAndResetReleaseFence() to GetAndResetReadFence() r=gfx-reviewers,nical
ReadFence is used more frequently in gfx than ReleaseFence.

Differential Revision: https://phabricator.services.mozilla.com/D324860
2026-09-11 07:15:17 +00:00
John Reitano d30e4ee05e Bug 2069514 - Use documentGlobal instead of the removed ownerGlobal in PdfJsParent. r=pdfjs-reviewers,calixte
Node.ownerGlobal was renamed to documentGlobal, so browser?.ownerGlobal
evaluated to undefined rather than throwing. The
getMostRecentBrowserWindow() fallback therefore ran on every call: with a
single window open that is the same window, so the bug was invisible, but
with several open the certificate tab could land in a window other than
the one showing the PDF.

Added a browser test for the multi-window case.

Differential Revision: https://phabricator.services.mozilla.com/D323803
2026-09-11 07:14:09 +00:00
Release Engineering Landoscript a89b3dda91 No Bug - Bumping Mobile l10n changesets r=release a=l10n-bump DONTBUILD CLOSED TREE
ach -> 48d93a2e79fe91518b850a6de8eedd03f26ebaf9
an -> 48d93a2e79fe91518b850a6de8eedd03f26ebaf9
ar -> 48d93a2e79fe91518b850a6de8eedd03f26ebaf9
ast -> 48d93a2e79fe91518b850a6de8eedd03f26ebaf9
az -> 48d93a2e79fe91518b850a6de8eedd03f26ebaf9
be -> 48d93a2e79fe91518b850a6de8eedd03f26ebaf9
bg -> 48d93a2e79fe91518b850a6de8eedd03f26ebaf9
bn -> 48d93a2e79fe91518b850a6de8eedd03f26ebaf9
br -> 48d93a2e79fe91518b850a6de8eedd03f26ebaf9
bs -> 48d93a2e79fe91518b850a6de8eedd03f26ebaf9
ca -> 48d93a2e79fe91518b850a6de8eedd03f26ebaf9
cak -> 48d93a2e79fe91518b850a6de8eedd03f26ebaf9
cs -> 48d93a2e79fe91518b850a6de8eedd03f26ebaf9
cy -> 48d93a2e79fe91518b850a6de8eedd03f26ebaf9
da -> 48d93a2e79fe91518b850a6de8eedd03f26ebaf9
de -> 48d93a2e79fe91518b850a6de8eedd03f26ebaf9
dsb -> 48d93a2e79fe91518b850a6de8eedd03f26ebaf9
el -> 48d93a2e79fe91518b850a6de8eedd03f26ebaf9
en-CA -> 48d93a2e79fe91518b850a6de8eedd03f26ebaf9
en-GB -> 48d93a2e79fe91518b850a6de8eedd03f26ebaf9
eo -> 48d93a2e79fe91518b850a6de8eedd03f26ebaf9
es-AR -> 48d93a2e79fe91518b850a6de8eedd03f26ebaf9
es-CL -> 48d93a2e79fe91518b850a6de8eedd03f26ebaf9
es-ES -> 48d93a2e79fe91518b850a6de8eedd03f26ebaf9
es-MX -> 48d93a2e79fe91518b850a6de8eedd03f26ebaf9
et -> 48d93a2e79fe91518b850a6de8eedd03f26ebaf9
eu -> 48d93a2e79fe91518b850a6de8eedd03f26ebaf9
fa -> 48d93a2e79fe91518b850a6de8eedd03f26ebaf9
ff -> 48d93a2e79fe91518b850a6de8eedd03f26ebaf9
fi -> 48d93a2e79fe91518b850a6de8eedd03f26ebaf9
fr -> 48d93a2e79fe91518b850a6de8eedd03f26ebaf9
fy-NL -> 48d93a2e79fe91518b850a6de8eedd03f26ebaf9
ga-IE -> 48d93a2e79fe91518b850a6de8eedd03f26ebaf9
gd -> 48d93a2e79fe91518b850a6de8eedd03f26ebaf9
gl -> 48d93a2e79fe91518b850a6de8eedd03f26ebaf9
gn -> 48d93a2e79fe91518b850a6de8eedd03f26ebaf9
gu-IN -> 48d93a2e79fe91518b850a6de8eedd03f26ebaf9
he -> 48d93a2e79fe91518b850a6de8eedd03f26ebaf9
hi-IN -> 48d93a2e79fe91518b850a6de8eedd03f26ebaf9
hr -> 48d93a2e79fe91518b850a6de8eedd03f26ebaf9
hsb -> 48d93a2e79fe91518b850a6de8eedd03f26ebaf9
hu -> 48d93a2e79fe91518b850a6de8eedd03f26ebaf9
hy-AM -> 48d93a2e79fe91518b850a6de8eedd03f26ebaf9
ia -> 48d93a2e79fe91518b850a6de8eedd03f26ebaf9
id -> 48d93a2e79fe91518b850a6de8eedd03f26ebaf9
is -> 48d93a2e79fe91518b850a6de8eedd03f26ebaf9
it -> 48d93a2e79fe91518b850a6de8eedd03f26ebaf9
ja -> 48d93a2e79fe91518b850a6de8eedd03f26ebaf9
ka -> 48d93a2e79fe91518b850a6de8eedd03f26ebaf9
kab -> 48d93a2e79fe91518b850a6de8eedd03f26ebaf9
kk -> 48d93a2e79fe91518b850a6de8eedd03f26ebaf9
km -> 48d93a2e79fe91518b850a6de8eedd03f26ebaf9
kn -> 48d93a2e79fe91518b850a6de8eedd03f26ebaf9
ko -> 48d93a2e79fe91518b850a6de8eedd03f26ebaf9
lij -> 48d93a2e79fe91518b850a6de8eedd03f26ebaf9
lo -> 48d93a2e79fe91518b850a6de8eedd03f26ebaf9
lt -> 48d93a2e79fe91518b850a6de8eedd03f26ebaf9
ltg -> 48d93a2e79fe91518b850a6de8eedd03f26ebaf9
lv -> 48d93a2e79fe91518b850a6de8eedd03f26ebaf9
meh -> 48d93a2e79fe91518b850a6de8eedd03f26ebaf9
mix -> 48d93a2e79fe91518b850a6de8eedd03f26ebaf9
ml -> 48d93a2e79fe91518b850a6de8eedd03f26ebaf9
mr -> 48d93a2e79fe91518b850a6de8eedd03f26ebaf9
ms -> 48d93a2e79fe91518b850a6de8eedd03f26ebaf9
my -> 48d93a2e79fe91518b850a6de8eedd03f26ebaf9
nb-NO -> 48d93a2e79fe91518b850a6de8eedd03f26ebaf9
ne-NP -> 48d93a2e79fe91518b850a6de8eedd03f26ebaf9
nl -> 48d93a2e79fe91518b850a6de8eedd03f26ebaf9
nn-NO -> 48d93a2e79fe91518b850a6de8eedd03f26ebaf9
oc -> 48d93a2e79fe91518b850a6de8eedd03f26ebaf9
pa-IN -> 48d93a2e79fe91518b850a6de8eedd03f26ebaf9
pl -> 48d93a2e79fe91518b850a6de8eedd03f26ebaf9
pt-BR -> 48d93a2e79fe91518b850a6de8eedd03f26ebaf9
pt-PT -> 48d93a2e79fe91518b850a6de8eedd03f26ebaf9
rm -> 48d93a2e79fe91518b850a6de8eedd03f26ebaf9
ro -> 48d93a2e79fe91518b850a6de8eedd03f26ebaf9
ru -> 48d93a2e79fe91518b850a6de8eedd03f26ebaf9
sk -> 48d93a2e79fe91518b850a6de8eedd03f26ebaf9
sl -> 48d93a2e79fe91518b850a6de8eedd03f26ebaf9
son -> 48d93a2e79fe91518b850a6de8eedd03f26ebaf9
sq -> 48d93a2e79fe91518b850a6de8eedd03f26ebaf9
sr -> 48d93a2e79fe91518b850a6de8eedd03f26ebaf9
sv-SE -> 48d93a2e79fe91518b850a6de8eedd03f26ebaf9
ta -> 48d93a2e79fe91518b850a6de8eedd03f26ebaf9
te -> 48d93a2e79fe91518b850a6de8eedd03f26ebaf9
th -> 48d93a2e79fe91518b850a6de8eedd03f26ebaf9
tl -> 48d93a2e79fe91518b850a6de8eedd03f26ebaf9
tr -> 48d93a2e79fe91518b850a6de8eedd03f26ebaf9
trs -> 48d93a2e79fe91518b850a6de8eedd03f26ebaf9
uk -> 48d93a2e79fe91518b850a6de8eedd03f26ebaf9
ur -> 48d93a2e79fe91518b850a6de8eedd03f26ebaf9
uz -> 48d93a2e79fe91518b850a6de8eedd03f26ebaf9
vi -> 48d93a2e79fe91518b850a6de8eedd03f26ebaf9
wo -> 48d93a2e79fe91518b850a6de8eedd03f26ebaf9
xh -> 48d93a2e79fe91518b850a6de8eedd03f26ebaf9
zam -> 48d93a2e79fe91518b850a6de8eedd03f26ebaf9
zh-CN -> 48d93a2e79fe91518b850a6de8eedd03f26ebaf9
zh-TW -> 48d93a2e79fe91518b850a6de8eedd03f26ebaf9
2026-09-11 06:48:39 +00:00
Release Engineering Landoscript b147363df6 No Bug - Bumping Firefox l10n changesets r=release a=l10n-bump DONTBUILD CLOSED TREE
ach -> 48d93a2e79fe91518b850a6de8eedd03f26ebaf9
af -> 48d93a2e79fe91518b850a6de8eedd03f26ebaf9
an -> 48d93a2e79fe91518b850a6de8eedd03f26ebaf9
ar -> 48d93a2e79fe91518b850a6de8eedd03f26ebaf9
ast -> 48d93a2e79fe91518b850a6de8eedd03f26ebaf9
az -> 48d93a2e79fe91518b850a6de8eedd03f26ebaf9
be -> 48d93a2e79fe91518b850a6de8eedd03f26ebaf9
bg -> 48d93a2e79fe91518b850a6de8eedd03f26ebaf9
bn -> 48d93a2e79fe91518b850a6de8eedd03f26ebaf9
bo -> 48d93a2e79fe91518b850a6de8eedd03f26ebaf9
bqi -> 48d93a2e79fe91518b850a6de8eedd03f26ebaf9
br -> 48d93a2e79fe91518b850a6de8eedd03f26ebaf9
brx -> 48d93a2e79fe91518b850a6de8eedd03f26ebaf9
bs -> 48d93a2e79fe91518b850a6de8eedd03f26ebaf9
ca -> 48d93a2e79fe91518b850a6de8eedd03f26ebaf9
ca-valencia -> 48d93a2e79fe91518b850a6de8eedd03f26ebaf9
cak -> 48d93a2e79fe91518b850a6de8eedd03f26ebaf9
ckb -> 48d93a2e79fe91518b850a6de8eedd03f26ebaf9
cs -> 48d93a2e79fe91518b850a6de8eedd03f26ebaf9
cy -> 48d93a2e79fe91518b850a6de8eedd03f26ebaf9
da -> 48d93a2e79fe91518b850a6de8eedd03f26ebaf9
de -> 48d93a2e79fe91518b850a6de8eedd03f26ebaf9
dsb -> 48d93a2e79fe91518b850a6de8eedd03f26ebaf9
el -> 48d93a2e79fe91518b850a6de8eedd03f26ebaf9
en-CA -> 48d93a2e79fe91518b850a6de8eedd03f26ebaf9
en-GB -> 48d93a2e79fe91518b850a6de8eedd03f26ebaf9
eo -> 48d93a2e79fe91518b850a6de8eedd03f26ebaf9
es-AR -> 48d93a2e79fe91518b850a6de8eedd03f26ebaf9
es-CL -> 48d93a2e79fe91518b850a6de8eedd03f26ebaf9
es-ES -> 48d93a2e79fe91518b850a6de8eedd03f26ebaf9
es-MX -> 48d93a2e79fe91518b850a6de8eedd03f26ebaf9
et -> 48d93a2e79fe91518b850a6de8eedd03f26ebaf9
eu -> 48d93a2e79fe91518b850a6de8eedd03f26ebaf9
fa -> 48d93a2e79fe91518b850a6de8eedd03f26ebaf9
ff -> 48d93a2e79fe91518b850a6de8eedd03f26ebaf9
fi -> 48d93a2e79fe91518b850a6de8eedd03f26ebaf9
fr -> 48d93a2e79fe91518b850a6de8eedd03f26ebaf9
fur -> 48d93a2e79fe91518b850a6de8eedd03f26ebaf9
fy-NL -> 48d93a2e79fe91518b850a6de8eedd03f26ebaf9
ga-IE -> 48d93a2e79fe91518b850a6de8eedd03f26ebaf9
gd -> 48d93a2e79fe91518b850a6de8eedd03f26ebaf9
gl -> 48d93a2e79fe91518b850a6de8eedd03f26ebaf9
gn -> 48d93a2e79fe91518b850a6de8eedd03f26ebaf9
gu-IN -> 48d93a2e79fe91518b850a6de8eedd03f26ebaf9
he -> 48d93a2e79fe91518b850a6de8eedd03f26ebaf9
hi-IN -> 48d93a2e79fe91518b850a6de8eedd03f26ebaf9
hr -> 48d93a2e79fe91518b850a6de8eedd03f26ebaf9
hsb -> 48d93a2e79fe91518b850a6de8eedd03f26ebaf9
hu -> 48d93a2e79fe91518b850a6de8eedd03f26ebaf9
hy-AM -> 48d93a2e79fe91518b850a6de8eedd03f26ebaf9
hye -> 48d93a2e79fe91518b850a6de8eedd03f26ebaf9
ia -> 48d93a2e79fe91518b850a6de8eedd03f26ebaf9
id -> 48d93a2e79fe91518b850a6de8eedd03f26ebaf9
is -> 48d93a2e79fe91518b850a6de8eedd03f26ebaf9
it -> 48d93a2e79fe91518b850a6de8eedd03f26ebaf9
ja -> 48d93a2e79fe91518b850a6de8eedd03f26ebaf9
ja-JP-mac -> 48d93a2e79fe91518b850a6de8eedd03f26ebaf9
ka -> 48d93a2e79fe91518b850a6de8eedd03f26ebaf9
kab -> 48d93a2e79fe91518b850a6de8eedd03f26ebaf9
kk -> 48d93a2e79fe91518b850a6de8eedd03f26ebaf9
km -> 48d93a2e79fe91518b850a6de8eedd03f26ebaf9
kn -> 48d93a2e79fe91518b850a6de8eedd03f26ebaf9
ko -> 48d93a2e79fe91518b850a6de8eedd03f26ebaf9
lij -> 48d93a2e79fe91518b850a6de8eedd03f26ebaf9
lo -> 48d93a2e79fe91518b850a6de8eedd03f26ebaf9
lt -> 48d93a2e79fe91518b850a6de8eedd03f26ebaf9
ltg -> 48d93a2e79fe91518b850a6de8eedd03f26ebaf9
lv -> 48d93a2e79fe91518b850a6de8eedd03f26ebaf9
meh -> 48d93a2e79fe91518b850a6de8eedd03f26ebaf9
mk -> 48d93a2e79fe91518b850a6de8eedd03f26ebaf9
ml -> 48d93a2e79fe91518b850a6de8eedd03f26ebaf9
mr -> 48d93a2e79fe91518b850a6de8eedd03f26ebaf9
ms -> 48d93a2e79fe91518b850a6de8eedd03f26ebaf9
my -> 48d93a2e79fe91518b850a6de8eedd03f26ebaf9
nb-NO -> 48d93a2e79fe91518b850a6de8eedd03f26ebaf9
ne-NP -> 48d93a2e79fe91518b850a6de8eedd03f26ebaf9
nl -> 48d93a2e79fe91518b850a6de8eedd03f26ebaf9
nn-NO -> 48d93a2e79fe91518b850a6de8eedd03f26ebaf9
oc -> 48d93a2e79fe91518b850a6de8eedd03f26ebaf9
pa-IN -> 48d93a2e79fe91518b850a6de8eedd03f26ebaf9
pl -> 48d93a2e79fe91518b850a6de8eedd03f26ebaf9
pt-BR -> 48d93a2e79fe91518b850a6de8eedd03f26ebaf9
pt-PT -> 48d93a2e79fe91518b850a6de8eedd03f26ebaf9
rm -> 48d93a2e79fe91518b850a6de8eedd03f26ebaf9
ro -> 48d93a2e79fe91518b850a6de8eedd03f26ebaf9
ru -> 48d93a2e79fe91518b850a6de8eedd03f26ebaf9
sat -> 48d93a2e79fe91518b850a6de8eedd03f26ebaf9
sc -> 48d93a2e79fe91518b850a6de8eedd03f26ebaf9
scn -> 48d93a2e79fe91518b850a6de8eedd03f26ebaf9
sco -> 48d93a2e79fe91518b850a6de8eedd03f26ebaf9
si -> 48d93a2e79fe91518b850a6de8eedd03f26ebaf9
sk -> 48d93a2e79fe91518b850a6de8eedd03f26ebaf9
skr -> 48d93a2e79fe91518b850a6de8eedd03f26ebaf9
sl -> 48d93a2e79fe91518b850a6de8eedd03f26ebaf9
son -> 48d93a2e79fe91518b850a6de8eedd03f26ebaf9
sq -> 48d93a2e79fe91518b850a6de8eedd03f26ebaf9
sr -> 48d93a2e79fe91518b850a6de8eedd03f26ebaf9
sv-SE -> 48d93a2e79fe91518b850a6de8eedd03f26ebaf9
szl -> 48d93a2e79fe91518b850a6de8eedd03f26ebaf9
ta -> 48d93a2e79fe91518b850a6de8eedd03f26ebaf9
te -> 48d93a2e79fe91518b850a6de8eedd03f26ebaf9
tg -> 48d93a2e79fe91518b850a6de8eedd03f26ebaf9
th -> 48d93a2e79fe91518b850a6de8eedd03f26ebaf9
tl -> 48d93a2e79fe91518b850a6de8eedd03f26ebaf9
tr -> 48d93a2e79fe91518b850a6de8eedd03f26ebaf9
trs -> 48d93a2e79fe91518b850a6de8eedd03f26ebaf9
uk -> 48d93a2e79fe91518b850a6de8eedd03f26ebaf9
ur -> 48d93a2e79fe91518b850a6de8eedd03f26ebaf9
uz -> 48d93a2e79fe91518b850a6de8eedd03f26ebaf9
vi -> 48d93a2e79fe91518b850a6de8eedd03f26ebaf9
wo -> 48d93a2e79fe91518b850a6de8eedd03f26ebaf9
xh -> 48d93a2e79fe91518b850a6de8eedd03f26ebaf9
zh-CN -> 48d93a2e79fe91518b850a6de8eedd03f26ebaf9
zh-TW -> 48d93a2e79fe91518b850a6de8eedd03f26ebaf9
2026-09-11 06:48:36 +00:00
owlishDeveloper 3fa9e2861b Bug 2057685 - Part 3: Add IPC to get full scrollable size and device pixel ratio from content r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D318615
2026-09-11 06:14:03 +00:00
Ryan VanderMeulen b2bfc79729 Bug 2071134 - Use the default Debian 13 toolchain-build image for the remaining wasi and openh264 tasks. r=firefox-build-system-reviewers,ahochheiden
deb13-toolchain-build is now the default image for toolchain tasks, so the explicit setting on the wasi
compiler-rt and sysroot tasks is redundant. openh264-plugin isn't a toolchain task and has no default,
so move it from deb12 to deb13 explicitly.

Differential Revision: https://phabricator.services.mozilla.com/D325224
2026-09-11 06:12:58 +00:00
hannajones d7cb04ea8f Bug 2070989 - add akulyk to the Desktop Theme traige rotation r=desktop-theme-reviewers,akulyk
Differential Revision: https://phabricator.services.mozilla.com/D325062
2026-09-11 06:12:29 +00:00
hannajones 8deda8007c Bug 2068917 - revert to old theme color selection for non-Nova themes r=rpl,desktop-theme-reviewers,mkennedy,tgiles,mossop
We switched how we're selecting theme foreground and background colors to make the profile avatars look the best for Nova specific themes. It turns out this causes contrast issues with some legacy/user generated themes, so this patch adds a check to determine which color selection logic we should follow.

Differential Revision: https://phabricator.services.mozilla.com/D324415
2026-09-11 06:11:58 +00:00
hannajones 3fe3d78113 Bug 2068046 - Ensure avatar background color is set when picking default theme with Nova enabled r=mkennedy,mossop
Differential Revision: https://phabricator.services.mozilla.com/D323055
2026-09-11 06:11:56 +00:00
scottdowne c44f5a9816 Bug 2070696 - Turn newtab sections on by default for all launched markets. r=jbrown
Differential Revision: https://phabricator.services.mozilla.com/D325065
2026-09-11 06:11:31 +00:00
Reem H d864680783 Bug 2037472 - Fix focus timer widget's radio group keyboard navigation and selection. r=nina-py
Differential Revision: https://phabricator.services.mozilla.com/D323948
2026-09-11 06:11:01 +00:00
Updatebot 68e7839346 Bug 2070896 - Apply mozilla patches for libvpx r=chunmin
Differential Revision: https://phabricator.services.mozilla.com/D324948
2026-09-11 06:10:31 +00:00
Updatebot ef723865ee Bug 2070896 - Update libvpx to d2413e2ca11039724ca33bb4d661ca2c94cb501e r=chunmin
Differential Revision: https://phabricator.services.mozilla.com/D324947
2026-09-11 06:10:29 +00:00
Updatebot 33ad7988e5 Bug 2070894 - Update dav1d to a34e0685b9111b9eb1d7835ea7bea5b425dced73 r=chunmin
Differential Revision: https://phabricator.services.mozilla.com/D324944
2026-09-11 06:10:06 +00:00
Iain Ireland f946b611a1 Bug 2058313: Update existing code r=jandem
Now that we (sometimes) handle interrupts, a bunch of code can be updated. The biggest change here is error handling in RegExpShared::execute. Prior to this change, we assumed that returning RegExpRunStatus::Error from a regexp implied stack overflow unless there was an interrupt pending. Now that we support handling interrupts, we also have to consider the case where we invoke an interrupt handler and it returns false. To ensure that we properly disambiguate between that case and stack overflow, I've added a flag to the context that can be used to signal that we would like to throw a stack overflow error (which we can't do because we're generally in a context where we can't GC). That flag is now checked in RegExpShared::execute, and in each of the four JIT entry points that are used as fallbacks from regexp stub code. (Previously, if we hit stack overflow when called via a regexp stub, I think we would just fall back to a VM call and invoke the regexp again, which would presumably eventually overflow again. It seems better to fail early.)

(I also squashed a few clang-format changes that didn't absorb properly into this patch.)

Differential Revision: https://phabricator.services.mozilla.com/D324679
2026-09-11 06:09:37 +00:00
Iain Ireland 87cc57cebc Bug 2058313: Handle interrupts from RegExp jitcode r=jandem
This is fiddly code, so (using rr) I manually verified that:
- interrupt-regexp-with-gc.js covers the case where the string is promoted from the nursery while interrupted
- the AutoInterruptingRegExp in HandleRegExpInterrupt is necessary; without it, interrupt-regexp-with-gc.js will free the jitcode and segfault
- interrupt-regexp-with-regexp.js covers the case where we reallocate the backtrack stack while interrupted
- interrupt-regexp-with-nested-regexp.js covers the case where we interrupt an interrupted regexp (the interrupt depth in the JitZone goes to 5)

Differential Revision: https://phabricator.services.mozilla.com/D324678
2026-09-11 06:09:36 +00:00
Iain Ireland dbc4b8c34f Bug 2058313: Move all backtrack code into a single handler r=jandem
Currently, we sometimes backtrack by emitting the `Backtrack()` code inline, and sometimes by jumping to a shared backtrack handler. Given that we are emitting the backtrack handler, we might as well use it consistently to reduce code size, particularly since interrupt handling will make it a bit bigger. This matches what V8 already does. This also makes it a little easier to implement backtrack stack elision (bug 2061826).

Differential Revision: https://phabricator.services.mozilla.com/D324677
2026-09-11 06:09:36 +00:00
Iain Ireland 0ac92b5476 Bug 2058313: Add aspirational backtrack stack SMDOC and implement non-interrupting parts r=jandem
The backtracking stuff gets somewhat complicated, so I wrote up an SMDOC to help pin down the details. This comment is currently not entirely accurate (in that we don't support interrupts yet) but it will be accurate at the end of the patch stack.

Differential Revision: https://phabricator.services.mozilla.com/D324676
2026-09-11 06:09:35 +00:00
Iain Ireland 4b04e4d381 Bug 2058313: Pass a String instead of start/end pointers to RegExp jitcode r=jandem
In preparation for being able to handle GC in interrupted regexps execution, the jitcode needs direct access to the string, so that it can be rooted when necessary. This patch changes InputOutputData to pass in a string directly, and stores it in the FrameData. While we're here, we also add the canResume flag; eventually, the regexp will use this to determine that it's safe to handle interrupts because everything is rooted in the caller.

Differential Revision: https://phabricator.services.mozilla.com/D324675
2026-09-11 06:09:34 +00:00
Maryam 06774ebc35 Bug 2062032 - Note that the Custom ETP category exists r=dmehic
Differential Revision: https://phabricator.services.mozilla.com/D324894
2026-09-11 06:08:55 +00:00
Silaghi ac6e68df94 Revert "Bug 2061046 - Add AITab Header component, wire up page actions - r=omarg,fluent-reviewers,bolsson" for causing bc and TV failures
This reverts commit f1856812ef.
2026-09-11 06:00:54 +00:00
Silaghi fb547655b0 Revert "Bug 2066063 - [devtools] Redirect invalid path to 404 for local mode requests. r=devtools-reviewers,nchevobbe" for causing devtools and TV failures
This reverts commit d27eb6ae99.

Revert "Bug 2066063 - [devtools] Ignore local mode request with custom ports. r=devtools-reviewers,jdescottes"

This reverts commit 2d7e2b58b1.
2026-09-11 05:23:06 +00:00
Silaghi 3998bffd3c Revert "Bug 2066474 - Restore selected checkmark on lists widget switcher menu. r=maxx" for causing node failures
This reverts commit 794c470b67.
2026-09-11 05:08:09 +00:00
Maile Lucks f1856812ef Bug 2061046 - Add AITab Header component, wire up page actions - r=omarg,fluent-reviewers,bolsson
Differential Revision: https://phabricator.services.mozilla.com/D322792
2026-09-11 04:23:58 +00:00
Dominik Bay 4fd5a695e8 Bug 2067245 - Validate destination strides in ConvertToI420. r=media-playback-reviewers,chunmin
Bug 2050150 added a stride check to ConvertToNV12 after the WMF encoder
passed a chroma stride that was too small. ConvertToI420 had the same
missing check, so I added it too, with a gtest covering the Y, U and V
stride cases.

Differential Revision: https://phabricator.services.mozilla.com/D321954
2026-09-11 04:23:17 +00:00
unifolia 7657554d78 Bug 2062965 - Tell Smart Window chat tabs apart by their conversation when closing duplicate tabs r=tabbrowser-reviewers,kcochrane,Mardak
Differential Revision: https://phabricator.services.mozilla.com/D324446
2026-09-11 04:22:45 +00:00
Randell Jesup 997b80c69f Bug 2070252 - Check content policy types from PFetch. r=necko-reviewers,valentin
Differential Revision: https://phabricator.services.mozilla.com/D324967
2026-09-11 04:22:03 +00:00
Caleb Chan 0bd8a8db52 Bug 2054193 - Add functionality to use form history to target low/no SAP searchers. r=mcheang,omc-reviewers,emcminn
Give the stale form-history entry in check_recentSearchCount a safety
margin past the recency window, instead of landing exactly on the
28-day cutoff, since the test's cutoff and the recentSearchCount
getter's own Date.now()-based cutoff could land on either side of the
boundary on loaded/virtualized CI hardware, intermittently counting it
as recent.

Differential Revision: https://phabricator.services.mozilla.com/D311643
2026-09-11 04:21:32 +00:00
Nicholas Poon 13b7456a12 Bug 2066206 - Remove recently visited and bookmarks homepage sections from nimbus and default to false r=android-reviewers,gl,mobiletest-reviewers,jajohnson
Differential Revision: https://phabricator.services.mozilla.com/D322936
2026-09-11 04:21:03 +00:00
Haik Aftandilian 92a4a0d0a1 Bug 2068208 - [macOS 27] Warn ./mach run users about new Firefox directory protections r=firefox-build-system-reviewers,ahochheiden,mac-reviewers,bradwerth
On macOS 27, when the default data directory (~/Library/Application
Support/Firefox) can not be read, warn the user and provide workaround
instructions.

Differential Revision: https://phabricator.services.mozilla.com/D322802
2026-09-11 04:20:46 +00:00
Giulia Cardieri 421a1bd6aa Bug 2067076: Add z-index and cursor pointer to jump to bottom button in chat r=czhou
Issue: the jump to bottom chat button stops working after we send a second message.

Solution: it was behind the blur and needed a z-index to come to the top layer.

Differential Revision: https://phabricator.services.mozilla.com/D324437
2026-09-11 04:20:11 +00:00
KS 2149ebeabc Bug 2071034 - Disable V8 metagen instance-type generation for win64 CaR builds r=aglavic
windows CaR builds fail on //v8:metagen_isntance_types_h
the cause is the header search order in the new v8 tools/metagen

only our build fails as our MSVC is newer

Differential Revision: https://phabricator.services.mozilla.com/D325107
2026-09-11 04:19:43 +00:00
Irene Ni 794c470b67 Bug 2066474 - Restore selected checkmark on lists widget switcher menu. r=maxx
Differential Revision: https://phabricator.services.mozilla.com/D321275
2026-09-11 04:19:15 +00:00
Nina Pypchenko 5bc47f3a9e Bug 2066344 - Part 3: Add telemetry for opening the New Tab customize panel and its subpanels r=maxx
Record in the newtab ping when the Customize panel opens, when one of
its subpanels opens and which one, and when "Explore more themes" is
clicked in the themes subpanel. The CustomizeMenu component records the
two open events at the point where the panel becomes visible, so every
way of opening it counts the same way, whether from the customize
button, a message, or the widgets context menu. The "Explore more
themes" button reports its click as a user event, the way the other
New Tab clicks reach the TelemetryFeed module.

The panel open reuses the `SHOW_PERSONALIZE` user event name, so the
seven entry points that already sent that event are changed to stop
sending it. Nothing was listening for the event before this patch, and
now that the TelemetryFeed module is aware of it, leaving those
dispatches in place would count every open twice.

Differential Revision: https://phabricator.services.mozilla.com/D324869
2026-09-11 04:18:41 +00:00
Nina Pypchenko 7d16c6c134 Bug 2066344 - Part 2: Track which New Tab customize subpanel is open with a single activeSubpanel value r=maxx
Refactor how the customize panel tracks which subpanel is open. Part 3 of
this stack adds telemetry for the customize panel, and that telemetry
needs one value that names the open subpanel. The Base component now
holds that value as `activeSubpanel`, so at most one subpanel is open at
a time, and the CustomizeMenu component derives each subpanel's open
state and its own styling from `activeSubpanel`. This removes the four
booleans and the callback each subpanel used to report its state back
up. The subpanel props are unchanged.

This also fixes the panel styling itself as if no subpanel were open
after one subpanel replaced another, which Dre noted on D324515.

The Jest tests for the Base component now cover the new state: opening,
toggling and closing subpanels, one subpanel at a time, and the panel
taking its styling from the open subpanel. These replace the Enzyme
tests deleted in this patch.

Differential Revision: https://phabricator.services.mozilla.com/D324868
2026-09-11 04:18:40 +00:00
Nina Pypchenko 72b0ccafc2 Bug 2066344 - Part 1: Call the theme picker's shown() when a New Tab picker becomes visible r=maxx
New Tab now calls the toolkit theme picker's `shown()` whenever one of
its pickers comes into view, so the `theme_picker.shown` event is
recorded for about:newtab: for the compact picker when the Customize
panel opens, and for the full picker when the "See more themes" subpanel
opens. The picker element loads lazily, so the call waits for the element
to be defined and is skipped if the panel has moved on by then, or if the
Firefox build is too old to have `shown()`.

Note that toolkit's `ThemePickerChild` actor records `shown` at most once
per document, whichever layout reports first. The Customize panel always
opens on its root panel, so the compact picker reports first and the full
picker's event from about:newtab is currently dropped. New Tab still
calls `shown()` every time either picker appears, so if toolkit later
records one event per layout, the full picker's events will start
arriving without any change on the New Tab side.

Differential Revision: https://phabricator.services.mozilla.com/D324867
2026-09-11 04:18:39 +00:00
Andrew McCreight 83b163b91b Bug 2065291 - Never createInstance in MockRegistrar. r=extension-reviewers,kpatenio,chutten,robwu,hiro
The shouldCreateInstance option for MockRegistrar, which is true by default,
makes it so that every time you call createInstance on the mock component it
calls createInstance on the real component, and sticks the real instance on
a property _genuine. This can be used for things like forwarding calls you
don't want to change to the real component.

Unfortunately, in order to support the full generality of MockRegistrar, this
is implemented in terms of a low-level XPCOM component manager feature called
getClassObject, which gets a handle to the underlying factory. I am trying to
get rid of it.

However, this feature is only used in two specific places, in FakeCertDB and
in telemetry. Both of them only forward a few property lookups to the real
component, and the actual real component doesn't seem to change, so we can
manually snapshot it when we create the mock component and then remove this
feature from MockRegistrar entirely.

Removing this option means that there are no options, so I merged registerEx
into register.

Another non-obvious thing is that there's a try-catch around the starting part
of the function where we check for an existing component. I found at least one
test, browser_downloads_taskbar.js, that relies on this. It registers a mock
component for some OS-specific things, across every OS, so we need to be able to
handle this gracefully. Now that this can only fail in one place, I tightened
up the try-catch.

Differential Revision: https://phabricator.services.mozilla.com/D320276
2026-09-11 04:18:05 +00:00
Alexandre Poirot d27eb6ae99 Bug 2066063 - [devtools] Redirect invalid path to 404 for local mode requests. r=devtools-reviewers,nchevobbe
Differential Revision: https://phabricator.services.mozilla.com/D324080
2026-09-11 04:17:28 +00:00
Alexandre Poirot 2d7e2b58b1 Bug 2066063 - [devtools] Ignore local mode request with custom ports. r=devtools-reviewers,jdescottes
Differential Revision: https://phabricator.services.mozilla.com/D324079
2026-09-11 04:17:27 +00:00
Punam Dahiya 4c840bbcfc Bug 2070652 - Record Glean events for the Smart Window Firefox Accounts sign-in flow r=gcardieri
Differential Revision: https://phabricator.services.mozilla.com/D324742
2026-09-11 04:16:54 +00:00
Zoya 03d130d6c0 Bug 2064864 - added datastore for l2p persistence r=android-reviewers,matt-tighe
Differential Revision: https://phabricator.services.mozilla.com/D324443
2026-09-11 04:16:25 +00:00
Emily McMinn 2673979a6c Bug 2057607 - Update checklist divider color for Nova r=omc-reviewers,jprickett
Differential Revision: https://phabricator.services.mozilla.com/D322652
2026-09-11 04:15:21 +00:00
Jack Brown 7ebc77de37 Bug 2070753 - Put the host's tokens first in the search CTA's derived query - r=mconley
The `dnsNotFound` Search CTA built its query as the path's keywords followed by the host's, so the site the user was trying to reach trailed the query. We want to lead with the host's tokens instead.

Differential Revision: https://phabricator.services.mozilla.com/D324814
2026-09-11 04:14:48 +00:00
ahanot 90231dc473 Bug 2070627 - Fix the New Tab ads-client path serving MARS and cached ads. r=mconley
Differential Revision: https://phabricator.services.mozilla.com/D324709
2026-09-11 04:13:41 +00:00
serge-sans-paille 34e7634b35 Bug 2068585 - Get rid of collections.OrderedDict r=ahochheiden
dict is ordered since 3.6

Differential Revision: https://phabricator.services.mozilla.com/D322954
2026-09-11 04:13:08 +00:00
serge-sans-paille 4af46aa0f8 Bug 2068585 - Get rid of collections.OrderedDict r=perftest-reviewers,aglavic
dict is ordered since 3.6

Differential Revision: https://phabricator.services.mozilla.com/D322953
2026-09-11 04:13:06 +00:00
Andrew McCreight 402b792817 Bug 2065681, part 4 - Remove getClassObject call from unregisterFactory. r=jgraham
getClassObject is used in unregisterFactory to determine what the current
factory is so that we can unregister it, but the only caller is already
tracking it, so pass it in rather than recomputing it.

getClassObject is an odd API I am trying to eliminate, and this is really
my entire goal of this patch series.

Differential Revision: https://phabricator.services.mozilla.com/D320609
2026-09-11 04:12:43 +00:00
Andrew McCreight 7b2d95ca1f Bug 2065681, part 3 - Specialize the two swapFactoryRegistration methods. r=jgraham
In this patch, I carry out the simplification enabled by the previous patch.

registerFactory
* The first argument is always null, so drop it and simplify the code.
* currentFactory is now dead so remove it.
* Remove a comment that no longer applies.

unregisterFactory
* cid is always non-null. I added a null check for cid, but this is mostly for
documentation purposes, because its caller has already done the same check.
* The only caller only passes in two arguments, so newFactory will always be
undefined. Replace it with null in the place that it is used.
* The caller does not use the return value, so don't bother with it.

I think the split version is easier to understand, and it enables a further
simplification in the next patch.

Differential Revision: https://phabricator.services.mozilla.com/D320608
2026-09-11 04:12:42 +00:00
Andrew McCreight 67ed7eef16 Bug 2065681, part 2 - Copy swapFactoryRegistration into two identical versions. r=jgraham
swapFactoryRegistration is only called by MockObjectRegisterer, in two places.
When we're initially registering the factory, cid is null and newFactory is
non-null. When we're unregistering the factory, cid is non-null and newFactory
is null.

As a first step towards simplifying this method, in this patch I change
swapFactoryRegistration into two identical methods, registerFactory
and unregisterFactory, to cover these two roles. Later patches will
carry out simplifications, but splitting out this intermediate patch
makes it easier to see what actually changed.

Differential Revision: https://phabricator.services.mozilla.com/D321536
2026-09-11 04:12:42 +00:00
Andrew McCreight ea5dc5d553 Bug 2065681, part 1 - Clean up the return value of SpecialPowers.swapFactoryRegistration. r=jgraham
This only ever returns an object with an originalCID field, so just return the value
and get rid of the unnecessary error handling code in MockObjectRegisterer.

Differential Revision: https://phabricator.services.mozilla.com/D320607
2026-09-11 04:12:41 +00:00
Lee Salzman 06bed2fc72 Bug 2050542. r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D325138
2026-09-11 04:12:05 +00:00
Dustin Whisman 3b9b8ba74d Bug 2070294 - Fix newtab context menu button colors r=desktop-theme-reviewers,tgiles,thecount
Differential Revision: https://phabricator.services.mozilla.com/D324732
2026-09-11 04:11:41 +00:00
Serban Stanca 3b1a6fe2d5 Revert "Bug 2036256: Add test r=jonco" for causing sm bustages in bug2036256.js.
This reverts commit 1d36b3661a.
2026-09-11 03:47:32 +00:00
Julie De Lorenzo 0f45b0743e Bug 2070369: Fix crash when bookmark snackbar is shown and the fragment is destroyed r=android-reviewers,007
Differential Revision: https://phabricator.services.mozilla.com/D324475
2026-09-11 02:58:48 +00:00
Glenn Watson 0c87244bf9 Bug 2070481 - Don't apply the snap outset to an outset box-shadow's ClipOut r=gfx-reviewers,nical
Bug 2052033 passed the spread as the clip snap outset on both zero-blur
box-shadow arms. Only inset needs it, where the ClipOut is the element
deflated by the spread. An outset shadow's ClipOut is already the element,
and anchoring it to snap(element.inflate(spread)) inset by the spread
differs from snap(element) whenever spread * device_scale is fractional,
so a border or background the element paints in the same colour no longer
meets the shadow and a partial-coverage seam flickers as the element moves.

The reftest fills the element in the shadow colour so the correct result is
the snapped shadow rect, solid. It uses spread 10.5 at scale 1, and no
scale(*), because an integral spread * scale is the one case the bug cannot
show in.

Differential Revision: https://phabricator.services.mozilla.com/D324811
2026-09-11 02:58:18 +00:00
Sammy Khamis d784e578eb Bug 2064511: Don't reuse a device record from a replaced session r=markh
Differential Revision: https://phabricator.services.mozilla.com/D319657
2026-09-11 02:57:33 +00:00
kpatenio 1dd26280cb Bug 2067435 - use outline to increase audio overlay icon size for collapsed and pinned tabs r=desktop-theme-reviewers,tabbrowser-reviewers,sthompson,emilio
Differential Revision: https://phabricator.services.mozilla.com/D323374
2026-09-11 02:57:01 +00:00
Iain Ireland 352674da24 Bug 2070649: Report OOM size in irregexp::Zone r=dminor
AutoEnterOOMUnsafeRegion::crash has an overload that annotates the crash with information about the size of the allocation, but it's been broken for a while. Fix it and use it here.

Drive-by: rewrite some math to be more careful about overflow

Differential Revision: https://phabricator.services.mozilla.com/D324766
2026-09-11 02:56:31 +00:00
Iain Ireland 7d09e5a848 Bug 2069719: Remove dead JitOptions r=dminor
Regexp modifiers and named capture groups were shipped ~2 years ago. V8 removed the flag in irregexp to disable them, so these JitOptions no longer do anything.

Differential Revision: https://phabricator.services.mozilla.com/D324804
2026-09-11 02:55:59 +00:00
Iain Ireland f40315eaf2 Bug 2069719: Remove unneeded argument from AnalyzeRegExp r=dminor
Irregexp now stores flags inside nodes (to improve handling of regexp flag modifiers), so AnalyzeRegExp no longer needs the flags to be passed in.

Differential Revision: https://phabricator.services.mozilla.com/D324803
2026-09-11 02:55:57 +00:00
Updatebot 4b41f47b64 Bug 2069719 - Apply mozilla patches for irregexp r=iain
Differential Revision: https://phabricator.services.mozilla.com/D323910
2026-09-11 02:55:55 +00:00
Updatebot 02fee9a00c Bug 2069719 - Update irregexp to 9f30cc5fc4ad6c3236c522fd23224ddc94591a20 r=iain
Differential Revision: https://phabricator.services.mozilla.com/D323909
2026-09-11 02:55:52 +00:00
Iain Ireland fa0902b674 Bug 2040903: Add test and comment r=jandem
Differential Revision: https://phabricator.services.mozilla.com/D301606
2026-09-11 02:55:29 +00:00
Iain Ireland 1d36b3661a Bug 2036256: Add test r=jonco
I'm not sure how bad the bug is, so I'm putting the test in a separate patch just in case.

Differential Revision: https://phabricator.services.mozilla.com/D297931
2026-09-11 02:55:05 +00:00
Iain Ireland f76268fec3 Bug 2034837: Add testcase r=jandem
Differential Revision: https://phabricator.services.mozilla.com/D297076
2026-09-11 02:54:41 +00:00
Iain Ireland a4892dedaf Bug 2029806: Add test r=jandem
Differential Revision: https://phabricator.services.mozilla.com/D294529
2026-09-11 02:54:18 +00:00
Iain Ireland ae0ce0bafc Bug 2029292: Add test r=nbp
Differential Revision: https://phabricator.services.mozilla.com/D293197
2026-09-11 02:53:54 +00:00
Andrej Glavic 4147bd5b01 Bug 2013288 - Run the jetstream3 benchmark on Android emulators. r=perftest-reviewers,kshampur
Add browsertime-benchmark-jetstream3 to the android-em-14-arm64 test set at tier 3, and schedule it on autoland for fenix, matching what speedometer3
already does on that platform. Jetstream3 produces many more alerts than speedometer3(none since we landed the sp3 emulator change) so it makes sense
to use this benchmark in addition to sp3 because of its ability to show long term trends for alerting.

Also raise that emulator's RAM from 3GB to 6GB, which was the culprit behind the jetstream3 job permafailing previously.

Differential Revision: https://phabricator.services.mozilla.com/D324733
2026-09-11 02:53:31 +00:00
mimi 68b523fa01 Bug 1901533 - Moves Refresh Firefox Infobar into Messaging System r=firefox-desktop-core-reviewers ,fluent-reviewers,omc-reviewers,bolsson,mossop,sachung
Scope of this patch is to pull the refresh (unused and reinstall) firefox infobar into messaging system.

The infobars are now idle dispatched through the defaultBrowserCheck trigger (previously `onFirstWindowLoaded`), and will respect [activeNotifications](https://searchfox.org/firefox-main/source/browser/components/asrouter/modules/ASRouterTargeting.sys.mjs#1125)

 See screenshots below:

{F79391908}

{F79391907}

{F79391906}

[try run](https://treeherder.mozilla.org/jobs?repo=try&landoInstance=lando-prod-2025&landoCommitID=88932)

Differential Revision: https://phabricator.services.mozilla.com/D323372
2026-09-11 02:52:54 +00:00
Jari Jalkanen c2568070ec Bug 2056841: Validate OriginInfo after lock reacquisition. r=dom-storage-reviewers,hsingh
Differential Revision: https://phabricator.services.mozilla.com/D323652
2026-09-11 01:54:43 +00:00
nhadji e0a301798d Bug 2070089 - Run hazard tasks on git-backed pushes, r=taskgraph-reviewers,jcristau
Differential Revision: https://phabricator.services.mozilla.com/D324211
2026-09-11 01:53:53 +00:00
nhadji 5c95722b8e Bug 2070089 - Run valgrind tasks on git-backed pushes, r=taskgraph-reviewers,jcristau
Differential Revision: https://phabricator.services.mozilla.com/D324213
2026-09-11 01:53:01 +00:00
Ryan VanderMeulen f09cc8bec5 Bug 2062690 - Update to Expat 2.8.4. r=mccr8
Differential Revision: https://phabricator.services.mozilla.com/D322437
2026-09-11 01:51:45 +00:00
Ryan VanderMeulen a5566dd1d1 Bug 2062690 - Refresh Expat local patches for 2.8.4. r=mccr8
Differential Revision: https://phabricator.services.mozilla.com/D322436
2026-09-11 01:51:44 +00:00
Ryan VanderMeulen 5084b60da3 Bug 2062690 - Update to Expat 2.8.3. r=mccr8
Differential Revision: https://phabricator.services.mozilla.com/D318007
2026-09-11 01:51:43 +00:00
Ryan VanderMeulen 407670ca11 Bug 2062690 - Refresh Expat local patches for 2.8.3. r=mccr8
Differential Revision: https://phabricator.services.mozilla.com/D318006
2026-09-11 01:51:42 +00:00
nhadji 604b9e4770 Bug 2070089 - Run searchfox tasks on git-backed pushes, r=taskgraph-reviewers,jcristau
Differential Revision: https://phabricator.services.mozilla.com/D324214
2026-09-11 01:50:42 +00:00
nhadji c3cc776512 Bug 2070089 - Run diffoscope tasks on git-backed pushes, r=taskgraph-reviewers,jcristau
Differential Revision: https://phabricator.services.mozilla.com/D324215
2026-09-11 01:49:50 +00:00
nhadji 1d22dc4916 Bug 2070444 - Run addon tasks on git-backed pushes, r=taskgraph-reviewers,jcristau
Differential Revision: https://phabricator.services.mozilla.com/D324546
2026-09-11 01:49:01 +00:00
nhadji 9bfd8889e8 Bug 2070444 - Run artifact-build tasks on git-backed pushes, r=taskgraph-reviewers,jcristau
Differential Revision: https://phabricator.services.mozilla.com/D324547
2026-09-11 01:48:12 +00:00
nhadji 813ce6c59e Bug 2070521 - Run instrumented-build tasks on git-backed pushes, r=taskgraph-reviewers,jcristau
Differential Revision: https://phabricator.services.mozilla.com/D324603
2026-09-11 01:47:24 +00:00
nhadji c335dd7ad4 Bug 2070521 - Run generate-profile tasks on git-backed pushes, r=taskgraph-reviewers,jcristau
Differential Revision: https://phabricator.services.mozilla.com/D324604
2026-09-11 01:46:34 +00:00
nhadji c0ebc07392 Bug 2070847 - Run mingwclang build tasks on git-backed pushes, r=taskgraph-reviewers,bhearsum
Differential Revision: https://phabricator.services.mozilla.com/D324903
2026-09-11 01:46:00 +00:00
Aaditya Dhingra b71c35faa8 Bug 2070991 - Start the nightly 158 development cycle. r=android-reviewers,tthibaud
Differential Revision: https://phabricator.services.mozilla.com/D325069
2026-09-11 01:45:25 +00:00
Kershaw Chang f828eb05f8 Bug 2070072 - Accept ssl_kea_kem as a valid KEA, r=keeler,necko-reviewers
Differential Revision: https://phabricator.services.mozilla.com/D324228
2026-09-11 01:44:52 +00:00
Haik Aftandilian fa4401d54e Bug 2068820 - Remove or update metrics expiring at the end of Firefox 159: pkcs11.third_party_module_* r=keeler
Extending these pkcs11 module metrics for another year. Knowing the
code signing and usage statistics is important for future work in
this area.

Differential Revision: https://phabricator.services.mozilla.com/D325009
2026-09-11 01:44:26 +00:00
Elissa Cha 67e3887542 Bug 2064735 - PUWYLO confirmation cards become non-functional Retry prompts after restart r=pdahiya,ai-security-reviewers
Differential Revision: https://phabricator.services.mozilla.com/D323318
2026-09-11 01:43:58 +00:00
Serban Stanca 14ed0c687a Revert "Bug 2062774, Bug 2064736, Bug 2068791, Bug 2069163 - Use design tokens for Account menu small fonts r=nsharpley,desktop-theme-reviewers,dao" for causing mochitests failures in browser_mcb_redirect.js.
This reverts commit 64c67d806f.

This reverts commit c029c1ba18.

This reverts commit 09ee00fd99.

This reverts commit c184010ed1.
2026-09-11 00:56:41 +00:00
Release Engineering Landoscript da56d32a70 No Bug - Import translations from https://github.com/mozilla-l10n/android-l10n CLOSED TREE 2026-09-11 00:12:30 +00:00
Serban Stanca 54a7edc3b5 Revert "Bug 2035575 - Add a duplicate transform to copy another kind's tasks with overrides r=ahal,taskgraph-reviewers" for causing documentation source-test failures.
This reverts commit 8b585af044.
2026-09-11 00:07:59 +00:00
Alex Hochheiden 5532ce94ae Bug 2070982 - Keep webpack-cli from switching to a webpack-cli under browser/extensions/newtab/node_modules r=mconley
Differential Revision: https://phabricator.services.mozilla.com/D325087
2026-09-10 23:40:39 +00:00
Dão Gottwald d32c6ec190 Bug 2070194 - Give a view in a content process an add-on engine's icon as a data URL. r=daleharvey
Differential Revision: https://phabricator.services.mozilla.com/D324323
2026-09-10 23:39:50 +00:00
Dão Gottwald fb644c98d1 Bug 2070840 - Clarify the registration targets and diagrams on the tab events page. r=tabbrowser-reviewers,niklas
Differential Revision: https://phabricator.services.mozilla.com/D324899
2026-09-10 23:39:13 +00:00
Dão Gottwald d094992026 Bug 2070840 - Dispatch TabMultiSelect on the tab strip instead of tabpanels. r=tabbrowser-reviewers,niklas
Differential Revision: https://phabricator.services.mozilla.com/D324898
2026-09-10 23:39:12 +00:00
Giulia Cardieri 4b4724a382 Bug 2067140: Move smart window box-shadow only to fullpage new tab r=mlucks,desktop-theme-reviewers,emilio
Differential Revision: https://phabricator.services.mozilla.com/D325076
2026-09-10 23:37:55 +00:00
Alex Hochheiden 8b585af044 Bug 2035575 - Add a duplicate transform to copy another kind's tasks with overrides r=ahal,taskgraph-reviewers
Manually duplicating every task definition produced by a kind lets the copy
drift as the source changes. Test variants already avoid this for a single
test task, but a difference compiled into artifacts needs a separate build of
every task it affects.

Differential Revision: https://phabricator.services.mozilla.com/D320191
2026-09-10 23:37:03 +00:00
Chris Martin 1dcfd37094 Bug 2068219 - Import minidump-writer Isolated Processes Parts 10-15.5 r=supply-chain-reviewers,firefox-build-system-reviewers,gsvelto,afranchuk,sylvestre,ahochheiden
Differential Revision: https://phabricator.services.mozilla.com/D322715
2026-09-10 23:36:23 +00:00
Elissa Cha 4204e30a2b Bug 2064128 - Show the Memories Applied button for PUWYLO response r=pdahiya,ai-security-reviewers
- When memories are enabled, marks the known PUWYLO memory as applied once the response completes

Differential Revision: https://phabricator.services.mozilla.com/D321740
2026-09-10 23:35:47 +00:00
Bob Owen 1d47290557 Bug 2069644 - Fix non-Nightly CloseHandleWrapper. r=yjuglaret,sandbox-reviewers
Differential Revision: https://phabricator.services.mozilla.com/D325055
2026-09-10 23:34:31 +00:00
Matthew Tighe 3a756a410a Bug 2064867 - add helper to manage chunk window size r=android-reviewers,moyin
Differential Revision: https://phabricator.services.mozilla.com/D324805
2026-09-10 23:33:44 +00:00
Matthew Tighe ab15a5f63f Bug 2064848 - add ability to chunk article text to engine-appropriate sizes r=android-reviewers,moyin
Differential Revision: https://phabricator.services.mozilla.com/D324799
2026-09-10 23:33:43 +00:00
Osmond Arnesto c5ef0d4991 Bug 2037167 - Fix menu styles in Windows HCM r=desktop-theme-reviewers,tgiles,fchasen,emilio
Differential Revision: https://phabricator.services.mozilla.com/D320202
2026-09-10 23:33:00 +00:00
Gabriel Luong b6ea34b11e Bug 2061851 - Open a new tab with the address bar focused from the search widget when Homepage as New Tab is enabled r=android-reviewers,npoon
- When Homepage as New Tab is enabled, starting a search from the search widget will add a new homepage tab in the current browsing mode before navigating home with the address bar focused, so the widget lands on the zero search state in its own tab.

Differential Revision: https://phabricator.services.mozilla.com/D321966
2026-09-10 23:32:25 +00:00
Eden Chuang 88478408e3 Bug 2065105 - Warn instead of crashing when ServiceWorkerPrivate::Initialize() fails. r=asuth,dom-worker-reviewers
Differential Revision: https://phabricator.services.mozilla.com/D323931
2026-09-10 23:31:10 +00:00
Leo Tenenbaum 619ae0e54e Bug 2069920 - Enable Notification.navigate for all channels. r=saschanaz
Differential Revision: https://phabricator.services.mozilla.com/D324368
2026-09-10 21:38:01 +00:00
Teodor Tanasoaia 30e739ff4f Bug 1976766 - Stop assuming a buffer is still mapped in the GPU process. r=webgpu-reviewers,ErichDonGubler
`MapCallback`, `BufferUnmap`, `ReadbackPresentCallback` and
`ReadbackSnapshotCallback` all read a buffer's mapped range while
assuming it is still mapped. `MapCallback` is not invoked by wgpu-core
directly but from a task, so content can destroy or unmap the buffer, or
its device, before it runs. And once a device is lost or destroyed
wgpu-core destroys all of its buffers in `release_gpu_resources`, at the
end of whichever poll drains the device's queue; that poll is driven by
the GPU process, with no content involvement and no ordering against
content's messages.

Return a null ptr for `DestroyedResource` and `NotMapped` rather
than panicking, and handle that at each call site: send a map error to
content, skip the write-back flush, or skip the readback. `MapCallback`
also has to tolerate the parent's `mapData` for the buffer being gone,
which can be caused by content destroying or dropping the buffer.

Related fixes:

- moved `MapCallback`'s `get_mapped_range` call out of the read-only
  branch so every map is checked.

- `Buffer::Unmap` previously cancelled a pending map without telling the
  GPU process, so content saw the buffer as unmapped while wgpu-core
  still
  had it mapped. Forwarding that unmap is what makes the `NotMapped`
  race
  above reachable.

Differential Revision: https://phabricator.services.mozilla.com/D324946
2026-09-10 21:37:20 +00:00
hanna.alemu 77368d77d0 Bug 2041980 - Remove the cfr_doorhanger, milestone_message and cfr_urlbar_chiclet message templates. r=omc-reviewers,desktop-theme-reviewers,frontend-codestyle-reviewers,urlbar-reviewers,mossop,andhuang,dao,mtigley,credential-management-reviewers
CFRPageActions exists only to render these three templates, so it is removed
along with CFRMessageProvider, the CFR schemas, the
contextual-feature-recommendation popupnotification, the urlbar chiclet and their
stylesheets, plus MILESTONE_MESSAGE_87 now that the felt-privacy milestone
experiment detected no effect. ASRouter.observe() now calls
RemoteL10n.reloadL10n() directly instead of going through CFRPageActions, which
means the useRemoteL10n pref actually invalidates the l10n cache where the old
CFR-gated path never fired.

Differential Revision: https://phabricator.services.mozilla.com/D318365
2026-09-10 21:35:45 +00:00
Ryan VanderMeulen 8ccc13a1df Bug 2070766 - Update AndroidX Room to version 2.8.5. r=android-reviewers,adhingra
Differential Revision: https://phabricator.services.mozilla.com/D324828
2026-09-10 21:35:07 +00:00
Ryan VanderMeulen e943a5a682 Bug 2070766 - Update AndroidX Navigation to version 2.10.1. r=android-reviewers,adhingra
Differential Revision: https://phabricator.services.mozilla.com/D324827
2026-09-10 21:35:06 +00:00
Ryan VanderMeulen 55783d0ddb Bug 2070766 - Update AndroidX Compose BOM to 2026.09.00. r=android-reviewers,adhingra
Differential Revision: https://phabricator.services.mozilla.com/D324826
2026-09-10 21:35:05 +00:00
Ryan VanderMeulen 17b3e05d0c Bug 2070766 - Update AndroidX Benchmark to version 1.5.0. r=android-reviewers,adhingra
Differential Revision: https://phabricator.services.mozilla.com/D324825
2026-09-10 21:35:05 +00:00
Tim Giles 72761ed8df Bug 2069127 - Record theme-picker shown telemetry for Profiles. r=jhirsch,mstriemer
Bug 2052547 landed the `theme_picker.shown` event and left each surface
to add its own caller. Profiles needs that caller so
`profiles.existing.theme` and `profiles.new.theme` have an impression
count to compare against.

`EditProfileCard.maybeRecordThemePickerShown()` records after the Nova
picker is rendered, initialized, and visible. `NewProfileCard` inherits
this flow, so the same logic covers about:newprofile.
`ThemePickerInitialState` handles readiness completing after visibility,
while `visibilitychange` handles visibility completing after readiness.
Successful recording removes both listeners. A final check after both
render waits prevents hidden or disconnected cards and overlapping calls
from recording.

The visibility check is tab-level rather than viewport-level, which
keeps the impression denominator comparable to about:welcome, New Tab,
and about:addons.

Nova renders `theme-picker` independently of legacy `this.themes`. The
legacy picker keeps its existing `this.themes` availability check.

The focused browser test covers active loading, background-tab deferral,
visibility changes during rendering, and per-document recording.

Differential Revision: https://phabricator.services.mozilla.com/D324463
2026-09-10 21:34:01 +00:00
Tim Giles 85c4f8447e Bug 2069172 - Record appearance and native-theme changes from the theme picker. r=omc-reviewers,mstriemer,jprickett
Record each appearance and native-theme change with its selected value,
source, and layout.

Record direct updates locally. Record remote updates after the parent
applies them.

Keep theme selection in ThemesList and preserve its per-source
attribution.

Differential Revision: https://phabricator.services.mozilla.com/D324462
2026-09-10 21:34:00 +00:00
Tim Giles e638419e1b Bug 2069519 - Record every theme-picker shown event. r=mstriemer
Remove shared client-side deduplication so every ThemePicker.shown()
call records one event with source and layout.

Consumers still decide when a picker is shown. Reporting can aggregate
repeated events later.

Differential Revision: https://phabricator.services.mozilla.com/D324461
2026-09-10 21:33:59 +00:00
Iain Ireland a20f92752f Bug 2070949: Check for SSSE3, not SSE3, for pshufb r=spidermonkey-reviewers,mgaudet
Differential Revision: https://phabricator.services.mozilla.com/D325073
2026-09-10 21:32:53 +00:00
Iain Ireland 8f791a67d0 Bug 2042565: Enable SIMD for SkipUntilBitInTable without AVX r=yury
Differential Revision: https://phabricator.services.mozilla.com/D303161
2026-09-10 21:32:52 +00:00
Iain Ireland cde052376a Bug 2042565: Improve non-AVX support in simple three-operand SIMD operations r=yury
This patch adds new helpers to handle register shuffling when AVX is not available. The choice between commutative vs non-commutative for each op was copied from WasmIonCompile.cpp.

The FMA code uses ScratchSimd128Scope and then calls helpers that now need it themselves, so I rewrote it to use the underlying instructions directly. This is more consistent with other code that uses the scratch register in this file (eg reverseInt16x8).

Differential Revision: https://phabricator.services.mozilla.com/D303160
2026-09-10 21:32:52 +00:00
Iain Ireland f6fb93ca34 Bug 1929128: Use SIMD for SkipUntilBitInTable r=jandem
Claude wrote a prototype of this patch, then I rewrote it by hand and polished up a bunch of stuff.

V8 has two other ops that it implements using SIMD (SkipUntilOneOfMasked and SkipUntilOneOfMasked3), but the latter was disabled because it regressed TodoMVC-jquery, and despite my best efforts, I can't write a single testcase that triggers the former in V8.

Differential Revision: https://phabricator.services.mozilla.com/D301944
2026-09-10 21:32:51 +00:00
Iain Ireland 83fa1f349c Bug 2040802: Rename ENABLE_WASM_SIMD to ENABLE_JIT_SIMD r=yury
Based on Element discussions with Ryan and Yury, I am removing the outdated wasm-no-experimental dependency. Wasm SIMD is no longer experimental.

This also changes ENABLE_WASM_AVX to ENABLE_JIT_AVX, and updates the two uses. I didn't change ENABLE_WASM_RELAXED_SIMD, because relaxing strict determinism is wasm-specific, and it isn't used outside of wasm code.

Differential Revision: https://phabricator.services.mozilla.com/D301943
2026-09-10 21:32:50 +00:00
Updatebot fc088effac Bug 2069235 - Update PDF.js to 716aff9d50c08b4bec3e350540a3f05aea89dedc r=fluent-reviewers,bolsson,marco
Differential Revision: https://phabricator.services.mozilla.com/D323500
2026-09-10 21:32:01 +00:00
Calixte Denizet edcc585c60 Bug 2069235 - Allow pdf.js to load chrome: scripts under inherited CSPs. r=tschuster
blob: and data: documents inherit their creator's CSP, which can block
chrome: modules loaded by the pdf.js viewer. Scripts under resource://pdf.js/
are already exempt.

Apply the same exemption to chrome: script loads whose loading principal is
pdf.js.

Differential Revision: https://phabricator.services.mozilla.com/D324064
2026-09-10 21:32:00 +00:00
Nikki Sharpley ad77e36a80 Bug 2058260 - Measure auto-compact against the area a maximized window is about to fill. r=emilio,dholbert
A window opened maximized is laid out at its persisted *restored*
size: AppWindow::UpdateWindowStateFromMiscXULAttributes applies the sizemode
attribute from xulstore before initial layout, but the size persisted alongside
it is the un-maximized one (MaybeSavePersistentPositionAndSize stores
GetRestoredBounds()), and the widget only learns its real size from the OS
afterwards. gUIDensity.init() runs at browser-window-load in between, so
_shouldAutoCompact() measures that smaller size and latches uidensity="compact".
The window is then reflowed and painted at its real size while still carrying
compact, and only the DOM resize event that follows corrects the density: a
visible jump in toolbar height, corner rounding and content offset.

Measure the area such a window is about to fill instead. It is known up front
and gives the same answer before and after the maximize transition, so there is
nothing left to correct after the first paint. Unlike exempting a non-normal
sizemode from auto-compact outright, this keeps compact mode for users whose
screen is genuinely small enough to warrant it.

Differential Revision: https://phabricator.services.mozilla.com/D324960
2026-09-10 21:31:21 +00:00
Segun Famisa 9fa59f9613 Bug 2065181 - Add a flag for enabling sync decoupling to SyncConfig r=android-reviewers,cbect
Differential Revision: https://phabricator.services.mozilla.com/D324594
2026-09-10 21:30:47 +00:00
Segun Famisa 51e7705f84 Bug 2065181: Extend SyncStateStorage to add reset() API and make syncConnected nullable and observable r=android-reviewers,cbect
This commit makes two changes

1. Adds reset() - to handle updating the state to what would indicate that sync values have been reset. This includes resetting the last synced time, "is sync connected", and "persisted sync state"
  Reset is different from clear because clear removes the entries from the storage. Reset merely sets them back to a default state.

2. SyncStateStorage.syncEnabled becomes SyncStateStorage.syncConnected, is now nullable, and has an observable variant. `null` indicates that the value has never been set.
  It also adds a `storeSyncConnected` for setting that value.

  "Connected" rather than "enabled" because this preference records whether sync was connected on this device through an explicit action, which kinda sounds better with the planned `connect()` / `disconnect()` APIs on `SyncManager`.

  The resolution of `SyncStateStorage.syncConnected` to true/false falls outside the storage layer, and this only tells us if any value has been set or not.

Differential Revision: https://phabricator.services.mozilla.com/D324593
2026-09-10 21:30:45 +00:00
Ryan VanderMeulen 486d9dec5e Bug 2070120 - Use the gcc11 sysroot for gn builds. r=bustage 2026-09-10 20:21:41 +00:00
Martin Raiber 4f7f282077 Bug 2061366 - Remove legacy contentblocking probes r=timhuang,chutten
Differential Revision: https://phabricator.services.mozilla.com/D318127
2026-09-10 20:17:07 +00:00
Mark Striemer 64c67d806f Bug 2062774 - Use design tokens for Account menu small fonts r=nsharpley,desktop-theme-reviewers,dao
Use --font-size-small and .text-deemphasized rather than rolling the
custom 0.9em font size and helper styles.

Differential Revision: https://phabricator.services.mozilla.com/D321738
2026-09-10 20:16:16 +00:00
Mark Striemer c029c1ba18 Bug 2064736 - Expose --font-size-small to chrome documents r=dao,morgan,desktop-theme-reviewers,webcompat-reviewers,twisniewski
Provide `--font-size-small` in chrome documents and target its relative
font size to be >= 11px. On macOS this means using 1rem, on Windows it's
(11 / 12)rem and Linux is left unchanged at expected 12.72px (14.6719 * 0.867)

Differential Revision: https://phabricator.services.mozilla.com/D319833
2026-09-10 20:16:15 +00:00
Mark Striemer 09ee00fd99 Bug 2068791 - Always avoid text wrapping moz-support-links r=desktop-theme-reviewers,tgiles
Differential Revision: https://phabricator.services.mozilla.com/D323122
2026-09-10 20:16:15 +00:00
Mark Striemer c184010ed1 Bug 2069163 - Support CSS Module Scripts in Storybook r=jules
Differential Revision: https://phabricator.services.mozilla.com/D323433
2026-09-10 20:16:14 +00:00
Ryan VanderMeulen 3116837a30 Bug 2070985 - Disable C++ exceptions in the Windows onnxruntime build. r=firefox-build-system-reviewers,ahochheiden
The Windows toolchain has been building libonnxruntime with exceptions enabled, unlike every other
platform. --disable_exceptions is inert at the cmake level: onnxruntime_DISABLE_EXCEPTIONS is a
dependent option that cmake forces off without onnxruntime_MINIMAL_BUILD, so the explicit
-fno-exceptions and *_NO_EXCEPTIONS flags this script passed were the only thing turning exceptions
off on Linux, macOS and Android, and nothing did the MSVC equivalent. A flags-only fix cannot work on
MSVC either, since cmake appends /EHsc after the caller's flags whenever the option is off.

The local patch that already lets build.py accept --disable_exceptions on its own now does the same
for cmake by making the option plain. Upstream's own handling then applies everywhere: -fno-exceptions
on clang, dropping /EHsc and setting _HAS_EXCEPTIONS=0 on MSVC, and the ORT, ONNX, MLAS and json
no-exception defines, so the script stops passing them itself. The patch also keeps unwind tables,
which upstream drops alongside exceptions. Firefox builds with -funwind-tables so the crash reporter
can walk stacks, and frames inside libonnxruntime should stay walkable too.

Differential Revision: https://phabricator.services.mozilla.com/D325059
2026-09-10 20:15:31 +00:00
Ryan VanderMeulen b2de416380 Bug 2070985 - Align the onnxruntime build with upstream's security flags. r=firefox-build-system-reviewers,sergesanspaille
onnxruntime has a --use_binskim_compliant_compile_flags option that turns on the hardening flags it
uses for its own compliance builds. Most of those overlap with what Firefox already applies to its own
code, but two gaps had gone unnoticed: macOS was the only platform building libonnxruntime without
-fstack-protector-strong, and _FORTIFY_SOURCE was missing everywhere.

Rather than passing the upstream option, set the flags directly. The option also replaces
CMAKE_CXX_FLAGS wholesale, which would collide with the flags this script passes, and it
gates -fstack-clash-protection on the host architecture rather than the target, which is wrong for
cross-compiled builds.

Added, following both upstream and Firefox:

  macOS   -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2
  Linux   the same, plus -Wp,-D_GLIBCXX_ASSERTIONS and -Wl,-Bsymbolic-functions
  Linux   -fcf-protection, on x64 only since CET is x86-specific
  Windows /guard:cf, at both compile and link

MSVC already gives us the rest of what Windows would want: /GS, /DYNAMICBASE and /NXCOMPAT are on by
default, so Control Flow Guard was the only gap. Passing it at link puts a space in the shared linker
flags, which the unquoted extra_args string could not carry, so extra_args becomes an array.
CMAKE_SHARED_LINKER_FLAGS stays unset on the other platforms because cmake seeds it from $LDFLAGS,
which the Linux build relies on for -fuse-ld=lld.

The compile-time flags go into the C flags as well as the C++ flags. cpuinfo is C and is linked into
the library, and upstream's option sets both languages.

They are passed as CMAKE_C_FLAGS_INIT and CMAKE_CXX_FLAGS_INIT rather than CMAKE_C_FLAGS and
CMAKE_CXX_FLAGS. A cache value for the latter replaces whatever the toolchain file would have
supplied, and the Android NDK supplies its hardening that way, so libonnxruntime.so on Android has
been built without the NDK's -D_FORTIFY_SOURCE=2, -funwind-tables, -fdata-sections or
-Wformat -Werror=format-security for as long as the script has set CMAKE_CXX_FLAGS. The _INIT form
is prepended to those defaults instead. On MSVC it also restores cmake's default /EHsc, which is
what upstream's exception-disabling code rewrites to /EHs-c-, and the /DWIN32 /D_WINDOWS defines
that upstream's own compliance flags add by hand. For the same reason the Linux sysroot moves from a
--sysroot flag in CMAKE_C_FLAGS and CMAKE_CXX_FLAGS to CMAKE_SYSROOT: a cache value for CMAKE_C_FLAGS
would make cmake ignore the _INIT flags for C, and CMAKE_SYSROOT applies to every language and to the
link step anyway.

On Windows, nothing this script passed through CMAKE_CXX_FLAGS had ever reached the compiler. With
--parallel, build.py appends its own -DCMAKE_C_FLAGS=/MP -DCMAKE_CXX_FLAGS=/MP after the extra
defines, and cmake keeps the last definition of a variable. /MP does nothing under Ninja, so that
block is disabled, which is also what lets the _INIT values take effect there: a cache value for
CMAKE_CXX_FLAGS makes cmake ignore them.

Deliberately not taken:

  -Wp,-D_GLIBCXX_ASSERTIONS is libstdc++ only, so it is set for Linux and not for Android or macOS,
  which use libc++. Upstream passes it there too, where it does nothing.

  /Qspectre is skipped. The ONNX interface is gated on InferenceSession::InInferenceProcess, so it
  only exists inside the dedicated inference process, and its callers are chrome features rather than
  web content. A speculative read there exposes model data the caller already holds, which does not
  justify the code size and speculation barriers on a compute library. This reasoning depends on that
  process staying single-purpose and chrome-only.

  -fstack-clash-protection is not added for macOS, which Firefox excludes along with Windows, OpenBSD
  and iOS.

  Android gets nothing beyond its existing flags now covering C too. Upstream excludes it from these
  flags entirely and the NDK fortifies by default, which the _INIT change lets it do again.

Differential Revision: https://phabricator.services.mozilla.com/D317820
2026-09-10 20:15:30 +00:00
Julien Cristau 284996810d Bug 2070120 - Build the breakpad injector against the sysroot. r=firefox-build-system-reviewers,ahochheiden
The task already fetched a sysroot but never used it: build-breakpad-injector.sh
writes a mozconfig with no --with-sysroot, and the bootstrapped sysroot only
applies when bootstrap is enabled, which it isn't under MOZ_AUTOMATION. So the
build used the docker image's libstdc++ headers and the library's ABI floor
followed the image, going from GLIBCXX_3.4.29 to GLIBCXX_3.4.31 on Debian 13.

Debian 12 provides GLIBCXX_3.4.30, so the resulting libbreakpadinjector.so
could not be dlopen'd there, and every jit-test that injects it failed with
MOZ_CRASH(Failed to load library).

Use sysroot-x86_64-linux-gnu rather than linux64-toolchain-sysroot: the
injector is built as C++20 and the latter only has libstdc++ 8. That also
matches the sibling minidump-stackwalk task and ordinary Firefox builds.

The resulting library needs GLIBC_2.14 and GLIBCXX_3.4, i.e. rather better
than the GLIBC_2.34 and GLIBCXX_3.4.29 it needed before Debian 13.

Differential Revision: https://phabricator.services.mozilla.com/D324562
2026-09-10 20:14:50 +00:00
Julien Cristau 79403252a5 Bug 2070120 - Build xar against the sysroot. r=firefox-build-system-reviewers,sylvestre,sergesanspaille
xar was built with the docker image's headers and libraries even though
its task already fetched clang and a sysroot. Moving to Debian 13 took
the shipped binary from GLIBC_2.34 to GLIBC_2.38 and added a
libzstd.so.1 dependency, by way of deb13's openssl pulling zstd into
pkg-config --static --libs libcrypto. It is a local-toolchain, so mach
bootstrap hands it to developers on arbitrary distributions.

xar's configure can only locate libxml2 through xml2-config, which
sysroots do not ship because they contain no /usr/bin. Left alone it
combines the host's libxml2 headers with the sysroot's library, so pass
a small shim backed by pkg-config.

The sysroot's openssl is 1.0.1t, which does not pull in zstd, so
libzstd-dev is no longer needed in the image; bug 2010574 only added it
for xar. Dropping it also stops gcc autodetecting zstd, which was
silently adding a libzstd.so.1 dependency to the gcc toolchains. The
explicit -DLLVM_ENABLE_ZSTD=OFF and --without-zstd stay: they pin
autodetection that would otherwise vary with the image's contents.

Other consequences worth knowing:
 - the statically linked libcrypto becomes the sysroot's openssl 1.0.1t.
   xar only uses the EVP digest functions, no TLS or certificate code.
 - that libcrypto.a is not built PIC, so the binary can no longer be a
   PIE.
 - the sysroot has lzma.h where the image did not, so xar gains lzma
   support and a liblzma.so.5 dependency.

Measured locally: GLIBC_2.38 -> GLIBC_2.14, configure resolves libxml
2.9.1 with no host/sysroot split, and create/extract roundtrips pass for
sha1, sha256 and md5 with gzip, bzip2 and no compression.

Differential Revision: https://phabricator.services.mozilla.com/D324249
2026-09-10 20:14:48 +00:00
Julien Cristau 96ec88b22c Bug 2070120 - Build gn against the sysroot. r=firefox-build-system-reviewers,sylvestre,sergesanspaille
gn was built with the docker image's gcc, so the shipped binary's glibc
floor followed the image: moving to Debian 13 took it from GLIBC_2.18 to
GLIBC_2.38. That broke source-test-vendor-verify-gfx, which runs gn to
re-vendor gfx/angle on the static-analysis-build image; bug 2065412
worked around it by moving that image to Debian 13, but the binary is
also a local-toolchain handed to developers on arbitrary distributions.

The symbols pulling in GLIBC_2.38 are the __isoc23_str* redirects glibc
applies to strtol and friends for __cplusplus >= 202302L, and gn is
built as C++23. Building against older headers removes the redirect
rather than papering over it.

gn needs linux64-toolchain-sysroot-gcc10 rather than
linux64-toolchain-sysroot: it uses <concepts> and <ranges>, which the
libstdc++ 8 in the latter does not have. cctools-port and node-22
already use the gcc10 sysroot for the same reason.

build/gen.py bakes CXX, CFLAGS+CXXFLAGS and LDFLAGS into build.ninja at
generation time and has no cxx-vs-cc distinction, so the environment
variables have to be set before it runs. The mac and win64 gn builds set
their own and are unaffected; build-gn-common.sh is untouched.

Differential Revision: https://phabricator.services.mozilla.com/D324248
2026-09-10 20:14:45 +00:00
Julien Cristau dd45a84324 Bug 2070120 - Build winchecksec against the sysroot. r=firefox-build-system-reviewers,sylvestre,sergesanspaille
winchecksec was built with the docker image's headers and libraries, so
the shipped binary's glibc floor followed the image: moving to Debian 13
took it from GLIBC_2.14 to GLIBC_2.34. It is a local-toolchain, so mach
bootstrap hands it to developers on arbitrary distributions.

The task fetched neither clang nor a sysroot, and build-winchecksec.sh
had no case for x86_64-unknown-linux-gnu, so the linux build fell
through with no cmake flags at all. Add the fetches and a linux case
mirroring build-msix-packaging.sh.

win64-winchecksec shares the script and is unaffected. Measured locally:
GLIBC_2.34 -> GLIBC_2.14, and pe-parse's -Werror block still compiles
clean under clang with the sysroot.

Differential Revision: https://phabricator.services.mozilla.com/D324247
2026-09-10 20:14:42 +00:00
Julien Cristau 64ff9411a2 Bug 2070120 - Build mkbom against the sysroot. r=firefox-build-system-reviewers,sylvestre,sergesanspaille
mkbom was built with the docker image's compiler, so the shipped
binary's glibc floor followed the image: moving to Debian 13 took it
from GLIBC_2.34 to GLIBC_2.38. It is a local-toolchain, so mach
bootstrap hands it to developers on arbitrary distributions.

bomutils assigns CXXFLAGS and LDFLAGS with = rather than ?= in its
Makefile, so overriding them on the make command line would drop its
own hardening flags. The sysroot flags go into CXX instead.

The task already fetched clang and the sysroot; it just wasn't using
them. Measured locally: GLIBC_2.38 -> GLIBC_2.14.

Differential Revision: https://phabricator.services.mozilla.com/D324246
2026-09-10 20:14:39 +00:00
Julien Cristau 806f31014c Bug 2070120 - Build upx against the sysroot. r=firefox-build-system-reviewers,sylvestre,sergesanspaille
upx was built with the docker image's headers and libraries, so the
shipped binary's glibc floor followed the image: moving to Debian 13
took it from GLIBC_2.14 to GLIBC_2.38, which excludes Ubuntu 22.04,
Debian 12 and Rocky 9. It is a local-toolchain, so mach bootstrap hands
it to developers on arbitrary distributions.

upx links nothing externally -- UCL and zlib are vendored and built
static, and bzip2, zstd and threads are disabled in its CMakeLists --
so pointing cmake at the sysroot is enough. Follows the same pattern as
build-dmg-hfsplus.sh.

win64-upx shares the script and is unaffected: the new flags are in the
non-Msys branch.

Differential Revision: https://phabricator.services.mozilla.com/D324245
2026-09-10 20:14:36 +00:00
Julien Cristau 2b29af197f Bug 2010489 - Switch toolchain tasks to Debian 13-based docker image. r=taskgraph-reviewers,ahal
Add gpgv to the toolchain-build image, required by build-sysroot.sh via
the gpgvnoexpkeysig script.

Differential Revision: https://phabricator.services.mozilla.com/D279110
2026-09-10 20:14:34 +00:00
Julien Cristau 639dd71a78 Bug 2010555 - Disable gcc's c++tools when building against a sysroot. r=firefox-build-system-reviewers,sylvestre
libcody is a bootstrapped host module, and POSTSTAGE1_CXX_EXPORT does not
pass the build sysroot's flags, so it is compiled against the image's
headers. c++tools is not bootstrapped and is built in the post-bootstrap
pass, where TARGET_FLAGS_TO_PASS sets CXX to the target compiler with
--sysroot, so g++-mapper-server links against the sysroot's libc.

With glibc >= 2.38 the image's stdlib.h redirects strtoul to
__isoc23_strtoul, which the jessie sysroot's glibc 2.19 doesn't provide,
and linking g++-mapper-server fails.

Nothing uses the standalone C++ module mapper server: gcc defaults to the
in-process mapper. libcody itself is still built and linked into cc1plus,
which is consistent since that link also happens without the sysroot.

Differential Revision: https://phabricator.services.mozilla.com/D320157
2026-09-10 20:14:31 +00:00
Julien Cristau 53e0ccfdc3 Bug 2010574 - Install libzstd-dev in the toolchain-build image, and don't autodetect zstd when building against a sysroot. r=firefox-build-system-reviewers,sergesanspaille
libcrypto in Debian 13 pulls in libzstd, so xar fails to link without
libzstd-dev in the image.

Installing it in turn makes LLVM and binutils pick up the system zstd,
which isn't in the sysroots they link against, so turn it off explicitly.
This covers both build-clang.py and build-llvm-common.sh; the latter
configures llvm proper for llvm-symbolizer. build-cctools-port.sh already
passes -DLLVM_ENABLE_ZSTD=OFF for the same reason.

LLVM_ENABLE_ZSTD=ON really means autodetect, so this only pins behaviour
we already had: no image shipped libzstd-dev until now.

Eventually we should either build xar against the sysroot or link
statically, but this is the smaller fix for now.

Differential Revision: https://phabricator.services.mozilla.com/D320156
2026-09-10 20:14:28 +00:00
Julien Cristau 4300da9b2a Bug 2010541 - Stop exporting undefined disassembler symbols from clang 14's libLTO and libRemarks. r=firefox-build-system-reviewers,sergesanspaille
Backport llvm-project c294bdd64768 and bf07de38b05e.

LTODisassembler.cpp only forces the target disassembler registries into
the link; the LLVMCreateDisasm* entry points themselves live in
LLVMMCDisassembler. With LLVM_LINK_LLVM_DYLIB, which we enable
everywhere but Windows, they end up in libLLVM-14.so, so lto.exports
names six symbols libLTO.so.14 does not define. lld defaults to
--no-undefined-version since llvm D135402 and rejects that.

libRemarks.so has the same problem, more so: Remarks.exports lists 25
symbols and libremarks.cpp defines exactly one.

Both upstream fixes landed for LLVM 16, so clang 19 and later already
have them.

Differential Revision: https://phabricator.services.mozilla.com/D320155
2026-09-10 20:14:25 +00:00
Leo Tenenbaum 7878df7676 Bug 2069065 - Part 2: Move permission and Safe Browsing checks to NotificationUtils.cpp. r=saschanaz
Differential Revision: https://phabricator.services.mozilla.com/D323362
2026-09-10 20:13:14 +00:00
Leo Tenenbaum 9273ce93b4 Bug 2069065 - Part 1: Move notification showing out of NotificationParent. r=saschanaz
Differential Revision: https://phabricator.services.mozilla.com/D323361
2026-09-10 20:13:14 +00:00
Danny Chen c43f0b0ace Bug 1967034 - Implement aria-grabbed support for macOS accessibility. r=morgan
Implemented aria-grabbed to AXGrabbed mapping in accordance with existing implementations (e.g. AxExpanded, AXVisited).
Getter reads the aria-grabbed DOM attribute as a string and compares it against "true"; any other value is "false", or the attribute being absent falls through to NO (0), so removing the attribute degrades safely instead of returning an unhandled value.

Added a browser test that queries the native accessibility interface for AXGrabbed and checks it returns YES (1) when aria-grabbed="true" is set, correctly flips to NO (0) after the attribute is mutated to "false", and stays NO (0) after the attribute is removed outright.

Manually tested with both Firefox's Accessibility Inspector and Xcode's Accessibility Inspector, AXGrabbed doesn't surface in either tool's UI even with the mapping in place, consistent with reporter's note that VO doesn't appear to expose this attribute in Safari either. Non-appearance looks like an inspector display limitation rather than a bug in this patch.

Differential Revision: https://phabricator.services.mozilla.com/D322694
2026-09-10 20:11:49 +00:00
Dustin Whisman 4129f25d12 Bug 2037111 - Rename tab tokens for naming consistency r=desktop-theme-reviewers,tabbrowser-reviewers,jswinarton,tgiles,kcochrane
Differential Revision: https://phabricator.services.mozilla.com/D321985
2026-09-10 20:11:03 +00:00
Jocelyne f32737c665 Bug 1722091 - Remove dead sys.version_info checks for Python < 3.9 r=sylvestre,ahochheiden
Differential Revision: https://phabricator.services.mozilla.com/D311684
2026-09-10 20:09:42 +00:00
Luca Greco c74e9c907a Bug 2064563 - Add explicit test assertion to ensure the expected fluent id is set on the aboutaddons-themes-mode moz-segmented-control element. r=fluent-reviewers,bolsson,mkennedy
This patch is adding only an additional test assertion to verify that
the aboutaddons-themes-mode moz-segmented-control does have the expected
fluent id (which is something that the parent patch, D323767, is taking care of).

Differential Revision: https://phabricator.services.mozilla.com/D323037
2026-09-10 20:08:51 +00:00
Mark Kennedy 48a78de473 Bug 2058886 - Fix screen reader announcement and labeling in theme picker r=fluent-reviewers,extension-reviewers,hjones,bolsson,rpl
The light/dark/device group in the theme picker had no accessible name for screen readers, and its buttons had their role and selected state on a wrapper element instead of the button that gets focused.

Differential Revision: https://phabricator.services.mozilla.com/D323767
2026-09-10 20:08:50 +00:00
Teodor Tanasoaia 74d2c26c85 Bug 2069735. r=webgpu-reviewers,aleiserson
Differential Revision: https://phabricator.services.mozilla.com/D324991
2026-09-10 20:08:09 +00:00
Nika Layzell 310011c821 Bug 2068448 - Call MaybeBecomeUntrusted in RedirectToRealChannel, r=mccr8,necko-reviewers,valentin
Differential Revision: https://phabricator.services.mozilla.com/D324426
2026-09-10 20:07:17 +00:00
Mark Striemer 75c73b2256 Bug 2070969 - Fix inactive perf and Nova overrides for nativeTheme r=emilio,desktop-theme-reviewers
Regressions from bug 2069497

Differential Revision: https://phabricator.services.mozilla.com/D325048
2026-09-10 20:06:34 +00:00
Henrik Skupin dbf0bb65cd Bug 2065088 - [geckodriver] Merge default Android intent arguments with client-supplied ones. r=geckodriver-reviewers,jgraham
When "androidIntentArguments" was set via the capabilities, geckodriver
only used the client's values and skipped the default arguments
required to launch a GeckoView based application into a blank Gecko
window ("-a android.intent.action.VIEW", "-d about:blank", and for
the Fenix-family "--ez automationtest true" from bug 2064609).

The defaults are now merged in front of the client arguments, and each
default is only added when the client did not already provide the
corresponding flag, so explicit client values are never overridden.

Differential Revision: https://phabricator.services.mozilla.com/D322851
2026-09-10 20:05:42 +00:00
Nika Layzell 03eba19644 Bug 2070630 - Part 2: Stop using CheckedUnsafePtr for MessagePortParent, r=dom-core-reviewers,smaug
Differential Revision: https://phabricator.services.mozilla.com/D324714
2026-09-10 20:04:51 +00:00
Nika Layzell 8aaae78ffa Bug 2070630 - Part 1: Make PMessagePort refcounted, r=dom-core-reviewers,smaug
Differential Revision: https://phabricator.services.mozilla.com/D324713
2026-09-10 20:04:50 +00:00
Serban Stanca 88fa72d2f4 Revert "Bug 2067076: Add z-index and cursor pointer to jump to bottom button in chat r=czhou" for causing mochitets failures in browser_smartwindow_jump_to_bottom.js.
This reverts commit 73e23aa0cc.
2026-09-10 20:03:10 +00:00
Alexandru Marc c76c785bd0 Revert (Bug 2068917, Bug 2068046) for causing bc failures @ browser_interventions
This reverts commit d5867b788e.

Revert "Bug 2068046 - Ensure avatar background color is set when picking default theme with Nova enabled r=mkennedy,mossop"

This reverts commit fd00da6176.
2026-09-10 18:53:49 +00:00
Release Engineering Landoscript 01115fb263 No Bug - Bumping Mobile l10n changesets r=release a=l10n-bump DONTBUILD CLOSED TREE
ach -> cd5da20b1249e581d5ba54441558e5e4e9f5c124
an -> cd5da20b1249e581d5ba54441558e5e4e9f5c124
ar -> cd5da20b1249e581d5ba54441558e5e4e9f5c124
ast -> cd5da20b1249e581d5ba54441558e5e4e9f5c124
az -> cd5da20b1249e581d5ba54441558e5e4e9f5c124
be -> cd5da20b1249e581d5ba54441558e5e4e9f5c124
bg -> cd5da20b1249e581d5ba54441558e5e4e9f5c124
bn -> cd5da20b1249e581d5ba54441558e5e4e9f5c124
br -> cd5da20b1249e581d5ba54441558e5e4e9f5c124
bs -> cd5da20b1249e581d5ba54441558e5e4e9f5c124
ca -> cd5da20b1249e581d5ba54441558e5e4e9f5c124
cak -> cd5da20b1249e581d5ba54441558e5e4e9f5c124
cs -> cd5da20b1249e581d5ba54441558e5e4e9f5c124
cy -> cd5da20b1249e581d5ba54441558e5e4e9f5c124
da -> cd5da20b1249e581d5ba54441558e5e4e9f5c124
de -> cd5da20b1249e581d5ba54441558e5e4e9f5c124
dsb -> cd5da20b1249e581d5ba54441558e5e4e9f5c124
el -> cd5da20b1249e581d5ba54441558e5e4e9f5c124
en-CA -> cd5da20b1249e581d5ba54441558e5e4e9f5c124
en-GB -> cd5da20b1249e581d5ba54441558e5e4e9f5c124
eo -> cd5da20b1249e581d5ba54441558e5e4e9f5c124
es-AR -> cd5da20b1249e581d5ba54441558e5e4e9f5c124
es-CL -> cd5da20b1249e581d5ba54441558e5e4e9f5c124
es-ES -> cd5da20b1249e581d5ba54441558e5e4e9f5c124
es-MX -> cd5da20b1249e581d5ba54441558e5e4e9f5c124
et -> cd5da20b1249e581d5ba54441558e5e4e9f5c124
eu -> cd5da20b1249e581d5ba54441558e5e4e9f5c124
fa -> cd5da20b1249e581d5ba54441558e5e4e9f5c124
ff -> cd5da20b1249e581d5ba54441558e5e4e9f5c124
fi -> cd5da20b1249e581d5ba54441558e5e4e9f5c124
fr -> cd5da20b1249e581d5ba54441558e5e4e9f5c124
fy-NL -> cd5da20b1249e581d5ba54441558e5e4e9f5c124
ga-IE -> cd5da20b1249e581d5ba54441558e5e4e9f5c124
gd -> cd5da20b1249e581d5ba54441558e5e4e9f5c124
gl -> cd5da20b1249e581d5ba54441558e5e4e9f5c124
gn -> cd5da20b1249e581d5ba54441558e5e4e9f5c124
gu-IN -> cd5da20b1249e581d5ba54441558e5e4e9f5c124
he -> cd5da20b1249e581d5ba54441558e5e4e9f5c124
hi-IN -> cd5da20b1249e581d5ba54441558e5e4e9f5c124
hr -> cd5da20b1249e581d5ba54441558e5e4e9f5c124
hsb -> cd5da20b1249e581d5ba54441558e5e4e9f5c124
hu -> cd5da20b1249e581d5ba54441558e5e4e9f5c124
hy-AM -> cd5da20b1249e581d5ba54441558e5e4e9f5c124
ia -> cd5da20b1249e581d5ba54441558e5e4e9f5c124
id -> cd5da20b1249e581d5ba54441558e5e4e9f5c124
is -> cd5da20b1249e581d5ba54441558e5e4e9f5c124
it -> cd5da20b1249e581d5ba54441558e5e4e9f5c124
ja -> cd5da20b1249e581d5ba54441558e5e4e9f5c124
ka -> cd5da20b1249e581d5ba54441558e5e4e9f5c124
kab -> cd5da20b1249e581d5ba54441558e5e4e9f5c124
kk -> cd5da20b1249e581d5ba54441558e5e4e9f5c124
km -> cd5da20b1249e581d5ba54441558e5e4e9f5c124
kn -> cd5da20b1249e581d5ba54441558e5e4e9f5c124
ko -> cd5da20b1249e581d5ba54441558e5e4e9f5c124
lij -> cd5da20b1249e581d5ba54441558e5e4e9f5c124
lo -> cd5da20b1249e581d5ba54441558e5e4e9f5c124
lt -> cd5da20b1249e581d5ba54441558e5e4e9f5c124
ltg -> cd5da20b1249e581d5ba54441558e5e4e9f5c124
lv -> cd5da20b1249e581d5ba54441558e5e4e9f5c124
meh -> cd5da20b1249e581d5ba54441558e5e4e9f5c124
mix -> cd5da20b1249e581d5ba54441558e5e4e9f5c124
ml -> cd5da20b1249e581d5ba54441558e5e4e9f5c124
mr -> cd5da20b1249e581d5ba54441558e5e4e9f5c124
ms -> cd5da20b1249e581d5ba54441558e5e4e9f5c124
my -> cd5da20b1249e581d5ba54441558e5e4e9f5c124
nb-NO -> cd5da20b1249e581d5ba54441558e5e4e9f5c124
ne-NP -> cd5da20b1249e581d5ba54441558e5e4e9f5c124
nl -> cd5da20b1249e581d5ba54441558e5e4e9f5c124
nn-NO -> cd5da20b1249e581d5ba54441558e5e4e9f5c124
oc -> cd5da20b1249e581d5ba54441558e5e4e9f5c124
pa-IN -> cd5da20b1249e581d5ba54441558e5e4e9f5c124
pl -> cd5da20b1249e581d5ba54441558e5e4e9f5c124
pt-BR -> cd5da20b1249e581d5ba54441558e5e4e9f5c124
pt-PT -> cd5da20b1249e581d5ba54441558e5e4e9f5c124
rm -> cd5da20b1249e581d5ba54441558e5e4e9f5c124
ro -> cd5da20b1249e581d5ba54441558e5e4e9f5c124
ru -> cd5da20b1249e581d5ba54441558e5e4e9f5c124
sk -> cd5da20b1249e581d5ba54441558e5e4e9f5c124
sl -> cd5da20b1249e581d5ba54441558e5e4e9f5c124
son -> cd5da20b1249e581d5ba54441558e5e4e9f5c124
sq -> cd5da20b1249e581d5ba54441558e5e4e9f5c124
sr -> cd5da20b1249e581d5ba54441558e5e4e9f5c124
sv-SE -> cd5da20b1249e581d5ba54441558e5e4e9f5c124
ta -> cd5da20b1249e581d5ba54441558e5e4e9f5c124
te -> cd5da20b1249e581d5ba54441558e5e4e9f5c124
th -> cd5da20b1249e581d5ba54441558e5e4e9f5c124
tl -> cd5da20b1249e581d5ba54441558e5e4e9f5c124
tr -> cd5da20b1249e581d5ba54441558e5e4e9f5c124
trs -> cd5da20b1249e581d5ba54441558e5e4e9f5c124
uk -> cd5da20b1249e581d5ba54441558e5e4e9f5c124
ur -> cd5da20b1249e581d5ba54441558e5e4e9f5c124
uz -> cd5da20b1249e581d5ba54441558e5e4e9f5c124
vi -> cd5da20b1249e581d5ba54441558e5e4e9f5c124
wo -> cd5da20b1249e581d5ba54441558e5e4e9f5c124
xh -> cd5da20b1249e581d5ba54441558e5e4e9f5c124
zam -> cd5da20b1249e581d5ba54441558e5e4e9f5c124
zh-CN -> cd5da20b1249e581d5ba54441558e5e4e9f5c124
zh-TW -> cd5da20b1249e581d5ba54441558e5e4e9f5c124
2026-09-10 18:49:40 +00:00
Release Engineering Landoscript fef0056138 No Bug - Bumping Firefox l10n changesets r=release a=l10n-bump DONTBUILD CLOSED TREE
ach -> cd5da20b1249e581d5ba54441558e5e4e9f5c124
af -> cd5da20b1249e581d5ba54441558e5e4e9f5c124
an -> cd5da20b1249e581d5ba54441558e5e4e9f5c124
ar -> cd5da20b1249e581d5ba54441558e5e4e9f5c124
ast -> cd5da20b1249e581d5ba54441558e5e4e9f5c124
az -> cd5da20b1249e581d5ba54441558e5e4e9f5c124
be -> cd5da20b1249e581d5ba54441558e5e4e9f5c124
bg -> cd5da20b1249e581d5ba54441558e5e4e9f5c124
bn -> cd5da20b1249e581d5ba54441558e5e4e9f5c124
bo -> cd5da20b1249e581d5ba54441558e5e4e9f5c124
bqi -> cd5da20b1249e581d5ba54441558e5e4e9f5c124
br -> cd5da20b1249e581d5ba54441558e5e4e9f5c124
brx -> cd5da20b1249e581d5ba54441558e5e4e9f5c124
bs -> cd5da20b1249e581d5ba54441558e5e4e9f5c124
ca -> cd5da20b1249e581d5ba54441558e5e4e9f5c124
ca-valencia -> cd5da20b1249e581d5ba54441558e5e4e9f5c124
cak -> cd5da20b1249e581d5ba54441558e5e4e9f5c124
ckb -> cd5da20b1249e581d5ba54441558e5e4e9f5c124
cs -> cd5da20b1249e581d5ba54441558e5e4e9f5c124
cy -> cd5da20b1249e581d5ba54441558e5e4e9f5c124
da -> cd5da20b1249e581d5ba54441558e5e4e9f5c124
de -> cd5da20b1249e581d5ba54441558e5e4e9f5c124
dsb -> cd5da20b1249e581d5ba54441558e5e4e9f5c124
el -> cd5da20b1249e581d5ba54441558e5e4e9f5c124
en-CA -> cd5da20b1249e581d5ba54441558e5e4e9f5c124
en-GB -> cd5da20b1249e581d5ba54441558e5e4e9f5c124
eo -> cd5da20b1249e581d5ba54441558e5e4e9f5c124
es-AR -> cd5da20b1249e581d5ba54441558e5e4e9f5c124
es-CL -> cd5da20b1249e581d5ba54441558e5e4e9f5c124
es-ES -> cd5da20b1249e581d5ba54441558e5e4e9f5c124
es-MX -> cd5da20b1249e581d5ba54441558e5e4e9f5c124
et -> cd5da20b1249e581d5ba54441558e5e4e9f5c124
eu -> cd5da20b1249e581d5ba54441558e5e4e9f5c124
fa -> cd5da20b1249e581d5ba54441558e5e4e9f5c124
ff -> cd5da20b1249e581d5ba54441558e5e4e9f5c124
fi -> cd5da20b1249e581d5ba54441558e5e4e9f5c124
fr -> cd5da20b1249e581d5ba54441558e5e4e9f5c124
fur -> cd5da20b1249e581d5ba54441558e5e4e9f5c124
fy-NL -> cd5da20b1249e581d5ba54441558e5e4e9f5c124
ga-IE -> cd5da20b1249e581d5ba54441558e5e4e9f5c124
gd -> cd5da20b1249e581d5ba54441558e5e4e9f5c124
gl -> cd5da20b1249e581d5ba54441558e5e4e9f5c124
gn -> cd5da20b1249e581d5ba54441558e5e4e9f5c124
gu-IN -> cd5da20b1249e581d5ba54441558e5e4e9f5c124
he -> cd5da20b1249e581d5ba54441558e5e4e9f5c124
hi-IN -> cd5da20b1249e581d5ba54441558e5e4e9f5c124
hr -> cd5da20b1249e581d5ba54441558e5e4e9f5c124
hsb -> cd5da20b1249e581d5ba54441558e5e4e9f5c124
hu -> cd5da20b1249e581d5ba54441558e5e4e9f5c124
hy-AM -> cd5da20b1249e581d5ba54441558e5e4e9f5c124
hye -> cd5da20b1249e581d5ba54441558e5e4e9f5c124
ia -> cd5da20b1249e581d5ba54441558e5e4e9f5c124
id -> cd5da20b1249e581d5ba54441558e5e4e9f5c124
is -> cd5da20b1249e581d5ba54441558e5e4e9f5c124
it -> cd5da20b1249e581d5ba54441558e5e4e9f5c124
ja -> cd5da20b1249e581d5ba54441558e5e4e9f5c124
ja-JP-mac -> cd5da20b1249e581d5ba54441558e5e4e9f5c124
ka -> cd5da20b1249e581d5ba54441558e5e4e9f5c124
kab -> cd5da20b1249e581d5ba54441558e5e4e9f5c124
kk -> cd5da20b1249e581d5ba54441558e5e4e9f5c124
km -> cd5da20b1249e581d5ba54441558e5e4e9f5c124
kn -> cd5da20b1249e581d5ba54441558e5e4e9f5c124
ko -> cd5da20b1249e581d5ba54441558e5e4e9f5c124
lij -> cd5da20b1249e581d5ba54441558e5e4e9f5c124
lo -> cd5da20b1249e581d5ba54441558e5e4e9f5c124
lt -> cd5da20b1249e581d5ba54441558e5e4e9f5c124
ltg -> cd5da20b1249e581d5ba54441558e5e4e9f5c124
lv -> cd5da20b1249e581d5ba54441558e5e4e9f5c124
meh -> cd5da20b1249e581d5ba54441558e5e4e9f5c124
mk -> cd5da20b1249e581d5ba54441558e5e4e9f5c124
ml -> cd5da20b1249e581d5ba54441558e5e4e9f5c124
mr -> cd5da20b1249e581d5ba54441558e5e4e9f5c124
ms -> cd5da20b1249e581d5ba54441558e5e4e9f5c124
my -> cd5da20b1249e581d5ba54441558e5e4e9f5c124
nb-NO -> cd5da20b1249e581d5ba54441558e5e4e9f5c124
ne-NP -> cd5da20b1249e581d5ba54441558e5e4e9f5c124
nl -> cd5da20b1249e581d5ba54441558e5e4e9f5c124
nn-NO -> cd5da20b1249e581d5ba54441558e5e4e9f5c124
oc -> cd5da20b1249e581d5ba54441558e5e4e9f5c124
pa-IN -> cd5da20b1249e581d5ba54441558e5e4e9f5c124
pl -> cd5da20b1249e581d5ba54441558e5e4e9f5c124
pt-BR -> cd5da20b1249e581d5ba54441558e5e4e9f5c124
pt-PT -> cd5da20b1249e581d5ba54441558e5e4e9f5c124
rm -> cd5da20b1249e581d5ba54441558e5e4e9f5c124
ro -> cd5da20b1249e581d5ba54441558e5e4e9f5c124
ru -> cd5da20b1249e581d5ba54441558e5e4e9f5c124
sat -> cd5da20b1249e581d5ba54441558e5e4e9f5c124
sc -> cd5da20b1249e581d5ba54441558e5e4e9f5c124
scn -> cd5da20b1249e581d5ba54441558e5e4e9f5c124
sco -> cd5da20b1249e581d5ba54441558e5e4e9f5c124
si -> cd5da20b1249e581d5ba54441558e5e4e9f5c124
sk -> cd5da20b1249e581d5ba54441558e5e4e9f5c124
skr -> cd5da20b1249e581d5ba54441558e5e4e9f5c124
sl -> cd5da20b1249e581d5ba54441558e5e4e9f5c124
son -> cd5da20b1249e581d5ba54441558e5e4e9f5c124
sq -> cd5da20b1249e581d5ba54441558e5e4e9f5c124
sr -> cd5da20b1249e581d5ba54441558e5e4e9f5c124
sv-SE -> cd5da20b1249e581d5ba54441558e5e4e9f5c124
szl -> cd5da20b1249e581d5ba54441558e5e4e9f5c124
ta -> cd5da20b1249e581d5ba54441558e5e4e9f5c124
te -> cd5da20b1249e581d5ba54441558e5e4e9f5c124
tg -> cd5da20b1249e581d5ba54441558e5e4e9f5c124
th -> cd5da20b1249e581d5ba54441558e5e4e9f5c124
tl -> cd5da20b1249e581d5ba54441558e5e4e9f5c124
tr -> cd5da20b1249e581d5ba54441558e5e4e9f5c124
trs -> cd5da20b1249e581d5ba54441558e5e4e9f5c124
uk -> cd5da20b1249e581d5ba54441558e5e4e9f5c124
ur -> cd5da20b1249e581d5ba54441558e5e4e9f5c124
uz -> cd5da20b1249e581d5ba54441558e5e4e9f5c124
vi -> cd5da20b1249e581d5ba54441558e5e4e9f5c124
wo -> cd5da20b1249e581d5ba54441558e5e4e9f5c124
xh -> cd5da20b1249e581d5ba54441558e5e4e9f5c124
zh-CN -> cd5da20b1249e581d5ba54441558e5e4e9f5c124
zh-TW -> cd5da20b1249e581d5ba54441558e5e4e9f5c124
2026-09-10 18:49:38 +00:00
Alexandru Marc 8dd3c462c8 Revert "Bug 2068336 - Add Promise::MaybeSafeResolve and use it for Streams r=mgaudet" for causing mochitest-plain failures @ test_promise_safe_resolve
This reverts commit 4b049ce79f.
2026-09-10 18:09:38 +00:00
agoloman e782234202 Revert "Bug 2063316: Add tests for CheckCompatibility and download ping generation. r=nika" for causing build bustages @TestDowngradePing.cpp.
This reverts commit 61da179c95.
2026-09-10 16:41:47 +00:00
Lando 7d3124f087 Merge mozilla-central to autoland 2026-09-10 16:31:11 +00:00
Emilio Cobos Álvarez 57dd70f1e1 Bug 2070971 - Fix native theme toolbox colors. r=mstriemer,desktop-theme-reviewers
After the regressing bug, the nova layer stomps over.

Differential Revision: https://phabricator.services.mozilla.com/D325016
2026-09-10 16:28:10 +00:00
Lando 31aaa104c9 Merge autoland to mozilla-central 2026-09-10 16:24:51 +00:00
Dão Gottwald d47073e118 Bug 2070206 - Let only the address bar take its text direction from its value. r=mak
Differential Revision: https://phabricator.services.mozilla.com/D324834
2026-09-10 16:19:17 +00:00
Emilio Cobos Álvarez 65ac618561 Bug 2070971 - Fix native theme toolbox colors. r=mstriemer,desktop-theme-reviewers
After the regressing bug, the nova layer stomps over.

Differential Revision: https://phabricator.services.mozilla.com/D325016
2026-09-10 16:18:40 +00:00
Henrik Skupin c4f574641e Bug 2047745 - [wdspec] Cleanup wpt meta data for macOS. r=webdriver-reviewers,Sasha
Differential Revision: https://phabricator.services.mozilla.com/D324857
2026-09-10 16:17:53 +00:00
Lando 7893faf5f7 Bug 2069895: apply code formatting via Lando
# ignore-this-changeset
2026-09-10 16:17:29 +00:00
Paul Adenot 5ee025414f Bug 2069895 - Release the speech recognition model's host weights once uploaded. r=media-playback-reviewers,alwu
When Metal is used, the tensors are uploaded to the device in use. We don't
Need to keep the host copy.

This does wonder to RSS (roughly divides by two).

Differential Revision: https://phabricator.services.mozilla.com/D324041
2026-09-10 16:17:14 +00:00
Paul Adenot 6c31aafac7 Bug 2069895 - Report the speech recognition model's memory in about:memory. r=media-playback-reviewers,ai-platform-reviewers,alwu,valentinp
The HWInference process' footprint was more or less entirely unaccounted for.

The size comes from the loader, through a new parakeet_capi_weights_bytes(),
and is kept in one process-wide number: only one session runs at a time. We'll
need to do something similar for llama.cpp, but it's clearer labeled as such, tying
the memory usage to the feature.

Differential Revision: https://phabricator.services.mozilla.com/D324040
2026-09-10 16:17:13 +00:00
Paul Adenot 29ff5d099b Bug 2069895 - Add a perf test for on-device speech recognition. r=media-playback-reviewers,perftest-reviewers,mozperftest-reviewers,alwu,sparky
Reports engine-ready, time to first word, end-of-stream flush latency,
real-time factor, and HWInference RSS, with the first session separated out as
it pays for the process starting up. Boot time is very small, cold vs. hot isn't
very large, but we want to know if we regress.

Audio is fed in real time over a MediaStreamTrack, so the real-time factor
comes from the engine's counters, not a wall clock the feed rate caps at 1.

Differential Revision: https://phabricator.services.mozilla.com/D324039
2026-09-10 16:17:12 +00:00
Paul Adenot 781f2f3b6a Bug 2069895 - Add profiler markers for the parakeet engine. r=media-playback-reviewers,alwu
We had very little markers, of little value, this is better.

Differential Revision: https://phabricator.services.mozilla.com/D324038
2026-09-10 16:17:11 +00:00
Paul Adenot 6a26c644be Bug 2069895 - Run the parakeet streaming loop in its own runnable. r=media-playback-reviewers,alwu
It was called directly from InitializeParakeetContext() and runs until the
session ends, so a profile showed a multi-second "Initialize parakeet
context" covering everything.

The thread isn't busy, this is just cosmetics, we don't expect more latency
because of this.

Differential Revision: https://phabricator.services.mozilla.com/D324037
2026-09-10 16:17:10 +00:00
Paul Adenot bf23a58524 Bug 2069895 - Expose the recognition engine's perf counters to chrome. r=media-playback-reviewers,webidl,saschanaz,alwu
SpeechRecognition.getPerfStats(), ChromeOnly, for perf tests: start() to the
engine being ready, to the first result, stop() to the end event, and the
audio fed to the model against the wall clock spent inside it.

The data is sent back on session end, which is enough for our purpose here.

Differential Revision: https://phabricator.services.mozilla.com/D324036
2026-09-10 16:17:09 +00:00
Paul Adenot 7e0348e8a6 Bug 2069895 - Retrim and normalize the speech recognition test clip, and add its transcript. r=media-playback-reviewers,alwu
It opened on a roll call of proper nouns at -36dB mean, which the recognizer
mostly dropped. It now starts at "I am delighted to be here", and is
transcribed word for word.

test_parakeet_e2e.html fetched transcript.txt from the model server root,
which resolves to the repository root rather than here, so it never found it.

Differential Revision: https://phabricator.services.mozilla.com/D324035
2026-09-10 16:17:08 +00:00
Keith Cirkel 47f12fb37f Bug 2070497 - Enable sanitize while parsing in nightly builds r=hsivonen
Differential Revision: https://phabricator.services.mozilla.com/D324897
2026-09-10 16:16:15 +00:00
Caleb Chan c3965fa0d5 Bug 2031836 - Rename separate private default search engine preferences and don't turn on the split by default. r=Standard8,firefox-desktop-core-reviewers ,urlbar-reviewers,akulyk,hsohaney,chutten
browser.search.separatePrivateDefault is renamed to
browser.search.separatePrivateDefault.enabled, and its default is
intentionally changed from true to false as part of this rename. This
does not change behaviour: the feature remains gated behind
browser.search.separatePrivateDefault.featureGate (renamed from
.ui.enabled), which defaults to false, so .enabled is only consulted
once the feature gate is turned on.

Differential Revision: https://phabricator.services.mozilla.com/D321634
2026-09-10 16:15:18 +00:00
hannajones d5867b788e Bug 2068917 - revert to old theme color selection for non-Nova themes r=rpl,desktop-theme-reviewers,mkennedy,tgiles,mossop
We switched how we're selecting theme foreground and background colors to make the profile avatars look the best for Nova specific themes. It turns out this causes contrast issues with some legacy/user generated themes, so this patch adds a check to determine which color selection logic we should follow.

Differential Revision: https://phabricator.services.mozilla.com/D324415
2026-09-10 16:14:38 +00:00
hannajones fd00da6176 Bug 2068046 - Ensure avatar background color is set when picking default theme with Nova enabled r=mkennedy,mossop
Differential Revision: https://phabricator.services.mozilla.com/D323055
2026-09-10 16:14:37 +00:00
John M. Schanck f3c0eac8f6 Bug 2040812 - show passkeys in autocomplete="webauthn" autofill dropdown. r=credential-management-reviewers,mtigley
Differential Revision: https://phabricator.services.mozilla.com/D301432
2026-09-10 16:13:54 +00:00
Giulia Cardieri 73e23aa0cc Bug 2067076: Add z-index and cursor pointer to jump to bottom button in chat r=czhou
Issue: the jump to bottom chat button stops working after we send a second message.

Solution: it was behind the blur and needed a z-index to come to the top layer.

Differential Revision: https://phabricator.services.mozilla.com/D324437
2026-09-10 16:13:15 +00:00
Kagami Sascha Rosylight 4b049ce79f Bug 2068336 - Add Promise::MaybeSafeResolve and use it for Streams r=mgaudet
Differential Revision: https://phabricator.services.mozilla.com/D324569
2026-09-10 16:12:35 +00:00
James Teow 77bab9c025 Bug 2066341 - Keep the origin in view when autofill selects a long value in the URL bar - r=mak,urlbar-reviewers
Differential Revision: https://phabricator.services.mozilla.com/D322211
2026-09-10 16:11:56 +00:00
Nikki Sharpley 3197ed19a6 Bug 2069371 - Increase app menu width to fit sign in promo r=desktop-theme-reviewers,kcochrane,webcompat-reviewers,twisniewski
Differential Revision: https://phabricator.services.mozilla.com/D323607
2026-09-10 16:11:19 +00:00
mayankleoboy1 1d3eebcd6c Bug 661957 - Use PodCopy for same-type POD copyConstruct in Vector. r=sergesanspaille
VectorImpl's POD specialization copies appended ranges with a per-element
loop, on the grounds that append is usually given small ranges. It is also
how JSStringBuilder copies string segments: a samply profile of a
60000-char str.replaceAll spends 57.9% of the call in copyConstruct at
roughly 1.4 GB/s, against about 20 GB/s for the equivalent rope flatten.

Use PodCopy when T and U are the same type, which is the patch proposed in
comment 2 of this bug in 2012. PodCopy already carries the size and platform
heuristic measured in bug 933149 and bug 1967062, so ranges under 128
elements on Linux keep the loop they have today.

No caller can pass overlapping ranges to PodCopy's new assertion: every
moveConstruct site targets a fresh allocation or the opposite of inline and
heap storage, and an append whose source lies in the vector's own live range
ends at or before the destination, since the source must end by mLength and
the destination starts there.

Suppress a GCC 10 -Werror=stringop-overflow= false positive in PodCopy's
memcpy call. When Vector<char,32>::convertToHeapStorage inlines through
copyConstruct, GCC's value range propagation cannot prove mLength is bounded
by the 64-byte heap allocation, and _FORTIFY_SOURCE's __builtin___memcpy_chk
reports a spurious overflow. A diagnostic pragma on the memcpy call site is
the narrowest fix.

Differential Revision: https://phabricator.services.mozilla.com/D323825
2026-09-10 16:10:17 +00:00
Dão Gottwald fe8a160b95 Bug 2070876 - Open the prefilled bug form instead of printing its URL in the bug-filing skills. r=ai4dev-reviewers,padenot
Differential Revision: https://phabricator.services.mozilla.com/D324980
2026-09-10 16:09:38 +00:00
Caleb P 9180865e15 Bug 2070951 - Fix typo in phrase "The count URI loads..." in telemetry yaml files. r=scunnane DONTBUILD
Differential Revision: https://phabricator.services.mozilla.com/D324989
2026-09-10 16:09:03 +00:00
Emilio Cobos Álvarez a3a4ed561d Bug 2015089 - Remove dead scroll event tracking code. r=layout-reviewers,dshin
We disabled this a while ago, so it can go.

Differential Revision: https://phabricator.services.mozilla.com/D324912
2026-09-10 16:08:24 +00:00
Emilio Cobos Álvarez 279049d4d2 Bug 2033213 - Actually make the fuzzy annotation cover our Windows fuzz. r=layout-reviewers,dshin
On the previous commit, I swapped the pixel count vs max diff. We get
very few pixels but with a bit more fuzz than WebKit.

I guess I could also just remove some of the font dependencies here,
they seem unfortunate and not the point of the test.

Differential Revision: https://phabricator.services.mozilla.com/D324910
2026-09-10 16:07:54 +00:00
Anna Weine c206f87af0 Bug 2064985 - Update webrtcdtls.KEA to FF 164 r=webrtc-reviewers,bwc
Differential Revision: https://phabricator.services.mozilla.com/D324907
2026-09-10 15:35:59 +00:00
Irene Ni 30dc86a18f Bug 2070362 - Add section variantId and sourceSectionId telemetry to newtab content impression & click events. r=jbrown,mlplyler,thecount
Differential Revision: https://phabricator.services.mozilla.com/D324442
2026-09-10 15:34:53 +00:00
Yoshi Cheng-Hao Huang 7129617484 Bug 2070913 - Remove unnecessary setForModulePreload call in ModuleLoaded. r=arai
The code in https://searchfox.org/firefox-main/rev/8db09b47689dcfc25671b178619b03ad214c6369/js/loader/ModuleLoadRequest.cpp#117
already does the work.

Differential Revision: https://phabricator.services.mozilla.com/D324958
2026-09-10 15:34:14 +00:00
Jason Birchall e30ddc7a77 Bug 2007944 - Make browser_ext_browserAction_theme_icons.js independent of the system color scheme. r=rpl
The dynamic theme task assumed a light system theme and failed on systems
using a dark theme. Pin ui.systemUsesDarkTheme with pushPrefEnv and run the
task once per system color scheme, per the suggestion in bug 2007944 comment 3.

Differential Revision: https://phabricator.services.mozilla.com/D324900
2026-09-10 15:33:20 +00:00
Corentin Bect e8d78b28ba Bug 2068848 - Use backgroundTint to color Material dialogs r=android-reviewers,twhite
Selecting text inside a dialog drew a large opaque rectangle over the dialog and was hiding its content. The rectangle only appears when the text selection toolbar doesn't have enough space to display all actions, and draws an overflow menu at the end of the toolbar.

`BaseDialogStyle` sets `android:background` property, which is a View attribute. So every view created with the dialog's theme that does not set its own background inherits this background property. This has two visible effects:

- It paints the views inside the dialog and actually gives the dialog its expected color. It does not paint the dialog window background though, it looks like it does, because colored views are drawn on top of that background
- It paints the popup content view of the text selection toolbar. `LocalFloatingToolbarPopup` builds the popup content view as a LinearLayout and expects it to stay transparent. This view is drawn on top of the dialog and its size depends on how the toolbar overflows. It's the unexpected rectangle

It looks like the issue started with Bug 1974873 which changed `android:colorBackground` to `android:background` in both `BaseDialogStyle` and `BaseDialogStyle.Private`. With that change, every view in the dialog that doesn't have its own background color inherits this `android:background` value.

This patch moves the background color logic to a separate `alertDialogStyle`, which sets `backgroundTint`. Material 3 dialogs read this property and apply the color to the dialog window background only. No view inherits it, so this fixes the rectangle issue while preserving the dialog color.

- Light and dark modes rely on `BaseDialogStyle`, which is based on `ThemeOverlay.Material3.MaterialAlertDialog`. This theme sets a style (`alertDialogStyle`) whose `backgroundTint` defaults to `colorSurfaceContainerHigh`, so it is not needed to override the background tint in that case
- Private navigation mode (`BaseDialogStyle.Private`) must set `layer2` as the background color, which differs from the default color so an override (`MaterialAlertDialog.App.Private`) is needed

Differential Revision: https://phabricator.services.mozilla.com/D324623
2026-09-10 15:32:27 +00:00
Sky Ning 6ccdbb9f4f Bug 2069053 - Let the BHR roll-up recompute a day that was backfilled or re-run r=taskgraph-reviewers,releng-reviewers,bhearsum
The timeseries state keeps whatever a day's first run produced:
build_timeseries fills a window day only when it is absent from state.
That is right for the daily cron, where each day is seen once, but it
means re-running a day never reaches the roll-up -- the artifact is
replaced and the chart keeps the old numbers.

Add refill_dates, naming days to recompute from their artifacts, and
--timeseries-refill-dates on the task script to go with it. Those days'
artifacts are not local to the run, so the script fetches each from the
index first, preferring the build-date route a backfill publishes under
and falling back to the cron's pushdate routes. A day it cannot fetch is
skipped with a note rather than failing the run, leaving its state as it
was.

Exposed on the action as refill_dates. That run keeps the cron's index
routes and its timeseries step, since recomputing shared state is only
meaningful from a run that publishes it, and is refused alongside a
pinned date: a run for a past build date must not publish a roll-up
ending at that date.

Differential Revision: https://phabricator.services.mozilla.com/D323654
2026-09-10 15:31:05 +00:00
Sky Ning 1b2833b1af Bug 2069053 - Keep a custom-date BHR aggregation off the cron's index routes and roll-up state r=taskgraph-reviewers,releng-reviewers,bhearsum
A run triggered through the bhr-aggregate action inherits the index
routes of the push it was triggered from, which include
gecko.v2.mozilla-central.latest.firefox.bhr-aggregate and that day's
pushdate route. The first is the build the dashboard shows by default
and the artifact the next cron run reads its timeseries state from; the
second is how the dashboard resolves a build date. Backfilling a past
day would therefore displace the real run for the day it was triggered
on. Strip the index routes and, when a date was given, publish under
gecko.v2.mozilla-central.bhr-aggregate.build.<YYYYMMDD> instead.

The roll-up is worse: build_timeseries ends the 365-day window at the
build date and deletes every state day outside it, so aggregating
20260802 today would drop three weeks of days from the state the cron
publishes, with no way to refill them -- those days' artifacts are not
local to the run. Custom-date runs now always set BHR_SKIP_TIMESERIES,
leaving the roll-up to a deliberate separate step.

Differential Revision: https://phabricator.services.mozilla.com/D323653
2026-09-10 15:31:04 +00:00
Emilio Cobos Álvarez 6d5a2bbbcc Bug 2070130 - Check final URI in CSS loader mime type quirk. r=dshin
This fixes the Firefox failures in web-platform-tests/wpt#62516.

Implement it behind a pref just-in case. Also, unfortunately we need to
do the same-origin check up-front, because the mime type check can
happen off the main thread.

Pull request: https://github.com/mozilla-firefox/firefox/pull/364
2026-09-10 15:30:14 +00:00
Tooru Fujisawa 75438996a6 Bug 2061795 - Reflect the document CSP for imported modules. r=allstarschh
Differential Revision: https://phabricator.services.mozilla.com/D324517
2026-09-10 15:29:33 +00:00
Rong Bao aa9130393f Bug 2070557 - [riscv64] Part 6: Optimize zero immediate cases in ma_sub64(Register, Register, Imm64). r=jandem
Differential Revision: https://phabricator.services.mozilla.com/D324839
2026-09-10 15:28:16 +00:00
Rong Bao 0c14642b2a Bug 2070557 - [riscv64] Part 5: Optimize zero immediate cases in ma_or(Register, Register, Imm64). r=jandem
Per LoongLint for RISC-V, this further eliminates 106 (out of 206)
no-ops on Octane.

Differential Revision: https://phabricator.services.mozilla.com/D324643
2026-09-10 15:28:15 +00:00
Rong Bao 9493753816 Bug 2070557 - [riscv64] Part 4: Optimize zero immediate cases in ma_add64(Register, Register, Imm64). r=jandem
Per LoongLint for RISC-V, this further eliminates 91 (out of 206)
no-ops on Octane.

Differential Revision: https://phabricator.services.mozilla.com/D324642
2026-09-10 15:28:14 +00:00
Rong Bao b58508c62a Bug 2070557 - [riscv64] Part 3: Switch to ma_mv when applicable. r=jandem
Per LoongLint for RISC-V, this eliminates 9 (out of 206) non-canonical
nops on Octane with codegen profile RVA23U64.

Differential Revision: https://phabricator.services.mozilla.com/D324641
2026-09-10 15:28:13 +00:00
Rong Bao cf5bdde07d Bug 2070557 - [riscv64] Part 2: Introduce ma_mv for elidable moves. r=jandem
This function will be used in later parts. Keep AssemblerRISCVI::mv()
intact since it corresponds to an actual RISC-V pseudo-instruction.

Differential Revision: https://phabricator.services.mozilla.com/D324640
2026-09-10 15:28:12 +00:00
Rong Bao 3aea2ef871 Bug 2070557 - [riscv64] Part 1: Switch to explicit addi in MacroAssembler::wasmMarkCallAsSlow(). r=jandem
This helps later elision of self-moves.

Differential Revision: https://phabricator.services.mozilla.com/D324639
2026-09-10 15:28:11 +00:00
Rong Bao af9b99c746 Bug 2070770 - [loong64] Part 3: Optimize zero immediate cases in ma_sub_d(Register, Register, Imm{32,Word}). r=jandem
Differential Revision: https://phabricator.services.mozilla.com/D324824
2026-09-10 15:27:01 +00:00
Rong Bao 3e5acbf46c Bug 2070770 - [loong64] Part 2: Optimize zero immediate cases in ma_or(Register, Register, Imm32). r=jandem
According to LoongLint, this elides ~2500 instructions (excluding
ma_liPatchable sites) on JetStream 3 and ~100 on Octane.

Differential Revision: https://phabricator.services.mozilla.com/D324823
2026-09-10 15:27:00 +00:00
Rong Bao 8a88bbc810 Bug 2070770 - [loong64] Part 1: Optimize zero immediate cases in ma_add_d(Register, Register, Imm{32,Word}). r=jandem
This simplifies the implementation of the Imm32 variant with the new
ma_move, then add special-casing for ImmWord variant.

Differential Revision: https://phabricator.services.mozilla.com/D324822
2026-09-10 15:26:59 +00:00
Dão Gottwald b70e89a55c Bug 2069604 - Scroll a menupopup by whole menuitems. r=emilio,desktop-theme-reviewers
Routing the padding and margins through variables computes to the values they had, except that the Windows menu icon's block margin is now split evenly across both sides so that a single variable can carry it, which leaves the item height alone and centers the icon in the line box.

Differential Revision: https://phabricator.services.mozilla.com/D324636
2026-09-10 15:25:55 +00:00
Dão Gottwald 2187cb158e Bug 2069604 - Drop the always-zero --panel-menuitem-margin-block. r=emilio,desktop-theme-reviewers
Differential Revision: https://phabricator.services.mozilla.com/D324634
2026-09-10 15:25:54 +00:00
Dão Gottwald e5f2417658 Bug 2069604 - Split --menuitem-padding into --menuitem-padding-block and --menuitem-padding-inline. r=emilio,desktop-theme-reviewers
Behavior-neutral: every site that set the shorthand now sets the pair, and the shorthand is gone, so an override can no longer set padding that the block value doesn't see.

Differential Revision: https://phabricator.services.mozilla.com/D324633
2026-09-10 15:25:53 +00:00
Gabriel Luong 94eea9fef7 Bug 2070227 - Enable Show more Shortcuts by default in all channels r=android-reviewers,skhan
Differential Revision: https://phabricator.services.mozilla.com/D324370
2026-09-10 15:24:55 +00:00
agoloman 02a85845eb Revert "Bug 2068219 - Import minidump-writer Isolated Processes Parts 10-15.5 r=supply-chain-reviewers,firefox-build-system-reviewers,gsvelto,afranchuk,sylvestre,ahochheiden" for causing build bustages.
This reverts commit 39a434ba68.
2026-09-10 15:04:26 +00:00
agoloman ffc07a6259 Revert "Bug 2042565, Bug 1929128, Bug 2040802: Enable SIMD for SkipUntilBitInTable without AVX r=yury" for causing crashes related to regular expressions in the javascript engine.
This reverts commit fe1a8df6cc.

Revert "Bug 2042565: Improve non-AVX support in simple three-operand SIMD operations r=yury"

This reverts commit 97f332ce43.

Revert "Bug 1929128: Use SIMD for SkipUntilBitInTable r=jandem"

This reverts commit cbebf91f76.

Revert "Bug 2040802: Rename ENABLE_WASM_SIMD to ENABLE_JIT_SIMD r=yury"

This reverts commit f785e771e7.
2026-09-10 14:32:24 +00:00
rperta 0a7d8cbbbf Revert "Bug 2069065 - Part 2: Move permission and Safe Browsing checks to NotificationUtils.cpp. r=saschanaz" for causing build bustages
This reverts commit 118bf6e068.

Revert "Bug 2069065 - Part 1: Move notification showing out of NotificationParent. r=saschanaz"

This reverts commit 64f3a67033.
2026-09-10 14:06:04 +00:00
Mike Hommey 8fea00f0c6 Bug 2069184 - Bump the minimum supported version of GCC to 11 and use libstdc++ 11 for the build r=firefox-build-system-reviewers,ahochheiden
Differential Revision: https://phabricator.services.mozilla.com/D324501
2026-09-10 13:59:38 +00:00
Paul Adenot 500af56f0a Bug 2068758 - Don't attempt to use Metal in the Inference content process. r=valentinp,ai-platform-reviewers
Differential Revision: https://phabricator.services.mozilla.com/D324021
2026-09-10 13:58:21 +00:00
Paul Adenot f8396e0da6 Bug 2068580 - Reassemble the embedded Metal shader when it changes. r=valentinp
Editing ggml-metal.metal did not change the built binary, very confusing.

Differential Revision: https://phabricator.services.mozilla.com/D324026
2026-09-10 13:58:20 +00:00
Paul Adenot 153ac773b8 Bug 2068580 - Fall back to the general mat-vec kernel when Metal lacks the _short one. r=ai-platform-reviewers,valentinp
ggml_metal_library_get_pipeline_mul_mv asks for a _short kernel variant when
ne00 < 32. On the macOS 15 machines the Metal compiler does not emit those
specializations from the vendored shader source, so the lookup fails with

  MTLLibraryErrorDomain Code=5 "Function kernel_mul_mv_f32_f32_short was not
  found in the library"

get_pipeline_mul_mv returns a null pipeline and the caller encodes it without
checking.

llama.cpp doesn't use this path, parakeet.cpp does, we can simply use the general
kernel, which lives in the same source, it is emitted everywhere, and handles any size.

Differential Revision: https://phabricator.services.mozilla.com/D324025
2026-09-10 13:58:19 +00:00
Paul Adenot a45275fb79 Bug 2068580 - Vendor the Metal backend at the pinned llama.cpp revision. r=ai-platform-reviewers,valentinp
The Metal files were taken from an older llama.cpp than the revision moz.yaml
pins, which is why they had to be in "keep" rather than revendored.

This vendors the backend at 74ade527 instead, matching llama.cpp. At that rev,
it is split into a few files. The embedding of the shader source is unchanged: the
.metal file still has the __embed_ggml-common.h__ and ggml-metal-impl.h
placeholders generate_metal_embed.py substitutes. etc.

ggml-metal-device.m and ggml-metal-device.cpp would compile to the same object
name, so run_parser.py renames the former to ggml-metal-device-m.m, like it
already does for ggml.c and ggml-cpu.c.

Two patches are needed on top: <memory> for std::unique_ptr in ggml-metal.cpp,
and a guard around -[MTLSharedEvent waitUntilSignaledValue:timeoutMS:], which
is macOS 12 while we deploy to 10.15 (11.0 on aarch64).

`mach vendor --patch-mode check` now reproduces the tree.

Differential Revision: https://phabricator.services.mozilla.com/D322929
2026-09-10 13:58:18 +00:00
Andreas Pehrson 6081cba72f Bug 2044636 - Replace duplicate WebRTC codec-support pref-gating closures with shared functions. r=azebrowski,webrtc-reviewers,bwc
Several SupportsCodec/StrictSupportsCodec call sites duplicated the same
H264/VP8 hardware-support pref-gating logic inline, each paired with its own
MozPromise::Then() reject continuation that did nothing but forward the
error. Extract the gating into named, codec-dispatched functions and use
MozPromise::Map(), which forwards the reject value automatically, so the
promise continuation machinery is specialized once per function-pointer type
instead of once per near-identical inline lambda.

This may help reduce the binary size somewhat.

Differential Revision: https://phabricator.services.mozilla.com/D323393
2026-09-10 13:55:37 +00:00
Andreas Pehrson 31fffb207c Bug 2044636 - Route MediaCapabilities WebRTC and encode paths through async codec support. r=media-playback-reviewers,webrtc-reviewers,bwc,padenot
Add async support queries through the encoder stack (PlatformEncoderModule,
RemoteEncoderModule, PEMFactory) and convert the WebRTC decode/encode glue
(WebrtcMediaDataDecoder, WebrtcVideoCodecFactory, MediaDataCodec, CodecInfo) to
resolve once the relevant remote process has reported accurate hardware
support. The MediaCapabilities WebRTC decode and encode paths and the
TestWebRTCCodecInfo gtests now use these; the superseded synchronous WebRTC
support paths are removed. WebRTC decode support reuses the cached
PDMFactorySupport singleton.

Differential Revision: https://phabricator.services.mozilla.com/D304787
2026-09-10 13:55:34 +00:00
Ryan VanderMeulen 68f2a47845 Bug 2070934 - Verify the onnxruntime dependency downloads. r=firefox-build-system-reviewers,taskgraph-reviewers,sergesanspaille,bhearsum
fetch-onnxruntime-deps.sh ran curl without --fail, so an HTTP error body could be written to disk
in place of an archive while the task still exited zero. A try run hit exactly that: abseil-cpp
arrived as a 107 byte error page, the corrupt tarball was published as the onnxruntime-deps
artifact, and every onnxruntime toolchain then failed at configure time on the SHA1 that cmake
verifies anyway. deps.txt already carries a SHA1 for every entry, so the download loop now checks
it, and curl fails on HTTP errors and retries. The source tarball download gets the same curl
treatment.

The cached_task digest covered only the repo, revision and artifact name, so neither a fix to this
script nor a fresh push at the same revision could displace a bad artifact once it was indexed.
Hashing the script into the digest ties the artifact to the code that produced it. Fetch artifacts
are kept for a thousand years on level 3, so a silent corruption there would otherwise be
permanent.

Differential Revision: https://phabricator.services.mozilla.com/D318366
2026-09-10 13:53:53 +00:00
Jonathan Sudiaman 2170dab6c5 Bug 2062425 - Round off subpixel values for split view wrapper margins and padding. r=tabbrowser-reviewers,desktop-theme-reviewers,sthompson,emilio,nsharpley
When both sides of a split view's margin or padding are subpixel values, there is no guarantee that both sides will round to the same value when painted on-screen.

To avoid such a scenario, (e.g. having 6px of margin on the left, and 5px on the right), round off the spacing calculations before passing them off to their respective CSS properties.

Removed margins from `.tab-background`, as these caused horizontal paddings to grow longer than the vertical paddings.

Differential Revision: https://phabricator.services.mozilla.com/D322338
2026-09-10 13:53:15 +00:00
Jonathan Sudiaman 707b864c88 Bug 2062425 - Fix split view tab background size when dragging between collapsed and expanded sidebar. r=tabbrowser-reviewers,desktop-theme-reviewers,sthompson,emilio
Differential Revision: https://phabricator.services.mozilla.com/D322337
2026-09-10 13:53:14 +00:00
Jonathan Sudiaman e702822762 Bug 2062425 - Fix split view wrapper being too wide in compact mode. r=tabbrowser-reviewers,desktop-theme-reviewers,sthompson,sfoster
`#pinned-tabs-container` was mistakenly using `--tab-pinned-min-width-expanded` to size its items, even for the non-expanded case.

Differential Revision: https://phabricator.services.mozilla.com/D322336
2026-09-10 13:53:13 +00:00
Dave Townsend 61da179c95 Bug 2063316: Add tests for CheckCompatibility and download ping generation. r=nika
Differential Revision: https://phabricator.services.mozilla.com/D320428
2026-09-10 13:46:05 +00:00
Leo Tenenbaum 118bf6e068 Bug 2069065 - Part 2: Move permission and Safe Browsing checks to NotificationUtils.cpp. r=saschanaz
Differential Revision: https://phabricator.services.mozilla.com/D323362
2026-09-10 13:44:14 +00:00
Leo Tenenbaum 64f3a67033 Bug 2069065 - Part 1: Move notification showing out of NotificationParent. r=saschanaz
Differential Revision: https://phabricator.services.mozilla.com/D323361
2026-09-10 13:44:13 +00:00
Jens Stutte 2524531b4f Bug 2070871 - Reuse the pending MLS fallback when PortalLocationProvider::Watch is called again. r=geoprovider-reviewers,saschanaz
Watch() runs for every new geolocation request while the provider stays
started. While the portal has not delivered a position yet, each call
replaced the MLSFallback without shutting the previous one down, so its
NetworkGeolocationProvider stayed alive with its repeating timer and wifi
listener for the rest of the session.

Reuse the existing fallback instead, and add a gtest that counts the armed
fallback timers across repeated Watch() calls.

Differential Revision: https://phabricator.services.mozilla.com/D324916
2026-09-10 13:38:36 +00:00
Peter Lafreniere ee3fa8f416 Bug 2065981 - Inline Temporal epochMilliseconds getters. r=spidermonkey-reviewers,jandem
Differential Revision: https://phabricator.services.mozilla.com/D320777
2026-09-10 13:35:49 +00:00
Peter Lafreniere 21bbc7d3d4 Bug 2065981 - Inline Temporal plain time getters. r=spidermonkey-reviewers,jandem
Emit unpacking code inline where no further computation is required.

Differential Revision: https://phabricator.services.mozilla.com/D320776
2026-09-10 13:35:48 +00:00
Peter Lafreniere b8f849f8a2 Bug 2065981 - Inline trivial Temporal Duration getters. r=spidermonkey-reviewers,jandem
Differential Revision: https://phabricator.services.mozilla.com/D320775
2026-09-10 13:35:47 +00:00
Mike Hommey 24615c0605 Bug 2070810 - Upgrade sccache to current main. r=sylvestre
This includes, among other things, a fix for cache collisions from using
GCC with different versions of binutils.

Differential Revision: https://phabricator.services.mozilla.com/D324952
2026-09-10 13:34:39 +00:00
Mike Hommey aacb13a284 Bug 2070810 - Upgrade rust toolchain used to build toolchains to 1.91. r=firefox-build-system-reviewers,sylvestre
Differential Revision: https://phabricator.services.mozilla.com/D324951
2026-09-10 13:34:36 +00:00
Roger Yang 2f236d75a9 Bug 2070675 - Use the Adjust dynamic callbacks partner for Skyflag attributed users. r=android-reviewers,cbect
Differential Revision: https://phabricator.services.mozilla.com/D324748
2026-09-10 13:25:44 +00:00
Valerie Racine 52a3c5d47c Bug 2069534 - Correct the assertion message in browser_adoptTab_failure.js. r=tabbrowser-reviewers,jsudiaman,jswinarton
Differential Revision: https://phabricator.services.mozilla.com/D324369
2026-09-10 13:24:50 +00:00
Dale Harvey fbd37a82a4 Bug 2063718 - Implement initial prototype of search newtab widget. r=search-reviewers,fluent-reviewers,bolsson,nina-py,Standard8
Differential Revision: https://phabricator.services.mozilla.com/D322451
2026-09-10 13:23:49 +00:00
Chris Martin 39a434ba68 Bug 2068219 - Import minidump-writer Isolated Processes Parts 10-15.5 r=supply-chain-reviewers,firefox-build-system-reviewers,gsvelto,afranchuk,sylvestre,ahochheiden
Differential Revision: https://phabricator.services.mozilla.com/D322715
2026-09-10 13:23:06 +00:00
Arnaud Bienner 3ab7fb18fe Bug 2070899 - Quota manager test: use EXPECT_THAT(testing::Each()) instead of std::all. r=dom-storage-reviewers,hsingh
Differential Revision: https://phabricator.services.mozilla.com/D324956
2026-09-10 13:22:29 +00:00
Andrew Gaul 69325a70de Bug 2070678 - Emit movzx for x & 0xff and x & 0xffff on x86 r=jandem
Masking an int32 to its low byte or word with a constant bitwise AND is a
zero-extension: and r32, 0xff and and r32, 0xffff keep only the low bits and
clear everything above. movzbl / movzwl compute the identical value in three
bytes (four with a REX prefix); the AND needs five or six, since neither 0xff
nor 0xffff fits a sign-extended imm8 and the immediate is emitted as a full
imm32. visitModPowTwoI already lowers its power-of-two remainder masks this
way.

Fold the two masks in visitBitOpI's constant path, guarding the byte case on
single-byte registers exactly as visitModPowTwoI does (a source register with
no byte encoding on 32-bit x86 keeps the AND). The AND's flags are dead here:
a bitwise-AND feeding a branch lowers to a fused LBitAndAndBranch, so a plain
LBitOpI never has its flags read, and movzx -- which sets no flags -- is a
safe substitution.

An x86lint survey of a full JetStream 3 run counts 390 such sites before this
change and none after: every constant low-byte or low-word mask Ion emits is
now a movzx. A deterministic gbemu+crypto workload shows the same, 184 -> 0.

Found via x86lint.

Differential Revision: https://phabricator.services.mozilla.com/D324751
2026-09-10 13:21:29 +00:00
Andrew Gaul 903f432d3a Bug 2070799 - Skip the no-op OR when tagging object nursery cell headers r=jandem
NurseryCellHeader::MakeValue packs an allocation site pointer and a trace
kind into one word, and since the site is aligned well enough to leave the
low two bits free the pack is an OR. JS::TraceKind::Object is zero, so for
object allocations that OR contributes nothing: the Baseline nursery
allocation path emits a dead "or rsi, 0x0", four bytes on x64. Every other
nursery-allocated kind has a non-zero tag and still needs it.

Guard the orPtr on the trace kind, matching the constant-header path a few
lines above, which already special-cases Object.

This is the register path, reached only from Baseline; Warp and the other
callers build the header word at compile time and store it whole.

An x86lint survey of a full JetStream 3 run counts 2,517 "redundant
OR/XOR zero" sites before this change and none after, all of them in
Baseline.  On x86-64 this drops four bytes each although the the guard
removes it on every backend.

Found via x86lint.

Differential Revision: https://phabricator.services.mozilla.com/D324863
2026-09-10 13:20:39 +00:00
Nikki Sharpley 1db876aea9 Bug 2069350 - Move enough widgets into the navbar in ensureToolbarOverflow to overflow it on every channel r=firefox-desktop-core-reviewers ,mossop
ensureToolbarOverflow() resized the window to kForceOverflowWidthPx and moved
four palette widgets into the navbar. That no longer leaves any slack now that
Nova is enabled on all channels (bug 2056186): Nova's chrome is narrower, and
the default navbar outside Nightly has one widget fewer, since sidebar-button
is only placed there when sidebar.revamp is enabled, which is Nightly-only.
The navbar then never overflows and callers waiting on its overflowing
attribute time out. DevEdition escaped this because developer-button takes the
place of that missing widget.

Move three more widgets so the helper overflows the narrowest default navbar
of any channel.

Differential Revision: https://phabricator.services.mozilla.com/D324632
2026-09-10 12:50:04 +00:00
Ryan VanderMeulen 88097fc6ca Bug 2063937 - Suppress the ConstraintLayouts that have to stay. r=android-reviewers,mcarare
What is left after the ones worth changing are changed: a bar whose visibility the transitions drive by id,
a sheet that paints its own background over the scrim, and a banner that sizes its own background. Each has
its reason written next to it.

The suppressions sit on the elements reported rather than on anything above them, so a ConstraintLayout
added later is still reported, and neither baseline carries this check any more.

Differential Revision: https://phabricator.services.mozilla.com/D318982
2026-09-10 12:48:43 +00:00
Ryan VanderMeulen 5b75d95f23 Bug 2063937 - Report a ConstraintLayout that inflates a second one into itself. r=android-reviewers,mcarare
Every real cost this bug turned up had the same shape: a view that extends ConstraintLayout inflating a
layout rooted in another ConstraintLayout into itself, two where one would do, on every instance. Four
views did it, the earlier patches fix them, and nothing stops the next one being written, because the
check that counts ConstraintLayouts reads one file at a time and the two halves of this live in two.

So read both. When a view that extends ConstraintLayout inflates a layout into itself, whether through a
view binding, View.inflate or LayoutInflater.inflate, look the layout up and report if its root is a
ConstraintLayout. A binding is named after its layout, so the name says which file to open; the other two
forms name the resource directly. Only an inflation attached to the view itself counts, since that is the
one that nests.

The crash reporter is the one view left doing this, for the reason given when the others were fixed, and
carries a suppression saying so.

Differential Revision: https://phabricator.services.mozilla.com/D323265
2026-09-10 12:48:42 +00:00
Ryan VanderMeulen 8613e5982a Bug 2063937 - Stack the tracking protection category with a LinearLayout. r=android-reviewers,mcarare
The category is a title with a description under it, which was a ConstraintLayout holding a two-view
vertical chain. Seven of them sit in the panel, so the check reported six, and none of them was going to
be flattened into anything: they are siblings in a list, not nested.

What made them ConstraintLayouts was the component, not the screen, so change that instead. The two views
were already full width and stacked, and the horizontal bias they carried does nothing at that width.

The class needed the documentation detekt had been told to overlook, which it can have now rather than a
baseline entry that only matched while it extended what it used to.

Differential Revision: https://phabricator.services.mozilla.com/D318981
2026-09-10 12:48:41 +00:00
Ryan VanderMeulen 31ec09cfb8 Bug 2063937 - Use a LinearLayout for the no-suggestions prompt. r=android-reviewers,mcarare
A message with a button under it does not need constraints, and the ConstraintLayout holding them was the
second one in the file. It is a sibling of the other one rather than nested inside it, so there was never
anything to flatten here, only a container that had been reached for out of habit.

The only thing that reads it sets isVisible, which does not care what kind of view it is.

Differential Revision: https://phabricator.services.mozilla.com/D318980
2026-09-10 12:48:40 +00:00
Ryan VanderMeulen 2f49f1c1c2 Bug 2063937 - Flatten the add-on rating row. r=android-reviewers,mcarare
The three views were wrapped in a ConstraintLayout that did nothing but hold them, which the check counts
as a second one in the file. Nothing referred to the wrapper from code, and only the divider below it
referred to it at all, so the views move up a level unchanged.

The wrapper was as tall as the tallest of the three, and no single view reproduces that, so the divider
now follows a barrier across them instead. The two on the right centre on the label rather than on the
row, which is the same thing while the label is the tallest, and it is: it sets the minimum height the
row used to get.

Removing the wrapper's id is what turned up the rest of this. A test walking the add-ons list was finding
its rating bar by asking Fenix for an id named rating, which resolved only because this layout, which has
nothing to do with that list, happened to define the same name. The right numbers for the wrong reason,
and no longer any number at all once the name went. It asks the add-ons component now.

The same test reaches four more of that component's views the same way, through ids named title,
review_count and add_button that Fenix also happens to define. Those still work and would break the same
way, so they are pointed at the component too. Other views the robots find by an id named title really
are Fenix's own and are left alone.

Differential Revision: https://phabricator.services.mozilla.com/D318979
2026-09-10 12:48:40 +00:00
Ryan VanderMeulen 131997ce36 Bug 2063937 - Stop two more components inflating a second ConstraintLayout. r=android-reviewers,mcarare
Each of these is a ConstraintLayout that inflates a layout rooted in a ConstraintLayout into itself, so
every one of them costs two where it needs one. The library row pays it on every row of every history and
bookmarks list. Every android-components view that does this was already written as a merge; these were
the ones left.

The check cannot see any of this, because the two halves live in different files, so neither of these is
a finding. They are the same mistake the delete browsing data row had.

The minimum height and the background the library row's discarded root carried move onto the view, which
makes the two rows that were setting the same minimum height themselves redundant.

The crash reporter has the same mistake and keeps it. Binding against a merge means binding against the
view itself rather than against a root of its own, and its tests hand it a copy of itself, which then has
nothing to find. It inflates once, when a tab crashes, so it is not worth the surgery.

Differential Revision: https://phabricator.services.mozilla.com/D318978
2026-09-10 12:48:39 +00:00
Ryan VanderMeulen 16b0d58e4e Bug 2063937 - Stop inflating ConstraintLayouts that nothing looks at. r=android-reviewers,mcarare
Two of the collection creation layouts are never shown. They are handed to ConstraintSet.clone(), which
inflates the whole file, keeps the constraints, visibility and alpha of the root's direct children, and
throws the rest away. The bottom bar in each was written out in full, three children and all, so that a
transition could read one view's constraints off it. Leave the one view.

The delete browsing data row is a ConstraintLayout that inflates a ConstraintLayout into itself, so every
row in the list carries two of them. The layout already had the tools:parentTag that only means anything
on a merge, and the tracking protection row three files over was already written that way, so follow it.
The minimum height moves onto the row itself, which is where it has to live once the root it was written
on is gone.

Neither changes what any of it looks like. The rows lose a view each and the two transitions lose four,
and the check that had been reporting the collection layouts has nothing left to report there.

Differential Revision: https://phabricator.services.mozilla.com/D318977
2026-09-10 12:48:38 +00:00
Ryan VanderMeulen 8bd94ce184 Bug 2063937 - Retire the ConstraintLayout custom view warning. r=android-reviewers,mcarare
The check had two halves. The strict one counts the framework's ConstraintLayouts in a file, from a list of
two names that has not needed to change. The other warned whenever a view of ours that extends
ConstraintLayout shared a file with any other one, from a list written out by hand in 2020 that had drifted
the way such lists do: one entry named a class that has never existed under that package, another one that
has since moved to Compose, and four views added since were invisible to it.

Fixing the list is the wrong repair, because the warning is unactionable where it fires. It points at a
screen for using a shared component, and the screen can do nothing about what that component extends. Every
one of its fourteen baselined findings is that shape. Where the component itself was the problem, the fix
was in the component, in a file the warning never pointed at. So the warning goes, and its baseline entries
with it.

What is left is the strict check, unchanged, and tests for it, which it never had.

Differential Revision: https://phabricator.services.mozilla.com/D318976
2026-09-10 12:48:37 +00:00
Exploding-Joysticks 764cf7b2db Bug 1842455 - Remove the dom.webnotifications.allowcrossoriginiframe pref r=saschanaz
Differential Revision: https://phabricator.services.mozilla.com/D324943
2026-09-10 12:32:07 +00:00
Ben Hearsum b53a70a333 Bug 2065267: add high confidence reduced manifests bugbug optimization r=marco,taskgraph-reviewers,ahal
We're going to want this optimization to power bugbug-driven build and test selection for reviewbot pushes, per https://github.com/mozilla/code-review/pull/3578#discussion_r3894934091

Specifically, we want reviewbot pushes to only run high confidence selections, to reduce the cost and time spent on these tasks. This may be changed later.

Differential Revision: https://phabricator.services.mozilla.com/D324612
2026-09-10 12:28:04 +00:00
Dimi 4b4f1cc5a1 Bug 2068865 - Add the Rust credit card storage adapter r=joschmidt,credential-management-reviewers
Present the AutofillRecords credit card interface over the Application Services
autofill Store, so it can later back FormAutofillStorage.getCreditCards().
Nothing constructs it yet.

Most of that interface does not depend on the collection behind it, so it lands
in a new RustAutofillAdapterBase and the address adapter is converted to it --
19 of its 24 methods were identical bar the type name. Address behaviour is
unchanged.

The number is stored encrypted with only its last four digits in the clear, so
cc-number is a mask on read and the ciphertext is derived on write. A stored
record is therefore decrypted before it can be merged from, and the merged
record validated afterwards, because a number the caller did not restate
arrives from the stored side.

Encrypting a mask would store it in place of the card, so #encryptNumber
refuses one: every path that stores a number comes through it, including the
bulk import, which does not reach _validateRecord.
_recordForMigrationExport refuses one too, for the direction where the
receiving store does the encrypting.

The encryption is interim: OSKeyStore, the same mechanism and key as the JSON
store's cc-number-encrypted, so no new key is introduced. The bulk half has no
caller until the migration in bug 2068982.

Differential Revision: https://phabricator.services.mozilla.com/D323229
2026-09-10 12:27:26 +00:00
Arnaud Bienner c879f071e8 Bug 2054736 - Quota input stream parser: decrypt the previous block when seeking on EOF so mPlainBuffer contains the expected data. r=dom-storage-reviewers,jari
Differential Revision: https://phabricator.services.mozilla.com/D322324
2026-09-10 12:25:52 +00:00
Arnaud Bienner 4e58b79fcf Bug 2054736 - Quota input stream parser: make sure buffer storing decrypted data is not left uninitialized. r=dom-storage-reviewers,jari
Differential Revision: https://phabricator.services.mozilla.com/D322317
2026-09-10 12:25:51 +00:00
Arnaud Bienner de34ef291d Bug 2054736 - Quota input stream parser: check for invalid payload length. r=dom-storage-reviewers,jari
Differential Revision: https://phabricator.services.mozilla.com/D317971
2026-09-10 12:25:50 +00:00
agoloman 9db3c5fbe7 Revert "Bug 2063316: Add tests for CheckCompatibility and download ping generation. r=nika" for causing build bustages @TestDowngradePing.cpp.
This reverts commit 02eb3b39c9.
2026-09-10 12:04:16 +00:00
Tymur Boiko fbffbbbd7a Bug 2068764 [Linux][Vulkan Video] Reuse one VkInstance for decoder physical-device select. r=stransky,media-playback-reviewers
SelectVulkanDecoderPhysicalDevice used to vkCreateInstance and
vkDestroyInstance on every cache miss. Keep a process-wide instance
instead so later selects skip that cost. FFmpeg still creates its own
instance and device.

sMutex is per-LIBAV_VER and cannot guard these statics.
EnsureSharedVulkanInstance takes a file-local mutex and copies
instance and vkGetInstanceProcAddr out under it.

Differential Revision: https://phabricator.services.mozilla.com/D323687
2026-09-10 11:31:43 +00:00
Release Engineering Landoscript dbe1f6c27b No Bug - Update configs after merge day operations a=release
IGNORE BROKEN CHANGESETS
CLOSED TREE
2026-09-10 11:30:47 +00:00
Release Engineering Landoscript d3bf656bd7 Automatic version bump NO BUG a=release CLOSED TREE 2026-09-10 11:30:44 +00:00
moz-wptsync-bot cf5e6408d5 Bug 2070449 - [wpt-sync] Update web-platform-tests to 0588f3896e0caef44bc33ad6efb9522b0fe97a5b, a=testonly
MANUAL PUSH: wpt sync bot

wpt-head: 0588f3896e0caef44bc33ad6efb9522b0fe97a5b
wpt-type: landing
2026-09-10 11:30:27 +00:00
Tim Nguyen e56a244670 Bug 2069405 [wpt PR 62457] - WebKit export of https://bugs.webkit.org/show_bug.cgi?id=321994, a=testonly
Automatic update from web-platform-tests
WebKit export: Second CSS Highlight sharing a Range with an already-registered Highlight never paints (#62457)

https://bugs.webkit.org/show_bug.cgi?id=321994

Co-authored-by: Ahmad Saleem <ahmad.saleem792+github@gmail.com>
--

wpt-commits: 0588f3896e0caef44bc33ad6efb9522b0fe97a5b
wpt-pr: 62457
2026-09-10 11:30:26 +00:00
moz-wptsync-bot 7a0b7f2853 Bug 2069388 [wpt PR 62421] - Update wpt metadata, a=testonly
wpt-pr: 62421
wpt-type: metadata
2026-09-10 11:30:24 +00:00
Noam Rosenthal e109f16be8 Bug 2069388 [wpt PR 62421] - Test that javascriptURLs is in the sanitizer config, a=testonly
Automatic update from web-platform-tests
Test that javascriptURLs is in the sanitizer config (#62421)
--

wpt-commits: 5a6adac4380ffc7a8592a9ce9b4b17b43bb13838
wpt-pr: 62421
2026-09-10 11:30:22 +00:00
moz-wptsync-bot d9d8e3b4de Bug 2069381 [wpt PR 62235] - Update wpt metadata, a=testonly
wpt-pr: 62235
wpt-type: metadata
2026-09-10 11:30:21 +00:00
Blink WPT Bot ce10b19936 Bug 2069381 [wpt PR 62235] - Implement ::highlight(*), a=testonly
Automatic update from web-platform-tests
Implement ::highlight(*) (#62235)

CSSWG decided to allow '*' as the argument of the ::highlight(); that
can style every registered custom highlight [1].

Parse the '*' delimiter token as the ::highlight() argument, store it as
CSSSelector::UniversalSelectorAtom(), which contributes 0 specificity.
Therefore, named custom highlights win conflicting declarations
regardless of source order.

Make ::highlight(*) match every named custom highlight under the normal
cascade algorithm. A new HasCustomHighlightUniversalSelector field in
computed_style_extra_fields records whether an element has a universal
selector, and StyleHighlightData stores the resolved related style.

Handle some extra cases explicitly:
- When the parent has no style for the named highlight but does have
  ::highlight(*), inherit from that.

[1] https://github.com/w3c/csswg-drafts/issues/9091

Spec PR: https://github.com/w3c/csswg-drafts/pull/14301
Intent to Prototype: https://groups.google.com/a/chromium.org/g/blink-dev/c/hEy4cr4iowU/m/ZW5l_bikAwAJ
Feature Entry: https://chromestatus.com/feature/5174965228929024

Bug: 408003366
Change-Id: I9c77fef6710a2450084d2cfcb70caceaeda8b988
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8235619
Commit-Queue: Seokho Song <seokho@chromium.org>
Reviewed-by: Rune Lillesveen <futhark@chromium.org>
Reviewed-by: Stephen Chenney <schenney@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1689587}

Co-authored-by: Seokho Song <seokho@chromium.org>
--

wpt-commits: 336915ca98b55be589fe4b61812f2c205cbb84f7
wpt-pr: 62235
2026-09-10 11:30:19 +00:00
moz-wptsync-bot cdf6ea2212 Bug 2052766 [wpt PR 61080] - Update wpt metadata, a=testonly
wpt-pr: 61080
wpt-type: metadata
2026-09-10 11:30:18 +00:00
Anne van Kesteren c1e8f46acf Bug 2052766 [wpt PR 61080] - HTML: img width/height when not rendered are density-corrected, a=testonly
Automatic update from web-platform-tests
HTML: img width/height when not rendered are density-corrected

See https://github.com/whatwg/html/pull/12840
--

wpt-commits: 18be932359511b7ad1c97e1af6b87997b25cbc4e
wpt-pr: 61080
2026-09-10 11:30:16 +00:00
Barry Pollard e172713293 Bug 2069361 [wpt PR 62437] - Container timing, a=testonly
Automatic update from web-platform-tests
Add Container Timing Web Features mapping (#62437)
--

wpt-commits: 0c9001c535943a63dd45c56aa60ec14010835c42
wpt-pr: 62437
2026-09-10 11:30:14 +00:00
Barry Pollard e25d7d5656 Bug 2069340 [wpt PR 62433] - Add more <template for> web features mappings, a=testonly
Automatic update from web-platform-tests
Add more `<template for>` web features mappings (#62433)

* Create WEB_FEATURES.yml

* Rename html/semantics/scripting-1/the-template-element/template-for/html/dom/partial-updates/tentative/WEB_FEATURES.yml to html/semantics/scripting-1/the-template-element/template-for/html/dom/partial-updates/WEB_FEATURES.yml

* Rename html/semantics/scripting-1/the-template-element/template-for/html/dom/partial-updates/WEB_FEATURES.yml to html/semantics/scripting-1/the-template-element/template-for/WEB_FEATURES.yml
--

wpt-commits: e7122b73fb2a5a1bf3a6070033a76656a57baaeb
wpt-pr: 62433
2026-09-10 11:30:13 +00:00
Hyowon Kim 47ce10e32d Bug 2069338 [wpt PR 62391] - Reland "Scroll anchor-positioned fixed boxes into view on focus", a=testonly
Automatic update from web-platform-tests
Reland "Scroll anchor-positioned fixed boxes into view on focus"

This is a reland of commit a960d664cc91883da1ae77f1c27196cacc51c82b

The original CL was reverted due to flaky failures only in
virtual/fragmented-oof-in-cb. Added TestExpectations entries for those
tests.

Original change's description:
> Scroll anchor-positioned fixed boxes into view on focus
>
> Anchor-positioned fixed boxes still need to move with the anchor when
> the frame scrolls. scroll-into-view stopped bubbling as soon as it hit a
> position:fixed box, so the frame never got scrolled. This CL excludes
> anchor-positioned fixed boxes from that check.
>
> Bug: 469481151
> Change-Id: I01cc730bd029b58af43857b35749d39aba42ea6f
> Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8123394
> Reviewed-by: David Bokan <bokan@chromium.org>
> Commit-Queue: Hyowon Kim <hyowon@igalia.com>
> Cr-Commit-Position: refs/heads/main@{#1686828}

Bug: 469481151
Change-Id: I28bec015142bf4bdd2a15dc4bac60ea07482430f
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8311148
Reviewed-by: David Bokan <bokan@chromium.org>
Commit-Queue: Hyowon Kim <hyowon@igalia.com>
Cr-Commit-Position: refs/heads/main@{#1692098}

--

wpt-commits: 4a01b83e3b93b3e394f9f4f503b3152cf54098b8
wpt-pr: 62391
2026-09-10 11:30:11 +00:00
moz-wptsync-bot 04b514079d Bug 2069336 [wpt PR 62436] - Update wpt metadata, a=testonly
wpt-pr: 62436
wpt-type: metadata
2026-09-10 11:30:09 +00:00
Stefan Zager d79893fd23 Bug 2069336 [wpt PR 62436] - [HiC] Implement geometry update events for offscreen canvas, a=testonly
Automatic update from web-platform-tests
[HiC] Implement geometry update events for offscreen canvas

See: https://github.com/WICG/html-in-canvas/issues/135

Bug: 532229486
Change-Id: Ic3d0b4be42105dd50e34b26c6f018c99ddfc7b89
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8339821
Reviewed-by: Philip Rogers <pdr@chromium.org>
Commit-Queue: Stefan Zager <szager@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1692090}

--

wpt-commits: 7fcff3881cae3f9fc3a14ff40ab5d9b157006ace
wpt-pr: 62436
2026-09-10 11:30:08 +00:00
moz-wptsync-bot 4b811d5a86 Bug 2069335 [wpt PR 62429] - Update wpt metadata, a=testonly
wpt-pr: 62429
wpt-type: metadata
2026-09-10 11:30:06 +00:00
Stephen McGruer e5f4e11b8f Bug 2069335 [wpt PR 62429] - Add Payment Method Manifest WPTs for fetch options and status codes, a=testonly
Automatic update from web-platform-tests
Add Payment Method Manifest WPTs for fetch options and status codes

This adds tests covering Payment Method Manifest fetch options
(credentials omission and Referer header) and HTTP response status code
handling. Tests added:

   - PMI HEAD request omits credentials (cookies and authorization)
   - Manifest GET request omits credentials (cookies and authorization)
   - Manifest GET request sets Referer header to match PMI URL
       - This test fails in Chrome, which is crbug.com/545843241
   - HTTP 204 No Content response on initial PMI HEAD request succeeds
   - HTTP 404 response on initial PMI HEAD request aborts manifest fetching
   - HTTP 500 response on initial PMI HEAD request aborts manifest fetching

Bug: 552832440, 545843241
Change-Id: I8762c379aab36f272dcbf15feba270851a9fd856
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8328669
Commit-Queue: Stephen McGruer <smcgruer@chromium.org>
Auto-Submit: Stephen McGruer <smcgruer@chromium.org>
Reviewed-by: Xuehui Chen <xuehuichen@google.com>
Commit-Queue: Xuehui Chen <xuehuichen@google.com>
Cr-Commit-Position: refs/heads/main@{#1691947}

--

wpt-commits: a1690333b93590aae0ca7942edaa31b118a0e608
wpt-pr: 62429
2026-09-10 11:30:05 +00:00
Frédéric Wang Nélar d6d33568b4 Bug 2069330 [wpt PR 62427] - Fix flakiness in compression-dictionary/compressed-large-*.https.html, a=testonly
Automatic update from web-platform-tests
Fix flakiness in compression-dictionary/compressed-large-*.https.html

Use UUIDs in URLs to prevent potential race conditions with dictionary
registration, resource loading and cache clearing between
`compression_dictionary_promise_test`s.

Even with `run_wpt_tests.py --repeat=20`, I was enable to reproduce any
failure with compressed-large-resources-002.tentative.https.html, but
let's tentatively remove the failure annotation.

A similar issue was however observable in WebKit with equivalent command
`run-webkit-tests --repeat=4` and is fixed by this change.

Bug: 538228192, 40255884
Change-Id: Ib72f80f02a7a9b539cdb4c3627c1d4cabee684e4
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8341989
Commit-Queue: Frédéric Wang Nélar <fwang@igalia.com>
Reviewed-by: Patrick Meenan <pmeenan@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1691847}

--

wpt-commits: 9298d21d24c022a57b8c0b60b9a609fe6b684c62
wpt-pr: 62427
2026-09-10 11:30:03 +00:00
Frédéric Wang Nélar 83193a2a96 Bug 2069325 [wpt PR 62428] - [compression-dictionary] Add a test for same-origin no-cors fetch, a=testonly
Automatic update from web-platform-tests
[compression-dictionary] Add a test for same-origin no-cors fetch

As of 2026/09/03, the PR against the fetch spec [1] says that
"HTTP-network compression-dictionary fetch" should fallback to
"HTTP-network fetch" if request's mode is "no-cors". However,
this seems to be a mistake since Chromium allows using compression
dictionaries for same-origin [2]. Chromium's behavior is already
implicitly covered by compressed-large-resources-001.tentative, which
checks "no-cors" fetches via img/script/link tags but this CL adds a
more straightforward test that is easier to compare against its
cross-origin version. The CL also adds dictionary ids to make the
test a bit more robust.

[1] https://github.com/whatwg/fetch/pull/1854
[2] https://source.chromium.org/chromium/chromium/src/+/main:services/network/cors/cors_url_loader.cc;l=366?q=LOAD_CAN_USE_SHARED_DICTIONARY&ss=chromium%2Fchromium%2Fsrc

Bug: 40255884
Change-Id: I879382048ed18d45b629a1b8ae2b5d0461d06cb3
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8353624
Reviewed-by: Patrick Meenan <pmeenan@chromium.org>
Commit-Queue: Frédéric Wang Nélar <fwang@igalia.com>
Cr-Commit-Position: refs/heads/main@{#1691778}

--

wpt-commits: 2c385f65e4a4340bc6320b2745e86641b5710346
wpt-pr: 62428
2026-09-10 11:30:01 +00:00
Arnold Loubriat cc575b8acc Bug 2069322 [wpt PR 62251] - [core-aam] Find the test document without the embeds relation, a=testonly
Automatic update from web-platform-tests
[core-aam] Find the test document without the embeds relation (#62251)

Look the document up with a Collection query for the document roles,
falling back to a tree walk when a browser does not answer
Collection queries, and use the document url to tell the test
document apart from the other documents a browser exposes.
--

wpt-commits: 223b3686e9c2d445b1accaa4d5c82f687c997ac3
wpt-pr: 62251
2026-09-10 11:29:59 +00:00
moz-wptsync-bot 49291dc270 Bug 2069320 [wpt PR 62423] - Update wpt metadata, a=testonly
wpt-pr: 62423
wpt-type: metadata
2026-09-10 11:29:58 +00:00
Noam Rosenthal e3275c9c92 Bug 2069320 [wpt PR 62423] - Avoid passing resource timing information for post-redirect errors, a=testonly
Automatic update from web-platform-tests
Avoid passing resource timing information for post-redirect errors

In these cases "allow timing pass" could be true but the response is
"null" (https://fetch.spec.whatwg.org/#create-an-opaque-timing-info)

Added more cases to WPT

Bug: 40057919
Change-Id: I6aa11913dd1214a192adb62987baca1e49b4d94f
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8345384
Commit-Queue: Noam Rosenthal <nrosenthal@google.com>
Reviewed-by: Yoav Weiss (@Shopify) <yoavweiss@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1691506}

--

wpt-commits: 4fbf9ef4d7d371418f644ac5e0e8c0e8da9557b9
wpt-pr: 62423
2026-09-10 11:29:56 +00:00
Isaac Ahouma 1c8388b9b2 Bug 2064992 [wpt PR 62073] - Built-In AI: Guard Translator creation with availability check in WPTs, a=testonly
Automatic update from web-platform-tests
Built-In AI: Guard Translator creation with availability check in WPTs

Add an `assert_implements_optional` guard to `createTranslator()` so
that WPT tests yield `PRECONDITION_FAILED` instead of failing with
unhandled `NotSupportedError` rejections in environments without
language packages installed.

Bug: 545757079, 376789810
Change-Id: Iccda190677dea6022444c82d307aa3e94cacc0c9
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8263570
Auto-Submit: Isaac Ahouma <iahouma@google.com>
Reviewed-by: Jingyun Liu <jingyun@google.com>
Commit-Queue: Isaac Ahouma <iahouma@google.com>
Cr-Commit-Position: refs/heads/main@{#1683346}

--

wpt-commits: 07d3da1faedd53a4c35d0d675d7da1282f4f441d
wpt-pr: 62073
2026-09-10 11:29:55 +00:00
moz-wptsync-bot 7207afe806 Bug 2069316 [wpt PR 62422] - Update wpt metadata, a=testonly
wpt-pr: 62422
wpt-type: metadata
2026-09-10 11:29:53 +00:00
Kent Tamura ad87d0e4f3 Bug 2069316 [wpt PR 62422] - ruby: Propagate block-end annotation space in multicol containers, a=testonly
Automatic update from web-platform-tests
ruby: Propagate block-end annotation space in multicol containers

Previously, block-end annotation space propagation was disabled for
children of balanced multicol containers to avoid issues in an existing
WPT test about column balancing. This CL enables it.

This CL fixes BlockLayoutAlgorithm::FinishLayout() so that to compute
the available annotation space correctly for fragmented containers.

Bug: 445727139, 538260158
Change-Id: I27848eba96cb7f8ae8eb775d725455e0bc8d8748
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8294040
Commit-Queue: Morten Stenshorne <mstensho@chromium.org>
Auto-Submit: Kent Tamura <tkent@chromium.org>
Reviewed-by: Morten Stenshorne <mstensho@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1691451}

--

wpt-commits: a1e944e7a879854494e1a041a8ad1e4a8ae28ab1
wpt-pr: 62422
2026-09-10 11:29:52 +00:00
moz-wptsync-bot e48b39d6ac Bug 2069310 [wpt PR 62348] - Update wpt metadata, a=testonly
wpt-pr: 62348
wpt-type: metadata
2026-09-10 11:29:50 +00:00
Marcos Cáceres ca7e020605 Bug 2069310 [wpt PR 62348] - Credential Management: test opaque-origin rejection for origin-bound credentials, a=testonly
Automatic update from web-platform-tests
Credential Management: test opaque-origin rejection for origin-bound credentials (#62348)
--

wpt-commits: 476394464d0bd41775b2ad0f1e5925548f805e9b
wpt-pr: 62348
2026-09-10 11:29:48 +00:00
Ningxin Hu 0999b6dd7e Bug 2069307 [wpt PR 62412] - WebNN: Mark GATHER as float16-capable on LiteRT GPU delegate, a=testonly
Automatic update from web-platform-tests
WebNN: Mark GATHER as float16-capable on LiteRT GPU delegate

GATHER was serialized as not supporting float16, so a float16 input
got a DEQUANTIZE inserted in front of it. The ML Drift delegate folds
that DEQUANTIZE away, which leaves GATHER reading a float16 input into
the float32 destination the graph declared. Its model builder rejects
that with "Input / output dtype mismatch", so the node and its
DEQUANTIZE drop to CPU and the delegated partition is split.

GATHER in ML Drift is a pure lookup [1]: it copies input elements
through unchanged, so it can carry float16 the way reshape already
does. Marking it float16-capable leaves the conversion on the output,
where the delegate fuses it into the gather kernel instead of
materializing a float32 copy of the whole input.

Adds a "conv2d default + gather / float16" WPT case. Conv2d is not
float16-capable, so its float16 output is serialized as float32;
gather then reads a float32 input while its own output operand is
float16 and is the graph output, which is the case the output type
override covers.

[1]: https://github.com/google-ai-edge/LiteRT/pull/9682

Bug: 534847488
Change-Id: I2758cb3e305e02edb568ba3a302adb5409cfafc1
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8345429
Commit-Queue: Hu, Ningxin <ningxin.hu@intel.com>
Reviewed-by: Reilly Grant <reillyg@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1691345}

--

wpt-commits: c4781704fb6f7829bab44c1dbbad3cca8cc7140e
wpt-pr: 62412
2026-09-10 11:29:47 +00:00
Monica Chintala df5ddcbb9f Bug 2069303 [wpt PR 62362] - WebTransport: Implement WebTransport reliability attributes, a=testonly
Automatic update from web-platform-tests
WebTransport: Implement WebTransport reliability attributes

Expose WebTransport.reliability with the state transitions required by
the WebTransport specification. The value starts as pending and changes
to supports-unreliable after Chromium establishes its HTTP/3 transport.

Also expose WebTransport.supportsReliableOnly as false because Chromium
does not currently implement WebTransport over a reliable-only
transport. Gate both attributes behind the experimental
WebTransportReliability runtime feature. Update the IDL harness,
Web-exposed interface, and Android WebView expectations.

chrome status entry - https://chromestatus.com/feature/5094058497277952

Bug: 545636884
Change-Id: I73f603e6d43506efe2a5e1de1e1c77fc90c12bad
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8237894
Reviewed-by: Nidhi Jaju <nidhijaju@chromium.org>
Commit-Queue: Monica Chintala <monicach@microsoft.com>
Reviewed-by: Liang Zhao <lzhao@microsoft.com>
Reviewed-by: Alison Maher <almaher@microsoft.com>
Cr-Commit-Position: refs/heads/main@{#1690895}

--

wpt-commits: ddfa5ac3420c3ebf7b8d19e9b1945ca37ed773cd
wpt-pr: 62362
2026-09-10 11:29:45 +00:00
Hoch Hochkeppel (HE/HIM) e2b339143a Bug 2069299 [wpt PR 62381] - Fix crash on RTL caret offset before a run's first glyph, a=testonly
Automatic update from web-platform-tests
Fix crash on RTL caret offset before a run's first glyph

If a ligature glyph is composed across an inline boundary, the glyph
will end up getting owned by the first character (outside the boundary),
leaving the others without an owner within their run. The RTL walking
logic did not account for this (edge) case, so this change adds a simple
check to handle it, and a test that checks basic cursor validity in this
scenario (which crashes without this fix).

BUG: 472563267
Change-Id: I67e644c8f00b5541777cd41ba9dc92aed5192ac5
FIXED: 483936080
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8309212
Commit-Queue: Hoch Hochkeppel <mhochk@microsoft.com>
Reviewed-by: Koji Ishii <kojii@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1690877}

--

wpt-commits: 105b6a3a5d94003cac94dec460f017e47ea77b4d
wpt-pr: 62381
2026-09-10 11:29:43 +00:00
Christopher Cameron e8a995668c Bug 2069298 [wpt PR 62379] - WebGL: Add drawingBufferToneMapping interface, a=testonly
Automatic update from web-platform-tests
WebGL: Add drawingBufferToneMapping interface

Implement the WebGL drawingBufferToneMapping interface, gated on the
experimental WebGLToneMapping runtime feature flag.

The feature is described at:
https://github.com/w3c-cg/ColorWeb-CG/blob/main/webgl-drawing-buffer-tone-map.md

It is a part of the larger HDR proposal at:
https://github.com/w3c-cg/ColorWeb-CG/blob/main/hdr-big-picture.md

The function is a combined getter-setter (takes an optional
CanvasToneMapping argument, returns the state).

The function is expected to destroy the color buffer's contents. This
may not be strictly necessary, but mirrors the capabilities in WebGPU,
and the behavior of setting the drawingBufferColorSpace attribute. Add a
test for this (mirroring the color space test).

Add WPT test external/wpt/webgl/drawingBufferToneMapping.html and update
webexposed global interface expectations.

TAG=agy
CONV=9f2c857b-3ae8-4048-ab49-db1109f50272

Bug: 555806830
Change-Id: If5908fcb910ee110a949b47663d905e526ca53e9
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8330328
Reviewed-by: Philip Jägenstedt <foolip@chromium.org>
Commit-Queue: ccameron chromium <ccameron@chromium.org>
Reviewed-by: Kai Ninomiya <kainino@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1690875}

--

wpt-commits: 341432dac3fa5d5edc9fef9c7977bf51cd325078
wpt-pr: 62379
2026-09-10 11:29:42 +00:00
youennf 4269ac3b5b Bug 2069296 [wpt PR 62313] - sw.https.window.js is expecting a specific range request generation behaviour from media loading engines., a=testonly
Automatic update from web-platform-tests
sw.https.window.js is expecting a specific range request generation behaviour from media loading engines. (#62313)

WebKit engine does not behave as expected by the test, hence a timeout.
We update the test to move from a timeout to a failure.
--

wpt-commits: 41398349193defe47d2325f8aaaa0088d04fc2a4
wpt-pr: 62313
2026-09-10 11:29:40 +00:00
moz-wptsync-bot ef57016538 Bug 2069295 [wpt PR 62270] - Update wpt metadata, a=testonly
wpt-pr: 62270
wpt-type: metadata
2026-09-10 11:29:39 +00:00
Blink WPT Bot 73a3f9fcea Bug 2069295 [wpt PR 62270] - [Interop 2026] Advance MediaStream currentTime during playback, a=testonly
Automatic update from web-platform-tests
[Interop 2026] Advance MediaStream currentTime during playback (#62270)

Track elapsed playback time for MediaStream-backed media elements instead
of deriving currentTime from the latest received media frame. This keeps
currentTime advancing while the element plays even when a remote sender is
inactive, and preserves the accumulated time across pauses.

Correct the WPT helper so its audio cases create an audio track, and add
unit coverage for play, pause, and resume behavior.

Bug: None
Change-Id: I6e718c08395aaab82586b5a4225c0f029d8b8e84
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8309752
Reviewed-by: Johannes Kron <kron@chromium.org>
Reviewed-by: Guido Urdaneta <guidou@chromium.org>
Commit-Queue: Guido Urdaneta <guidou@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1687921}

Co-authored-by: Michael Reeves <michael.reeves077@gmail.com>
--

wpt-commits: d97bbe4aed91b88c94fe26800a13e004e337a02b
wpt-pr: 62270
2026-09-10 11:29:37 +00:00
Charles Zhang 8c398540b8 Bug 2068988 [wpt PR 62411] - Fix missing line break before entering unicode-bidi scope, a=testonly
Automatic update from web-platform-tests
Fix missing line break before entering unicode-bidi scope

Prior to this patch, LayoutNG's LineBreaker::HandleBidiControlItem()
invokes ICU to find the break opportunity only when exiting a bidi
scope. It ignores opportunities when entering such a scope, e.g. at
unicode-bidi: isolate or <bdi> boundaries.

That's fine when preceded by a breakable space, but is problematic when
a character that allows a break to follow is used, such as the hyphen-
minus. The bidi control characters injected by inline_items_builder.cc
belong to UAX#14 line break class CM, which should get combined with the
preceding base characters and ignored per UAX#14 LB9.

This patch adds the line break opportunity check when entering a bidi
scope, gated by feature flag LineBreakBidiControlEnter.

Fixed: 477829708
Change-Id: Ie6bcfc3c77a6afb967d5348e45be3d3dde3849a3
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8284218
Commit-Queue: Kent Tamura <tkent@chromium.org>
Reviewed-by: Koji Ishii <kojii@chromium.org>
Auto-Submit: Charles Zhang <csalinezh@gmail.com>
Reviewed-by: Kent Tamura <tkent@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1691195}

--

wpt-commits: 0ea9f2aac339023384f279aca8a034775117445f
wpt-pr: 62411
2026-09-10 11:29:35 +00:00
moz-wptsync-bot 1c788ef997 Bug 2068987 [wpt PR 62410] - Update wpt metadata, a=testonly
wpt-pr: 62410
wpt-type: metadata
2026-09-10 11:29:34 +00:00
Dale Curtis 10a8ca52ea Bug 2068987 [wpt PR 62410] - Revert wpt import changes for webcodecs image decoder utilities, a=testonly
Automatic update from web-platform-tests
Revert wpt import changes for webcodecs image decoder utilities

ImageDecoder implementations must support image-orientation: none,
so tagged rotation is required.

The WPT changes in https://github.com/WebKit/WebKit/pull/71825 are
incorrect. This reverts the WebCodecs changes from the wpt auto-roll
in https://crrev.com/c/8337247

R=tguilbert

Fixed: 555812369
Change-Id: Ie86086cb017b4252ad8ca5870aa6b7bdb80ef2e2
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8341575
Reviewed-by: Thomas Guilbert <tguilbert@chromium.org>
Commit-Queue: Thomas Guilbert <tguilbert@chromium.org>
Commit-Queue: Dale Curtis <dalecurtis@chromium.org>
Auto-Submit: Dale Curtis <dalecurtis@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1691094}

--

wpt-commits: cc4d45aa0bd75e0dd1f341f122fd099d90a0aa8b
wpt-pr: 62410
2026-09-10 11:29:32 +00:00
moz-wptsync-bot 959d0da131 Bug 2068984 [wpt PR 62408] - Update wpt metadata, a=testonly
wpt-pr: 62408
wpt-type: metadata
2026-09-10 11:29:30 +00:00
Thomas Nguyen c838a87385 Bug 2068984 [wpt PR 62408] - [CE] Restrict script-initiated focus on capability elements, a=testonly
Automatic update from web-platform-tests
[CE] Restrict script-initiated focus on capability elements

Internal programmatic focus paths, such as modal dialog transitions or
popover autofocus, reach this method with `FocusType::kNone`. This
allowed capability elements to acquire focus without transient user
activation, bypassing safeguards. By tracking `FocusTrigger` instead,
internal script-driven invocations are properly captured and blocked
unless user activation is present.

Fixed: 540076586, 344739595
Change-Id: I5caec2bab0d2817f17b3e9f458e6da773b6761de
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8328459
Reviewed-by: Dominic Farolino <dom@chromium.org>
Commit-Queue: Thomas Nguyen <tungnh@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1691080}

--

wpt-commits: a4fcd77aaa840712ae63c226a2256715d8e1a3d6
wpt-pr: 62408
2026-09-10 11:29:29 +00:00
Fredrik Söderquist 9ec35b6c25 Bug 2068981 [wpt PR 62409] - Deflake two wpt/svg/animations/animateMotion-path-*.html tests, a=testonly
Automatic update from web-platform-tests
Deflake two wpt/svg/animations/animateMotion-path-*.html tests

Wait for 'load' before running any promise_test()s to ensure that the
SMIL timeline has started.

Fixed: 555949816
Change-Id: I2107b0b79d78bcc7b193c318e48689d153af293a
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8347167
Auto-Submit: Fredrik Söderquist <fs@opera.com>
Reviewed-by: Philip Rogers <pdr@chromium.org>
Commit-Queue: Philip Rogers <pdr@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1690955}

--

wpt-commits: 8fdda8ce4c5b08230b596f97e86ed509c408d065
wpt-pr: 62409
2026-09-10 11:29:27 +00:00
Justin Lulejian 2444038098 Bug 2068978 [wpt PR 62407] - [Extensions] Implement runtime.onEnabled lifecycle event, a=testonly
Automatic update from web-platform-tests
[Extensions] Implement runtime.onEnabled lifecycle event

Currently, extensions have no standard lifecycle event to detect when
they are re-enabled after being disabled by the user or system. While
runtime.onInstalled fires on installation and update and
runtime.onStartup fires on browser profile startup, enabling an
extension does not trigger a dedicated notification to the extension.

With this change, extensions can listen to runtime.onEnabled, which
fires whenever an extension transitions from a disabled state to an
enabled state while the browser is running.

TAG=agy
CONV=852bdb46-5859-4cdd-9d25-ef2e63da3746

Low-Coverage-Reason: COVERAGE_UNDERREPORTED logic executed via extension doesn't seem to get reported.
Fixed: 550432518
Change-Id: I277fd4e05aa4e1e15929b006f6d95347fc510057
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8275812
Auto-Submit: Justin Lulejian <jlulejian@chromium.org>
Commit-Queue: Justin Lulejian <jlulejian@chromium.org>
Reviewed-by: Tim <tjudkins@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1690907}

--

wpt-commits: d0c38285b53a93f9cd0774726807a49b1df851c7
wpt-pr: 62407
2026-09-10 11:29:25 +00:00
Andreu Botella 221858dc6c Bug 2068977 [wpt PR 62395] - [line-clamp] In displaced ellipses, only root inlines have a strut, a=testonly
Automatic update from web-platform-tests
[line-clamp] In displaced ellipses, only root inlines have a strut

Line-clamp ellipses behave as if they had `line-height: 0`, so they
never grow the line they're added to. However, when the ellipsis
displaces a whole line, to avoid that line having zero size, the root
inline box has a strut (i.e. it adds a corresponding height to the
line), but other open inline boxes don't.

In our implementation of displaced ellipses, however, we were
triggering strict line height, meaning that all struts corresponding
to open inline boxes had a strut. Instead, this CL changes the
`line_height_quirk` boolean argument of
`InlineLayoutStateStack::OnBeginPlaceItems` to a `LineHeightMode` enum
with a variant for the line-clamp displaced ellipsis, which behaves
like the line-height quirk (not adding struts) except for the root
inline box.

Bug: 40336192, 543375422
Change-Id: Ie57e81086826032d6301c8bb4931b0e31ec565a9
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8287666
Commit-Queue: Andreu Botella <abotella@igalia.com>
Reviewed-by: Koji Ishii <kojii@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1690876}

--

wpt-commits: ed1909ed6cd48167b3fa0f01f38538bcc9cd3090
wpt-pr: 62395
2026-09-10 11:29:24 +00:00
moz-wptsync-bot a9deea3e49 Bug 2068975 [wpt PR 62389] - Update wpt metadata, a=testonly
wpt-pr: 62389
wpt-type: metadata
2026-09-10 11:29:22 +00:00
Karl Dubost 912b4c4380 Bug 2068975 [wpt PR 62389] - WebKit export of https://bugs.webkit.org/show_bug.cgi?id=323065, a=testonly
Automatic update from web-platform-tests
WebKit export of https://bugs.webkit.org/show_bug.cgi?id=323065 (#62389)
--

wpt-commits: 508cc6a6247fcbc808e42e75ba99dfa9d9cc74ff
wpt-pr: 62389
2026-09-10 11:29:21 +00:00
moz-wptsync-bot 1792840e54 Bug 2063790 [wpt PR 61957] - Update wpt metadata, a=testonly
wpt-pr: 61957
wpt-type: metadata
2026-09-10 11:29:19 +00:00
Yanling Wang e1b4159dc2 Bug 2063790 [wpt PR 61957] - [Masonry] Implement baseline alignment for subgridded items, a=testonly
Automatic update from web-platform-tests
[Masonry] Implement baseline alignment for subgridded items

This CL implements baseline alignment for items subgridded into a
grid-lanes container along its grid (subgridded) axis, so they
participate in the container's baseline alignment.

Subgridded items are skipped by the container's placement loop because
they are laid out later by their own subgrid, so their baselines are
never gathered there. This CL measures and stores those baselines
separately during the baseline calculation phase, so the subgridded
items are aligned to the container's shared grid-axis baseline.

Adds nested subgrids baseline tests, and clears the now-passing entries
from TestExpectations.

Bug: 343257585
Change-Id: Ief1de5fbe76aa3a6efd747c7f49f0955de3ff47b
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8223162
Commit-Queue: Yanling Wang <yanlingwang@microsoft.com>
Reviewed-by: Celeste Pan <celestepan@microsoft.com>
Reviewed-by: Ian Kilpatrick <ikilpatrick@chromium.org>
Reviewed-by: Kurt Catti-Schmidt <kschmi@microsoft.com>
Cr-Commit-Position: refs/heads/main@{#1683558}

--

wpt-commits: 88da41daeb1bfcdc75d000c1edf9f4f9a7b6bfae
wpt-pr: 61957
2026-09-10 11:29:17 +00:00
Dominic Farolino 7eda12ac6a Bug 2068969 [wpt PR 62385] - WPT: Fix navigation-during-beforeunload test, a=testonly
Automatic update from web-platform-tests
WPT: Fix navigation-during-beforeunload test

https://wpt.fyi/results/html/browsers/browsing-the-web/unloading-documents/navigation-during-beforeunload.html
shows that WebKit (Safari Tech Preview) passes all three tests. But on
older versions of WebKit that failed, the first hits a test harness
timeout, and the other two tests don't run.

This PR makes the first test fail more reasonably in broken
implementations (now, old versions of Safari). This was discovered in
https://github.com/whatwg/html/issues/12800, and all of this is subject
to change in the resolution of that issue.

R=nrosenthal

Bug: N/A
Change-Id: Iac34406a7323f7280029638db604e4c3da6b638e
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8314432
Reviewed-by: Noam Rosenthal <nrosenthal@google.com>
Commit-Queue: Dominic Farolino <dom@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1690719}

--

wpt-commits: a8b466b153dba98f0eede257d177d939025ae203
wpt-pr: 62385
2026-09-10 11:29:16 +00:00
moz-wptsync-bot d22220d4b3 Bug 2068968 [wpt PR 62393] - Update wpt metadata, a=testonly
wpt-pr: 62393
wpt-type: metadata
2026-09-10 11:29:14 +00:00
Christopher Cameron 637e240804 Bug 2068968 [wpt PR 62393] - Add parameterized toDataURL color conversion WPT test, a=testonly
Automatic update from web-platform-tests
Add parameterized toDataURL color conversion WPT test

Use the same parameter set and test pattern as the getImageData tests.

Remove individual redundant toDataURL tests superseded by this unified
test.

TAG=agy
CONV=3da4bac4-8ad7-46e9-969f-5aa84b7a5620

Bug: 454152417
Change-Id: Ic2be8b406008168419241eef199e16a3ffbbc969
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8314209
Reviewed-by: Philip Rogers <pdr@chromium.org>
Commit-Queue: ccameron chromium <ccameron@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1690327}

--

wpt-commits: 2b4dfe72cc8b66ab100b8b659e8881facd6c4e0f
wpt-pr: 62393
2026-09-10 11:29:12 +00:00
Sam Sneddon 2b7d23c656 Bug 2068967 [wpt PR 62374] - Give each GitHub Actions wptreport a unique basename, a=testonly
Automatic update from web-platform-tests
Fix #62372: give each GitHub Actions wptreport a unique basename

This "regressed" with 10a4cd69c6, when we started sharding by test
type, which meant we now had multiple chunks numbered 1.

("Regressed" in quotation marks because this isn't really a bug on our
side: it's a bug on the consuming side.)

--

wpt-commits: 7e3d005d7769cdcd196344ba39f27e74c99ccda7
wpt-pr: 62374
2026-09-10 11:29:11 +00:00
Karl Dubost 89e50faf20 Bug 2068962 [wpt PR 62390] - WebKit export of https://bugs.webkit.org/show_bug.cgi?id=322976, a=testonly
Automatic update from web-platform-tests
WebKit export of https://bugs.webkit.org/show_bug.cgi?id=322976 (#62390)
--

wpt-commits: f8e0ed6a9da43fdaa16fa6e2a551d8c672b3ea0d
wpt-pr: 62390
2026-09-10 11:29:09 +00:00
moz-wptsync-bot f44da51395 Bug 2068958 [wpt PR 62392] - Update wpt metadata, a=testonly
wpt-pr: 62392
wpt-type: metadata
2026-09-10 11:29:08 +00:00
Vladimir Levin f3ef4fc3ac Bug 2068958 [wpt PR 62392] - sttf: Split find-range-from-text-directive.html into subtests., a=testonly
Automatic update from web-platform-tests
sttf: Split find-range-from-text-directive.html into subtests.

This is flaky timing out on the bots. Locally each run for the one test
takes about 17 seconds. After the split, each of the subtests takes
about 1.5 seconds. This should prevent bot timeouts.

R=bokan@chromium.org

Bug: 553338116
Change-Id: Iabf45f590d4318b88b6296b335ce3ab1ae45bc3d
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8329047
Reviewed-by: Rick Byers <rbyers@chromium.org>
Commit-Queue: Vladimir Levin <vmpstr@chromium.org>
Reviewed-by: David Bokan <bokan@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1690710}

--

wpt-commits: 6ec9fd59f6526960bfdda514afd2325511d766fe
wpt-pr: 62392
2026-09-10 11:29:06 +00:00
Júlio Piubello bb5229a156 Bug 2068953 [wpt PR 62383] - WebDriver BiDi: Await user-context file dialog assertions, a=testonly
Automatic update from web-platform-tests
WebDriver BiDi: Await user-context file dialog assertions

Await the asynchronous file-dialog assertion helpers in the
browser.createUserContext unhandled prompt behavior WPT.

Previously, the test returned coroutine objects without executing their
bodies, so the accept, dismiss, and ignore cases could report success
without checking whether the picker was canceled. Running the assertions
also exposes existing host behavior for ignore; this CL does not change
product behavior or expectations.

Bug: 539194312
Change-Id: I0af5a6f080aea3bd27795391f5ce50f857722aaa
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8152279
Reviewed-by: Alex Rudenko <alexrudenko@chromium.org>
Commit-Queue: Julio Piubello <julio@gitstart.com>
Reviewed-by: Maksim Sadym <sadym@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1690634}

--

wpt-commits: 3f6b09ae3ed55280074645ce38e9002f52fc60a8
wpt-pr: 62383
2026-09-10 11:29:04 +00:00
moz-wptsync-bot f4b871fb74 Bug 2068951 [wpt PR 62349] - Update wpt metadata, a=testonly
wpt-pr: 62349
wpt-type: metadata
2026-09-10 11:29:03 +00:00
SeungJun Lee 3dc16aff5e Bug 2068951 [wpt PR 62349] - FileReader: Suppress stale loadend after reentrant read, a=testonly
Automatic update from web-platform-tests
FileReader: Suppress stale loadend after reentrant read

Do not fire loadend for a completed, aborted, or failed read when its terminal event handler starts a new read on the same FileReader.

Add regression coverage for reentrant reads from abort, load, and error handlers.

Bug: 40763894
Change-Id: Ie51c5c9652f85e3feaeccc5f9591ddea35f72801
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8300812
Reviewed-by: Rakina Zata Amni <rakina@chromium.org>
Commit-Queue: Amos Lim <amoseui@chromium.org>
Reviewed-by: Fergal Daly <fergal@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1690598}

--

wpt-commits: 666797a05cd728e328bc2161fe58a46ad11bfcb8
wpt-pr: 62349
2026-09-10 11:29:01 +00:00
moz-wptsync-bot 154b915027 Bug 2068947 [wpt PR 62382] - Update wpt metadata, a=testonly
wpt-pr: 62382
wpt-type: metadata
2026-09-10 11:28:59 +00:00
Rune Lillesveen a797e2810d Bug 2068947 [wpt PR 62382] - Reset pending selected scrollmarker on removal, a=testonly
Automatic update from web-platform-tests
Reset pending selected scrollmarker on removal

A removed ScrollMarkerPseudoElement cleared the selected_marker_ of the
group if that matched the removed marker. We did not check
pending_selected_marker_, which could lead to a disconnected pending
marker being promoted as the selected marker in
ApplyPendingScrollMarker().

This lead to a crash when calling
LayoutTreeBuilderTraversal::ComparePreorderTreePosition on elements not
in the flat tree.

Bug: 533050757
Change-Id: I8540787e3aa7fc6da7376daae027e4e91079a351
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8331127
Reviewed-by: Morten Stenshorne <mstensho@chromium.org>
Commit-Queue: Rune Lillesveen <futhark@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1690507}

--

wpt-commits: 8a0ace20bde348b1e5bda0ddd1527b161603b278
wpt-pr: 62382
2026-09-10 11:28:58 +00:00
moz-wptsync-bot bb7aeea44e Bug 2058769 [wpt PR 61589] - Update wpt metadata, a=testonly
wpt-pr: 61589
wpt-type: metadata
2026-09-10 11:28:56 +00:00
Blink WPT Bot 20a07b7fa1 Bug 2058769 [wpt PR 61589] - Add DownloadObserver to Semantic Embedder, a=testonly
Automatic update from web-platform-tests
Add DownloadObserver to Semantic Embedder (#61589)

This CL implements the DownloadObserver and on-demand downloading
for the Semantic Embedder API.

Key changes:

1. Download Progress Observer: Connects the Blink CreateMonitor down
   through the AIManager Mojo interface to the
   AISemanticEmbedderServiceLauncher, allowing the web page to track
   component download progress.

2. On-Demand Downloading: Removes the unconditional startup
   registration of the AI Embeddings Component. The component is now
   dynamically registered and downloaded on-demand only when a website
   explicitly calls SemanticEmbedder.create().

3. Background Download Resumption: Introduces the
   prefs::kIsAIEmbeddingsDownloadEligible local state preference.
   Once a user initiates a download, this pref ensures the component
   is registered on subsequent browser startups, allowing the
   Component Update Service to automatically resume and finish the
   download in the background.

4. Robust Error Handling: Updates the on-demand update callback to
   properly propagate update_client::Error codes. If a download
   fails, the error is caught and Javascript promises are immediately
   rejected, preventing hangs.

5. WPT Timeout Fixes: Rewrites testCreateMonitorWithAbortAt in util.js
   to trigger based on event counts rather than brittle hardcoded mock
   byte values.

Bug: 428233906
Change-Id: I9bfe293f33a47263e7a534ce2bfc7fa4119bb936
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8092081
Reviewed-by: Jingyun Liu <jingyun@google.com>
Reviewed-by: Noah Rose Ledesma <noahrose@google.com>
Commit-Queue: Ian Zhao <yinguang@google.com>
Reviewed-by: Mike Wasserman <msw@chromium.org>
Reviewed-by: Fred Shih <ffred@chromium.org>
Reviewed-by: Steven Holte <holte@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1669825}

Co-authored-by: Ian Zhao <yinguang@google.com>
--

wpt-commits: bd6829a4066abc9603c167271fed0b233638b4f4
wpt-pr: 61589
2026-09-10 11:28:55 +00:00
Blink WPT Bot 22172a678c Bug 2061154 [wpt PR 61781] - Fix mismatched tags in inert WPTs, a=testonly
Automatic update from web-platform-tests
Fix mismatched tags in inert WPTs (#61781)

Correct mismatched closing tags in inert focus tests so their containers
have the intended DOM structure. This exposes obsolete Chromium-specific
Blink plugin elements that are no longer focusable after inertness is
removed. Remove those non-portable elements while retaining coverage
through standard focusable HTML controls.

Bug: 542686202
Change-Id: I61b14405d06423459f8601ccbf1f17c77a55e82b
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8197604
Reviewed-by: Rune Lillesveen <futhark@chromium.org>
Commit-Queue: Fernando Fiori <ffiori@microsoft.com>
Cr-Commit-Position: refs/heads/main@{#1675028}

Co-authored-by: Fernando Fiori <ffiori@microsoft.com>
--

wpt-commits: 0fa3a989dc092fbac8b93653b0cbad492e685187
wpt-pr: 61781
2026-09-10 11:28:53 +00:00
Blink WPT Bot 3d88f4dd9c Bug 2061557 [wpt PR 61789] - Fix malformed markup in CSS WPTs, a=testonly
Automatic update from web-platform-tests
Fix malformed markup in CSS WPTs (#61789)

Correct mismatched closing tags and a misspelled link element in CSS and
forced-colors WPTs. This restores the intended DOM structure without
changing the tests' coverage.

Bug: 542686202
Change-Id: I73d6234d78564185fee66b8913636c91ed8e61ac
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8200955
Auto-Submit: Fernando Fiori <ffiori@microsoft.com>
Reviewed-by: Fernando Fiori <ffiori@microsoft.com>
Reviewed-by: Munira Tursunova <moonira@google.com>
Commit-Queue: Fernando Fiori <ffiori@microsoft.com>
Cr-Commit-Position: refs/heads/main@{#1675033}

Co-authored-by: Fernando Fiori <ffiori@microsoft.com>
--

wpt-commits: a6218de354fb805968c13f8f825ca536acc0d438
wpt-pr: 61789
2026-09-10 11:28:51 +00:00
Anne van Kesteren d5872149be Bug 2068938 [wpt PR 62388] - Add tests for the origin of documents created by the parsing APIs, a=testonly
Automatic update from web-platform-tests
Add tests for the origin of documents created by the parsing APIs

document.domain is the only way to directly observe the origin of a document
without a browsing context, and it was untested for these APIs.

For https://github.com/whatwg/html/pull/12881

--

wpt-commits: 7b4baa3afff1c313269dd778c47ce1eeb93f2c61
wpt-pr: 62388
2026-09-10 11:28:50 +00:00
moz-wptsync-bot 86ce923b39 Bug 2068935 [wpt PR 62378] - Update wpt metadata, a=testonly
wpt-pr: 62378
wpt-type: metadata
2026-09-10 11:28:48 +00:00
Koji Ishii b5ca4cf7ef Bug 2068935 [wpt PR 62378] - Disable the FirstLineTextMetrics runtime flag, a=testonly
Automatic update from web-platform-tests
Disable the `FirstLineTextMetrics` runtime flag

This runtime flag was introduced by crrev.com/c/6792103 to
match CSS2 and Gecko. But discussion[1] discovered that the
spec was changed to match old Blink (before the flag) and
WebKit[2][3].

This patch disables the flag to match the current spec and
WebKit.

The flag was enabled one year ago, and no regressions were
reported so far.

Adjusted `first-line-line-height-002` test to match the
current spec. This test was added to help interop of the old
behavior by [4].

`first-line-line-height-003` added by the CL above was
removed, as `002` covers the behavior.

[1]: https://github.com/web-platform-tests/wpt/pull/62271
[2]: https://github.com/w3c/csswg-drafts/issues/2282
[3]: https://github.com/w3c/csswg-drafts/issues/1384
[4]: https://bugzilla.mozilla.org/show_bug.cgi?id=1742586

Bug: 41362700, 548482066
Change-Id: I06dec00a9d9f823f394bdc7bbd22c6d8c2e6bb50
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8315592
Reviewed-by: Ian Kilpatrick <ikilpatrick@chromium.org>
Commit-Queue: Koji Ishii <kojii@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1690441}

--

wpt-commits: 05fffeacb7c7d7bdafac267ff3946f2f923a737a
wpt-pr: 62378
2026-09-10 11:28:46 +00:00
moz-wptsync-bot f2e596b815 Bug 2068933 [wpt PR 62380] - Update wpt metadata, a=testonly
wpt-pr: 62380
wpt-type: metadata
2026-09-10 11:28:45 +00:00
Christopher Cameron 8c9f67eea9 Bug 2068933 [wpt PR 62380] - Add parameterized toBlob color conversion WPT test, a=testonly
Automatic update from web-platform-tests
Add parameterized toBlob color conversion WPT test

Use the same parameter set and test pattern as the getImageData tests.

Remove individual redundant toBlob tests superseded by this unified
test.

TAG=agy
CONV=3da4bac4-8ad7-46e9-969f-5aa84b7a5620

Bug: 454152417
Change-Id: I170424c0de4c318d5528efc957795903cc63cc6d
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8312949
Commit-Queue: ccameron chromium <ccameron@chromium.org>
Reviewed-by: Philip Rogers <pdr@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1690326}

--

wpt-commits: 13a6aa64b41cdbac83569ba7665f3a81e658fc4d
wpt-pr: 62380
2026-09-10 11:28:43 +00:00
moz-wptsync-bot 5ee75e1bda Bug 1773982 [wpt PR 34396] - Update wpt metadata, a=testonly
wpt-pr: 34396
wpt-type: metadata
2026-09-10 11:28:41 +00:00
Manuel Rego Casasnovas 7e3bc40a22 Bug 1773982 [wpt PR 34396] - Add new tests to check that thresholds is FrozenArray, a=testonly
Automatic update from web-platform-tests
Add new tests to check that thresholds is FrozenArray

Fixes https://github.com/w3c/IntersectionObserver/issues/162

--

wpt-commits: 7addae03195ff8f409cac611bf46351131d320f0
wpt-pr: 34396
2026-09-10 11:28:40 +00:00
Antoine Quint 41f459c084 Bug 2068737 [wpt PR 62351] - WebKit export of https://bugs.webkit.org/show_bug.cgi?id=322936, a=testonly
Automatic update from web-platform-tests
WebKit export of https://bugs.webkit.org/show_bug.cgi?id=322936 (#62351)
--

wpt-commits: b1a7025f8bc16454e18604c9e195038aa5cf1d94
wpt-pr: 62351
2026-09-10 11:28:38 +00:00
Dave Townsend 02eb3b39c9 Bug 2063316: Add tests for CheckCompatibility and download ping generation. r=nika
Differential Revision: https://phabricator.services.mozilla.com/D320428
2026-09-10 11:22:53 +00:00
Hiroyuki Ikezoe 3f2e441d84 Bug 2015089 - Post the visual viewport's scroll and scrollend events exactly once. r=emilio
VisualViewportScrollEvent's constructor posted itself to the pres shell, and so
did the constructor of its base class VisualViewportScrollEndEvent, so every
visual viewport scroll event landed in the pending scroll events twice. The
duplicate is harmless today only because firing the first copy revokes the
event. Post from PostScrollEvent()/PostScrollEndEvent() instead, once per
event.

Differential Revision: https://phabricator.services.mozilla.com/D324809
2026-09-10 10:51:45 +00:00
Julian Descottes eedef57a61 Bug 2069100 - [devtools] Ignore getGridFragments errors if gridFront/nodeFront is destroyed r=devtools-reviewers,nchevobbe
Differential Revision: https://phabricator.services.mozilla.com/D324892
2026-09-10 10:35:17 +00:00
Dimi 4e48c28beb Bug 2052772 - Part 4: Wait for FOG init before reading Glean in the startup_about_home_paint talos addon r=perftest-reviewers,sparky
The addon reads its Glean metric as soon as browser-idle-startup-tasks-finished
fires. That notification says nothing about FOG, which is initialized by a
separate startup idle task, so the read can land before initializeFOG has run.
A blocking Glean read that early does not return nothing, it deadlocks the main
thread. The browser then sits in startup_about_home_paint cycle 1/20 until the
task is killed, with no crash and no stack. The race is pre-existing, but Part 1
makes it reliable: it moves the notification onto the thread-level idle queue,
which puts it ahead of initializeFOG.

Wait on nsIFOG.initialized from Part 3 before the read; recording is buffered,
so the measurement survives. Bounded at 15s, half the outputTimeout ffsetup
gives the warmup run that also loads this addon, and gives up with
TEST-UNEXPECTED-FAIL rather than burning the task. The cached and
realworld_webextensions suites share the addon and are fixed too.

Differential Revision: https://phabricator.services.mozilla.com/D324617
2026-09-10 10:34:18 +00:00
Dimi 6a75c302a4 Bug 2052772 - Part 3: Expose nsIFOG.initialized and wait for it before reading Glean in marionette tests r=search-reviewers,sclements,janerik,jteow
test_ping_submitted and test_new_tab_on_restore read Glean metrics as soon as
the browser reports itself started up. That signal
(browser-idle-startup-tasks-finished, which is what Marionette waits on) says
nothing about FOG, which is initialized from a startup idle task, so the read
can land while Glean is still pre-init.

That is not a slow read, it is an unrecoverable hang: block_on_dispatcher posts
its barrier to the unbounded queue while the dispatcher worker is still parked
on the pre-init channel, and the queue is only flushed by initializeFOG, which
needs the main thread. So a blocking Glean read from the main thread in that
window deadlocks the browser, with no crash and no stack.

The race itself is pre-existing: FOG is initialized by StartupTelemetry's
browser-idle-startup consumer, behind awaits on UsageReporting and
TelemetryReportingPolicy, so it could always finish after the notification.
Part 1 is what makes it reproduce. Porting _schedulePerWindowIdleTasks to
category-manager invocation replaces window.requestIdleCallback with
ChromeUtils.idleDispatch, so the per-window tasks and the notification that
follows them move off the window's idle callback list and onto the
thread-level idle queue that browser-idle-startup already uses. That changes
when the notification fires relative to initializeFOG, and the tests started
hanging instead of racing benignly.

Expose whether initializeFOG has been called, and wait for it before each read.

Differential Revision: https://phabricator.services.mozilla.com/D323262
2026-09-10 10:34:17 +00:00
Dimi 6b51d23be0 Bug 2052772 - Part 2: Allowlist the pre-existing urlbar focus-ring startup flicker exposed by the idle-task port r=Gijs
Invoking browser-window-idle-tasks with idleDispatch changes when
browser-startup-idle-tasks-finished fires, so the urlbar focus-ring settle now
sometimes lands inside the window that browser_startup_flicker.js records. The
flicker is pre-existing and intermittent (~15% on linux debug); add a targeted
allowlist entry matching the urlbar box, and track removal in a follow-up.

Differential Revision: https://phabricator.services.mozilla.com/D321518
2026-09-10 10:34:17 +00:00
Dimi a3a4a9698d Bug 2052772 - Part 1: Port module initialization in _schedulePerWindowIdleTasks to use category-manager invocation r=Gijs,frontend-codestyle-reviewers,mossop
Move the per-window idle inits in gBrowserInit._schedulePerWindowIdleTasks to a
new browser-window-idle-tasks category, continuing Bug 2036714, Bug 2039199 and
Bug 2045665. The category is invoked with idleDispatch: true.

callModulesFromCategory now drops a consumer when its jsGlobal is a window that
has closed by the time the idle task runs. Without this, a window that closes
before its idle inits run gets re-initialized after its unload teardown and
leaks (browser_windowclose.js / browser_tabdetach.js).

Teardown moves to the browser-window-unload categories, and the download init
moves into DownloadsCommon.initializeForWindow.

Differential Revision: https://phabricator.services.mozilla.com/D310625
2026-09-10 10:34:16 +00:00
Andrea Marchesini 7161736d20 Bug 2069948 - Make cookieStore.delete() remove only the cookie it targets r=valentin
Differential Revision: https://phabricator.services.mozilla.com/D324620
2026-09-10 10:32:14 +00:00
agoloman 18c5302930 Revert "Bug 2063316: Add tests for CheckCompatibility and download ping generation. r=nika" for causing build bustages @TestDowngradePing.cpp.
This reverts commit 82d5ddd137.
2026-09-10 10:27:11 +00:00
Henrik Skupin 7cadebb85c Bug 2070300 - [remote] Throw "NavigationError" instead of a plain "Error" in ProgressListener. r=Sasha
Differential Revision: https://phabricator.services.mozilla.com/D324385
2026-09-10 10:07:47 +00:00
Erich Gubler d9e39d91f4 Bug 2069928 - style(webgpu): run cargo fmt on wgpu_bindings r=webgpu-reviewers,nical
Differential Revision: https://phabricator.services.mozilla.com/D324571
2026-09-10 10:05:16 +00:00
Andrea Marchesini 8b29b563e4 Bug 2069925 - Apply response headers before handling redirects in HandleOverrideResponse r=necko-reviewers,valentin,webdriver-reviewers,Sasha
Differential Revision: https://phabricator.services.mozilla.com/D324631
2026-09-10 10:03:36 +00:00
Johannes Salas Schmidt 76334a3ebd Bug 2070108 - Do not record a re-authentication event that does not exist r=credential-management-reviewers,mtigley
LoginHelper.requestReauth() returns without a `telemetryEvent` when it gives
up because a primary password prompt is already open. Two of its callers
destructure that value unconditionally and throw a TypeError instead of
exporting the passwords, in about:logins and in the contextual password
manager.

Move the recording into LoginHelper next to requestReauth(), where it can skip
the missing event, and use it from both callers.

No test: reproducing this needs a second primary password prompt to be open at
the moment the export is started.

Differential Revision: https://phabricator.services.mozilla.com/D324587
2026-09-10 09:56:08 +00:00
Johannes Salas Schmidt b8c8ba90e9 Bug 2070108 - Record every Primary Password prompt with its result r=credential-management-reviewers,dimi
The only prompt-related probe so far is pwmgr.reauthenticate_master_password.
It is built by LoginHelper.requestReauth() and recorded by its callers, so it
only covers the explicit re-authentication gate, and only where the caller
bothers to record the event it gets back. The prompts that come out of the
storage back-ends, which is where most of them happen, are not measured at
all: neither crypto-SDR nor the Rust store's PrimaryPasswordAuthenticator
record anything.

Add pwmgr.primary_password_prompt, recorded at all three places that can put
the dialog on screen, with a `source` telling them apart and the result of the
prompt. reauthenticate_master_password is left alone.

The Rust key manager asks getPrimaryPassword() for a new password after a wrong
one, so each of its dialogs is recorded separately, including the wrong_password
attempts. NSS re-prompts internally on the other two paths, so a single event
there can stand for several dialogs; the metric description spells that out.

Differential Revision: https://phabricator.services.mozilla.com/D324586
2026-09-10 09:56:07 +00:00
Eden Chuang 2a9283583b Bug 2068957 - Remove the Legacy Telemetry mirrors of the Worker probes. r=dom-worker-reviewers,TravisLong,asuth
Differential Revision: https://phabricator.services.mozilla.com/D323257
2026-09-10 09:55:26 +00:00
Eden Chuang a0108faa89 Bug 2068957 - Remove the Legacy Telemetry mirrors of the ServiceWorker probes. r=dom-worker-reviewers,TravisLong,asuth
Differential Revision: https://phabricator.services.mozilla.com/D323256
2026-09-10 09:55:26 +00:00
Alexandra Borovova 5666cb8620 Bug 2070682 - Disable html/syntax/parsing/adoption-agency-reparenting-shadow-cycle.html to avoid crashes.
Differential Revision: https://phabricator.services.mozilla.com/D324901
2026-09-10 09:54:49 +00:00
Sylvestre Ledru b25967cc72 Bug 2070805 - Null-check the root pres context and the window renderer in nsXULPopupManager::PaintPopups (Coverity CID 1696739) r=emilio,layout-reviewers
frame->PresContext()->GetRootPresContext() can return null for a popup that is
still in the menu chain. Bug 1876009 was a real crash from exactly that, in
RemoveMenuChainItem in this file: an open popup's pres shell gets destroyed, the
popup is still in the chain when its root pres context is requested, and the
fix was to null-check it. Every other caller here and in nsMenuPopupFrame.cpp
guards it; PaintPopups did not.

Also guard nsIWidget::GetWindowRenderer(). It deliberately returns null once
mShutdownObserver is gone, so that a LayerManager is not re-created during
shutdown, and renderer->AsFallback() derefs it unconditionally. No CID covers
that one.

Differential Revision: https://phabricator.services.mozilla.com/D324885
2026-09-10 09:54:14 +00:00
Dave Townsend 82d5ddd137 Bug 2063316: Add tests for CheckCompatibility and download ping generation. r=nika
Differential Revision: https://phabricator.services.mozilla.com/D320428
2026-09-10 09:53:44 +00:00
Alexandre Poirot 7f3e83872f Bug 2066868 - [devtools] Improve breakable lines/columns when having many script instances with the same URL. r=devtools-reviewers,bomsy
Column breakpoints are now collected per "actual" source.
"Source objects" are unique per URL, so that we may have various
instance of it in distinct threads, or multiple evaluations of it.

Column breakpoints (aka breakpoint positions) are moved to source actors
as they are now keyed by "source key".
Source key is a conbination of:
* original source id (if that's about an original source)
* then either:
  * many source actors if that's about an HTML page with many inline
    <script>'s
  * or a unique source actor. It help differentiate the possible
    multiple evaluation (same or distinct threads).

Column breakpoint is now based on the location rather than the only the source.
Location may specify a precise source actor, which help display the
exact data related to the precise source instance being displayed.

This helps show the exact information if the multiple evaluations
of the source have different breakpoints.

Differential Revision: https://phabricator.services.mozilla.com/D321594
2026-09-10 09:53:02 +00:00
Alexandre Poirot bc3887eb4e Bug 2066868 - [devtools] Avoid selecting the source in helpers asserting breakable lines/columns. r=devtools-reviewers,bomsy
This will help select a precise source actor. Also the file argument
wasn't so useful in assertLineIsBreakable.

Differential Revision: https://phabricator.services.mozilla.com/D322565
2026-09-10 09:52:59 +00:00
Alexandre Poirot 4ec5f6c24d Bug 2066868 - [devtools] Ensure preserving sourceActor when selecting another location in the same source. r=devtools-reviewers,bomsy
Differential Revision: https://phabricator.services.mozilla.com/D321593
2026-09-10 09:52:57 +00:00
Alexandre Poirot 613e9969b9 Bug 2066552 - [devtools] Keep watchedByDevTools flag enabled on cross group navigations. r=dom-core-reviewers,farre
Differential Revision: https://phabricator.services.mozilla.com/D321347
2026-09-10 09:52:12 +00:00
Alexandre Poirot 3f452d6ad1 Bug 2066432 - [devtools] Only toggle watchedByDevTools when DevTools are opened. r=devtools-reviewers,farre,nchevobbe
Always allow toggling DevTools from the content process,
but check if DevTools are active in the parent process
and reject the update if they aren't.

Do that, until we are able to only toggle this flag from the parent
process.

Differential Revision: https://phabricator.services.mozilla.com/D321346
2026-09-10 09:52:11 +00:00
Alexandre Poirot dc61551c7e Bug 2063658 - [devtools] Assert that local mode requests are blocked by CORS. r=devtools-reviewers,jdescottes
Differential Revision: https://phabricator.services.mozilla.com/D324091
2026-09-10 09:50:11 +00:00
Alexandre Poirot 6da54da69e Bug 2063658 - [devtools] Only set cors disabling headers for network overrides. r=devtools-reviewers,jdescottes
Differential Revision: https://phabricator.services.mozilla.com/D324090
2026-09-10 09:50:10 +00:00
agoloman 1059428cb6 Revert "Bug 2068585 - Get rid of collections.OrderedDict r=jgraham" for casuing wd failures @key_events.py.
This reverts commit 7b3b5fd330.
2026-09-10 09:48:28 +00:00
agoloman 3102632a05 Revert "Bug 2063316: Add tests for CheckCompatibility and download ping generation. r=nika" for causing build bustages @TestDowngradePing.cpp.
This reverts commit 9cb39f05e9.
2026-09-10 09:11:31 +00:00
agoloman 88e91522aa Revert "Bug 2070537 - Restore StoreName on marker types that lost it when they were migrated to BaseMarkerType. r=canova" for causing build bustages @Logging.cpp.
This reverts commit 4400b8967b.
2026-09-10 09:10:10 +00:00
Dave Townsend 9cb39f05e9 Bug 2063316: Add tests for CheckCompatibility and download ping generation. r=nika
Differential Revision: https://phabricator.services.mozilla.com/D320428
2026-09-10 08:51:41 +00:00
Magnus Melin 869c36aae3 Bug 2068505 - Inject WebExtension content scripts into Thunderbird's mail-message browsers. r=extension-reviewers,robwu DONTBUILD
IsTabOrExtensionBrowser gates content script injection on the top browsing
context's message manager group. Thunderbird's message pane browser moved from
the "single-page" group to a new "mail-message" group in bug 2058761, which was
not on the list, so extensions stopped seeing documents loaded there.

That browser is what feed messages displayed as "Full Web Page" load into, so
add-ons like uBlock Origin and Dark Reader lost cosmetic filtering, element
picking and CSS injection in that view.

Differential Revision: https://phabricator.services.mozilla.com/D324888
2026-09-10 08:46:55 +00:00
Damien Carver 4400b8967b Bug 2070537 - Restore StoreName on marker types that lost it when they were migrated to BaseMarkerType. r=canova
- TimerMarker and AddRemoveTimerMarker, migrated in Bug 2040410
  (105b050a1e).
- LogMarker, migrated in Bug 2022540 (62c1ad5e7d).

Differential Revision: https://phabricator.services.mozilla.com/D324624
2026-09-10 08:43:22 +00:00
serge-sans-paille 7b3b5fd330 Bug 2068585 - Get rid of collections.OrderedDict r=jgraham
dict is ordered since 3.6

Differential Revision: https://phabricator.services.mozilla.com/D322952
2026-09-10 08:34:05 +00:00
Cosmin Sabou 1fb7ef34ce Revert "Bug 2068336 - Add Promise::MaybeSafeResolve and use it for Streams r=mgaudet" for causing nightly as release bustages on Promise.cpp.
This reverts commit 7bcd60957c.
2026-09-10 08:32:05 +00:00
Julian Descottes 111b121a47 Bug 2009386 - [devtools] Wait for specific mutation counts in browser_markup_pseudo.js r=devtools-reviewers,nchevobbe
Differential Revision: https://phabricator.services.mozilla.com/D293063
2026-09-10 08:14:48 +00:00
Mark Striemer 08bd8d9217 Bug 2069497 - Update the Nova light/dark theme with latest design r=desktop-theme-reviewers,emilio
Differential Revision: https://phabricator.services.mozilla.com/D324837
2026-09-10 08:10:56 +00:00
rperta e38559cd2f Revert "Bug 2064563, Bug 2058886 - Add explicit test assertion to ensure the expected fluent id is set on the aboutaddons-themes-mode moz-segmented-control element. r=fluent-reviewers,bolsson,mkennedy" for causing mochitest failures at browser_searchbar_new.js
This reverts commit 5fa3641b28.

Revert "Bug 2058886 - Fix screen reader announcement and labeling in theme picker r=fluent-reviewers,extension-reviewers,hjones,bolsson,rpl"

This reverts commit 93414b1783.
2026-09-10 08:09:41 +00:00
Kagami Sascha Rosylight 7bcd60957c Bug 2068336 - Add Promise::MaybeSafeResolve and use it for Streams r=mgaudet
Differential Revision: https://phabricator.services.mozilla.com/D324569
2026-09-10 07:50:05 +00:00
Emilio Cobos Álvarez 24fc5cd2b7 Bug 2070550 - Part 2 - If we have a toolbox gradient, use it as part of the opaque backdrop. r=kcochrane,desktop-theme-reviewers
This improves the default themes, by using the toolbox background
gradient on top, which makes it more seamless.

Note that if we don't, the gradient is image(transparent), or solid
colors otherwise, so the size / declarations don't matter.

Differential Revision: https://phabricator.services.mozilla.com/D324664
2026-09-10 07:45:17 +00:00
Emilio Cobos Álvarez a8122404ce Bug 2070550 - Part 1: Don't use toolbar color for sidebar expand-on-hover launcher. r=kcochrane,desktop-theme-reviewers
Wrong color to use nowadays for sure since we are under the toolbox.
This restores pre-nova behavior but doesn't fully fix the issue.

Differential Revision: https://phabricator.services.mozilla.com/D324662
2026-09-10 07:31:42 +00:00
Dão Gottwald da4ee9d9e7 Bug 2070779 - Allow --panel-separator-color as a border color in use-design-tokens. r=desktop-theme-reviewers,emilio
The token is a color, but the generated semantic categories file it under box-shadow, so no border category picks it up and every consumer draws its separator through a disable comment.

Differential Revision: https://phabricator.services.mozilla.com/D323736
2026-09-10 07:30:44 +00:00
Dão Gottwald e3e964bc39 Bug 2069383 - Name the real pref in the generated newtab tokens header. r=reemhamz
Differential Revision: https://phabricator.services.mozilla.com/D323734
2026-09-10 07:23:10 +00:00
Dão Gottwald c239782d2c Bug 2069383 - Put the generated newtab Nova tokens in cascade layers and add the missing prefers-contrast overrides. r=reemhamz
Every declaration in the generated _tokens.scss is re-indented, so the only substantive change there is the new prefers-contrast block.

Differential Revision: https://phabricator.services.mozilla.com/D323733
2026-09-10 07:23:09 +00:00
Tom Schuster 7a02bc8e39 Bug 2062740 - Test. r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D322564
2026-09-10 07:20:00 +00:00
Henri Sivonen 2c27723cf4 Bug 2068430 test - Retain HANGUL_SYLLABLE_MARKER when decomposing except Hangul syllables. r=iain
Differential Revision: https://phabricator.services.mozilla.com/D324581
2026-09-10 07:14:41 +00:00
Henri Sivonen 4b8f507827 Bug 2068430 - Retain HANGUL_SYLLABLE_MARKER when decomposing except Hangul syllables. r=iain
Differential Revision: https://phabricator.services.mozilla.com/D324580
2026-09-10 07:14:41 +00:00
Tom Schuster 62d588d984 Bug 2062740 r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D318094
2026-09-10 07:04:52 +00:00
Dão Gottwald 0d34c04a2b Bug 2070774 - Always render mermaid diagrams with the light theme. r=firefox-source-docs-reviewers,sylvestre DONTBUILD
The extension still passes `darkMode: true` alongside the theme for a reader who prefers dark; the rendered node fills and label colours are identical either way.

Differential Revision: https://phabricator.services.mozilla.com/D324833
2026-09-10 06:55:05 +00:00
Dão Gottwald 5c2d0f2371 Bug 2070769 - Cap mermaid diagrams at 45rem instead of sizing them to content. r=firefox-source-docs-reviewers,sylvestre DONTBUILD
Differential Revision: https://phabricator.services.mozilla.com/D324831
2026-09-10 06:55:04 +00:00
David Parks a70b572419 Bug 2070722: Fix lint test_lint_file_whitespace_fix handling of CRLF line endings r=linter-reviewers,sylvestre DONTBUILD
Differential Revision: https://phabricator.services.mozilla.com/D324785
2026-09-10 06:54:03 +00:00
Release Engineering Landoscript 8ab180dddd No Bug - Bumping Mobile l10n changesets r=release a=l10n-bump DONTBUILD CLOSED TREE
ach -> 3009c7432afd39877bb3a937b3ab08ae0a9601dc
an -> 3009c7432afd39877bb3a937b3ab08ae0a9601dc
ar -> 3009c7432afd39877bb3a937b3ab08ae0a9601dc
ast -> 3009c7432afd39877bb3a937b3ab08ae0a9601dc
az -> 3009c7432afd39877bb3a937b3ab08ae0a9601dc
be -> 3009c7432afd39877bb3a937b3ab08ae0a9601dc
bg -> 3009c7432afd39877bb3a937b3ab08ae0a9601dc
bn -> 3009c7432afd39877bb3a937b3ab08ae0a9601dc
br -> 3009c7432afd39877bb3a937b3ab08ae0a9601dc
bs -> 3009c7432afd39877bb3a937b3ab08ae0a9601dc
ca -> 3009c7432afd39877bb3a937b3ab08ae0a9601dc
cak -> 3009c7432afd39877bb3a937b3ab08ae0a9601dc
cs -> 3009c7432afd39877bb3a937b3ab08ae0a9601dc
cy -> 3009c7432afd39877bb3a937b3ab08ae0a9601dc
da -> 3009c7432afd39877bb3a937b3ab08ae0a9601dc
de -> 3009c7432afd39877bb3a937b3ab08ae0a9601dc
dsb -> 3009c7432afd39877bb3a937b3ab08ae0a9601dc
el -> 3009c7432afd39877bb3a937b3ab08ae0a9601dc
en-CA -> 3009c7432afd39877bb3a937b3ab08ae0a9601dc
en-GB -> 3009c7432afd39877bb3a937b3ab08ae0a9601dc
eo -> 3009c7432afd39877bb3a937b3ab08ae0a9601dc
es-AR -> 3009c7432afd39877bb3a937b3ab08ae0a9601dc
es-CL -> 3009c7432afd39877bb3a937b3ab08ae0a9601dc
es-ES -> 3009c7432afd39877bb3a937b3ab08ae0a9601dc
es-MX -> 3009c7432afd39877bb3a937b3ab08ae0a9601dc
et -> 3009c7432afd39877bb3a937b3ab08ae0a9601dc
eu -> 3009c7432afd39877bb3a937b3ab08ae0a9601dc
fa -> 3009c7432afd39877bb3a937b3ab08ae0a9601dc
ff -> 3009c7432afd39877bb3a937b3ab08ae0a9601dc
fi -> 3009c7432afd39877bb3a937b3ab08ae0a9601dc
fr -> 3009c7432afd39877bb3a937b3ab08ae0a9601dc
fy-NL -> 3009c7432afd39877bb3a937b3ab08ae0a9601dc
ga-IE -> 3009c7432afd39877bb3a937b3ab08ae0a9601dc
gd -> 3009c7432afd39877bb3a937b3ab08ae0a9601dc
gl -> 3009c7432afd39877bb3a937b3ab08ae0a9601dc
gn -> 3009c7432afd39877bb3a937b3ab08ae0a9601dc
gu-IN -> 3009c7432afd39877bb3a937b3ab08ae0a9601dc
he -> 3009c7432afd39877bb3a937b3ab08ae0a9601dc
hi-IN -> 3009c7432afd39877bb3a937b3ab08ae0a9601dc
hr -> 3009c7432afd39877bb3a937b3ab08ae0a9601dc
hsb -> 3009c7432afd39877bb3a937b3ab08ae0a9601dc
hu -> 3009c7432afd39877bb3a937b3ab08ae0a9601dc
hy-AM -> 3009c7432afd39877bb3a937b3ab08ae0a9601dc
ia -> 3009c7432afd39877bb3a937b3ab08ae0a9601dc
id -> 3009c7432afd39877bb3a937b3ab08ae0a9601dc
is -> 3009c7432afd39877bb3a937b3ab08ae0a9601dc
it -> 3009c7432afd39877bb3a937b3ab08ae0a9601dc
ja -> 3009c7432afd39877bb3a937b3ab08ae0a9601dc
ka -> 3009c7432afd39877bb3a937b3ab08ae0a9601dc
kab -> 3009c7432afd39877bb3a937b3ab08ae0a9601dc
kk -> 3009c7432afd39877bb3a937b3ab08ae0a9601dc
km -> 3009c7432afd39877bb3a937b3ab08ae0a9601dc
kn -> 3009c7432afd39877bb3a937b3ab08ae0a9601dc
ko -> 3009c7432afd39877bb3a937b3ab08ae0a9601dc
lij -> 3009c7432afd39877bb3a937b3ab08ae0a9601dc
lo -> 3009c7432afd39877bb3a937b3ab08ae0a9601dc
lt -> 3009c7432afd39877bb3a937b3ab08ae0a9601dc
ltg -> 3009c7432afd39877bb3a937b3ab08ae0a9601dc
lv -> 3009c7432afd39877bb3a937b3ab08ae0a9601dc
meh -> 3009c7432afd39877bb3a937b3ab08ae0a9601dc
mix -> 3009c7432afd39877bb3a937b3ab08ae0a9601dc
ml -> 3009c7432afd39877bb3a937b3ab08ae0a9601dc
mr -> 3009c7432afd39877bb3a937b3ab08ae0a9601dc
ms -> 3009c7432afd39877bb3a937b3ab08ae0a9601dc
my -> 3009c7432afd39877bb3a937b3ab08ae0a9601dc
nb-NO -> 3009c7432afd39877bb3a937b3ab08ae0a9601dc
ne-NP -> 3009c7432afd39877bb3a937b3ab08ae0a9601dc
nl -> 3009c7432afd39877bb3a937b3ab08ae0a9601dc
nn-NO -> 3009c7432afd39877bb3a937b3ab08ae0a9601dc
oc -> 3009c7432afd39877bb3a937b3ab08ae0a9601dc
pa-IN -> 3009c7432afd39877bb3a937b3ab08ae0a9601dc
pl -> 3009c7432afd39877bb3a937b3ab08ae0a9601dc
pt-BR -> 3009c7432afd39877bb3a937b3ab08ae0a9601dc
pt-PT -> 3009c7432afd39877bb3a937b3ab08ae0a9601dc
rm -> 3009c7432afd39877bb3a937b3ab08ae0a9601dc
ro -> 3009c7432afd39877bb3a937b3ab08ae0a9601dc
ru -> 3009c7432afd39877bb3a937b3ab08ae0a9601dc
sk -> 3009c7432afd39877bb3a937b3ab08ae0a9601dc
sl -> 3009c7432afd39877bb3a937b3ab08ae0a9601dc
son -> 3009c7432afd39877bb3a937b3ab08ae0a9601dc
sq -> 3009c7432afd39877bb3a937b3ab08ae0a9601dc
sr -> 3009c7432afd39877bb3a937b3ab08ae0a9601dc
sv-SE -> 3009c7432afd39877bb3a937b3ab08ae0a9601dc
ta -> 3009c7432afd39877bb3a937b3ab08ae0a9601dc
te -> 3009c7432afd39877bb3a937b3ab08ae0a9601dc
th -> 3009c7432afd39877bb3a937b3ab08ae0a9601dc
tl -> 3009c7432afd39877bb3a937b3ab08ae0a9601dc
tr -> 3009c7432afd39877bb3a937b3ab08ae0a9601dc
trs -> 3009c7432afd39877bb3a937b3ab08ae0a9601dc
uk -> 3009c7432afd39877bb3a937b3ab08ae0a9601dc
ur -> 3009c7432afd39877bb3a937b3ab08ae0a9601dc
uz -> 3009c7432afd39877bb3a937b3ab08ae0a9601dc
vi -> 3009c7432afd39877bb3a937b3ab08ae0a9601dc
wo -> 3009c7432afd39877bb3a937b3ab08ae0a9601dc
xh -> 3009c7432afd39877bb3a937b3ab08ae0a9601dc
zam -> 3009c7432afd39877bb3a937b3ab08ae0a9601dc
zh-CN -> 3009c7432afd39877bb3a937b3ab08ae0a9601dc
zh-TW -> 3009c7432afd39877bb3a937b3ab08ae0a9601dc
2026-09-10 06:47:11 +00:00
Release Engineering Landoscript 6c16bea8f4 No Bug - Bumping Firefox l10n changesets r=release a=l10n-bump DONTBUILD CLOSED TREE
ach -> 3009c7432afd39877bb3a937b3ab08ae0a9601dc
af -> 3009c7432afd39877bb3a937b3ab08ae0a9601dc
an -> 3009c7432afd39877bb3a937b3ab08ae0a9601dc
ar -> 3009c7432afd39877bb3a937b3ab08ae0a9601dc
ast -> 3009c7432afd39877bb3a937b3ab08ae0a9601dc
az -> 3009c7432afd39877bb3a937b3ab08ae0a9601dc
be -> 3009c7432afd39877bb3a937b3ab08ae0a9601dc
bg -> 3009c7432afd39877bb3a937b3ab08ae0a9601dc
bn -> 3009c7432afd39877bb3a937b3ab08ae0a9601dc
bo -> 3009c7432afd39877bb3a937b3ab08ae0a9601dc
bqi -> 3009c7432afd39877bb3a937b3ab08ae0a9601dc
br -> 3009c7432afd39877bb3a937b3ab08ae0a9601dc
brx -> 3009c7432afd39877bb3a937b3ab08ae0a9601dc
bs -> 3009c7432afd39877bb3a937b3ab08ae0a9601dc
ca -> 3009c7432afd39877bb3a937b3ab08ae0a9601dc
ca-valencia -> 3009c7432afd39877bb3a937b3ab08ae0a9601dc
cak -> 3009c7432afd39877bb3a937b3ab08ae0a9601dc
ckb -> 3009c7432afd39877bb3a937b3ab08ae0a9601dc
cs -> 3009c7432afd39877bb3a937b3ab08ae0a9601dc
cy -> 3009c7432afd39877bb3a937b3ab08ae0a9601dc
da -> 3009c7432afd39877bb3a937b3ab08ae0a9601dc
de -> 3009c7432afd39877bb3a937b3ab08ae0a9601dc
dsb -> 3009c7432afd39877bb3a937b3ab08ae0a9601dc
el -> 3009c7432afd39877bb3a937b3ab08ae0a9601dc
en-CA -> 3009c7432afd39877bb3a937b3ab08ae0a9601dc
en-GB -> 3009c7432afd39877bb3a937b3ab08ae0a9601dc
eo -> 3009c7432afd39877bb3a937b3ab08ae0a9601dc
es-AR -> 3009c7432afd39877bb3a937b3ab08ae0a9601dc
es-CL -> 3009c7432afd39877bb3a937b3ab08ae0a9601dc
es-ES -> 3009c7432afd39877bb3a937b3ab08ae0a9601dc
es-MX -> 3009c7432afd39877bb3a937b3ab08ae0a9601dc
et -> 3009c7432afd39877bb3a937b3ab08ae0a9601dc
eu -> 3009c7432afd39877bb3a937b3ab08ae0a9601dc
fa -> 3009c7432afd39877bb3a937b3ab08ae0a9601dc
ff -> 3009c7432afd39877bb3a937b3ab08ae0a9601dc
fi -> 3009c7432afd39877bb3a937b3ab08ae0a9601dc
fr -> 3009c7432afd39877bb3a937b3ab08ae0a9601dc
fur -> 3009c7432afd39877bb3a937b3ab08ae0a9601dc
fy-NL -> 3009c7432afd39877bb3a937b3ab08ae0a9601dc
ga-IE -> 3009c7432afd39877bb3a937b3ab08ae0a9601dc
gd -> 3009c7432afd39877bb3a937b3ab08ae0a9601dc
gl -> 3009c7432afd39877bb3a937b3ab08ae0a9601dc
gn -> 3009c7432afd39877bb3a937b3ab08ae0a9601dc
gu-IN -> 3009c7432afd39877bb3a937b3ab08ae0a9601dc
he -> 3009c7432afd39877bb3a937b3ab08ae0a9601dc
hi-IN -> 3009c7432afd39877bb3a937b3ab08ae0a9601dc
hr -> 3009c7432afd39877bb3a937b3ab08ae0a9601dc
hsb -> 3009c7432afd39877bb3a937b3ab08ae0a9601dc
hu -> 3009c7432afd39877bb3a937b3ab08ae0a9601dc
hy-AM -> 3009c7432afd39877bb3a937b3ab08ae0a9601dc
hye -> 3009c7432afd39877bb3a937b3ab08ae0a9601dc
ia -> 3009c7432afd39877bb3a937b3ab08ae0a9601dc
id -> 3009c7432afd39877bb3a937b3ab08ae0a9601dc
is -> 3009c7432afd39877bb3a937b3ab08ae0a9601dc
it -> 3009c7432afd39877bb3a937b3ab08ae0a9601dc
ja -> 3009c7432afd39877bb3a937b3ab08ae0a9601dc
ja-JP-mac -> 3009c7432afd39877bb3a937b3ab08ae0a9601dc
ka -> 3009c7432afd39877bb3a937b3ab08ae0a9601dc
kab -> 3009c7432afd39877bb3a937b3ab08ae0a9601dc
kk -> 3009c7432afd39877bb3a937b3ab08ae0a9601dc
km -> 3009c7432afd39877bb3a937b3ab08ae0a9601dc
kn -> 3009c7432afd39877bb3a937b3ab08ae0a9601dc
ko -> 3009c7432afd39877bb3a937b3ab08ae0a9601dc
lij -> 3009c7432afd39877bb3a937b3ab08ae0a9601dc
lo -> 3009c7432afd39877bb3a937b3ab08ae0a9601dc
lt -> 3009c7432afd39877bb3a937b3ab08ae0a9601dc
ltg -> 3009c7432afd39877bb3a937b3ab08ae0a9601dc
lv -> 3009c7432afd39877bb3a937b3ab08ae0a9601dc
meh -> 3009c7432afd39877bb3a937b3ab08ae0a9601dc
mk -> 3009c7432afd39877bb3a937b3ab08ae0a9601dc
ml -> 3009c7432afd39877bb3a937b3ab08ae0a9601dc
mr -> 3009c7432afd39877bb3a937b3ab08ae0a9601dc
ms -> 3009c7432afd39877bb3a937b3ab08ae0a9601dc
my -> 3009c7432afd39877bb3a937b3ab08ae0a9601dc
nb-NO -> 3009c7432afd39877bb3a937b3ab08ae0a9601dc
ne-NP -> 3009c7432afd39877bb3a937b3ab08ae0a9601dc
nl -> 3009c7432afd39877bb3a937b3ab08ae0a9601dc
nn-NO -> 3009c7432afd39877bb3a937b3ab08ae0a9601dc
oc -> 3009c7432afd39877bb3a937b3ab08ae0a9601dc
pa-IN -> 3009c7432afd39877bb3a937b3ab08ae0a9601dc
pl -> 3009c7432afd39877bb3a937b3ab08ae0a9601dc
pt-BR -> 3009c7432afd39877bb3a937b3ab08ae0a9601dc
pt-PT -> 3009c7432afd39877bb3a937b3ab08ae0a9601dc
rm -> 3009c7432afd39877bb3a937b3ab08ae0a9601dc
ro -> 3009c7432afd39877bb3a937b3ab08ae0a9601dc
ru -> 3009c7432afd39877bb3a937b3ab08ae0a9601dc
sat -> 3009c7432afd39877bb3a937b3ab08ae0a9601dc
sc -> 3009c7432afd39877bb3a937b3ab08ae0a9601dc
scn -> 3009c7432afd39877bb3a937b3ab08ae0a9601dc
sco -> 3009c7432afd39877bb3a937b3ab08ae0a9601dc
si -> 3009c7432afd39877bb3a937b3ab08ae0a9601dc
sk -> 3009c7432afd39877bb3a937b3ab08ae0a9601dc
skr -> 3009c7432afd39877bb3a937b3ab08ae0a9601dc
sl -> 3009c7432afd39877bb3a937b3ab08ae0a9601dc
son -> 3009c7432afd39877bb3a937b3ab08ae0a9601dc
sq -> 3009c7432afd39877bb3a937b3ab08ae0a9601dc
sr -> 3009c7432afd39877bb3a937b3ab08ae0a9601dc
sv-SE -> 3009c7432afd39877bb3a937b3ab08ae0a9601dc
szl -> 3009c7432afd39877bb3a937b3ab08ae0a9601dc
ta -> 3009c7432afd39877bb3a937b3ab08ae0a9601dc
te -> 3009c7432afd39877bb3a937b3ab08ae0a9601dc
tg -> 3009c7432afd39877bb3a937b3ab08ae0a9601dc
th -> 3009c7432afd39877bb3a937b3ab08ae0a9601dc
tl -> 3009c7432afd39877bb3a937b3ab08ae0a9601dc
tr -> 3009c7432afd39877bb3a937b3ab08ae0a9601dc
trs -> 3009c7432afd39877bb3a937b3ab08ae0a9601dc
uk -> 3009c7432afd39877bb3a937b3ab08ae0a9601dc
ur -> 3009c7432afd39877bb3a937b3ab08ae0a9601dc
uz -> 3009c7432afd39877bb3a937b3ab08ae0a9601dc
vi -> 3009c7432afd39877bb3a937b3ab08ae0a9601dc
wo -> 3009c7432afd39877bb3a937b3ab08ae0a9601dc
xh -> 3009c7432afd39877bb3a937b3ab08ae0a9601dc
zh-CN -> 3009c7432afd39877bb3a937b3ab08ae0a9601dc
zh-TW -> 3009c7432afd39877bb3a937b3ab08ae0a9601dc
2026-09-10 06:47:09 +00:00
Mike Hommey 70accd6ccc Bug 2069181 - Switch hazard builds to gcc 11. r=firefox-build-system-reviewers,ahochheiden
Differential Revision: https://phabricator.services.mozilla.com/D324500
2026-09-10 06:39:40 +00:00
Julien Cristau 2e84015f41 Bug 2070457 - Move the hazard builds to the Debian 13 image. r=firefox-build-system-reviewers,ahochheiden
Both hazard tasks fetch the gcc 10 toolchain and the sixgill plugin built
against it. With bug 2010489 that toolchain requires GLIBC_2.38, which
debian12-amd64-build does not provide.

Differential Revision: https://phabricator.services.mozilla.com/D324561
2026-09-10 06:35:05 +00:00
Julien Cristau cbebc5e0e1 Bug 2070456 - Move the gdb-test image to Debian 13. r=firefox-build-system-reviewers,ahochheiden
The image is only used by spidermonkey-sm-gdb-linux64/debug, which fetches
the gcc 10 toolchain. With bug 2010489 that toolchain requires GLIBC_2.38,
which debian12-amd64-build does not provide.

Differential Revision: https://phabricator.services.mozilla.com/D324560
2026-09-10 06:35:04 +00:00
Julien Cristau 53f76038ea Bug 2070456 - Move the spidermonkey builds to the Debian 13 image. r=firefox-build-system-reviewers,ahochheiden
Bug 2010489 moves the toolchain tasks to a Debian 13 docker image. gcc is
built host-native, so the gcc 10 toolchain now requires GLIBC_2.38, while
debian12-amd64-build provides 2.36. The spidermonkey builds that use gcc
fail in configure with

> /builds/worker/fetches/gcc/bin/gcc: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.38' not found

Switch the kind to debian13-amd64-build, which already exists and is the
image ordinary Firefox builds use.

Differential Revision: https://phabricator.services.mozilla.com/D324559
2026-09-10 06:35:03 +00:00
Julien Cristau 7668b1f529 Bug 2065412 - switch the static-analysis-build docker image to debian 13. r=firefox-build-system-reviewers,ahochheiden
Differential Revision: https://phabricator.services.mozilla.com/D320368
2026-09-10 06:35:02 +00:00
Sotaro Ikeda c8196f9387 Bug 2068875 - Store GpuFenceMTLSharedEvent in CompositeProcessFencesHolderMap r=gfx-reviewers,bradwerth
Differential Revision: https://phabricator.services.mozilla.com/D323499
2026-09-10 06:31:34 +00:00
Luca Greco 5fa3641b28 Bug 2064563 - Add explicit test assertion to ensure the expected fluent id is set on the aboutaddons-themes-mode moz-segmented-control element. r=fluent-reviewers,bolsson,mkennedy
This patch is adding only an additional test assertion to verify that
the aboutaddons-themes-mode moz-segmented-control does have the expected
fluent id (which is something that the parent patch, D323767, is taking care of).

Differential Revision: https://phabricator.services.mozilla.com/D323037
2026-09-10 06:24:32 +00:00
Mark Kennedy 93414b1783 Bug 2058886 - Fix screen reader announcement and labeling in theme picker r=fluent-reviewers,extension-reviewers,hjones,bolsson,rpl
The light/dark/device group in the theme picker had no accessible name for screen readers, and its buttons had their role and selected state on a wrapper element instead of the button that gets focused.

Differential Revision: https://phabricator.services.mozilla.com/D323767
2026-09-10 06:24:29 +00:00
3128 changed files with 127265 additions and 65768 deletions
+12 -2
View File
@@ -63,14 +63,24 @@ created under their own account with a chance to review and adjust.
`enter_bug.cgi` field as a `field=value` argument; it URL-encodes the values and
opens the form in the browser (cross-platform, so Linux, macOS, and Windows all work):
```
python3 .agents/skills/bug-filing/file-bug.py product=<P> component=<C> \
bug_type=<T> short_desc=<summary> comment=<description>
python3 .agents/skills/bug-filing/file-bug.py 'product=<P>' 'component=<C>' \
'bug_type=<T>' 'short_desc=<summary>' 'comment=<description>'
```
- Single-quote every `field=value` argument.
- Write `short_desc` and `comment` as plain text, with markdown backticks around
code identifiers; the script does all the encoding.
- Any form field works, so add more as the bug needs them, e.g. `blocked=<bug>`
(blocks), `dependson=<bug>` (depends on), or `see_also=<url>`.
The script opens the form and prints a one-line confirmation. **Never paste the
URL into your reply**: a prefilled form carries the whole description
percent-encoded in its query string, which puts the URL past the length at which
a terminal stops linkifying it, so the reader gets an unclickable wall of `%20`.
It also costs you: those characters stay resident in your context and are re-sent
with every later request in the session. Report the summary and the component
instead - and don't compress the description to shorten the URL, which nobody
was meant to read.
The user reviews and submits the form to create the bug, then provides the bug number.
## Notes
+10 -3
View File
@@ -19,8 +19,12 @@ Beyond the core fields (product, component, bug_type, short_desc, comment), any
``enter_bug.cgi`` field works -- e.g. ``blocked`` (blocks), ``dependson`` (depends
on), ``see_also``. The same key may repeat to pass multiple values.
The URL is printed before opening so it is visible even if no browser is found.
``webbrowser`` is cross-platform, so this works on Linux, macOS, and Windows.
A prefilled form carries the whole description percent-encoded in its query
string, which puts the URL past the length at which a terminal stops linkifying
it, so pasting one into a chat reply leaves the reader an unclickable wall of
``%20``. This opens the form and prints only a one-line confirmation, falling
back to the URL when no browser can be found. ``webbrowser`` is cross-platform,
so this works on Linux, macOS, and Windows.
"""
import sys
@@ -44,8 +48,11 @@ def main(argv):
if not argv:
sys.exit(f"usage: {sys.argv[0]} field=value [field=value ...]")
url = build_url(argv)
if webbrowser.open(url):
print(f"Opened a prefilled form ({len(url)} chars).")
return
print("No browser to open; falling back to the URL:", file=sys.stderr)
print(url)
webbrowser.open(url)
if __name__ == "__main__":
+6 -5
View File
@@ -1,6 +1,6 @@
---
name: file-good-first-bug
description: Use this skill when the user wants to file good-first-bugs in Bugzilla for Firefox. A good-first-bug is a narrow, self-contained, low-risk task scoped so a first-time contributor can land it without deep context. Sources include lint warnings, small typos, dead-code removal, mechanical refactors, docs conversions, or any other small task the user points at. Produces prefilled `enter_bug.cgi` URLs the user clicks to submit. Trigger on phrases like "file a good first bug", "open good first bugs for X", "create a good-first-bug from this".
description: Use this skill when the user wants to file good-first-bugs in Bugzilla for Firefox. A good-first-bug is a narrow, self-contained, low-risk task scoped so a first-time contributor can land it without deep context. Sources include lint warnings, small typos, dead-code removal, mechanical refactors, docs conversions, or any other small task the user points at. Opens a prefilled `enter_bug.cgi` form per bug in the user's browser for them to submit. Trigger on phrases like "file a good first bug", "open good first bugs for X", "create a good-first-bug from this".
---
## What is a good first bug
@@ -31,9 +31,9 @@ If the task touches many files, requires API design, or needs deep domain knowle
3. **Propose to the user before filing.** Use `AskUserQuestion` to confirm scope and which items to file. Never generate bug URLs without explicit approval - filing bugs is user-visible.
4. **Generate prefilled `enter_bug.cgi` URLs.** There is no MCP tool to create Bugzilla bugs - the user submits each bug by clicking its URL. Use the URL builder below.
4. **Open a prefilled `enter_bug.cgi` form per bug.** There is no MCP tool to create Bugzilla bugs - the user submits each one from the form. Use the URL builder below, which opens it in their browser.
5. **Print the URLs**, one per item, prefixed with what the bug is about so the user can scan and click.
5. **Report one line per bug** - its title and where it went (product/component). **Never paste the URL into your reply.** Terminal linkification gives up past some length, and a prefilled form's URL clears that threshold: it carries the whole bug body percent-encoded in its query string, which ran to 2413 and 2635 characters for two ordinary good-first-bugs. Past the threshold the reader gets an unclickable wall of `%20`. It costs you as well as the reader: those characters stay resident in your context and are re-sent with every later request in the session, which is also why the script no longer prints the URL - having it in front of you is what invites pasting it. Do **not** respond by writing a terser bug body - a good-first-bug has to be self-sufficient, and that is worth more than a URL a reader was never meant to click. The script already put the form in front of the user.
## Choosing product/component
@@ -112,13 +112,13 @@ The last paragraph (about auto-assignment) is canonical - keep it verbatim.
## URL builder
Use the helper script `scripts/build_url.py` (path relative to this skill file) to generate each prefilled `enter_bug.cgi` URL:
Use the helper script `scripts/build_url.py` (path relative to this skill file) to open each prefilled `enter_bug.cgi` form:
```bash
./scripts/build_url.py "<title>" "<comment>" --tracker 1361342 --lang rust
```
Run it with `--help` for the full list of options (`--product`, `--component`, `--tracker`, `--keywords`, `--lang`, `--mentor`). It can also be imported and its `build_url()` function called directly, which stays offline and omits the mentor unless you pass one; the command line resolves it (see [Mentor](#mentor)).
It opens the form in the user's default browser and prints a one-line confirmation. `--print-url` prints the URL instead, for a headless host - and if you use it, hand the user the URL by writing it to a file rather than into your reply, for the length reason in step 5. Run it with `--help` for the full list of options (`--product`, `--component`, `--tracker`, `--keywords`, `--lang`, `--mentor`). It can also be imported and its `build_url()` function called directly, which stays offline and omits the mentor unless you pass one; the command line resolves it (see [Mentor](#mentor)).
## Example: lint warnings (canonical case)
@@ -160,5 +160,6 @@ awk '/^\// { f=$0; next } /warning/ { c[f]++; lines[f]=lines[f] "\n" $0 }
- **One bug per atomic task** unless the user opts into a combined bug.
- **Always set a mentor, and never hand-write the address** - let the builder resolve it, or ask the filer. Without a mentor the bug is invisible in some dashboards and a newcomer's questions go unanswered.
- **Don't auto-assign** - the template explicitly tells contributors not to ask.
- **Never paste a prefilled URL into your reply** - it is long enough to defeat terminal linkification. Let the script open the form, and don't trim the bug body to shorten it.
- **Push back on scope** that's too big, too vague, or requires design decisions - those are not good-first-bugs.
- **Match the component to the work** - don't dump everything under Lint and Formatting if the bug isn't a lint bug.
@@ -3,10 +3,18 @@
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at https://mozilla.org/MPL/2.0/.
"""Build a prefilled Bugzilla enter_bug.cgi URL for a good-first-bug.
"""Open a prefilled Bugzilla enter_bug.cgi form for a good-first-bug.
There is no MCP tool to create Bugzilla bugs: the user submits each bug by
clicking the generated URL.
There is no MCP tool to create Bugzilla bugs: the user submits each bug from the
form this opens in their browser.
A prefilled form carries the whole bug body percent-encoded in its query string,
which puts the URL past the length at which a terminal stops linkifying it (2413
and 2635 characters for two ordinary good-first-bugs). Pasting one into a chat
reply then gives the reader an unclickable wall of `%20` -- hence opening it here
rather than printing it. Shortening the bug body is not the answer: a
good-first-bug has to be self-sufficient. `--print-url` is the fallback for a
headless host.
"""
import argparse
@@ -16,6 +24,7 @@ import os
import sys
import urllib.error
import urllib.request
import webbrowser
from urllib.parse import urlencode
BUGZILLA = "https://bugzilla.mozilla.org"
@@ -115,20 +124,33 @@ def main(argv=None):
help="Bugzilla account email of the mentor, for the bug_mentors field. "
"Defaults to the owner of the API key in the bugzillarc.",
)
parser.add_argument(
"--print-url",
action="store_true",
help="Print the URL instead of opening it. For a headless host; the "
"URL is long enough that a terminal will not linkify it.",
)
args = parser.parse_args(argv)
mentor = args.mentor if args.mentor is not None else resolve_mentor()
print(
build_url(
args.title,
args.comment,
product=args.product,
component=args.component,
tracker=args.tracker,
keywords=args.keywords,
lang=args.lang,
mentor=mentor,
)
url = build_url(
args.title,
args.comment,
product=args.product,
component=args.component,
tracker=args.tracker,
keywords=args.keywords,
lang=args.lang,
mentor=mentor,
)
if args.print_url:
print(url)
return 0
if webbrowser.open(url):
print(f"Opened a prefilled form ({len(url)} chars): {args.title}")
return 0
print("No browser to open; falling back to the URL:", file=sys.stderr)
print(url)
return 0
if __name__ == "__main__":
+2 -2
View File
@@ -124,9 +124,9 @@ replace-with = "vendored-sources"
git = "https://github.com/mozilla/nss-rs"
replace-with = "vendored-sources"
[source."git+https://github.com/rust-minidump/minidump-writer.git?rev=ee5b9d59d85bea1d4c6845f6b854e04fe204adf2"]
[source."git+https://github.com/rust-minidump/minidump-writer.git?rev=6744feee58804a78730d176cdcc31bb4f3021107"]
git = "https://github.com/rust-minidump/minidump-writer.git"
rev = "ee5b9d59d85bea1d4c6845f6b854e04fe204adf2"
rev = "6744feee58804a78730d176cdcc31bb4f3021107"
replace-with = "vendored-sources"
[source."git+https://github.com/servo/rust-cssparser?rev=ddccc070a0261cb94195ed0f74095c67b86a8550"]
+12 -2
View File
@@ -63,14 +63,24 @@ created under their own account with a chance to review and adjust.
`enter_bug.cgi` field as a `field=value` argument; it URL-encodes the values and
opens the form in the browser (cross-platform, so Linux, macOS, and Windows all work):
```
python3 .agents/skills/bug-filing/file-bug.py product=<P> component=<C> \
bug_type=<T> short_desc=<summary> comment=<description>
python3 .agents/skills/bug-filing/file-bug.py 'product=<P>' 'component=<C>' \
'bug_type=<T>' 'short_desc=<summary>' 'comment=<description>'
```
- Single-quote every `field=value` argument.
- Write `short_desc` and `comment` as plain text, with markdown backticks around
code identifiers; the script does all the encoding.
- Any form field works, so add more as the bug needs them, e.g. `blocked=<bug>`
(blocks), `dependson=<bug>` (depends on), or `see_also=<url>`.
The script opens the form and prints a one-line confirmation. **Never paste the
URL into your reply**: a prefilled form carries the whole description
percent-encoded in its query string, which puts the URL past the length at which
a terminal stops linkifying it, so the reader gets an unclickable wall of `%20`.
It also costs you: those characters stay resident in your context and are re-sent
with every later request in the session. Report the summary and the component
instead - and don't compress the description to shorten the URL, which nobody
was meant to read.
The user reviews and submits the form to create the bug, then provides the bug number.
## Notes
+10 -3
View File
@@ -19,8 +19,12 @@ Beyond the core fields (product, component, bug_type, short_desc, comment), any
``enter_bug.cgi`` field works -- e.g. ``blocked`` (blocks), ``dependson`` (depends
on), ``see_also``. The same key may repeat to pass multiple values.
The URL is printed before opening so it is visible even if no browser is found.
``webbrowser`` is cross-platform, so this works on Linux, macOS, and Windows.
A prefilled form carries the whole description percent-encoded in its query
string, which puts the URL past the length at which a terminal stops linkifying
it, so pasting one into a chat reply leaves the reader an unclickable wall of
``%20``. This opens the form and prints only a one-line confirmation, falling
back to the URL when no browser can be found. ``webbrowser`` is cross-platform,
so this works on Linux, macOS, and Windows.
"""
import sys
@@ -44,8 +48,11 @@ def main(argv):
if not argv:
sys.exit(f"usage: {sys.argv[0]} field=value [field=value ...]")
url = build_url(argv)
if webbrowser.open(url):
print(f"Opened a prefilled form ({len(url)} chars).")
return
print("No browser to open; falling back to the URL:", file=sys.stderr)
print(url)
webbrowser.open(url)
if __name__ == "__main__":
+6 -5
View File
@@ -1,6 +1,6 @@
---
name: file-good-first-bug
description: Use this skill when the user wants to file good-first-bugs in Bugzilla for Firefox. A good-first-bug is a narrow, self-contained, low-risk task scoped so a first-time contributor can land it without deep context. Sources include lint warnings, small typos, dead-code removal, mechanical refactors, docs conversions, or any other small task the user points at. Produces prefilled `enter_bug.cgi` URLs the user clicks to submit. Trigger on phrases like "file a good first bug", "open good first bugs for X", "create a good-first-bug from this".
description: Use this skill when the user wants to file good-first-bugs in Bugzilla for Firefox. A good-first-bug is a narrow, self-contained, low-risk task scoped so a first-time contributor can land it without deep context. Sources include lint warnings, small typos, dead-code removal, mechanical refactors, docs conversions, or any other small task the user points at. Opens a prefilled `enter_bug.cgi` form per bug in the user's browser for them to submit. Trigger on phrases like "file a good first bug", "open good first bugs for X", "create a good-first-bug from this".
---
## What is a good first bug
@@ -31,9 +31,9 @@ If the task touches many files, requires API design, or needs deep domain knowle
3. **Propose to the user before filing.** Use `AskUserQuestion` to confirm scope and which items to file. Never generate bug URLs without explicit approval - filing bugs is user-visible.
4. **Generate prefilled `enter_bug.cgi` URLs.** There is no MCP tool to create Bugzilla bugs - the user submits each bug by clicking its URL. Use the URL builder below.
4. **Open a prefilled `enter_bug.cgi` form per bug.** There is no MCP tool to create Bugzilla bugs - the user submits each one from the form. Use the URL builder below, which opens it in their browser.
5. **Print the URLs**, one per item, prefixed with what the bug is about so the user can scan and click.
5. **Report one line per bug** - its title and where it went (product/component). **Never paste the URL into your reply.** Terminal linkification gives up past some length, and a prefilled form's URL clears that threshold: it carries the whole bug body percent-encoded in its query string, which ran to 2413 and 2635 characters for two ordinary good-first-bugs. Past the threshold the reader gets an unclickable wall of `%20`. It costs you as well as the reader: those characters stay resident in your context and are re-sent with every later request in the session, which is also why the script no longer prints the URL - having it in front of you is what invites pasting it. Do **not** respond by writing a terser bug body - a good-first-bug has to be self-sufficient, and that is worth more than a URL a reader was never meant to click. The script already put the form in front of the user.
## Choosing product/component
@@ -112,13 +112,13 @@ The last paragraph (about auto-assignment) is canonical - keep it verbatim.
## URL builder
Use the helper script `scripts/build_url.py` (path relative to this skill file) to generate each prefilled `enter_bug.cgi` URL:
Use the helper script `scripts/build_url.py` (path relative to this skill file) to open each prefilled `enter_bug.cgi` form:
```bash
./scripts/build_url.py "<title>" "<comment>" --tracker 1361342 --lang rust
```
Run it with `--help` for the full list of options (`--product`, `--component`, `--tracker`, `--keywords`, `--lang`, `--mentor`). It can also be imported and its `build_url()` function called directly, which stays offline and omits the mentor unless you pass one; the command line resolves it (see [Mentor](#mentor)).
It opens the form in the user's default browser and prints a one-line confirmation. `--print-url` prints the URL instead, for a headless host - and if you use it, hand the user the URL by writing it to a file rather than into your reply, for the length reason in step 5. Run it with `--help` for the full list of options (`--product`, `--component`, `--tracker`, `--keywords`, `--lang`, `--mentor`). It can also be imported and its `build_url()` function called directly, which stays offline and omits the mentor unless you pass one; the command line resolves it (see [Mentor](#mentor)).
## Example: lint warnings (canonical case)
@@ -160,5 +160,6 @@ awk '/^\// { f=$0; next } /warning/ { c[f]++; lines[f]=lines[f] "\n" $0 }
- **One bug per atomic task** unless the user opts into a combined bug.
- **Always set a mentor, and never hand-write the address** - let the builder resolve it, or ask the filer. Without a mentor the bug is invisible in some dashboards and a newcomer's questions go unanswered.
- **Don't auto-assign** - the template explicitly tells contributors not to ask.
- **Never paste a prefilled URL into your reply** - it is long enough to defeat terminal linkification. Let the script open the form, and don't trim the bug body to shorten it.
- **Push back on scope** that's too big, too vague, or requires design decisions - those are not good-first-bugs.
- **Match the component to the work** - don't dump everything under Lint and Formatting if the bug isn't a lint bug.
@@ -3,10 +3,18 @@
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at https://mozilla.org/MPL/2.0/.
"""Build a prefilled Bugzilla enter_bug.cgi URL for a good-first-bug.
"""Open a prefilled Bugzilla enter_bug.cgi form for a good-first-bug.
There is no MCP tool to create Bugzilla bugs: the user submits each bug by
clicking the generated URL.
There is no MCP tool to create Bugzilla bugs: the user submits each bug from the
form this opens in their browser.
A prefilled form carries the whole bug body percent-encoded in its query string,
which puts the URL past the length at which a terminal stops linkifying it (2413
and 2635 characters for two ordinary good-first-bugs). Pasting one into a chat
reply then gives the reader an unclickable wall of `%20` -- hence opening it here
rather than printing it. Shortening the bug body is not the answer: a
good-first-bug has to be self-sufficient. `--print-url` is the fallback for a
headless host.
"""
import argparse
@@ -16,6 +24,7 @@ import os
import sys
import urllib.error
import urllib.request
import webbrowser
from urllib.parse import urlencode
BUGZILLA = "https://bugzilla.mozilla.org"
@@ -115,20 +124,33 @@ def main(argv=None):
help="Bugzilla account email of the mentor, for the bug_mentors field. "
"Defaults to the owner of the API key in the bugzillarc.",
)
parser.add_argument(
"--print-url",
action="store_true",
help="Print the URL instead of opening it. For a headless host; the "
"URL is long enough that a terminal will not linkify it.",
)
args = parser.parse_args(argv)
mentor = args.mentor if args.mentor is not None else resolve_mentor()
print(
build_url(
args.title,
args.comment,
product=args.product,
component=args.component,
tracker=args.tracker,
keywords=args.keywords,
lang=args.lang,
mentor=mentor,
)
url = build_url(
args.title,
args.comment,
product=args.product,
component=args.component,
tracker=args.tracker,
keywords=args.keywords,
lang=args.lang,
mentor=mentor,
)
if args.print_url:
print(url)
return 0
if webbrowser.open(url):
print(f"Opened a prefilled form ({len(url)} chars): {args.title}")
return 0
print("No browser to open; falling back to the URL:", file=sys.stderr)
print(url)
return 0
if __name__ == "__main__":
+8 -8
View File
@@ -167,18 +167,18 @@ browser/base/content/test/about/dummy_page.html
browser/base/content/test/contextMenu/subtst_contextmenu.html
browser/base/content/test/favicons/datauri-favicon.html
browser/base/content/test/favicons/file_bug970276_popup1.html
browser/base/content/test/fullscreen/open_and_focus_helper.html
browser/base/content/test/browser-fullscreen/open_and_focus_helper.html
browser/base/content/test/general/browser_tab_dragdrop_embed.html
browser/base/content/test/general/dummy_page.html
browser/base/content/test/general/file_documentnavigation_frameset.html
browser/base/content/test/outOfProcess/file_base.html
browser/base/content/test/outOfProcess/file_frame2.html
browser/base/content/test/outOfProcess/file_innerframe.html
browser/base/content/test/pageinfo/svg_image.html
browser/base/content/test/browser-outOfProcess/file_base.html
browser/base/content/test/browser-outOfProcess/file_frame2.html
browser/base/content/test/browser-outOfProcess/file_innerframe.html
browser/base/content/test/browser-pageinfo/svg_image.html
browser/base/content/test/permissions/temporary_permissions_frame.html
browser/base/content/test/permissions/temporary_permissions_subframe.html
browser/base/content/test/plugins/plugin_bug797677.html
browser/base/content/test/sanitize/dummy_page.html
browser/base/content/test/browser-plugins/plugin_bug797677.html
browser/base/content/test/browser-sanitize/dummy_page.html
browser/base/content/test/siteIdentity/dummy_iframe_page.html
browser/base/content/test/siteIdentity/dummy_page.html
browser/base/content/test/siteIdentity/test-mixedcontent-securityerrors.html
@@ -1014,7 +1014,7 @@ browser/app/
browser/branding/**/firefox-branding.js
# Gzipped test file.
browser/base/content/test/general/gZipOfflineChild.html
browser/base/content/test/urlbar/file_blank_but_not_blank.html
browser/components/urlbar/tests/browser/file_blank_but_not_blank.html
# Test files that are really json not js, and don't need to be linted.
browser/components/sessionstore/test/unit/data/sessionstore_valid.js
browser/components/sessionstore/test/unit/data/sessionstore_invalid.js
+1 -1
View File
@@ -66,7 +66,7 @@ You can find the review identifier by inspecting the commit log with:
- Running tests with `--headless` is preferred if possible for the patch.
- Never submit patches to Phabricator without explicit user approval.
- In commit messages, group reviewers use a `#` prefix: `r?#group-name` (e.g. `r?#linter-reviewers`), while individual reviewers do not: `r?username`
- Refer to a bug as `Bug NNNNNN`, and to one of its comments as `Bug NNNNNN comment N`; Bugzilla and Phabricator both auto-link that form. A bare `comment N` only resolves within the bug it belongs to, so spell the bug number out in commit messages, review comments and other bugs. Comment numbering is 0-based with the description as comment 0: take the number from a comment's `count` field rather than counting the comments you fetched.
- Refer to a bug by number as `bug NNNNNN`, and to one of its comments as `bug NNNNNN comment N`; Bugzilla and Phabricator auto-link that form case-insensitively, so capitalize where a sentence or commit subject starts. A bare `comment N` only resolves within the bug it belongs to, so spell the bug number out in commit messages, review comments and other bugs. Comment numbering is 0-based with the description as comment 0: take the number from a comment's `count` field rather than counting the comments you fetched.
- Never put `DONTBUILD` (or `CLOSED TREE`) in the `-m` message of `mach try fuzzy` / `mach try compare` when you want builds to actually run. The Gecko decision task scans the message and on `DONTBUILD` strips every task from the graph: the decision task itself succeeds (Treeherder shows green) but no builds are scheduled.
- When doing Android and Desktop front-end-only changes, use the special `./mach build faster` to skip all C++/Rust compilation.
- Conversely, for C/C++/Obj-C/Rust only changes you can use the special `./mach build binaries` to skip all front-end-related tasks.
+1 -1
View File
@@ -22,4 +22,4 @@
# changes to stick? As of bug 928195, this shouldn't be necessary! Please
# don't change CLOBBER for WebIDL changes any more.
Modified build files in third_party/libwebrtc - Bug 2064200 - Vendor libwebrtc from e4420efdb7
Merge day clobber 2026-09-10
Generated
+32 -29
View File
@@ -358,7 +358,7 @@ dependencies = [
"dbus",
"libc",
"log",
"mach2",
"mach2 0.4.999",
"windows-sys",
]
@@ -1314,13 +1314,12 @@ dependencies = [
[[package]]
name = "crash-context"
version = "0.6.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b85cef661eeca0c6675116310936972c520ebb0a33ddef16fd7efc957f4c1288"
version = "0.8.0"
source = "git+https://github.com/rust-minidump/minidump-writer.git?rev=6744feee58804a78730d176cdcc31bb4f3021107#6744feee58804a78730d176cdcc31bb4f3021107"
dependencies = [
"cfg-if",
"libc",
"mach2",
"mach2 0.6.0",
]
[[package]]
@@ -1329,7 +1328,7 @@ version = "0.1.0"
dependencies = [
"anyhow",
"crash_helper_common",
"mach2",
"mach2 0.6.0",
"minidump-writer",
"nix",
"num-derive",
@@ -1346,7 +1345,7 @@ dependencies = [
"getrandom 0.3.3",
"linked-hash-map",
"log",
"mach2",
"mach2 0.6.0",
"minidump-writer",
"mozannotation_server",
"mozbuild",
@@ -1620,7 +1619,7 @@ dependencies = [
"cubeb-backend",
"float-cmp",
"libc",
"mach2",
"mach2 0.4.999",
"num",
"ringbuf",
"triple_buffer",
@@ -4116,9 +4115,9 @@ dependencies = [
[[package]]
name = "jxl"
version = "0.6.0"
version = "0.7.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7b36e70efc347a34540f61ae91b7dc304ab0bb69bd6ac62fae182389c2788016"
checksum = "cb273495ac2d124dba26465434641174d97bb7bba743079f3019052fb8ef64d3"
dependencies = [
"array-init",
"byteorder",
@@ -4143,9 +4142,9 @@ dependencies = [
[[package]]
name = "jxl_macros"
version = "0.6.0"
version = "0.7.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "96f637cf167445cc64f12f59869e2d2dd4225f1db7e37ec33d1738c2c334d448"
checksum = "eec97cdb4b68c10940b9aba75777182d3df59a51877a4c44c9203759a7723baf"
dependencies = [
"proc-macro2",
"quote",
@@ -4154,16 +4153,16 @@ dependencies = [
[[package]]
name = "jxl_simd"
version = "0.6.0"
version = "0.7.2"
dependencies = [
"rustversion",
]
[[package]]
name = "jxl_transforms"
version = "0.6.0"
version = "0.7.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "77097b14a98fa6f8bde99bd16dcd19e15a8ecceaba42a8d539138090e92dcf27"
checksum = "58454053c5052300c4914894cdc136ecc8d8919b4877b00e88254e5db2ea3ee3"
dependencies = [
"jxl_simd",
]
@@ -4537,13 +4536,17 @@ dependencies = [
[[package]]
name = "mach2"
version = "0.4.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6d0d1830bcd151a6fc4aea1369af235b36c1528fe976b8ff678683c9995eade8"
version = "0.4.999"
dependencies = [
"libc",
"mach2 0.6.0",
]
[[package]]
name = "mach2"
version = "0.6.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "dae608c151f68243f2b000364e1f7b186d9c29845f7d2d85bd31b9ad77ad552b"
[[package]]
name = "macho-unwind-info"
version = "0.5.0"
@@ -4867,8 +4870,8 @@ dependencies = [
[[package]]
name = "minidump-writer"
version = "0.12.0"
source = "git+https://github.com/rust-minidump/minidump-writer.git?rev=ee5b9d59d85bea1d4c6845f6b854e04fe204adf2#ee5b9d59d85bea1d4c6845f6b854e04fe204adf2"
version = "0.13.0"
source = "git+https://github.com/rust-minidump/minidump-writer.git?rev=6744feee58804a78730d176cdcc31bb4f3021107#6744feee58804a78730d176cdcc31bb4f3021107"
dependencies = [
"bitflags 2.10.0",
"byteorder",
@@ -4879,9 +4882,10 @@ dependencies = [
"goblin 0.9.2",
"libc",
"log",
"mach2",
"mach2 0.6.0",
"memmap2",
"minidump-common",
"plain",
"process-backend",
"procfs-core 0.18.0",
"scroll",
@@ -6298,7 +6302,7 @@ version = "0.1.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f81e0ffd4db150990a30013e47ebeeab2a71cfb27d1cbd83d1ec43d7b297e0c1"
dependencies = [
"bindgen 0.72.999",
"bindgen 0.73.1",
]
[[package]]
@@ -6490,11 +6494,10 @@ dependencies = [
[[package]]
name = "process-backend"
version = "0.0.0"
source = "git+https://github.com/rust-minidump/minidump-writer.git?rev=ee5b9d59d85bea1d4c6845f6b854e04fe204adf2#ee5b9d59d85bea1d4c6845f6b854e04fe204adf2"
version = "0.1.0"
source = "git+https://github.com/rust-minidump/minidump-writer.git?rev=6744feee58804a78730d176cdcc31bb4f3021107#6744feee58804a78730d176cdcc31bb4f3021107"
dependencies = [
"libc",
"log",
"process-reader",
"serde",
"thiserror 2.0.12",
@@ -6502,8 +6505,8 @@ dependencies = [
[[package]]
name = "process-reader"
version = "0.0.0"
source = "git+https://github.com/rust-minidump/minidump-writer.git?rev=ee5b9d59d85bea1d4c6845f6b854e04fe204adf2#ee5b9d59d85bea1d4c6845f6b854e04fe204adf2"
version = "0.1.0"
source = "git+https://github.com/rust-minidump/minidump-writer.git?rev=6744feee58804a78730d176cdcc31bb4f3021107#6744feee58804a78730d176cdcc31bb4f3021107"
dependencies = [
"libc",
"serde",
@@ -6516,7 +6519,7 @@ dependencies = [
"goblin 0.9.2",
"libc",
"log",
"mach2",
"mach2 0.6.0",
"memoffset 0.9.0",
"mozilla-central-workspace-hack",
"scroll",
+3
View File
@@ -439,3 +439,6 @@ jxl_simd = { path = "third_party/rust/jxl_simd" }
gleam = { git = "https://github.com/jamienicol/gleam", rev = "68ca4e5cc31135b843af07ff213a94b9ddce64cf" }
# gl_generator 0.14.0 + https://github.com/rust-windowing/gl-rs/pull/566
gl_generator = { git = "https://github.com/jamienicol/gl-rs", rev = "71c792dbfe0ec5caeb242fc90937e19098386342" }
# Implement mach2 0.4 in terms of 0.6
mach2 = { path = "build/rust/mach2" }
+6
View File
@@ -314,6 +314,12 @@ class nsAccUtils {
*/
static bool IsValidDetailsTargetForAnchor(const Accessible* aDetails,
const Accessible* aTarget);
static bool IsARIARoleAllowedOnContentDoc(role aRole) {
// We don't need to allow document because the native role for a document is
// already document, so ARIA role="document" is redundant.
return aRole == roles::APPLICATION || aRole == roles::DIALOG;
}
};
} // namespace a11y
+3 -4
View File
@@ -2148,7 +2148,7 @@ bool DocAccessible::UpdateAccessibleOnAttrChange(dom::Element* aElement,
if (mContent == aElement) {
SetRoleMapEntryForDoc(aElement);
if (mIPCDoc) {
mIPCDoc->SendRoleChangedEvent(Role(), mRoleMapEntryIndex);
mIPCDoc->SendRoleChangedEvent(mRoleMapEntryIndex);
}
return true;
@@ -2249,7 +2249,7 @@ void DocAccessible::UpdateRootElIfNeeded() {
mContent = rootEl;
SetRoleMapEntryForDoc(rootEl);
if (mIPCDoc) {
mIPCDoc->SendRoleChangedEvent(Role(), mRoleMapEntryIndex);
mIPCDoc->SendRoleChangedEvent(mRoleMapEntryIndex);
}
}
}
@@ -3203,8 +3203,7 @@ void DocAccessible::ARIAActiveDescendantIDMaybeMoved(
void DocAccessible::SetRoleMapEntryForDoc(dom::Element* aElement) {
const nsRoleMapEntry* entry = aria::GetRoleMap(aElement);
if (!entry || entry->role == roles::APPLICATION ||
entry->role == roles::DIALOG ||
if (!entry || nsAccUtils::IsARIARoleAllowedOnContentDoc(entry->role) ||
// Role alert isn't valid on the body element according to the ARIA spec,
// but it's useful for our UI; e.g. the WebRTC sharing indicator.
(entry->role == roles::ALERT && !mDocumentNode->IsContentDocument())) {
+6 -3
View File
@@ -989,7 +989,7 @@ mozilla::ipc::IPCResult DocAccessibleParent::RecvTextSelectionChangeEvent(
}
mozilla::ipc::IPCResult DocAccessibleParent::RecvRoleChangedEvent(
const a11y::role& aRole, const uint8_t& aRoleMapEntryIndex) {
const uint8_t& aRoleMapEntryIndex) {
ACQUIRE_ANDROID_LOCK
if (mShutdown) {
return IPC_OK();
@@ -999,11 +999,14 @@ mozilla::ipc::IPCResult DocAccessibleParent::RecvRoleChangedEvent(
return IPC_FAIL(this, "Invalid role map entry index");
}
mNativeRole = aRole;
const nsRoleMapEntry* entry = aria::GetRoleMapFromIndex(aRoleMapEntryIndex);
if (entry && !nsAccUtils::IsARIARoleAllowedOnContentDoc(entry->role)) {
return IPC_FAIL(this, "Invalid role on document");
}
mRoleMapEntryIndex = aRoleMapEntryIndex;
#ifdef MOZ_WIDGET_COCOA
PlatformRoleChangedEvent(this, aRole, aRoleMapEntryIndex);
PlatformRoleChangedEvent(this, Role(), aRoleMapEntryIndex);
#endif
return IPC_OK();
+1 -1
View File
@@ -171,7 +171,7 @@ class DocAccessibleParent : public RemoteAccessible,
const uint64_t& aID, nsTArray<TextRangeData>&& aSelection);
mozilla::ipc::IPCResult RecvRoleChangedEvent(
const a11y::role& aRole, const uint8_t& aRoleMapEntryIndex);
const uint8_t& aRoleMapEntryIndex);
mozilla::ipc::IPCResult RecvBindChildDoc(
NotNull<PDocAccessibleParent*> aChildDoc, const uint64_t& aID);
+1 -1
View File
@@ -102,7 +102,7 @@ parent:
async MutationEvents(MutationEventData[] aData);
async RequestAckMutationEvents();
async SelectionEvent(uint64_t aID, uint64_t aWidgetID, uint32_t aType);
async RoleChangedEvent(role aRole, uint8_t aRoleMapEntryIndex);
async RoleChangedEvent(uint8_t aRoleMapEntryIndex);
async FocusEvent(uint64_t aID, LayoutDeviceIntRect aCaretRect);
async ScrollingEvent(uint64_t aID, uint64_t aType,
uint32_t aScrollX, uint32_t aScrollY,
+3
View File
@@ -173,6 +173,9 @@
// AXVisited
- (NSNumber* _Nullable)moxVisited;
// AXGrabbed
- (NSNumber* _Nullable)moxGrabbed;
// AXExpanded
- (NSNumber* _Nullable)moxExpanded;
+3
View File
@@ -210,6 +210,9 @@ enum CheckedState {
// override
- (NSNumber*)moxSelected;
// override
- (NSNumber*)moxGrabbed;
// override
- (NSNumber*)moxExpanded;
+5
View File
@@ -760,6 +760,11 @@ static bool ProvidesTitle(const Accessible* aAccessible, nsString& aName) {
return @NO;
}
- (NSNumber*)moxGrabbed {
NSString* grabbed = utils::GetAccAttr(self, nsGkAtoms::aria_grabbed);
return @([grabbed isEqualToString:@"true"]);
}
- (NSNumber*)moxExpanded {
return @([self stateWithMask:states::EXPANDED] != 0);
}
@@ -40,6 +40,8 @@ skip-if = [
["browser_aria_expanded.js"]
["browser_aria_grabbed.js"]
["browser_aria_haspopup.js"]
["browser_aria_keyshortcuts.js"]
@@ -0,0 +1,59 @@
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
"use strict";
// Test aria-grabbed on a button
addAccessibleTask(
`<button aria-grabbed="" id="btn">Reorder me</button>`,
async (browser, accDoc) => {
const button = getNativeInterface(accDoc, "btn");
is(
button.getAttributeValue("AXGrabbed"),
0,
"AXGrabbed not initially exposed"
);
let attrChanged = waitForEvent(EVENT_OBJECT_ATTRIBUTE_CHANGED, "btn");
await SpecialPowers.spawn(browser, [], () => {
content.document
.getElementById("btn")
.setAttribute("aria-grabbed", "false");
});
await attrChanged;
is(
button.getAttributeValue("AXGrabbed"),
0,
"AXGrabbed not exposed when aria-grabbed set to 'false'"
);
attrChanged = waitForEvent(EVENT_OBJECT_ATTRIBUTE_CHANGED, "btn");
await SpecialPowers.spawn(browser, [], () => {
content.document
.getElementById("btn")
.setAttribute("aria-grabbed", "true");
});
await attrChanged;
is(
button.getAttributeValue("AXGrabbed"),
1,
"AXGrabbed exposed when aria-grabbed set to 'true'"
);
attrChanged = waitForEvent(EVENT_OBJECT_ATTRIBUTE_CHANGED, "btn");
await SpecialPowers.spawn(browser, [], () => {
content.document.getElementById("btn").removeAttribute("aria-grabbed");
});
await attrChanged;
is(
button.getAttributeValue("AXGrabbed"),
0,
"AXGrabbed not exposed when aria-grabbed attribute removed"
);
}
);
+1 -1
View File
@@ -129,7 +129,7 @@ bool XULButtonAccessible::AreItemsOperable() const {
LocalAccessible* menuPopup = mChildren.SafeElementAt(0, nullptr);
if (menuPopup) {
nsMenuPopupFrame* menuPopupFrame = do_QueryFrame(menuPopup->GetFrame());
return menuPopupFrame->IsOpen();
return menuPopupFrame && menuPopupFrame->IsOpen();
}
}
return false; // no items
@@ -18,7 +18,7 @@ XPCOMUtils.defineLazyPreferenceGetter(
XPCOMUtils.defineLazyPreferenceGetter(
lazy,
"isPrivateSearchUIEnabled",
"browser.search.separatePrivateDefault.ui.enabled",
"browser.search.separatePrivateDefault.featureGate",
false
);
+1 -13
View File
@@ -63,24 +63,12 @@ export class ThemePickerChild extends JSWindowActorChild {
}
};
recordShownOnce(eventData) {
// The first-pass metric records at most one impression per tab/window,
// regardless of picker layout, so repeat calls must not inflate aggregate
// shown counts. Per-showing session IDs are deferred to a follow-up.
if (this.hasRecordedShown) {
return;
}
this.hasRecordedShown = true;
Glean.themePicker.shown.record(eventData);
}
async handleEvent(event) {
const target = event.composedTarget;
switch (event.type) {
case "ThemePickerShown":
this.recordShownOnce(event.detail);
Glean.themePicker.shown.record(event.detail);
break;
case "ThemePickerGetInitialState": {
+40 -11
View File
@@ -19,6 +19,21 @@ const PREF_ACTIVE_THEME_ID = "extensions.activeThemeID";
* and updates via AddonManager and prefs.
*/
export class ThemePickerParent extends JSWindowActorParent {
themesManagers = new Map();
async getThemesManager(installSource) {
let managerPromise = this.themesManagers.get(installSource);
if (!managerPromise) {
managerPromise = lazy.getThemesList({ installSource }).catch(error => {
this.themesManagers.delete(installSource);
throw error;
});
this.themesManagers.set(installSource, managerPromise);
}
return managerPromise;
}
async receiveMessage(message) {
switch (message.name) {
case "ThemePicker:GetInitialState":
@@ -47,11 +62,8 @@ export class ThemePickerParent extends JSWindowActorParent {
}
async getInitialState({ installSource, showInCompactLayout }) {
if (!this.themesManager) {
this.themesManager = await lazy.getThemesList({ installSource });
}
const themes = this.themesManager.getThemesInfo({ showInCompactLayout });
const themesManager = await this.getThemesManager(installSource);
const themes = themesManager.getThemesInfo({ showInCompactLayout });
const { activeThemeId } = this.getActiveThemeId();
const { nativeTheme } = this.getNativeTheme();
const appearance = this.getAppearanceFromPref();
@@ -71,12 +83,13 @@ export class ThemePickerParent extends JSWindowActorParent {
};
}
async updateTheme({ themeId, layout }) {
await this.themesManager.updateThemeState(themeId, true, { layout });
async updateTheme({ themeId, installsource, layout }) {
const themesManager = await this.getThemesManager(installsource);
await themesManager.updateThemeState(themeId, true, { layout });
return this.getActiveThemeId();
}
async updateAppearance({ appearance }) {
async updateAppearance({ appearance, installsource, layout }) {
if (appearance === "device") {
Services.prefs.clearUserPref(PREF_SYSTEM_USES_DARK);
} else {
@@ -86,13 +99,29 @@ export class ThemePickerParent extends JSWindowActorParent {
);
}
return this.getAppearance();
const result = this.getAppearance();
Glean.themePicker.change.record({
source: installsource,
layout,
property: "appearance",
appearance: result.appearance,
});
return result;
}
async updateNativeTheme({ nativeTheme }) {
async updateNativeTheme({ nativeTheme, installsource, layout }) {
Services.prefs.setBoolPref(PREF_NATIVE_THEME, nativeTheme);
return this.getNativeTheme();
const result = this.getNativeTheme();
Glean.themePicker.change.record({
source: installsource,
layout,
property: "nativeTheme",
native_theme: result.nativeTheme,
});
return result;
}
getActiveThemeId() {
+3 -7
View File
@@ -983,7 +983,7 @@ pref("browser.search.context.loadInBackground", false);
// Enables display of the options for the user using a separate default search
// engine in private browsing mode.
pref("browser.search.separatePrivateDefault.ui.enabled", false);
pref("browser.search.separatePrivateDefault.featureGate", false);
// The maximum amount of times the private default banner is shown.
pref("browser.search.separatePrivateDefault.ui.banner.max", 0);
@@ -2110,9 +2110,9 @@ pref("browser.newtabpage.activity-stream.discoverystream.topicSelection.locale-t
pref("browser.newtabpage.activity-stream.discoverystream.topicLabels.locale-topic-label-config", "en-US, en-GB, en-CA");
// List of locales that get section layout by default
pref("browser.newtabpage.activity-stream.discoverystream.sections.locale-content-config", "en-US,en-CA,en-GB");
pref("browser.newtabpage.activity-stream.discoverystream.sections.locale-content-config", "en-US,en-CA,en-GB,de,fr,it,es-ES,pl");
// List of regions that get section layout by default
pref("browser.newtabpage.activity-stream.discoverystream.sections.region-content-config", "US,GB,CA,IE");
pref("browser.newtabpage.activity-stream.discoverystream.sections.region-content-config", "US,GB,CA,IE,IN,DE,AT,CH,BE,FR,IT,ES,PL");
pref("browser.newtabpage.activity-stream.discoverystream.sections.cards.enabled", true);
@@ -2276,11 +2276,7 @@ pref("pdfjs.handleOctetStream", true);
// Is the sidebar positioned ahead of the content browser
pref("sidebar.position_start", true);
#ifdef NIGHTLY_BUILD
pref("sidebar.revamp", true);
#else
pref("sidebar.revamp", false);
#endif
pref("sidebar.animation.enabled", true);
pref("sidebar.animation.duration-ms", 200);
pref("sidebar.animation.expand-on-hover.duration-ms", 400);
@@ -403,8 +403,9 @@ CrossProcessDllInterceptor::FuncHookType<NtMapViewOfSectionPtr>
// All the code for patched_NtMapViewOfSection that relies on checked stack
// buffers (e.g. mbi, sectionFileName) should be put in this helper function
// (see bug 1733532).
MOZ_NEVER_INLINE NTSTATUS AfterMapViewOfExecutableSection(
HANDLE aProcess, PVOID* aBaseAddress, NTSTATUS aStubStatus) {
MOZ_NEVER_INLINE NTSTATUS
AfterMapViewOfExecutableSection(HANDLE aSection, HANDLE aProcess,
PVOID* aBaseAddress, NTSTATUS aStubStatus) {
// We don't care about mappings that aren't MEM_IMAGE.
MEMORY_BASIC_INFORMATION mbi;
NTSTATUS ntStatus =
@@ -525,9 +526,30 @@ MOZ_NEVER_INLINE NTSTATUS AfterMapViewOfExecutableSection(
}
if (nt::RtlGetProcessHeap()) {
// Make a read-only duplicate of the section for the parent process. Only
// child processes need this.
// DuplicateHandle is in kernel32 and this intercepted function can run
// before that is loaded, so use ntdll's equivalent.
nt::AutoHandle sectionForParent;
bool sectionForParentUnavailable = false;
if (gBlocklistInitFlags & eDllBlocklistInitFlagIsChildProcess) {
HANDLE duplicate = nullptr;
if (NT_SUCCESS(::NtDuplicateObject(
nt::kCurrentProcess, aSection, nt::kCurrentProcess, &duplicate,
SECTION_QUERY | SECTION_MAP_READ, 0, 0)) &&
duplicate) {
sectionForParent = nt::AutoHandle(duplicate);
} else {
// Not fatal: the load proceeds and the parent simply cannot evaluate
// this module.
sectionForParentUnavailable = true;
}
}
ModuleLoadFrame::NotifySectionMap(
nt::AllocatedUnicodeString(sectionFileName), *aBaseAddress, aStubStatus,
loadStatus, isInjectedDependent);
loadStatus, isInjectedDependent, std::move(sectionForParent),
sectionForParentUnavailable);
}
if (loadStatus == ModuleLoadInfo::Status::Loaded ||
@@ -604,8 +626,8 @@ NTSTATUS NTAPI patched_NtMapViewOfSection(
return stubStatus;
}
NTSTATUS rv =
AfterMapViewOfExecutableSection(aProcess, aBaseAddress, stubStatus);
NTSTATUS rv = AfterMapViewOfExecutableSection(aSection, aProcess,
aBaseAddress, stubStatus);
if (FAILED(rv)) {
rollback();
}
@@ -24,7 +24,9 @@ ModuleLoadFrame::ModuleLoadFrame(PCUNICODE_STRING aRequestedDllName)
ModuleLoadFrame::ModuleLoadFrame(nt::AllocatedUnicodeString&& aSectionName,
const void* aMapBaseAddr, NTSTATUS aNtStatus,
ModuleLoadInfo::Status aLoadStatus,
bool aIsDependent)
bool aIsDependent,
nt::AutoHandle&& aSectionHandle,
bool aSectionHandleUnavailable)
: mPrev(sTopFrame.get()),
mContext(nullptr),
mLSPSubstitutionRequired(false),
@@ -33,6 +35,11 @@ ModuleLoadFrame::ModuleLoadFrame(nt::AllocatedUnicodeString&& aSectionName,
aIsDependent) {
sTopFrame.set(this);
// This constructor serves a mapping that did not pass through LdrLoadDll, so
// OnSectionMap never runs for it and the section handle has to be taken here.
mLoadInfo.mSectionHandle = std::move(aSectionHandle);
mLoadInfo.mSectionHandleUnavailable = aSectionHandleUnavailable;
gLoaderPrivateAPI.NotifyBeginDllLoad(&mContext, mLoadInfo.mSectionName);
}
@@ -71,7 +78,8 @@ void ModuleLoadFrame::SetLSPSubstitutionRequired(PCUNICODE_STRING aLeafName) {
void ModuleLoadFrame::NotifySectionMap(
nt::AllocatedUnicodeString&& aSectionName, const void* aMapBaseAddr,
NTSTATUS aMapNtStatus, ModuleLoadInfo::Status aLoadStatus,
bool aIsDependent) {
bool aIsDependent, nt::AutoHandle&& aSectionHandle,
bool aSectionHandleUnavailable) {
ModuleLoadFrame* topFrame = sTopFrame.get();
if (!topFrame) {
// The only time that this data is useful is during initial mapping of
@@ -80,13 +88,15 @@ void ModuleLoadFrame::NotifySectionMap(
// initial process startup.
if (gLoaderPrivateAPI.IsDefaultObserver()) {
OnBareSectionMap(std::move(aSectionName), aMapBaseAddr, aMapNtStatus,
aLoadStatus, aIsDependent);
aLoadStatus, aIsDependent, std::move(aSectionHandle),
aSectionHandleUnavailable);
}
return;
}
topFrame->OnSectionMap(std::move(aSectionName), aMapBaseAddr, aMapNtStatus,
aLoadStatus, aIsDependent);
aLoadStatus, aIsDependent, std::move(aSectionHandle),
aSectionHandleUnavailable);
}
/* static */
@@ -96,28 +106,35 @@ void ModuleLoadFrame::OnSectionMap(nt::AllocatedUnicodeString&& aSectionName,
const void* aMapBaseAddr,
NTSTATUS aMapNtStatus,
ModuleLoadInfo::Status aLoadStatus,
bool aIsDependent) {
bool aIsDependent,
nt::AutoHandle&& aSectionHandle,
bool aSectionHandleUnavailable) {
if (mLoadInfo.mBaseAddr) {
// If mBaseAddr is not null then |this| has already seen a module load. This
// means that we are witnessing a bare section map.
OnBareSectionMap(std::move(aSectionName), aMapBaseAddr, aMapNtStatus,
aLoadStatus, aIsDependent);
aLoadStatus, aIsDependent, std::move(aSectionHandle),
aSectionHandleUnavailable);
return;
}
mLoadInfo.mSectionName = std::move(aSectionName);
mLoadInfo.mBaseAddr = aMapBaseAddr;
mLoadInfo.mStatus = aLoadStatus;
mLoadInfo.mSectionHandle = std::move(aSectionHandle);
mLoadInfo.mSectionHandleUnavailable = aSectionHandleUnavailable;
}
/* static */
void ModuleLoadFrame::OnBareSectionMap(
nt::AllocatedUnicodeString&& aSectionName, const void* aMapBaseAddr,
NTSTATUS aMapNtStatus, ModuleLoadInfo::Status aLoadStatus,
bool aIsDependent) {
bool aIsDependent, nt::AutoHandle&& aSectionHandle,
bool aSectionHandleUnavailable) {
// We call the special constructor variant that is used for bare mappings.
ModuleLoadFrame frame(std::move(aSectionName), aMapBaseAddr, aMapNtStatus,
aLoadStatus, aIsDependent);
aLoadStatus, aIsDependent, std::move(aSectionHandle),
aSectionHandleUnavailable);
}
NTSTATUS ModuleLoadFrame::SetLoadStatus(NTSTATUS aNtStatus,
@@ -30,12 +30,18 @@ class MOZ_RAII ModuleLoadFrame final {
static void NotifyLSPSubstitutionRequired(PCUNICODE_STRING aLeafName);
/**
* This static method is called by the NtMapViewOfSection hook.
* Helper for the NtMapViewOfSection hook.
*
* Ownership of aSectionHandle is transfered to this function.
* The section handle may be null, in which case the parent simply cannot
* evaluate this module.
*/
static void NotifySectionMap(nt::AllocatedUnicodeString&& aSectionName,
const void* aMapBaseAddr, NTSTATUS aMapNtStatus,
ModuleLoadInfo::Status aLoadStatus,
bool aIsDependent);
bool aIsDependent,
nt::AutoHandle&& aSectionHandle,
bool aSectionHandleUnavailable);
static bool ExistsTopFrame();
/**
@@ -55,12 +61,16 @@ class MOZ_RAII ModuleLoadFrame final {
*/
ModuleLoadFrame(nt::AllocatedUnicodeString&& aSectionName,
const void* aMapBaseAddr, NTSTATUS aNtStatus,
ModuleLoadInfo::Status aLoadStatus, bool aIsDependent);
ModuleLoadInfo::Status aLoadStatus, bool aIsDependent,
nt::AutoHandle&& aSectionHandle,
bool aSectionHandleUnavailable);
void SetLSPSubstitutionRequired(PCUNICODE_STRING aLeafName);
void OnSectionMap(nt::AllocatedUnicodeString&& aSectionName,
const void* aMapBaseAddr, NTSTATUS aMapNtStatus,
ModuleLoadInfo::Status aLoadStatus, bool aIsDependent);
ModuleLoadInfo::Status aLoadStatus, bool aIsDependent,
nt::AutoHandle&& aSectionHandle,
bool aSectionHandleUnavailable);
/**
* A "bare" section mapping is one that was mapped without the code passing
@@ -70,7 +80,9 @@ class MOZ_RAII ModuleLoadFrame final {
static void OnBareSectionMap(nt::AllocatedUnicodeString&& aSectionName,
const void* aMapBaseAddr, NTSTATUS aMapNtStatus,
ModuleLoadInfo::Status aLoadStatus,
bool aIsDependent);
bool aIsDependent,
nt::AutoHandle&& aSectionHandle,
bool aSectionHandleUnavailable);
private:
// Link to the previous frame
+17 -3
View File
@@ -22,12 +22,26 @@ var gGestureSupport = {
_rotateMomentumThreshold: 0.75,
/**
* Add or remove mouse gesture event listeners
* Add the mouse gesture event listeners.
*/
init() {
this._toggleListeners(true);
},
/**
* Remove the mouse gesture event listeners.
*/
uninit() {
this._toggleListeners(false);
},
/**
* Add or remove mouse gesture event listeners.
*
* @param aAddListener
* True to add/init listeners and false to remove/uninit
* True to add listeners and false to remove them.
*/
init: function GS_init(aAddListener) {
_toggleListeners(aAddListener) {
const gestureEvents = [
"SwipeGestureMayStart",
"SwipeGestureStart",
+16 -93
View File
@@ -964,91 +964,25 @@ var gBrowserInit = {
return;
}
function scheduleIdleTask(func, options) {
requestIdleCallback(function idleTaskRunner() {
if (!window.closed) {
func();
}
}, options);
}
scheduleIdleTask(() => {
// Initialize the Sync UI
gSync.init();
});
scheduleIdleTask(() => {
// Read prefers-reduced-motion setting
let reduceMotionQuery = window.matchMedia(
"(prefers-reduced-motion: reduce)"
);
function readSetting() {
gReduceMotionSetting = reduceMotionQuery.matches;
}
reduceMotionQuery.addListener(readSetting);
readSetting();
});
scheduleIdleTask(() => {
// setup simple gestures support
gGestureSupport.init(true);
// setup history swipe animation
gHistorySwipeAnimation.init();
});
scheduleIdleTask(() => {
gBrowserThumbnails.init();
});
scheduleIdleTask(
() => {
// Initialize the download manager some time after the app starts so that
// auto-resume downloads begin (such as after crashing or quitting with
// active downloads) and speeds up the first-load of the download manager UI.
// If the user manually opens the download manager before the timeout, the
// downloads will start right away, and initializing again won't hurt.
try {
DownloadsCommon.initializeAllDataLinks();
ChromeUtils.importESModule(
"moz-src:///browser/components/downloads/DownloadsTaskbar.sys.mjs"
)
.DownloadsTaskbar.registerIndicator(window)
.catch(ex => {
console.error(ex);
});
if (AppConstants.platform == "macosx") {
ChromeUtils.importESModule(
"moz-src:///browser/components/downloads/DownloadsMacFinderProgress.sys.mjs"
).DownloadsMacFinderProgress.register();
}
} catch (ex) {
console.error(ex);
}
BrowserUtils.callModulesFromCategory(
{
categoryName: "browser-window-idle-tasks",
profilerMarker: "perWindowIdleTask",
idleDispatch: true,
jsGlobal: globalThis,
},
{ timeout: 10000 }
window
);
if (Win7Features) {
scheduleIdleTask(() => Win7Features.onOpenWindow());
}
scheduleIdleTask(async () => {
NewTabPagePreloading.maybeCreatePreloadedBrowser(window);
});
scheduleIdleTask(() => {
gGfxUtils.init();
});
scheduleIdleTask(async () => {
await gProfiles.init();
});
// This should always go last, since the idle tasks (except for the ones with
// timeouts) should execute in order. Note that this observer notification is
// not guaranteed to fire, since the window could close before we get here.
scheduleIdleTask(() => {
// This should always go last, since the idle tasks above execute in order.
// Dispatch it on the same idle queue as the consumers above (via
// ChromeUtils.idleDispatch) so it runs after them. Note that this observer
// notification is not guaranteed to fire, since the window could close
// before we get here.
ChromeUtils.idleDispatch(() => {
if (window.closed) {
return;
}
this.idleTasksFinished.resolve();
Services.obs.notifyObservers(
window,
@@ -1127,12 +1061,6 @@ var gBrowserInit = {
return;
}
gGestureSupport.init(false);
gHistorySwipeAnimation.uninit();
gSync.uninit();
try {
gBrowser.removeProgressListener(window.XULBrowserWindow);
gBrowser.removeTabsProgressListener(window.TabsProgressListener);
@@ -1153,11 +1081,6 @@ var gBrowserInit = {
if (this._boundDelayedStartup) {
this._cancelDelayedStartup();
} else {
if (Win7Features) {
Win7Features.onCloseWindow();
}
gBrowserThumbnails.uninit();
BrowserUtils.callModulesFromCategory(
{
categoryName: "browser-window-unload-delayed-startup",
+59 -29
View File
@@ -24,7 +24,6 @@ ChromeUtils.defineESModuleGetters(this, {
BrowserUIUtils: "resource:///modules/BrowserUIUtils.sys.mjs",
BrowserUsageTelemetry: "resource:///modules/BrowserUsageTelemetry.sys.mjs",
BrowserWindowTracker: "resource:///modules/BrowserWindowTracker.sys.mjs",
CFRPageActions: "resource:///modules/asrouter/CFRPageActions.sys.mjs",
Color: "resource://gre/modules/Color.sys.mjs",
ContentAnalysis:
"moz-src:///browser/components/contentanalysis/content/ContentAnalysis.sys.mjs",
@@ -517,33 +516,34 @@ ChromeUtils.defineLazyGetter(this, "MacUserActivityUpdater", () => {
);
});
// Returns an object even when unavailable so it can be a category consumer.
ChromeUtils.defineLazyGetter(this, "Win7Features", () => {
if (AppConstants.platform != "win") {
return null;
}
let aeroPeek = null;
const WINTASKBAR_CONTRACTID = "@mozilla.org/windows-taskbar;1";
if (
AppConstants.platform == "win" &&
WINTASKBAR_CONTRACTID in Cc &&
Cc[WINTASKBAR_CONTRACTID].getService(Ci.nsIWinTaskbar).available
) {
let { AeroPeek } = ChromeUtils.importESModule(
aeroPeek = ChromeUtils.importESModule(
"resource:///modules/WindowsPreviewPerTab.sys.mjs"
);
return {
onOpenWindow() {
AeroPeek.onOpenWindow(window);
this.handledOpening = true;
},
onCloseWindow() {
if (this.handledOpening) {
AeroPeek.onCloseWindow(window);
}
},
handledOpening: false,
};
).AeroPeek;
}
return null;
return {
available: !!aeroPeek,
handledOpening: false,
onOpenWindow() {
if (aeroPeek) {
aeroPeek.onOpenWindow(window);
this.handledOpening = true;
}
},
onCloseWindow() {
if (this.handledOpening) {
aeroPeek.onCloseWindow(window);
}
},
};
});
ChromeUtils.defineLazyGetter(this, "gRestoreLastSessionObserver", () => {
@@ -693,14 +693,29 @@ Object.defineProperty(this, "gReduceMotion", {
get() {
return typeof gReduceMotionOverride == "boolean"
? gReduceMotionOverride
: gReduceMotionSetting;
: gReduceMotionManager.setting;
},
});
// Reduce motion during startup. The setting will be reset later.
let gReduceMotionSetting = true;
// This is for tests to set.
var gReduceMotionOverride;
// TODO bug 2056447: read the media query directly instead of caching.
var gReduceMotionManager = {
// Reduce motion during startup. The setting will be reset later.
setting: true,
init() {
let reduceMotionQuery = window.matchMedia(
"(prefers-reduced-motion: reduce)"
);
let readSetting = () => {
this.setting = reduceMotionQuery.matches;
};
reduceMotionQuery.addListener(readSetting);
readSetting();
},
};
// Smart getter for the findbar. If you don't wish to force the creation of
// the findbar, check gFindBarInitialized first.
@@ -3311,24 +3326,39 @@ var gUIDensity = {
if (!(threshold > 0)) {
return false;
}
const { width, height } = this._densityReferenceSize();
if (
window.innerHeight &&
this.AUTO_COMPACT_REFERENCE_TABSTRIP_HEIGHT / window.innerHeight >
threshold
height &&
this.AUTO_COMPACT_REFERENCE_TABSTRIP_HEIGHT / height > threshold
) {
return true;
}
if (
window.innerWidth &&
width &&
this._isSidebarLauncherCollapsed() &&
this.AUTO_COMPACT_REFERENCE_SIDEBAR_LAUNCHER_WIDTH / window.innerWidth >
threshold
this.AUTO_COMPACT_REFERENCE_SIDEBAR_LAUNCHER_WIDTH / width > threshold
) {
return true;
}
return false;
},
// This function returns our window size, for the purpose of judging whether we
// should auto-compact. If we're maximized (as indicated by "sizemode"), we don't
// trust window.inner{Width,Height} as authoritative, because we might be a
// newly-spawned window, waiting on the OS to tell us our correct size. Hence: for
// maximized windows, we use the screen size (if it's larger), since it doesn't
// change as often and is likely to be close to the maximized window-size.
_densityReferenceSize() {
if (document.documentElement.getAttribute("sizemode") == "maximized") {
return {
width: Math.max(window.screen.availWidth, window.innerWidth),
height: Math.max(window.screen.availHeight, window.innerHeight),
};
}
return { width: window.innerWidth, height: window.innerHeight };
},
// Whether the sidebar.revamp launcher is currently visible (sidebar is
// "open") and only reserves its collapsed width in the layout.
_isSidebarLauncherCollapsed() {
+1 -2
View File
@@ -8,8 +8,8 @@
"gFissionBrowser",
"gBrowserAllowScriptsToCloseInitialTabs",
"gEditUIVisible",
"gReduceMotionSetting",
"gReduceMotionOverride",
"gReduceMotionManager",
"shouldSuppressPopupNotifications",
"gLazyFindCommand",
"gPageIcons",
@@ -89,7 +89,6 @@
"BrowserUIUtils",
"BrowserUsageTelemetry",
"BrowserWindowTracker",
"CFRPageActions",
"Color",
"ContentAnalysis",
"ContextualIdentityService",
+20 -20
View File
@@ -14,10 +14,10 @@ with Files("pageinfo/**"):
with Files("test/about/**"):
BUG_COMPONENT = ("Firefox", "General")
with Files("test/alerts/**"):
with Files("test/browser-alerts/**"):
BUG_COMPONENT = ("Toolkit", "Alerts Service")
with Files("test/captivePortal/**"):
with Files("test/browser-captivePortal/**"):
BUG_COMPONENT = ("Firefox", "General")
with Files("test/chrome/**"):
@@ -29,19 +29,19 @@ with Files("test/contextMenu/**"):
with Files("test/forms/**"):
BUG_COMPONENT = ("Core", "Layout: Form Controls")
with Files("test/historySwipeAnimation/**"):
with Files("test/browser-historySwipeAnimation/**"):
BUG_COMPONENT = ("Core", "Widget: Cocoa")
with Files("test/keyboard/**"):
with Files("test/browser-keyboard/**"):
BUG_COMPONENT = ("Firefox", "Keyboard Navigation")
with Files("test/outOfProcess/**"):
with Files("test/browser-outOfProcess/**"):
BUG_COMPONENT = ("Firefox", "General")
with Files("test/pageActions*/**"):
with Files("test/browser-pageActions*/**"):
BUG_COMPONENT = ("Firefox", "Toolbars and Customization")
with Files("test/pageinfo/**"):
with Files("test/browser-pageinfo/**"):
BUG_COMPONENT = ("Firefox", "Page Info Window")
with Files("test/performance/**"):
@@ -53,22 +53,22 @@ with Files("test/performance/browser_appmenu.js"):
with Files("test/permissions/**"):
BUG_COMPONENT = ("Firefox", "Site Permissions")
with Files("test/plugins/**"):
with Files("test/browser-plugins/**"):
BUG_COMPONENT = ("Core", "Audio/Video: GMP")
with Files("test/popupNotifications/**"):
with Files("test/browser-popupNotifications/**"):
BUG_COMPONENT = ("Toolkit", "PopupNotifications and Notification Bars")
with Files("test/popups/**"):
BUG_COMPONENT = ("Firefox", "Site Permissions")
with Files("test/referrer/**"):
with Files("test/browser-referrer/**"):
BUG_COMPONENT = ("Core", "DOM: Navigation")
with Files("test/sanitize/**"):
with Files("test/browser-sanitize/**"):
BUG_COMPONENT = ("Toolkit", "Data Sanitization")
with Files("test/scroll-to-text-fragment/**"):
with Files("test/browser-scroll-to-text-fragment/**"):
BUG_COMPONENT = ("Core", "DOM: Navigation")
with Files("test/siteIdentity/**"):
@@ -77,7 +77,7 @@ with Files("test/siteIdentity/**"):
with Files("test/sidebar/**"):
BUG_COMPONENT = ("Firefox", "General")
with Files("test/startup/**"):
with Files("test/browser-startup/**"):
BUG_COMPONENT = ("Firefox", "General")
with Files("test/static/**"):
@@ -86,22 +86,22 @@ with Files("test/static/**"):
with Files("test/sync/**"):
BUG_COMPONENT = ("Firefox", "Sync")
with Files("test/tabdialogs/**"):
with Files("test/browser-tabdialogs/**"):
BUG_COMPONENT = ("Firefox", "Tabbed Browser")
with Files("test/notificationbox/**"):
with Files("test/browser-notificationbox/**"):
BUG_COMPONENT = ("Firefox", "Tabbed Browser")
with Files("test/tabPrompts/**"):
BUG_COMPONENT = ("Firefox", "Tabbed Browser")
with Files("test/tabcrashed/**"):
with Files("test/browser-tabcrashed/**"):
BUG_COMPONENT = ("Firefox", "Tabbed Browser")
with Files("test/touch/**"):
with Files("test/browser-touch/**"):
BUG_COMPONENT = ("Firefox", "General")
with Files("test/utilityOverlay/**"):
with Files("test/browser-utilityOverlay/**"):
BUG_COMPONENT = ("Firefox", "Tabbed Browser")
with Files("test/protectionsUI/**"):
@@ -113,10 +113,10 @@ with Files("test/webextensions/**"):
with Files("test/webrtc/**"):
BUG_COMPONENT = ("Core", "WebRTC")
with Files("test/zoom/**"):
with Files("test/browser-zoom/**"):
BUG_COMPONENT = ("Firefox", "General")
with Files("test/caps/**"):
with Files("test/browser-caps/**"):
BUG_COMPONENT = ("Firefox", "Security")
with Files("blockedSite.xhtml"):
@@ -356,16 +356,6 @@
<hbox id="page-action-buttons" context="pageActionContextMenu" align="center" urlbar-slot="page-actions">
<toolbartabstop/>
<hbox id="contextual-feature-recommendation" role="button" hidden="true">
<hbox id="cfr-label-container">
<label id="cfr-label"/>
</hbox>
<hbox id="cfr-button"
role="presentation"
class="urlbar-page-action">
<image class="urlbar-icon"/>
</hbox>
</hbox>
<hbox id="userContext-icons" hidden="true"
role="button">
<label id="userContext-label"/>
+1 -1
View File
@@ -2919,7 +2919,7 @@ export class nsContextMenu {
(isPrivateSearchMenuitem &&
(isBrowserPrivate ||
!Services.prefs.getBoolPref(
"browser.search.separatePrivateDefault.ui.enabled"
"browser.search.separatePrivateDefault.featureGate"
)));
if (!menuitem.hidden) {
@@ -196,34 +196,6 @@
</popupnotificationcontent>
</popupnotification>
<popupnotification id="contextual-feature-recommendation-notification"
buttonhighlight="true"
hidden="true">
<popupnotificationheader id="cfr-notification-header">
<stack id="cfr-notification-header-stack">
<description id="cfr-notification-header-label"></description>
<label id="cfr-notification-header-link" is="text-link">
<xul:image id="cfr-notification-header-image"/>
</label>
</stack>
</popupnotificationheader>
<popupnotificationcontent>
<hbox>
<description id="cfr-notification-author"></description>
<hbox id="cfr-notification-footer-addon-info">
<hbox id="cfr-notification-footer-filled-stars"/>
<hbox id="cfr-notification-footer-empty-stars"/>
<label id="cfr-notification-footer-users"/>
</hbox>
</hbox>
</popupnotificationcontent>
<popupnotificationfooter id="cfr-notification-footer" orient="vertical">
<vbox id="cfr-notification-footer-text-and-addon-info">
<description id="cfr-notification-footer-text"/>
<label id="cfr-notification-footer-learn-more-link" is="text-link"/>
</vbox>
</popupnotificationfooter>
</popupnotification>
<popupnotification id="credential-chooser-notification" hidden="true">
<popupnotificationheader id="credential-chooser-header" orient="horizontal">
<html:div id="credential-chooser-header-container">
@@ -98,6 +98,8 @@ support-files = [
["browser_aboutNetError_netInterrupt.js"]
["browser_aboutNetError_netReset.js"]
["browser_aboutNetError_searchCTA.js"]
["browser_aboutNetError_searchCTA_connectivity.js"]
@@ -3,28 +3,34 @@
"use strict";
function startDropServer() {
const server = Cc["@mozilla.org/network/server-socket;1"].createInstance(
Ci.nsIServerSocket
);
info("Using a random port.");
server.init(-1, true, -1);
server.asyncListen({
onSocketAccepted(socket, transport) {
// Close immediately, no response sent.
transport.close(Cr.NS_OK);
},
onStopListening() {},
});
registerCleanupFunction(() => server.close());
return server.port;
const { NodeHTTPServer } = ChromeUtils.importESModule(
"resource://testing-common/NodeServer.sys.mjs"
);
// A 4xx response with no body is what nsURILoader turns into
// NS_ERROR_NET_EMPTY_RESPONSE.
//
// registerPathHandler ships the handler to a separate Node process via
// handler.toString(), so it must not close over anything from this scope;
// pick a self-contained handler before registering it.
async function startEmptyResponseServer(setContentLength) {
const server = new NodeHTTPServer();
await server.start();
registerCleanupFunction(() => server.stop());
const handler = setContentLength
? (req, resp) => {
resp.writeHead(404, { "Content-Length": "0" });
resp.end();
}
: (req, resp) => {
resp.writeHead(404);
resp.end();
};
await server.registerPathHandler("/empty", handler);
return `${server.origin()}/empty`;
}
add_task(async function test_net_empty_response_copy() {
await setSecurityCertErrorsFeltPrivacyToTrue();
const port = startDropServer();
const url = `http://127.0.0.1:${port}/`;
async function loadEmptyResponseErrorPage(url) {
let browser, tab;
let pageLoaded;
await BrowserTestUtils.openNewForegroundTab(
@@ -40,8 +46,10 @@ add_task(async function test_net_empty_response_copy() {
info("Loading and waiting for the net error.");
await pageLoaded;
return { browser, tab };
}
Assert.ok("Loaded empty server response.");
async function assertEmptyResponseCopy(browser) {
await SpecialPowers.spawn(browser, [], async () => {
await ContentTaskUtils.waitForCondition(
() => content?.document?.querySelector("net-error-card"),
@@ -60,27 +68,40 @@ add_task(async function test_net_empty_response_copy() {
);
Assert.equal(
netErrorCard.errorIntro.dataset.l10nId,
"neterror-http-empty-response-description",
"Using the 'empty response' intro."
"fp-neterror-http-error-intro",
"Using the HTTP error intro."
);
const list = netErrorCard.renderRoot.querySelector(".what-can-you-do-list");
Assert.ok(list, "NetErrorCard has what-can-you-do list.");
Assert.ok(
list.querySelector('[data-l10n-id="neterror-http-error-page"]'),
"List includes check-the-address item"
);
Assert.ok(
list.querySelector('[data-l10n-id="neterror-load-error-try-again"]'),
"List includes try-again item"
);
Assert.ok(
list.querySelector('[data-l10n-id="neterror-load-error-connection"]'),
"List includes connection item"
);
Assert.ok(
list.querySelector('[data-l10n-id="neterror-load-error-firewall"]'),
"List includes firewall item"
);
Assert.ok(
ContentTaskUtils.isVisible(netErrorCard.tryAgainButton),
"The 'Try Again' button is shown."
);
});
}
add_task(async function test_net_empty_response_copy() {
await setSecurityCertErrorsFeltPrivacyToTrue();
const url = await startEmptyResponseServer(true);
const { browser, tab } = await loadEmptyResponseErrorPage(url);
await assertEmptyResponseCopy(browser);
BrowserTestUtils.removeTab(tab);
});
add_task(async function test_net_empty_response_copy_no_content_length() {
await setSecurityCertErrorsFeltPrivacyToTrue();
const url = await startEmptyResponseServer(false);
const { browser, tab } = await loadEmptyResponseErrorPage(url);
await assertEmptyResponseCopy(browser);
BrowserTestUtils.removeTab(tab);
});
@@ -0,0 +1,195 @@
/* Any copyright is dedicated to the Public Domain.
* http://creativecommons.org/publicdomain/zero/1.0/ */
"use strict";
// Closing the connection right after accepting it, before any response is
// sent, surfaces as NS_ERROR_NET_RESET.
function startDropServer() {
const server = Cc["@mozilla.org/network/server-socket;1"].createInstance(
Ci.nsIServerSocket
);
server.init(-1, true, -1);
server.asyncListen({
onSocketAccepted(socket, transport) {
transport.close(Cr.NS_OK);
},
onStopListening() {},
});
registerCleanupFunction(() => server.close());
return server.port;
}
// nsITLSServerSocket needs a certificate with a corresponding private key
// available. In mochitests, the certificate with the common name "Mochitest
// client" has such a key.
async function getTestServerCertificate() {
const certDB = Cc["@mozilla.org/security/x509certdb;1"].getService(
Ci.nsIX509CertDB
);
for (const cert of await certDB.getCerts()) {
if (cert.commonName == "Mochitest client") {
return cert;
}
}
return null;
}
// Completes the TLS handshake, then closes the connection right after, also
// surfacing as NS_ERROR_NET_RESET (see browser_navigation_failures.js).
function startTLSDropServer(cert) {
const server = Cc["@mozilla.org/network/tls-server-socket;1"].createInstance(
Ci.nsITLSServerSocket
);
server.init(-1, true, -1);
server.serverCert = cert;
let input, output;
const listener = {
onSocketAccepted(socket, transport) {
const connectionInfo = transport.securityCallbacks.getInterface(
Ci.nsITLSServerConnectionInfo
);
connectionInfo.setSecurityObserver(listener);
input = transport.openInputStream(0, 0, 0);
output = transport.openOutputStream(0, 0, 0);
},
onHandshakeDone() {
input.asyncWait(
{
onInputStreamReady() {
input.close();
output.close();
},
},
0,
0,
Services.tm.currentThread
);
},
onStopListening() {},
};
server.setSessionTickets(false);
server.asyncListen(listener);
registerCleanupFunction(() => server.close());
return server;
}
async function loadDroppedConnectionErrorPage(url) {
let browser, tab;
let pageLoaded;
await BrowserTestUtils.openNewForegroundTab(
gBrowser,
() => {
gBrowser.selectedTab = BrowserTestUtils.addTab(gBrowser, url);
browser = gBrowser.selectedBrowser;
tab = gBrowser.selectedTab;
pageLoaded = BrowserTestUtils.waitForErrorPage(browser);
},
false
);
await pageLoaded;
return { browser, tab };
}
add_task(async function test_netReset_from_dropped_connection_http() {
const port = startDropServer();
const { browser, tab } = await loadDroppedConnectionErrorPage(
`http://127.0.0.1:${port}/`
);
await SpecialPowers.spawn(browser, [], () => {
Assert.ok(
content.document.documentURI.includes("e=netReset"),
"A dropped http connection shows the netReset error page"
);
});
BrowserTestUtils.removeTab(tab);
});
add_task(async function test_netReset_from_dropped_connection_https() {
await SpecialPowers.pushPrefEnv({
// This test fails on some platforms if we leave IPv6 enabled.
set: [["network.dns.disableIPv6", true]],
});
const certOverrideService = Cc[
"@mozilla.org/security/certoverride;1"
].getService(Ci.nsICertOverrideService);
const cert = await getTestServerCertificate();
const server = startTLSDropServer(cert);
certOverrideService.rememberValidityOverride(
"localhost",
server.port,
{},
cert,
true
);
registerCleanupFunction(() => {
certOverrideService.clearValidityOverride("localhost", server.port, {});
});
const { browser, tab } = await loadDroppedConnectionErrorPage(
`https://localhost:${server.port}/`
);
await SpecialPowers.spawn(browser, [], () => {
Assert.ok(
content.document.documentURI.includes("e=netReset"),
"A dropped https connection shows the netReset error page"
);
});
BrowserTestUtils.removeTab(tab);
});
add_task(async function test_netReset_error_page_elements() {
const { browser, tab } = await loadNetErrorPage("netReset", "127.0.0.1");
await SpecialPowers.spawn(browser, [], async function () {
await ContentTaskUtils.waitForCondition(
() => content?.document?.querySelector("net-error-card"),
"Wait for net-error-card to render"
);
const doc = content.document;
const netErrorCard = doc.querySelector("net-error-card").wrappedJSObject;
await netErrorCard.getUpdateComplete();
Assert.equal(
netErrorCard.errorTitle.dataset.l10nId,
"netReset-title",
"Using the netReset title"
);
Assert.equal(
netErrorCard.errorIntro.dataset.l10nId,
"fp-neterror-offline-intro",
"Using the netReset intro"
);
const list = netErrorCard.renderRoot.querySelector(".what-can-you-do-list");
Assert.ok(list, "NetErrorCard has what-can-you-do list");
Assert.ok(
list.querySelector('[data-l10n-id="neterror-load-error-try-again"]'),
"List includes try-again item"
);
Assert.ok(
list.querySelector('[data-l10n-id="neterror-load-error-connection"]'),
"List includes connection item"
);
Assert.ok(
list.querySelector('[data-l10n-id="neterror-load-error-firewall"]'),
"List includes firewall item"
);
Assert.ok(
ContentTaskUtils.isVisible(netErrorCard.tryAgainButton),
"The 'Try Again' button is shown"
);
Assert.ok(
!netErrorCard.renderRoot.querySelector(
'[data-l10n-id="fp-cert-error-code"]'
),
"No error code is shown for netReset"
);
});
BrowserTestUtils.removeTab(tab);
});
@@ -54,8 +54,8 @@ add_task(async function test_descriptivePathSearchesKeywords() {
);
is(
await searchQueryFromClick(browser),
"best hiking boots reviews wildernessgear cta",
"Path keywords come first, then the host's tokens"
"wildernessgear cta best hiking boots reviews",
"The host's tokens come first, then the path keywords"
);
BrowserTestUtils.removeTab(tab);
});
@@ -80,8 +80,8 @@ add_task(async function test_queryStringAndFragmentNeverSearched() {
);
is(
await searchQueryFromClick(browser),
"tents shop wildernessgear cta",
"Only the path and host contribute to the query"
"shop wildernessgear cta tents",
"Only the host and path contribute to the query"
);
BrowserTestUtils.removeTab(tab);
});
@@ -120,7 +120,7 @@ add_task(async function test_mistypedTLDStillRendersSearchButton() {
);
is(
await searchQueryFromClick(browser),
"winter deals wildernessgear cta",
"wildernessgear cta winter deals",
"A mistyped TLD still gets a Search button"
);
BrowserTestUtils.removeTab(tab);
@@ -24,8 +24,8 @@ add_setup(async function () {
await SpecialPowers.pushPrefEnv({
set: [
[CTA_PREF, true],
["browser.search.separatePrivateDefault.ui.enabled", true],
["browser.search.separatePrivateDefault", true],
["browser.search.separatePrivateDefault.featureGate", true],
["browser.search.separatePrivateDefault.enabled", true],
// Treat the connectivity reading as always fresh so the bug 2055712 guard
// is a no-op and this test doesn't depend on captive-portal state.
["browser.netError.searchCTA.connectivityFreshnessMs", 2147483647],
@@ -9,7 +9,7 @@ const { PermissionTestUtils } = ChromeUtils.importESModule(
);
let notificationURL =
"https://example.org/browser/browser/base/content/test/alerts/file_dom_notifications.html";
"https://example.org/browser/browser/base/content/test/browser-alerts/file_dom_notifications.html";
add_task(async function test_notificationClose() {
await addNotificationPermission(notificationURL);
@@ -14,7 +14,7 @@ const ALERT_SERVICE = Cc["@mozilla.org/alerts-service;1"]
.QueryInterface(Ci.nsIAlertsDoNotDisturb);
const PAGE =
"https://example.org/browser/browser/base/content/test/alerts/file_dom_notifications.html";
"https://example.org/browser/browser/base/content/test/browser-alerts/file_dom_notifications.html";
// The amount of time in seconds that we will wait for a notification
// to show up before we decide that it's not coming.
@@ -1,7 +1,7 @@
"use strict";
var notificationURL =
"https://example.org/browser/browser/base/content/test/alerts/file_dom_notifications.html";
"https://example.org/browser/browser/base/content/test/browser-alerts/file_dom_notifications.html";
// BrowserGlue passes "privacy-permissions" to openPreferences when the
// notifications-open-settings observer fires; the Settings Redesign
// LegacyPaneMappings shim routes that to the permissionsData pane.
@@ -6,7 +6,7 @@ const { PermissionTestUtils } = ChromeUtils.importESModule(
var tab;
var notificationURL =
"https://example.org/browser/browser/base/content/test/alerts/file_dom_notifications.html";
"https://example.org/browser/browser/base/content/test/browser-alerts/file_dom_notifications.html";
var alertWindowClosed = false;
var permRemoved = false;
@@ -11,7 +11,7 @@ const { PermissionTestUtils } = ChromeUtils.importESModule(
var tab;
var notification;
var notificationURL =
"https://example.org/browser/browser/base/content/test/alerts/file_dom_notifications.html";
"https://example.org/browser/browser/base/content/test/browser-alerts/file_dom_notifications.html";
var newWindowOpenedFromTab;
add_task(async function test_notificationPreventDefaultAndSwitchTabs() {
@@ -5,7 +5,7 @@ const { HttpServer } = ChromeUtils.importESModule(
);
const PUBLIC_PAGE_URL =
"https://example.com/browser/browser/base/content/test/captivePortal/file_captivePortal_lna.html";
"https://example.com/browser/browser/base/content/test/browser-captivePortal/file_captivePortal_lna.html";
let SERVER_RESPONSE = "";
const CANONICAL_HTML = "<!DOCTYPE html><html><body>hello</body></html>";
let gHttpServer;
@@ -7,9 +7,9 @@ XPCOMUtils.defineLazyServiceGetter(
const CANONICAL_CONTENT = "success";
const CANONICAL_URL =
"https://example.com/browser/browser/base/content/test/captivePortal/canonical.txt";
"https://example.com/browser/browser/base/content/test/browser-captivePortal/canonical.txt";
const CANONICAL_URL_REDIRECTED =
"https://example.com/browser/browser/base/content/test/captivePortal/redirected.txt";
"https://example.com/browser/browser/base/content/test/browser-captivePortal/redirected.txt";
const PORTAL_NOTIFICATION_VALUE = "captive-portal-detected";
const BAD_CERT_PAGE = "https://expired.example.com/";
@@ -15,7 +15,7 @@ const tab1URL = `data:text/html,
</html>`;
const ORIGIN =
"https://example.com/browser/browser/base/content/test/fullscreen/fullscreen_frame.html";
"https://example.com/browser/browser/base/content/test/browser-fullscreen/fullscreen_frame.html";
add_task(async function test_fullscreen_cross_origin() {
async function requestFullscreenThenCloseTab() {
@@ -4,7 +4,7 @@
"use strict";
const ORIGIN =
"https://example.com/browser/browser/base/content/test/fullscreen/fullscreen_frame.html";
"https://example.com/browser/browser/base/content/test/browser-fullscreen/fullscreen_frame.html";
add_task(async function test_fullscreen_cross_origin() {
async function requestFullscreen(aAllow, aExpect) {
@@ -33,7 +33,7 @@ add_task(async function test_keydown_event_reservation_toggling_fullscreen() {
for (const shortcutKey of shortcutKeys) {
const tab = await BrowserTestUtils.openNewForegroundTab(
gBrowser,
"https://example.org/browser/browser/base/content/test/fullscreen/fullscreen.html"
"https://example.org/browser/browser/base/content/test/browser-fullscreen/fullscreen.html"
);
await SimpleTest.promiseFocus(tab.linkedBrowser);
@@ -19,7 +19,7 @@ add_task(async function test_shortcut_key_label_in_fullscreen_menu_item() {
const tab = await BrowserTestUtils.openNewForegroundTab(
gBrowser,
"https://example.org/browser/browser/base/content/test/fullscreen/fullscreen.html"
"https://example.org/browser/browser/base/content/test/browser-fullscreen/fullscreen.html"
);
await SimpleTest.promiseFocus(tab.linkedBrowser);

Some files were not shown because too many files have changed in this diff Show More