Skip to content

Conversation

@pull
Copy link

@pull pull bot commented Feb 4, 2026

See Commits and Changes for more details.


Created by pull[bot] (v2.0.0-alpha.4)

Can you help keep this open source service alive? 💖 Please sponsor : )

dcrescalante and others added 30 commits February 4, 2026 01:00
…ating unnecessary hash-sets. r=dshin,firefox-style-system-reviewers

Differential Revision: https://phabricator.services.mozilla.com/D281677
…ition to the events ping. r=daisuke,urlbar-reviewers

Differential Revision: https://phabricator.services.mozilla.com/D281707
…ref. r=daisuke

This fixes the bug and makes a couple of other minor changes:

Remove the `newValue` param to `#recordPref`. It's unnecessary complexity and an
unnecessary secondary code path, and it doesn't really save anything perf-wise.

Don't get `prefValue` when it's not needed. `onPrefChanged` and
`onNimbusChanged` are called when *any* urlbar pref/variable changes, not just
the small number of prefs in `#PING_PREFS`.

Differential Revision: https://phabricator.services.mozilla.com/D281692
…artifact builds by try-chooser. r=ahal

For people who regularly switch between branches, working directories and build
modes, the automatic behaviour of try chooser to select artifact try builds
based on current build environment can be error prone. This patch adds a mach
setting to disable the autodetection while still allowing manual control with
the `./mach try --artifact` command.

Differential Revision: https://phabricator.services.mozilla.com/D281661
Add some tests for the android-test command. This also fixes handling of .java
file extensions. Includes some minor refactoring to prepare for subsequent
changes.

Differential Revision: https://phabricator.services.mozilla.com/D281347
…chheiden

To avoid the 'testDebugUnitTest' calls for Fenix/Focus also matching component
project test tasks, use the 'app' dir. In practice, non-app test tasks
automatically skip, but that isn't true for instrumented tests introduced in
the later patches.

Differential Revision: https://phabricator.services.mozilla.com/D281379
… r=ahochheiden

Add support for geckoview (unit) test suite to 'android-test' command. Note
that the 'geckoview-junit' command still exists and does similar things.

Cleanup how subprojects are handled and derive it automatically if a test path
is specified. Cleanup the gradle commands to separate gradle options from task
options and avoid duplicate or redundant tasks.

Differential Revision: https://phabricator.services.mozilla.com/D281348
…r=ahochheiden

The default gradle-variant we use for tests is 'Debug', but allow overriding
it on command line.

Differential Revision: https://phabricator.services.mozilla.com/D281349
…d-test'. r=ahochheiden

Teach the './mach android-test' command to recognize and to run Android
instrumentation tests using the `connectedAndroidTest` family of Gradle tasks.

Also specify the 'app' directory for fenix and focus to avoid connectedAndroidTest matching
on components as well.

Differential Revision: https://phabricator.services.mozilla.com/D281350
… list of user-added custom URLs r=home-newtab-reviewers,fluent-reviewers,desktop-theme-reviewers,akulyk,flod,reemhamz,hjones

Differential Revision: https://phabricator.services.mozilla.com/D280720
…p. r=gfx-reviewers,lsalzman

These prefs were made toggle-able dynamically so that we could test the feature in CI before the feature was enabled by default, but now that the feature has been enabled for a long time we are not likely to disable these prefs in the codebase so that is no longer important. We have a lot of code to handle these prefs being dynamic and it results in bugs where not all callers are passing these flags meaning animated avif images can get disabled in those call sites.

Differential Revision: https://phabricator.services.mozilla.com/D281712
…eadableStream r=webidl,saschanaz" for causing wpt failures

This reverts commit cda7cdf.
…dom-core,smaug" for causing wpt failures

This reverts commit c08bd10.
…kpour,android-reviewers

We have an example of a Login created in the
`PasswordGeneratorDialogFragment` that is passed back to callback,
however we work around the hint provided from Gecko, but trying to
modify the Login on confirmation.
What this turns into is re-implemented logic in GeckoPromptDelegate
with checks that we wouldn't need if we simply forwarded the hint
onward.

The `Login.guid` API is also a lie that we require it to exist. This
seems to be because it was an API for _retrieving_ a Login from the
storage layer which is now used for storing it.

Differential Revision: https://phabricator.services.mozilla.com/D281382
…ILD CLOSED TREE

ach -> a7420bb8974bc65bbc7efed4fe2c97056ff3ec0e
af -> a7420bb8974bc65bbc7efed4fe2c97056ff3ec0e
an -> a7420bb8974bc65bbc7efed4fe2c97056ff3ec0e
ar -> a7420bb8974bc65bbc7efed4fe2c97056ff3ec0e
ast -> a7420bb8974bc65bbc7efed4fe2c97056ff3ec0e
az -> a7420bb8974bc65bbc7efed4fe2c97056ff3ec0e
be -> a7420bb8974bc65bbc7efed4fe2c97056ff3ec0e
bg -> a7420bb8974bc65bbc7efed4fe2c97056ff3ec0e
bn -> a7420bb8974bc65bbc7efed4fe2c97056ff3ec0e
bo -> a7420bb8974bc65bbc7efed4fe2c97056ff3ec0e
br -> a7420bb8974bc65bbc7efed4fe2c97056ff3ec0e
brx -> a7420bb8974bc65bbc7efed4fe2c97056ff3ec0e
bs -> a7420bb8974bc65bbc7efed4fe2c97056ff3ec0e
ca -> a7420bb8974bc65bbc7efed4fe2c97056ff3ec0e
ca-valencia -> a7420bb8974bc65bbc7efed4fe2c97056ff3ec0e
cak -> a7420bb8974bc65bbc7efed4fe2c97056ff3ec0e
ckb -> a7420bb8974bc65bbc7efed4fe2c97056ff3ec0e
cs -> a7420bb8974bc65bbc7efed4fe2c97056ff3ec0e
cy -> a7420bb8974bc65bbc7efed4fe2c97056ff3ec0e
da -> a7420bb8974bc65bbc7efed4fe2c97056ff3ec0e
de -> a7420bb8974bc65bbc7efed4fe2c97056ff3ec0e
dsb -> a7420bb8974bc65bbc7efed4fe2c97056ff3ec0e
el -> a7420bb8974bc65bbc7efed4fe2c97056ff3ec0e
en-CA -> a7420bb8974bc65bbc7efed4fe2c97056ff3ec0e
en-GB -> a7420bb8974bc65bbc7efed4fe2c97056ff3ec0e
eo -> a7420bb8974bc65bbc7efed4fe2c97056ff3ec0e
es-AR -> a7420bb8974bc65bbc7efed4fe2c97056ff3ec0e
es-CL -> a7420bb8974bc65bbc7efed4fe2c97056ff3ec0e
es-ES -> a7420bb8974bc65bbc7efed4fe2c97056ff3ec0e
es-MX -> a7420bb8974bc65bbc7efed4fe2c97056ff3ec0e
et -> a7420bb8974bc65bbc7efed4fe2c97056ff3ec0e
eu -> a7420bb8974bc65bbc7efed4fe2c97056ff3ec0e
fa -> a7420bb8974bc65bbc7efed4fe2c97056ff3ec0e
ff -> a7420bb8974bc65bbc7efed4fe2c97056ff3ec0e
fi -> a7420bb8974bc65bbc7efed4fe2c97056ff3ec0e
fr -> a7420bb8974bc65bbc7efed4fe2c97056ff3ec0e
fur -> a7420bb8974bc65bbc7efed4fe2c97056ff3ec0e
fy-NL -> a7420bb8974bc65bbc7efed4fe2c97056ff3ec0e
ga-IE -> a7420bb8974bc65bbc7efed4fe2c97056ff3ec0e
gd -> a7420bb8974bc65bbc7efed4fe2c97056ff3ec0e
gl -> a7420bb8974bc65bbc7efed4fe2c97056ff3ec0e
gn -> a7420bb8974bc65bbc7efed4fe2c97056ff3ec0e
gu-IN -> a7420bb8974bc65bbc7efed4fe2c97056ff3ec0e
he -> a7420bb8974bc65bbc7efed4fe2c97056ff3ec0e
hi-IN -> a7420bb8974bc65bbc7efed4fe2c97056ff3ec0e
hr -> a7420bb8974bc65bbc7efed4fe2c97056ff3ec0e
hsb -> a7420bb8974bc65bbc7efed4fe2c97056ff3ec0e
hu -> a7420bb8974bc65bbc7efed4fe2c97056ff3ec0e
hy-AM -> a7420bb8974bc65bbc7efed4fe2c97056ff3ec0e
hye -> a7420bb8974bc65bbc7efed4fe2c97056ff3ec0e
ia -> a7420bb8974bc65bbc7efed4fe2c97056ff3ec0e
id -> a7420bb8974bc65bbc7efed4fe2c97056ff3ec0e
is -> a7420bb8974bc65bbc7efed4fe2c97056ff3ec0e
it -> a7420bb8974bc65bbc7efed4fe2c97056ff3ec0e
ja -> a7420bb8974bc65bbc7efed4fe2c97056ff3ec0e
ja-JP-mac -> a7420bb8974bc65bbc7efed4fe2c97056ff3ec0e
ka -> a7420bb8974bc65bbc7efed4fe2c97056ff3ec0e
kab -> a7420bb8974bc65bbc7efed4fe2c97056ff3ec0e
kk -> a7420bb8974bc65bbc7efed4fe2c97056ff3ec0e
km -> a7420bb8974bc65bbc7efed4fe2c97056ff3ec0e
kn -> a7420bb8974bc65bbc7efed4fe2c97056ff3ec0e
ko -> a7420bb8974bc65bbc7efed4fe2c97056ff3ec0e
lij -> a7420bb8974bc65bbc7efed4fe2c97056ff3ec0e
lo -> a7420bb8974bc65bbc7efed4fe2c97056ff3ec0e
lt -> a7420bb8974bc65bbc7efed4fe2c97056ff3ec0e
ltg -> a7420bb8974bc65bbc7efed4fe2c97056ff3ec0e
lv -> a7420bb8974bc65bbc7efed4fe2c97056ff3ec0e
meh -> a7420bb8974bc65bbc7efed4fe2c97056ff3ec0e
mk -> a7420bb8974bc65bbc7efed4fe2c97056ff3ec0e
ml -> a7420bb8974bc65bbc7efed4fe2c97056ff3ec0e
mr -> a7420bb8974bc65bbc7efed4fe2c97056ff3ec0e
ms -> a7420bb8974bc65bbc7efed4fe2c97056ff3ec0e
my -> a7420bb8974bc65bbc7efed4fe2c97056ff3ec0e
nb-NO -> a7420bb8974bc65bbc7efed4fe2c97056ff3ec0e
ne-NP -> a7420bb8974bc65bbc7efed4fe2c97056ff3ec0e
nl -> a7420bb8974bc65bbc7efed4fe2c97056ff3ec0e
nn-NO -> a7420bb8974bc65bbc7efed4fe2c97056ff3ec0e
oc -> a7420bb8974bc65bbc7efed4fe2c97056ff3ec0e
pa-IN -> a7420bb8974bc65bbc7efed4fe2c97056ff3ec0e
pl -> a7420bb8974bc65bbc7efed4fe2c97056ff3ec0e
pt-BR -> a7420bb8974bc65bbc7efed4fe2c97056ff3ec0e
pt-PT -> a7420bb8974bc65bbc7efed4fe2c97056ff3ec0e
rm -> a7420bb8974bc65bbc7efed4fe2c97056ff3ec0e
ro -> a7420bb8974bc65bbc7efed4fe2c97056ff3ec0e
ru -> a7420bb8974bc65bbc7efed4fe2c97056ff3ec0e
sat -> a7420bb8974bc65bbc7efed4fe2c97056ff3ec0e
sc -> a7420bb8974bc65bbc7efed4fe2c97056ff3ec0e
scn -> a7420bb8974bc65bbc7efed4fe2c97056ff3ec0e
sco -> a7420bb8974bc65bbc7efed4fe2c97056ff3ec0e
si -> a7420bb8974bc65bbc7efed4fe2c97056ff3ec0e
sk -> a7420bb8974bc65bbc7efed4fe2c97056ff3ec0e
skr -> a7420bb8974bc65bbc7efed4fe2c97056ff3ec0e
sl -> a7420bb8974bc65bbc7efed4fe2c97056ff3ec0e
son -> a7420bb8974bc65bbc7efed4fe2c97056ff3ec0e
sq -> a7420bb8974bc65bbc7efed4fe2c97056ff3ec0e
sr -> a7420bb8974bc65bbc7efed4fe2c97056ff3ec0e
sv-SE -> a7420bb8974bc65bbc7efed4fe2c97056ff3ec0e
szl -> a7420bb8974bc65bbc7efed4fe2c97056ff3ec0e
ta -> a7420bb8974bc65bbc7efed4fe2c97056ff3ec0e
te -> a7420bb8974bc65bbc7efed4fe2c97056ff3ec0e
tg -> a7420bb8974bc65bbc7efed4fe2c97056ff3ec0e
th -> a7420bb8974bc65bbc7efed4fe2c97056ff3ec0e
tl -> a7420bb8974bc65bbc7efed4fe2c97056ff3ec0e
tr -> a7420bb8974bc65bbc7efed4fe2c97056ff3ec0e
trs -> a7420bb8974bc65bbc7efed4fe2c97056ff3ec0e
uk -> a7420bb8974bc65bbc7efed4fe2c97056ff3ec0e
ur -> a7420bb8974bc65bbc7efed4fe2c97056ff3ec0e
uz -> a7420bb8974bc65bbc7efed4fe2c97056ff3ec0e
vi -> a7420bb8974bc65bbc7efed4fe2c97056ff3ec0e
wo -> a7420bb8974bc65bbc7efed4fe2c97056ff3ec0e
xh -> a7420bb8974bc65bbc7efed4fe2c97056ff3ec0e
zh-CN -> a7420bb8974bc65bbc7efed4fe2c97056ff3ec0e
zh-TW -> a7420bb8974bc65bbc7efed4fe2c97056ff3ec0e
…LD CLOSED TREE

ach -> a7420bb8974bc65bbc7efed4fe2c97056ff3ec0e
an -> a7420bb8974bc65bbc7efed4fe2c97056ff3ec0e
ar -> a7420bb8974bc65bbc7efed4fe2c97056ff3ec0e
ast -> a7420bb8974bc65bbc7efed4fe2c97056ff3ec0e
az -> a7420bb8974bc65bbc7efed4fe2c97056ff3ec0e
be -> a7420bb8974bc65bbc7efed4fe2c97056ff3ec0e
bg -> a7420bb8974bc65bbc7efed4fe2c97056ff3ec0e
bn -> a7420bb8974bc65bbc7efed4fe2c97056ff3ec0e
br -> a7420bb8974bc65bbc7efed4fe2c97056ff3ec0e
bs -> a7420bb8974bc65bbc7efed4fe2c97056ff3ec0e
ca -> a7420bb8974bc65bbc7efed4fe2c97056ff3ec0e
cak -> a7420bb8974bc65bbc7efed4fe2c97056ff3ec0e
cs -> a7420bb8974bc65bbc7efed4fe2c97056ff3ec0e
cy -> a7420bb8974bc65bbc7efed4fe2c97056ff3ec0e
da -> a7420bb8974bc65bbc7efed4fe2c97056ff3ec0e
de -> a7420bb8974bc65bbc7efed4fe2c97056ff3ec0e
dsb -> a7420bb8974bc65bbc7efed4fe2c97056ff3ec0e
el -> a7420bb8974bc65bbc7efed4fe2c97056ff3ec0e
en-CA -> a7420bb8974bc65bbc7efed4fe2c97056ff3ec0e
en-GB -> a7420bb8974bc65bbc7efed4fe2c97056ff3ec0e
eo -> a7420bb8974bc65bbc7efed4fe2c97056ff3ec0e
es-AR -> a7420bb8974bc65bbc7efed4fe2c97056ff3ec0e
es-CL -> a7420bb8974bc65bbc7efed4fe2c97056ff3ec0e
es-ES -> a7420bb8974bc65bbc7efed4fe2c97056ff3ec0e
es-MX -> a7420bb8974bc65bbc7efed4fe2c97056ff3ec0e
et -> a7420bb8974bc65bbc7efed4fe2c97056ff3ec0e
eu -> a7420bb8974bc65bbc7efed4fe2c97056ff3ec0e
fa -> a7420bb8974bc65bbc7efed4fe2c97056ff3ec0e
ff -> a7420bb8974bc65bbc7efed4fe2c97056ff3ec0e
fi -> a7420bb8974bc65bbc7efed4fe2c97056ff3ec0e
fr -> a7420bb8974bc65bbc7efed4fe2c97056ff3ec0e
fy-NL -> a7420bb8974bc65bbc7efed4fe2c97056ff3ec0e
ga-IE -> a7420bb8974bc65bbc7efed4fe2c97056ff3ec0e
gd -> a7420bb8974bc65bbc7efed4fe2c97056ff3ec0e
gl -> a7420bb8974bc65bbc7efed4fe2c97056ff3ec0e
gn -> a7420bb8974bc65bbc7efed4fe2c97056ff3ec0e
gu-IN -> a7420bb8974bc65bbc7efed4fe2c97056ff3ec0e
he -> a7420bb8974bc65bbc7efed4fe2c97056ff3ec0e
hi-IN -> a7420bb8974bc65bbc7efed4fe2c97056ff3ec0e
hr -> a7420bb8974bc65bbc7efed4fe2c97056ff3ec0e
hsb -> a7420bb8974bc65bbc7efed4fe2c97056ff3ec0e
hu -> a7420bb8974bc65bbc7efed4fe2c97056ff3ec0e
hy-AM -> a7420bb8974bc65bbc7efed4fe2c97056ff3ec0e
ia -> a7420bb8974bc65bbc7efed4fe2c97056ff3ec0e
id -> a7420bb8974bc65bbc7efed4fe2c97056ff3ec0e
is -> a7420bb8974bc65bbc7efed4fe2c97056ff3ec0e
it -> a7420bb8974bc65bbc7efed4fe2c97056ff3ec0e
ja -> a7420bb8974bc65bbc7efed4fe2c97056ff3ec0e
ka -> a7420bb8974bc65bbc7efed4fe2c97056ff3ec0e
kab -> a7420bb8974bc65bbc7efed4fe2c97056ff3ec0e
kk -> a7420bb8974bc65bbc7efed4fe2c97056ff3ec0e
km -> a7420bb8974bc65bbc7efed4fe2c97056ff3ec0e
kn -> a7420bb8974bc65bbc7efed4fe2c97056ff3ec0e
ko -> a7420bb8974bc65bbc7efed4fe2c97056ff3ec0e
lij -> a7420bb8974bc65bbc7efed4fe2c97056ff3ec0e
lo -> a7420bb8974bc65bbc7efed4fe2c97056ff3ec0e
lt -> a7420bb8974bc65bbc7efed4fe2c97056ff3ec0e
ltg -> a7420bb8974bc65bbc7efed4fe2c97056ff3ec0e
lv -> a7420bb8974bc65bbc7efed4fe2c97056ff3ec0e
meh -> a7420bb8974bc65bbc7efed4fe2c97056ff3ec0e
mix -> a7420bb8974bc65bbc7efed4fe2c97056ff3ec0e
ml -> a7420bb8974bc65bbc7efed4fe2c97056ff3ec0e
mr -> a7420bb8974bc65bbc7efed4fe2c97056ff3ec0e
ms -> a7420bb8974bc65bbc7efed4fe2c97056ff3ec0e
my -> a7420bb8974bc65bbc7efed4fe2c97056ff3ec0e
nb-NO -> a7420bb8974bc65bbc7efed4fe2c97056ff3ec0e
ne-NP -> a7420bb8974bc65bbc7efed4fe2c97056ff3ec0e
nl -> a7420bb8974bc65bbc7efed4fe2c97056ff3ec0e
nn-NO -> a7420bb8974bc65bbc7efed4fe2c97056ff3ec0e
oc -> a7420bb8974bc65bbc7efed4fe2c97056ff3ec0e
pa-IN -> a7420bb8974bc65bbc7efed4fe2c97056ff3ec0e
pl -> a7420bb8974bc65bbc7efed4fe2c97056ff3ec0e
pt-BR -> a7420bb8974bc65bbc7efed4fe2c97056ff3ec0e
pt-PT -> a7420bb8974bc65bbc7efed4fe2c97056ff3ec0e
rm -> a7420bb8974bc65bbc7efed4fe2c97056ff3ec0e
ro -> a7420bb8974bc65bbc7efed4fe2c97056ff3ec0e
ru -> a7420bb8974bc65bbc7efed4fe2c97056ff3ec0e
sk -> a7420bb8974bc65bbc7efed4fe2c97056ff3ec0e
sl -> a7420bb8974bc65bbc7efed4fe2c97056ff3ec0e
son -> a7420bb8974bc65bbc7efed4fe2c97056ff3ec0e
sq -> a7420bb8974bc65bbc7efed4fe2c97056ff3ec0e
sr -> a7420bb8974bc65bbc7efed4fe2c97056ff3ec0e
sv-SE -> a7420bb8974bc65bbc7efed4fe2c97056ff3ec0e
ta -> a7420bb8974bc65bbc7efed4fe2c97056ff3ec0e
te -> a7420bb8974bc65bbc7efed4fe2c97056ff3ec0e
th -> a7420bb8974bc65bbc7efed4fe2c97056ff3ec0e
tl -> a7420bb8974bc65bbc7efed4fe2c97056ff3ec0e
tr -> a7420bb8974bc65bbc7efed4fe2c97056ff3ec0e
trs -> a7420bb8974bc65bbc7efed4fe2c97056ff3ec0e
uk -> a7420bb8974bc65bbc7efed4fe2c97056ff3ec0e
ur -> a7420bb8974bc65bbc7efed4fe2c97056ff3ec0e
uz -> a7420bb8974bc65bbc7efed4fe2c97056ff3ec0e
vi -> a7420bb8974bc65bbc7efed4fe2c97056ff3ec0e
wo -> a7420bb8974bc65bbc7efed4fe2c97056ff3ec0e
xh -> a7420bb8974bc65bbc7efed4fe2c97056ff3ec0e
zam -> a7420bb8974bc65bbc7efed4fe2c97056ff3ec0e
zh-CN -> a7420bb8974bc65bbc7efed4fe2c97056ff3ec0e
zh-TW -> a7420bb8974bc65bbc7efed4fe2c97056ff3ec0e
…rs,Roger

Testing the buggy scenario I saw that when the issue reproduces we act upon
SearchStarted before acting upon the Init action.
This change ensures that we always complete the search setup based on Init
before acting upon SearchStarted.

Differential Revision: https://phabricator.services.mozilla.com/D281591
… mode window r=pdahiya,fluent-reviewers,ai-frontend-reviewers,flod

This patch adds a logout observer that automatically switches all open AI windows to classic mode when users sign out. When the user clicks the sign-out button from either a Classic or Smart Window, if there are any active Smart Windows open and smart window feature is enabled, the sign-out confirmation dialog informs users that their Smart Windows will switch to standard windows.

Differential Revision: https://phabricator.services.mozilla.com/D280390
canova and others added 27 commits February 4, 2026 15:06
When PerfSpewer is allocated in a LifoAlloc, its destructor won't be called
when the LifoAlloc is freed. The `debugInfo_` vector uses SystemAllocPolicy,
which means that it allocates from the system heap, so failing to explicitly
free it results in a memory leak.

This patch adds a `PerfSpewer::reset()` method to explicitly free heap-allocated
memory, and adds `MIRGenerator::cleanup()` to do that cleanup of both the
dependency tracker and PerfSpewer. This makes sure that the proper cleanup happens
when MIRGenerator is allocated in a LifoAlloc.

Differential Revision: https://phabricator.services.mozilla.com/D279700
…h the same line/column r=denispal

This reduces the memory usage of the PerfSpewer profiler source entries
and improves the binary search performance at the same time.

From my very scientific(?) testing, it reduces the memory usage of
the source entries by ~70%.

Differential Revision: https://phabricator.services.mozilla.com/D276663
…n,mstange,profiler-reviewers

This patch adds the line and column numbers to the profiler JIT frames
by returning them in the callStackAtAddr methods.

Also it makes sure that the hash function contains the line and column
information, so we don't mistakenly merge multiple frames with different
line/column numbers together.

Another important change is the `wantPreciseLineNumbers` variable to make
sure that the Ion code can contain information for precise line numbers.

Note that with this patch, Ion will contain correct line numbers but not
Baseline. While working on this, we discovered that the baseline line
numbers are very sparse due to the fact that compiled Baseline assembly
doesn't contain profilerCallSite information. It will be fixed in the
following patches. And the test for this is also in one of the following
patches.

Co-authored-by: Markus Stange <[email protected]>
Co-authored-by: Nicolas B. Pierron <[email protected]>
Co-authored-by: Denis Palmeiro <[email protected]>

Differential Revision: https://phabricator.services.mozilla.com/D270205
…nabled r=iain

In some cases, baseline frame line numbers were attributed to either
loop head or the function signature because the profiler had no valid
recorded return address once baseline jumped into IC/native stubs, so
JSJitProfilingFrameIterator fell back to an earlier point in the
JSScript while stackwalking.

Note that ion already avoids this by enabling
masm.enableProfilingInstrumentation() and wrapping every call with the
profiler RAII helper. This patch does the same for baseline:

- It turns on masm.enableProfilingInstrumentation() whenever we generate
  baseline code while the Gecko profiler is enabled.
- Introduces emitProfilerCallSiteInstrumentation() and calls it before
  every baseline JS call opcode so each masm.call records its return
  address. This is a bit different compared to ion (calls masm.callJit
  which handles the profiler call site directly), because it wasn't as
  straightforward as ion to convert masm.call calls into callJit. Also,
  even though that method uses an RAII class, weirdly it doesn't
  actually have anything in its destructor. That's why it's fine to use
  it this way.
- Exposes a MacroAssembler::instrumentProfilerCallSite() helper so we
  can still instrument the profiler call site from baseline.
- Switches baseline’s VM calls to callJit so they too update
  lastProfilingCallSite.

With these changes, the sampler always lands on a real baseline return
address, the existing RetAddr table can map it back to the correct
pc/line, and profiler listings show the actual call site instead of the
top of the function.

I'm adding a test in the following patches as it requires some changes
in the shell.

Differential Revision: https://phabricator.services.mozilla.com/D275595
…dGeckoProfilingStack r=iain

This patch adds line and column number information to the frames in the
return object of readGeckoProfilingStack JS shell function. It will be
needed in the next commit for writing a test for it.

Differential Revision: https://phabricator.services.mozilla.com/D275596
Now that we have fixed the profiler JIT line number attribution
properly, let's add a test to verify this.

This patch simulates the failure case that I was experiencing with the
baseline frames in one of my demo websites. The failure case had a
for-of loop and had a 3-4 calls inside of it that calls different DOM
APIs etc. The line numbers for all of these calls inside the for loop
were attributed to the for loop header itself, assuming because we had
profiler call sites emitted for iterator .next, but not for the others.

This test was failing before my commit that fixes the baseline profiler
call sites.

Differential Revision: https://phabricator.services.mozilla.com/D275597
…eadableStream r=webidl,saschanaz" for causing failures at contenttype.any.worker.html.

This reverts commit 770ee8d.

Revert "Bug 2008613: SendBeacon maximum size fixed to limit at 64K r=dom-core,smaug"

This reverts commit 5a61622.
…a bit more asynchronous. r=gfx-reviewers,geckoview-reviewers,lsalzman,ohall

UiCompositorBridgeParent::RecvRequestScreenPixels() is used by GeckoView
to screenshot the current session (for Fenix's tab thumbnails, etc).

Currently this works by requesting a composite and calling
WebRenderBridgeParent::RequestScreenPixels(). This will generate a
frame for the requested composite, and then call
MaybeCaptureScreenPixels(), which calls WebRenderAPI::Readback() to
capture the pixels.

WebRenderAPI::Readback() was designed to be used with
WebRenderBridgeParent::RecvSnapshot() which must return the snapshot
synchronously. It therefore dispatches a synchronous task to the
renderer thread and performs a render before performing the
readback. Not only that, it also disables webrender debug flags prior
to this render, then re-enables them afterwards, each of which causes
a render. This means it does 3 renders in total, in addition to the
normal render for the frame that we generated.

RecvRequestScreenPixels does not need to return synchronously. Instead
of using WebRenderAPI::Readback this patch therefore posts an
asynchronous message to the render thread to ensure the next rendered
frame is read back, making sure to post this message just *before*
generating the frame rather than just after.

The newly added functions use promises to return the results from the
render thread to WebRenderBridgeParent. And as an additional tidy up
the communication between UiCompositorControllerParent and
WebRenderBridgeParent was also switched to using promises.

Note that the actual readback is still performed using a synchronous
glReadPixels() call. This will be improved upon in subsequent patches.

Differential Revision: https://phabricator.services.mozilla.com/D281493
…r=gfx-reviewers,geckoview-reviewers,lsalzman,ohall

Rather than allocating a Shmem and performing a glReadPixels(),
instead allocate a HardwareBuffer which is bound to a framebuffer via
an EGL image, then blit to this from the main framebuffer. The
hardware buffer and a fence for synchronization are returned to the
child side via file descriptors. This avoids the existing synchronous
glReadPixels, and is more efficient than even an asynchronous
glReadPixels to a PBO would be as it only requires one copy.

This also allows us to handle the y-flip and cropping/scaling on the
GPU rather than performing this on the CPU.

On the client side we map the hardware buffer and perform a final copy
in to the target Bitmap. As the hardware buffer may have a different
stride than the Bitmap we can no longer use the Java function
Bitmap.copyPixelsFromBuffer(). Instead we use the NDK's
AndroidBitmap_getInfo() to determine the Bitmap's stride and memcpy()
line by line if required.

For now we only use RendererOGL::RequestScreenPixels() and related
functions on Android, so we just use the AndroidHardwareBuffer type
directly in the required function and type declarations and hide them
behind ifdefs. If we choose to make use of this infrastructure on
other platforms going forward we can implement a more generic
interface. If possible it would additionally be good to unify this
with the other screenshotting mechanisms (profiler screenshots and
composition recording).

Differential Revision: https://phabricator.services.mozilla.com/D281495
…t` option is passed to `./mach jit-test`. r=sfink DONTBUILD

Refactored this in order to replicate the changes that solved Bug 1933577.

Differential Revision: https://phabricator.services.mozilla.com/D281672
…1b3ff0fcaad7d9 r=pdfjs-reviewers,fluent-reviewers,marco,flod

Differential Revision: https://phabricator.services.mozilla.com/D281772
…. r=jonco

This adds a `JS::BorrowedErrorReport` type and uses it for `ErrorFromException`
and `JS_ErrorFromException`. This avoids problems with CCW nuking because
`BorrowedErrorReport` roots the wrapper's target object instead of the CCW.

Differential Revision: https://phabricator.services.mozilla.com/D281761
…ations" card in new ETP custom settings page. r=mkennedy

Differential Revision: https://phabricator.services.mozilla.com/D281609
…on next load when dismissed. r=home-newtab-reviewers,nbarrett

This was due to a bug in how "data: false" was being interpreted (a false value for `data` on an action causes
it to not actually be dispatched via the Redux store!)

Differential Revision: https://phabricator.services.mozilla.com/D280828
…-newtab-reviewers,fluent-reviewers,omc-reviewers,bolsson,frontend-codestyle-reviewers,nbarrett,emcminn

Differential Revision: https://phabricator.services.mozilla.com/D280829
…customize button expanded. r=home-newtab-reviewers,thecount

Differential Revision: https://phabricator.services.mozilla.com/D280830
… window mechanism. r=home-newtab-reviewers,nbarrett" for causing failures at activity-stream.css.

This reverts commit f51b2a5.

Revert "Bug 2011449 - Part 3: Add CSS rule for variant a and b that keep the customize button expanded. r=home-newtab-reviewers,thecount"

This reverts commit ee8077d.

Revert "Bug 2011449 - Part 2: Add activation window message component. r=home-newtab-reviewers,fluent-reviewers,omc-reviewers,bolsson,frontend-codestyle-reviewers,nbarrett,emcminn"

This reverts commit 2014c0e.

Revert "Bug 2011449 - Part 1: Make it so that newtab messages don't reappear on next load when dismissed. r=home-newtab-reviewers,nbarrett"

This reverts commit faff9b8.
@pull pull bot locked and limited conversation to collaborators Feb 4, 2026
@pull pull bot added the ⤵️ pull label Feb 4, 2026
@pull pull bot merged commit 81cd862 into pixeldevel:main Feb 4, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.