Commit Graph

875068 Commits

Author SHA1 Message Date
Frédéric Wang
c592b5761b Bug 1880928 - Remove last remembered size observer, handle it in Document::DetermineProximityToViewportAndNotifyResizeObservers. r=emilio,layout-reviewers
The CSS Box Sizing specification indicates that last remembered sizes
are recorded "at the time that ResizeObserver events are determined and
delivered" [1].

In bug 1807253, we changed the implementation of when proximity to the
viewport of `content-visibility: auto` nodes are determined and of when
resize observations are broadcast, in order to align with the latest
version of the HTML specification [2]. We continue to use an internal
`Document::mLastRememberedSizeObserver` to update last remembered sizes
but it has been causing issues (e.g. bug 1867090 and bug 1880928) and
could be replaced by a direct update before broadcasting resize
observations.

This is what the current patch is doing. The elements currently observed
by `Document::mLastRememberedSizeObserver` are now stored on a
`Document::mElementsWithLastRememberedSize` hashset and a new function
`Document::UpdateLastRememberedSizes` is called before broadcasting
resize observations, and peforms the work of `LastRememberedSizeCallback`
and of `CalculateBoxSize` (with `aBox=Content_box`).

The only behavior change is in the `while(true)` loop from
`DetermineProximityToViewportAndNotifyResizeObservers`: at each step
we update the last remember sizes for elements of arbitrary depth, and
don't use these depths for calculating `shallowestTargetDepth`. This is
fine, since our `LastRememberedSizeCallback` only records current box
sizes without causing significant side effects (e.g. execution of
JavaScript code) that may require a relayout.

[1] https://drafts.csswg.org/css-sizing-4/#last-remembered
[2] https://html.spec.whatwg.org/#update-the-rendering

Differential Revision: https://phabricator.services.mozilla.com/D202571
2024-02-29 08:50:55 +00:00
Frédéric Wang
d748552981 Bug 1880928 - Add tests for content-visibility update with contain-intrinsic-size. r=cathiechen
Differential Revision: https://phabricator.services.mozilla.com/D202403
2024-02-29 08:50:55 +00:00
Norisz Fay
6545691753 Backed out changeset 0b5a1215fcc4 (bug 1882587) for causing bc failures on browser_address_autofill_nimbus.js CLOSED TREE 2024-02-29 11:03:22 +02:00
Robin Steuber
da2c1e64cc Bug 1882322 - Prevent macOS channel frameworks from being in precomplete file r=jcristau
Differential Revision: https://phabricator.services.mozilla.com/D203054
2024-02-29 08:23:07 +00:00
Robin Steuber
acf0a2f044 Bug 1882322 - Prevent macOS channel frameworks from being in precomplete file r=jcristau
Differential Revision: https://phabricator.services.mozilla.com/D203054
2024-02-29 08:23:07 +00:00
Valentin Gosu
d79969cac4 Bug 1753204 - Add test for unexpected handshake alert retry without 0rtt r=jschanck,necko-reviewers,kershaw
Differential Revision: https://phabricator.services.mozilla.com/D202933
2024-02-29 08:00:49 +00:00
Dennis Jackson
29695cd7ca Bug 1753204 - Retry without 0-RTT after SSL_ERROR_HANDSHAKE_UNEXPECTED_ALERT r=necko-reviewers,valentin
Differential Revision: https://phabricator.services.mozilla.com/D139302
2024-02-29 08:00:48 +00:00
Issam Mani
86760e7be7 Bug 1882587 - Check supportedRegions as well as experiment flags for address autofill. r=dimi
Differential Revision: https://phabricator.services.mozilla.com/D203034
2024-02-29 08:00:01 +00:00
Mozilla Releng Treescript
6a3abeb8b1 no bug - Bumping Firefox l10n changesets r=release a=l10n-bump DONTBUILD CLOSED TREE
es-AR -> 15e31e3f92acf0edc3a74700eef609d52355f016
it -> 422945bdb853be286d83cecfe490e3dce4ae4c2c
uk -> b1d10c63433e7829741dc60aa9f83789cfe3098c
2024-02-29 07:00:19 +00:00
Timothy Nikkel
64e0a7e0fd Bug 1872487. Create less WebRenderLayerScrollData. r=botond
In order to create less WebRenderLayerScrollData currently we use a deferred transform item

https://searchfox.org/mozilla-central/rev/593c49fa812ceb4be45fcea7c9e90d15f59edb70/gfx/layers/wr/StackingContextHelper.h#82

We don't need a WebRenderLayerScrollData for every transform because a lot of transforms don't contain any ASRs, so the created WebRenderLayerScrollData would be useless.

However this optimization can lead to us creating a lot more WebRenderLayerScrollData later if the transform does contain ASRs. For example, if there is a transform, and then inside that is a ASR, and inside the ASR is a lot of small transforms, we end up having to create a WebRenderLayerScrollData for every little transform which don't contain any ASRs. This is doing the opposite of what the optimization intended.

WebRenderLayerScrollData creation happens during the CreateWebRenderCommands phase, so the display list build phase is complete, and we can tell cheaply if a transform contains any ASRs during display list building. So we just record that and use that to inform our decision about when to defer the transform item or not.

This optimization drastically reduces the total number of WebRenderLayerScrollData that we create during a full run of speedometer3 (summing the number created each paint over every paint). In my testing it went from 12-13k to 2-3k. Mostly subtests fell into two buckets: a single digit number of WebRenderLayerScrollData to begin with and this patch didn't change that, and 100 WebRenderLayerScrollData down to single digits after this patch. So the savings are concentrated in a few subtests that hit the described behaviour above.

I compared a profile before and after this patch of 10 runs of speedometer3, this patch saved 100 samples/ms serializing WebRenderLayerScrollData, which was what I expected based on how long serialization took before the patch combined with how many WebRenderLayerScrollData we were avoiding. The whole run took about 100,000 samples/ms, so this should hopefully be good for about 0.1% improvment. There is also potential savings in other areas outside of serialization step but that was a little harder to measure.

Differential Revision: https://phabricator.services.mozilla.com/D197446
2024-02-29 06:46:45 +00:00
Mike Hommey
103c9ce311 Bug 1882619 - Fix removed-files handling to properly keep all entries. r=firefox-build-system-reviewers,nalexander
This line used to be
  self.content += six.ensure_binary(f) + b"\n"
before bug 1751990, but it was accidentally replaced with something that
turns out not to be equivalent at all, and I missed it during review.

Differential Revision: https://phabricator.services.mozilla.com/D203049
2024-02-29 04:33:27 +00:00
KS
1de0d274fc Bug 1861731 - Fix screenshot_on_failure typo in Talos. r=perftest-reviewers,sparky
This patch fixes the logic for --screenshot-on-failure in Talos that was
caught.

Differential Revision: https://phabricator.services.mozilla.com/D202987
2024-02-29 02:46:35 +00:00
KS
69dbf231e6 Bug 1861731 - Add a method to capture screenshots of failing browsertime tests. r=perftest-reviewers,sparky
This patch uses mozscreenshot to take a screenshot of the test right up
to the moment of failure. This should be helpful in diagnosing failures
in CI like benchmark tests (which don't output videos like pageload
tests) as well as pageload tests if they fail before visual metrics can
capture a video/screenshot to output.

Differential Revision: https://phabricator.services.mozilla.com/D202634
2024-02-29 02:46:34 +00:00
Nikki Sharpley
f5f3c4cf15 Bug 1879609 - Add pinned indicator for urls pinned in New Tab r=fxview-reviewers,desktop-theme-reviewers,emilio
- added pin icons to the tab row for tabs pinned in New Tab

Differential Revision: https://phabricator.services.mozilla.com/D201770
2024-02-29 02:26:27 +00:00
Joel Maher
105b74ac3d Bug 1880332 - account for input paths when fuzzy passes * instead of chunks to try. r=ahal,taskgraph-reviewers
Differential Revision: https://phabricator.services.mozilla.com/D202865
2024-02-29 01:18:10 +00:00
Mike Hommey
81a12d0fc3 Bug 1834940 - Add iOS support to client cert modules. r=keeler
Differential Revision: https://phabricator.services.mozilla.com/D179018
2024-02-29 01:01:23 +00:00
Mike Hommey
7e3d0bd409 Bug 1834947 - Divert xcrun so that it outputs the build system's chosen iOS SDK. r=firefox-build-system-reviewers,nalexander
Differential Revision: https://phabricator.services.mozilla.com/D179033
2024-02-29 00:59:09 +00:00
Mike Hommey
434c5a4b41 Bug 1834908 - Reintroduce iOS support in the build system. r=firefox-build-system-reviewers,andi
Differential Revision: https://phabricator.services.mozilla.com/D178998
2024-02-29 00:49:10 +00:00
Kelsey Gilbert
fd1d7488d7 Bug 1878930 - s/RawBuffer/Span/: Remove RawBuffer and unused utils. r=gfx-reviewers,lsalzman
Differential Revision: https://phabricator.services.mozilla.com/D202028
2024-02-29 00:37:30 +00:00
Kelsey Gilbert
362c259495 Bug 1878930 - s/RawBuffer/Span/: TexImage: Use span, fix dtwebgl callers. r=gfx-reviewers,lsalzman
Differential Revision: https://phabricator.services.mozilla.com/D202027
2024-02-29 00:37:30 +00:00
Kelsey Gilbert
56c7f1eafc Bug 1878930 - r/RawBuffer/Span/: TexImage: Don't copy desc. r=gfx-reviewers,lsalzman
Differential Revision: https://phabricator.services.mozilla.com/D202026
2024-02-29 00:37:29 +00:00
Kelsey Gilbert
cc11a296b3 Bug 1878930 - s/RawBuffer/Span/: TexImage: GetRangeFromData. r=gfx-reviewers,lsalzman
Differential Revision: https://phabricator.services.mozilla.com/D202025
2024-02-29 00:37:29 +00:00
Kelsey Gilbert
e876aeb973 Bug 1878930 - s/RawBuffer/Span/: UniformData. r=gfx-reviewers,lsalzman
Differential Revision: https://phabricator.services.mozilla.com/D202024
2024-02-29 00:37:28 +00:00
Kelsey Gilbert
eca2d43154 Bug 1878930 - s/RawBuffer/Span/: ReadPixels. r=gfx-reviewers,lsalzman
Differential Revision: https://phabricator.services.mozilla.com/D202023
2024-02-29 00:37:28 +00:00
Kelsey Gilbert
636fc1a834 Bug 1878930 - s/RawBuffer/Span/: Buffer(Sub)Data, Invalidate(Sub)Framebuffer. r=gfx-reviewers,lsalzman
Differential Revision: https://phabricator.services.mozilla.com/D202022
2024-02-29 00:37:28 +00:00
Nathan LaPre
dbe5ffd60b Bug 1778795: role="form" with empty accessible name returns native role, r=Jamie
The ARIA spec requires that, for certain landmark roles with no author-specified
names, user agents must treat such elements as if no role had been provided.
This revision accomplishes that task by carving out an exception in
ARIATransformRole and ComputeARIARole for roles::FORM, similar to the existing
carveout for roles::REGION. This revision also implements a NameIsEmpty function
which is helpful for checking name emptiness (since we do this in a few places)
without leaving a "name" variable on the stack. Finally, this revision updates a
expected WPT failure (by removing it).

Differential Revision: https://phabricator.services.mozilla.com/D202778
2024-02-29 00:33:10 +00:00
Stanca Serban
d91da7450d Backed out changeset e44602a56930 (bug 1881382) as requested by glandium because it depends on another bug which was also backed out (Bug 1881381). CLOSED TREE 2024-02-29 02:24:11 +02:00
Stanca Serban
bb4e9a634d Merge mozilla-central to autoland 2024-02-29 02:21:34 +02:00
Stanca Serban
bee503e622 Backed out changeset ab08a1a8a9c4 (bug 1881381) as requested by glandium for breaking developer builds. a=backout 2024-02-29 02:15:47 +02:00
Hiroyuki Ikezoe
64f7bf0130 Bug 1882622 - Disable test_ext_browserSettings_overrideDocumentColors.html on Android. r=robwu
Differential Revision: https://phabricator.services.mozilla.com/D203056
2024-02-28 23:51:30 +00:00
Iain Ireland
7e3f0f948a Bug 1879225: Disable narrowing warning for irregexp r=dminor
This is necessary because of an awkward bit of code [here in regexp-nodes.h](ed3c117033/src/regexp/regexp-nodes.h (L360-L363)) that uses a struct initializer to create a RegExpFlags. C++ initializers do not do type conversions, so if we initialize RegExpFlags with an int, then the member field of RegExpFlags must also be an int. V8's RegExpFlags is backed by an int, but we use a uint8_t.

I based the clang/gcc flags on the #pragmas [here](https://searchfox.org/mozilla-central/source/mozglue/tests/TestPrintf.cpp#14-20).

Differential Revision: https://phabricator.services.mozilla.com/D201920
2024-02-28 23:39:07 +00:00
Iain Ireland
a5d7741777 Bug 1879225: Remove obsolete argument r=dminor
The RegExpCompiler stores the flags internally, so there isn't any need to pass them in here. Upstream V8 fixed the API.

Differential Revision: https://phabricator.services.mozilla.com/D201919
2024-02-28 23:39:07 +00:00
Iain Ireland
6661d7f364 Bug 1879225: Rename ByteArray::GetDataStartAddress to ByteArray::begin r=dminor
V8 refactored ByteArray as part of this bug: https://bugs.chromium.org/p/v8/issues/detail?id=14345.

Differential Revision: https://phabricator.services.mozilla.com/D201918
2024-02-28 23:39:06 +00:00
Iain Ireland
97d55a3328 Bug 1879225: Update special-case.cc r=dminor
This is an auto-generated file in V8 that changes very rarely (see https://bugzilla.mozilla.org/show_bug.cgi?id=1624015#c3). I copied this version over from a local build of V8.

Differential Revision: https://phabricator.services.mozilla.com/D201917
2024-02-28 23:39:06 +00:00
Iain Ireland
2b0d5db98b Bug 1879225: Refactor IsFoo methods r=dminor
In [this commit](https://chromium-review.googlesource.com/c/v8/v8/+/4727690), V8 changed its IsFoo predicates from methods into free functions as part of the Tagged<T> work.

At first I was simply going to move the current implementation, but as I was writing a comment to explain why `bool IsByteArray(Object obj) { return true; }` was not as dumb as it looked, I decided that we could do better.

V8's ByteArrays are managed by the GC, and the typecheck can be done by looking at the map (shape). Our implementation of ByteArray is a length-prefixed array allocated by malloc, so we can't check the type the same way, but in debug builds we can stick a magic number in the header and validate that it hasn't been messed with.

We can use a dedicated MagicValue for the exception we throw when interrupting (which maps closely to V8's approach).

Differential Revision: https://phabricator.services.mozilla.com/D201916
2024-02-28 23:39:05 +00:00
Iain Ireland
74cbaf01c4 Bug 1879225: Add Tagged wrapper r=dminor
As part of [this bug](https://bugs.chromium.org/p/v8/issues/detail?id=12710) in which they move object definitions back from Torque to C++, V8 added a Tagged<T> wrapper, which stores a pointer that is low-bit tagged (V8's values are either a 0-tagged small integer or a 1-tagged pointer).

We don't have the same object representation, so we just need a transparent wrapper.

Differential Revision: https://phabricator.services.mozilla.com/D201915
2024-02-28 23:39:05 +00:00
Iain Ireland
4b6053667b Bug 1879225: Add more irregexp support to RegExpFlags r=dminor
V8 started doing more things using RegExpFlags as part of supporting regexp modifiers.

Differential Revision: https://phabricator.services.mozilla.com/D201914
2024-02-28 23:39:04 +00:00
Iain Ireland
123ba7e3f8 Bug 1879225: Add stub JitOption for regexp modifiers r=dminor
This flag gates the V8 implementation of this stage 3 proposal: https://github.com/tc39/proposal-regexp-modifiers

I've left it turned off for now. We can expose it in a separate bug.

Differential Revision: https://phabricator.services.mozilla.com/D201913
2024-02-28 23:39:04 +00:00
Updatebot
d02c8f731f Bug 1879225 - Update irregexp to ec89cca93594ef6ae683d6608904cd5e30378115 r=dminor
Differential Revision: https://phabricator.services.mozilla.com/D201030
2024-02-28 23:39:04 +00:00
Daniel Holbert
1b0bbd49b7 Bug 1882617: Use display:none to suppress remote network connections in WPT mask-computed.html. r=hiro
This test uses various specified `mask` values that reference example.com. If
we let the masked element render, then we're forced to contact example.com to
try to get the mask, and that causes our test harness to abort (since remote
network connections are forbidden, for stability/safety purposes).

Fortunately the test only cares about parsing/serialization, and isn't testing
rendering at all. So we can use display:none to hide the masked element and
make the network connections unnecessary.

Differential Revision: https://phabricator.services.mozilla.com/D203051
2024-02-28 23:04:26 +00:00
Mark Banner
18ffc42fe7 Bug 1880431 - Handle cases where third party search engines (WebExtension based) overlap with and can override the application engine on startup. r=search-reviewers,mcheang
This handles both cases on startup, where an application provided engine is added, or removed from the user's set of engines.

Differential Revision: https://phabricator.services.mozilla.com/D202745
2024-02-28 22:39:05 +00:00
Gregory Pappas
7be77ad683 Bug 1879041 - Fix devtools bustage again. CLOSED TREE
Differential Revision: https://phabricator.services.mozilla.com/D203061
2024-02-28 23:51:50 +00:00
Gregory Pappas
b2a52abd64 Bug 1879041 - Fix devtools failure. CLOSED TREE
Differential Revision: https://phabricator.services.mozilla.com/D203059
2024-02-28 23:04:48 +00:00
Alexandre Lissy
636e377cbf Bug 1847098 - Report library version from filename at crash r=gsvelto
Differential Revision: https://phabricator.services.mozilla.com/D202249
2024-02-28 22:38:44 +00:00
Daisuke Akatsuka
9d1edf90f0 Bug 1882220: Support simple UI weather suggestion r=adw
Differential Revision: https://phabricator.services.mozilla.com/D202786
2024-02-28 22:36:29 +00:00
Stanca Serban
a9a264b155 Backed out changeset 50ce57f9d5c5 (bug 1847098) for causing toolchain build bustages in linux_dumper.h. CLOSED TREE 2024-02-28 23:54:37 +02:00
Alexandre Lissy
0cf18a26bb Bug 1847098 - Report library version from filename at crash r=gsvelto
Differential Revision: https://phabricator.services.mozilla.com/D202249
2024-02-28 21:38:35 +00:00
Kagami Sascha Rosylight
8a3bc14ca4 Bug 1873229 - Add a shutdown blocker for NotificationDB r=asuth
We have two very similar modules right now but with some different behavior:

1. With MOZ_NEW_NOTIFICATION_STORE=True we save the DB via kvstore, which has no shutdown blocker and causes crash when being too late.
2. With MOZ_NEW_NOTIFICATION_STORE=False we save the DB via IOUtils, which does have its shutdown blocker.

Either way there's no shutdown blocker that ensures processing the whole task queue, which poses risk of losing notification data, which is required when notification is clicked by user. This patch adds that.

Unfortunately we don't have a test here as I don't think we have infra for shutdown blocking test.

Differential Revision: https://phabricator.services.mozilla.com/D200042
2024-02-28 21:37:42 +00:00
Julien Wajsberg
8641d3ff30 Bug 1879041 - Fix and clean up the TypeScript types in the devtools performance panel r=canaltinova,profiler-reviewers
I reorganized the existing types and added a few comments so that a
reader can match each defined type to a specific Firefox internal object.

Depends on D200552

Differential Revision: https://phabricator.services.mozilla.com/D200932
2024-02-28 21:29:40 +00:00
Gregory Pappas
1dfbfcfd07 Bug 1878401 - part 7 - Pass BrowsingContext to nsIFilePicker::Init in tests r=extension-reviewers,settings-reviewers,credential-management-reviewers,anti-tracking-reviewers,devtools-reviewers,sgalich,pbz,nchevobbe,zombie,migration-reviewers,mconley
Depends on D200551

Differential Revision: https://phabricator.services.mozilla.com/D200552
2024-02-28 21:29:39 +00:00