Skip to content

Add scroll-direction state and updated overflowing state to scrollable in the explainer #12130

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 2 commits into
base: main
Choose a base branch
from

Conversation

tursunova
Copy link

[css-conditional-5] Explainer for the proposal in #6400 (comment).

@tursunova tursunova requested a review from lilles April 28, 2025 14:53
@tursunova tursunova changed the title Add scroll-direction state and updated overflowing state to scrollable Add scroll-direction state and updated overflowing state to scrollable in the explainer Apr 28, 2025
#### Workaround

The current workaround solution to style elements based on scroll direction is by using `transition-delay` trick, see
[Solved by CSS Scroll-Driven Animations: hide a header when scrolling down, show it again when scrolling up](https://www.bram.us/2024/09/29/solved-by-css-scroll-driven-animations-hide-a-header-when-scrolling-up-show-it-again-when-scrolling-down/). However, in this approach, if a user was still pressing on the scrollbar after scrolling to the specific direction the `scroll-direction` would be considered as `none` since the scrollbar wasn't moving anymore. This behaviour is inconsistent with [the completed state of scrolling](https://drafts.csswg.org/cssom-view/#scroll-completed).
Copy link
Member

Choose a reason for hiding this comment

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

However, in this approach, if a user was still pressing on the scrollbar after scrolling to the specific direction the scroll-direction would be considered as none since the scrollbar wasn't moving anymore.

This sentence has an assumption about when the scroll direction is updated that is not described in this doc.

Nit: "scrolling to the specific direction" -> "scrolling in the specific direction"

Copy link
Author

Choose a reason for hiding this comment

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

Added open questions with options about when scroll-direction should be none.

@tabatkins
Copy link
Member

tabatkins commented Apr 29, 2025

The design assumption here seems to be that the query only returns the direction of a currently executing scroll; once the scroll is done, it returns to "none". But I don't think that actually addresses the use-cases linked - the big one is making a header show fully at first, semi-hide when you start scrolling down so you have more space to read the page content, then reveal itself again when you scroll up.

This suggests that it needs to reflect the direction of the current or most recent scroll operation. If you scroll down and then stop scrolling and read for a bit, the author would want it to still reflect down, so the header stays semi-hidden. It would probably never return to none.

We should also make sure it does sufficiently solve this case. Like, the simplest code I could imagine an author using is:

.header {
	translate: 0px;
	transition: translate 1s ease-in-out;
}
@container scroll-state(scroll-direction: down) {
	.header {
		translate: -50%;
	}
}

This would make the header reveal itself at first, and when the user starts scrolling up, but slide itself up (presumably into the unscrollable region) if they've been scrolling down.


Another question - do we want to remember the scroll direction of each axis independently, or together? Like, given the code above, I suspect the author wants the header's shown/hidden state to care only about the most recent block-axis scroll; if the user scrolls sideways it shouldn't stop matching down.

Are there use-cases for caring about the most recent scroll regardless of axis? If there are, maybe we can let an author opt into that with another keyword, like scroll-direction: down most-recent, so that the simpler version scroll-direction: down can just care about the direction of the most recent scroll in that axis.


The JS solutions for this sort of header-autohiding also often track the scroll a little - if the header is currently hidden, and you start scrolling up a little, it often doesn't immediately pop into fully showing, but rather just slides out a little, tracking with the amount of scroll until it's fully revealed. I don't think there's a clean way to do that with just this feature; that seems like a scroll-driven animation instead. But we should look into how that would be done, to make sure authors that want that feature don't still have to just go with a full-JS solution instead.

@tursunova
Copy link
Author

Thanks @tabatkins , this makes sense. Then few open questions with this approach:

  • Since now the value reflects the most recent scroll in that direction, value none becomes unreachable expect of the initial state, should we leave it then or should we remove it? If we decide to remove none:
  1. We can have inline-start and block-start as initial values.
  2. Values X, Y, block and inline will always match, so there would be no point of having them.
  3. if we have latin script and only vertical scroller, should we match inline-start initially?
  • As far as I understood, if we want to match the most recent scroll direction (not none) once we stop scrolling, then the value reflects the most recent scroll in that direction, e.g. if we scrolled down and then right, scroll-direction: bottom will still match after scrolling right. But then is there a use case when we want to hide/show some vertical scrolling specific content once we start scrolling horizontally? Then we might have 2 values, let's say bottom and latest-bottom, where one will still match after scrolling horizontally and another will only match if latest scrolling (not latest vertical scrolling) was bottom.

aarongable pushed a commit to chromium/chromium that referenced this pull request May 12, 2025
Keep `none` value until resolution of these questions:
w3c/csswg-drafts#12130 (comment)

Bug: 414556050
Change-Id: I6c3c077e236de45de662ba02ea005d7cccf8946e
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6536510
Commit-Queue: Munira Tursunova <[email protected]>
Reviewed-by: Rune Lillesveen <[email protected]>
Cr-Commit-Position: refs/heads/main@{#1458778}
BloodLind added a commit to Silent-Team/chromium that referenced this pull request May 12, 2025
* [UNO-d] Revert Guest mode colors

This CL reverts the Guest mode colors to the used for the Normal state
(no text). This was agreed on with the UX team after changes done
crrev.com/c/6509050 (to fill all the pills). The Guest mode will remain
an exception from this rule.

Bug: 414333757, 415071745
Change-Id: I353b666b234a1955e38bdae42a89155b4a90511f
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6530827
Reviewed-by: David Roger <[email protected]>
Commit-Queue: Ernest Nguyen Hung <[email protected]>
Cr-Commit-Position: refs/heads/main@{#1458711}

* Roll Chrome Mac Arm PGO Profile

Roll Chrome Mac Arm PGO profile from chrome-mac-arm-main-1747029142-92a65032af9b291bc993e5044908c9fa22cdc410-6e9453de1be37ab16eb07df5f5381a853f5d5390.profdata to chrome-mac-arm-main-1747036388-7577336db2baa3628af02328bb04d685eb7de7fc-6839328ba05c2600629ce83fbf784b29574f9b4c.profdata

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/pgo-mac-arm-chromium
Please CC [email protected],[email protected] on the revert to ensure that a human
is aware of the problem.

To file a bug in Chromium main branch: https://bugs.chromium.org/p/chromium/issues/entry

To report a problem with the AutoRoller itself, please file a bug:
https://issues.skia.org/issues/new?component=1389291&template=1850622

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md

Cq-Include-Trybots: luci.chrome.try:mac-chrome
Tbr: [email protected]
Merge-Approval-Bypass: Chrome autoroller
Change-Id: I45dca291af4ecaae3bdcf538624b982b9b158683
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6535902
Commit-Queue: chromium-autoroll <[email protected]>
Bot-Commit: chromium-autoroll <[email protected]>
Cr-Commit-Position: refs/heads/main@{#1458712}

* Remove runtime flag for anchor-size() in margins/insets

This flag has been stable since M132.

Bug: 346521300
Change-Id: I129ea5e76fb358316c044869cbe87fd2cf1a10e5
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6533297
Reviewed-by: Anders Hartvoll Ruud <[email protected]>
Commit-Queue: Rune Lillesveen <[email protected]>
Cr-Commit-Position: refs/heads/main@{#1458713}

* Update histogram expirations

* `Renderer.Font.PrimaryFont.*`
* `Hyphenation.Open.*`
* `WebCore.Document.execCommand`
* `WebCore.Editing.Commands`

Fixed: 407543365, 407543979, 407543007, 407543879
Change-Id: Ia4aadf500429f193e63b8e9d59bd4dc9faebf5a1
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6520759
Auto-Submit: Koji Ishii <[email protected]>
Reviewed-by: Simon Ziegltrum <[email protected]>
Reviewed-by: Chris Harrelson <[email protected]>
Commit-Queue: Simon Ziegltrum <[email protected]>
Cr-Commit-Position: refs/heads/main@{#1458714}

* Roll Chrome Mac PGO Profile

Roll Chrome Mac PGO profile from chrome-mac-main-1746985189-e286f4e486256fc776936039176ac0a58ffd4ac9-e6e04c7e51c7d34eadc1c8854bccd6e24a1fd98a.profdata to chrome-mac-main-1747029142-e2474329ecfaff735404a5e7de6aa2c31ca2c90a-6e9453de1be37ab16eb07df5f5381a853f5d5390.profdata

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/pgo-mac-chromium
Please CC [email protected],[email protected] on the revert to ensure that a human
is aware of the problem.

To file a bug in Chromium main branch: https://bugs.chromium.org/p/chromium/issues/entry

To report a problem with the AutoRoller itself, please file a bug:
https://issues.skia.org/issues/new?component=1389291&template=1850622

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md

Cq-Include-Trybots: luci.chrome.try:mac-chrome
Tbr: [email protected]
Merge-Approval-Bypass: Chrome autoroller
Change-Id: I1f00f6ec8b2043ca77a0a4761c9322bdbed3b24f
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6536037
Bot-Commit: chromium-autoroll <[email protected]>
Commit-Queue: chromium-autoroll <[email protected]>
Cr-Commit-Position: refs/heads/main@{#1458715}

* build: Format build/config/compiler/BUILD.gn

Change-Id: I60d1db16139c31348e3df75868f90fb7927855d9
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6535054
Auto-Submit: Takuto Ikuta <[email protected]>
Commit-Queue: Takuto Ikuta <[email protected]>
Reviewed-by: Fumitoshi Ukai <[email protected]>
Cr-Commit-Position: refs/heads/main@{#1458716}

* Update OpticalCharacterRecognizer large image test.

Since the test is a bit slow, disable the wait timeout and disable the
test on DEBUG and ASAN builds.
The test is now enabled on Mac in general.

AX-Relntoes: n/a
Bug: 408145905
Change-Id: I9a508c3353bdc67422e5bb85620846c192e53b1d
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6530101
Commit-Queue: Ramin Halavati <[email protected]>
Reviewed-by: Greg Thompson <[email protected]>
Cr-Commit-Position: refs/heads/main@{#1458717}

* Add a CHECK and a flag before IntegrityPolicy::AllowRequest call

As part of the conclusions/fix for the crash we're seeing in [1],
this CL adds a CHECK and an (enabled) flag before
IntegrityPolicy-specific logic.


[1] https://issues.chromium.org/issues/416213973#comment13

Bug: 416213973
Change-Id: I7d323a6cefcb9e4d30151a9521522dc473302189
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6530421
Commit-Queue: Yoav Weiss (@Shopify) <[email protected]>
Reviewed-by: Antonio Sartori <[email protected]>
Cr-Commit-Position: refs/heads/main@{#1458718}

* [signin][LiveTests] Migrate LiveSignInTest to UNO

I could repro the failure locally and verified that the fix works
on my machine.
This test is not run on trybots.

Fixed: 406478033
Change-Id: Iccfaf7f1a0bfe243fbd3024a0953098b5d9c7e45
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6509028
Commit-Queue: David Roger <[email protected]>
Reviewed-by: Amelie Schneider <[email protected]>
Cr-Commit-Position: refs/heads/main@{#1458719}

* [Autofill][Consolidation] Guard showing suggestions with feature

This CL introduces the kAutofillAndPasswordsInSameSurface feature.
If that feature is off, the AutofillAgent continues to use the
PasswordAutofillAgent to display suggestions and passes an std::nullopt
to the AutofillManager.
If the new feature is turned on, it passes the request to show passwords
as new, optional parameter to the AutofillManager. It also prevents the
passwordAutofillAgent from showing the passwords.

In future CLs, this allows the AutofillManager to trigger showing the
password surface when it's most suitable. Until then, no password will
show.

Design: go/apdc-dd
Feature: AutofillAndPasswordsInSameSurface
Fixed: 408967803
Bug: 399131928
Change-Id: If7080bf3c7c4354af5d4c0ed3a4cda87367ead4c
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6458640
Commit-Queue: Friedrich Hauser <[email protected]>
Reviewed-by: Christoph Schwering <[email protected]>
Cr-Commit-Position: refs/heads/main@{#1458720}

* Preserve the user's line wrapping preference for view-source pages

This patch allows preserving the user's line wrapping preference for
view source pages when the "Line wrapping" checkbox is toggled. This is
made possible by the newly-introduced PersistentRendererPrefsService,
which serves as as communication bridge between blink and chrome,
allowing the preference to be stored in the most appropriate profile.

Fixed: 40161918
Change-Id: I315f10efaf7c08f288ba70e2b3103f0d84c8ca1c
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6477032
Reviewed-by: Jan Keitel <[email protected]>
Reviewed-by: Alex Ilin <[email protected]>
Commit-Queue: Alex Ilin <[email protected]>
Cr-Commit-Position: refs/heads/main@{#1458721}

* Roll Skia from cb1646ca59db to 9f9e1f37917e (1 revision)

https://skia.googlesource.com/skia.git/+log/cb1646ca59db..9f9e1f37917e

2025-05-12 [email protected] Roll ANGLE from b729fb74e68b to db33baf4eb0d (9 revisions)

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/skia-autoroll
Please CC [email protected],[email protected] on the revert to ensure that a human
is aware of the problem.

To file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry
To file a bug in Chromium: https://bugs.chromium.org/p/chromium/issues/entry

To report a problem with the AutoRoller itself, please file a bug:
https://issues.skia.org/issues/new?component=1389291&template=1850622

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md

Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:gpu-fyi-cq-android-arm64;luci.chromium.try:linux-blink-rel;luci.chromium.try:linux-chromeos-compile-dbg;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;luci.chromium.try:mac14.arm64-blink-rel;luci.chromium.try:win_optional_gpu_tests_rel
Cq-Do-Not-Cancel-Tryjobs: true
Bug: None
Tbr: [email protected]
Test: Test: Test: ComputeShaderTest.AdvancedSyncVertexArray
Change-Id: If9a2ba3daca70521bfe724094a58f594c39c3008
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6536550
Commit-Queue: chromium-autoroll <[email protected]>
Bot-Commit: chromium-autoroll <[email protected]>
Cr-Commit-Position: refs/heads/main@{#1458722}

* [iOS]Stop the SigninCoordinator before releasing it

Many CHECK in dealloc comes from the self.signinCoordinator being
assigned to a non nil value while it already had an object assigned to
it. This change ensure that the current coordinator is stopped before
being deallocated.

Bug: 373197390
Change-Id: Ifcc773bc9969ad9c1e8154f42f7f8d812b578be1
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6517593
Reviewed-by: Mark Cogan <[email protected]>
Commit-Queue: Mark Cogan <[email protected]>
Auto-Submit: Arthur Milchior <[email protected]>
Cr-Commit-Position: refs/heads/main@{#1458723}

* [Kiosk] Wait for Navigation if url is currently empty

In KioskBrowserWindowHandler, if the url of the newly created browser is
empty, we wait for the first navigation to start to get the url. This
can happen, because there's a race between the window being created and
the navigation to land.

Bug: 406450838
Test: TODO
Change-Id: I885b412f2c1c87f0e3fed4797036afa8baff96f5
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6494696
Reviewed-by: Jeroen Dhollander <[email protected]>
Commit-Queue: Ben Franz <[email protected]>
Reviewed-by: Stefan Zager <[email protected]>
Cr-Commit-Position: refs/heads/main@{#1458724}

* Remove CSSLogicalOverflow runtime flag

The feature has been stable for more than two milestones.

Bug: 41489999
Change-Id: I7d777cbb11f9b196756cfc6992c043888bef7196
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6532245
Reviewed-by: Anders Hartvoll Ruud <[email protected]>
Commit-Queue: Rune Lillesveen <[email protected]>
Cr-Commit-Position: refs/heads/main@{#1458725}

* [UNO-d] Add collapsing sync promo when user turns sync on

It adds the history sync opt-in identity pill promo collapsing whenever
the user turns sync on. This is needed to prevent from showing the promo
when the user turns sync on from a different entry point (e.g.
settings).

Bug: 407708165
Change-Id: Ifcf9ef77b0953e645a7360991520f011e1c7a8e9
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6536507
Reviewed-by: David Roger <[email protected]>
Commit-Queue: Ernest Nguyen Hung <[email protected]>
Cr-Commit-Position: refs/heads/main@{#1458726}

* Roll Chrome Android ARM64 PGO Profile

Roll Chrome Android ARM64 PGO profile from chrome-android64-main-1747032533-172255c5731d87aa187e099011ced20903eec3de-306f6953a9117332a534218c97dd711434d81af8.profdata to chrome-android64-main-1747036366-c2131c3c68511c20492cdd22446fd8ebf59f6691-2f6c50e530a1787effec74a34da173489562d059.profdata

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/pgo-android-arm64-chromium
Please CC [email protected],[email protected] on the revert to ensure that a human
is aware of the problem.

To file a bug in Chromium main branch: https://bugs.chromium.org/p/chromium/issues/entry

To report a problem with the AutoRoller itself, please file a bug:
https://issues.skia.org/issues/new?component=1389291&template=1850622

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md

Tbr: [email protected]
Merge-Approval-Bypass: Chrome autoroller
Change-Id: Ia47735cb3183216bae70713e10a5b98b1af829a9
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6536394
Bot-Commit: chromium-autoroll <[email protected]>
Commit-Queue: chromium-autoroll <[email protected]>
Cr-Commit-Position: refs/heads/main@{#1458727}

* Roll Boca App from 22NOYn0w-Jzf-o2sl... to 4rIcnAZG8n0o36G3b...

Release_Notes: http://go/boca_app-x20/relnotes/Main/boca_app_202505120100_RC00.html

https://chrome-infra-packages.appspot.com/p/chromeos_internal/apps/boca_app/app/+/4rIcnAZG8n0o36G3bDtLpFEflf6VI7sHbs9dXlr0bkMC

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://skia-autoroll.corp.goog/r/boca-app-chromium
Please CC [email protected],[email protected],[email protected],[email protected] on the revert to ensure that a human
is aware of the problem.

To file a bug in Boca App: https://b.corp.google.com/issues?q=status:open%20componentid:1568002

To report a problem with the AutoRoller itself, please file a bug:
https://issues.skia.org/issues/new?component=1389291&template=1850622

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md

Bug: None
Tbr: [email protected],[email protected],[email protected]
Change-Id: I09cdc995137f2b31711613b79449faedde54d477
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6536547
Commit-Queue: chromium-internal-autoroll <chromium-internal-autoroll@skia-corp.google.com.iam.gserviceaccount.com>
Bot-Commit: chromium-internal-autoroll <chromium-internal-autoroll@skia-corp.google.com.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/main@{#1458728}

* Roll DevTools Frontend from cd97a0812ef2 to 3a15a39f3364 (1 revision)

https://chromium.googlesource.com/devtools/devtools-frontend.git/+log/cd97a0812ef2..3a15a39f3364

2025-05-12 devtools-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com Update DevTools DEPS (trusted)

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/devtools-frontend-chromium
Please CC [email protected],[email protected] on the revert to ensure that a human
is aware of the problem.

To report a problem with the AutoRoller itself, please file a bug:
https://issues.skia.org/issues/new?component=1389291&template=1850622

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md

Bug: None
Change-Id: I32e7e25a386beac5a8ad9a35a61b7bfd8007af7f
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6535901
Commit-Queue: chromium-autoroll <[email protected]>
Bot-Commit: chromium-autoroll <[email protected]>
Cr-Commit-Position: refs/heads/main@{#1458729}

* Update Breakpad documentation reference to Crashpad

Replaced outdated link to using_breakpad_with_content_shell.md with
updated Crashpad-based equivalent using_crashpad_with_content_shell.md,
to reflect the current crash handling mechanism.

https://chromium-review.googlesource.com/c/chromium/src/+/1157685

Bug: None
Change-Id: Ia6f418859d20c450a78d83004cf4e845e0212a4a
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6521648
Commit-Queue: Euisang Lim <[email protected]>
Reviewed-by: Peter Beverloo <[email protected]>
Reviewed-by: Euisang Lim <[email protected]>
Cr-Commit-Position: refs/heads/main@{#1458730}

* [iOS] Updates GetAvatarPrimitive

Change-Id: Ifc02cb167687ad3986220537fe0f1a983ca09f55
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6535685
Reviewed-by: Sylvain Defresne <[email protected]>
Commit-Queue: Sylvain Defresne <[email protected]>
Auto-Submit: Ewann Pellé <[email protected]>
Cr-Commit-Position: refs/heads/main@{#1458731}

* [ios] Enable -Wobjc-property-assign-on-object-type

This CL enables -Wobjc-property-assign-on-object-type to clang to show
warnings when a property to an Objective-C object has an assign
attribute.
Context:
https://groups.google.com/a/chromium.org/g/clang/c/XArDbruz_wA

Disable the flag material_components_ios for now since it has the
warning and it prevents from building Chromium.

Bug: 411386579
Change-Id: I3ee467996828e35d6b0c39866e1cbd2dc61202a9
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6512551
Commit-Queue: Asami Doi <[email protected]>
Reviewed-by: Sylvain Defresne <[email protected]>
Reviewed-by: Nico Weber <[email protected]>
Auto-Submit: Asami Doi <[email protected]>
Cr-Commit-Position: refs/heads/main@{#1458732}

* [iOS][Sync] Add infobar impression histogram split by trigger logic

This CL extends existing Sync.SyncErrorInfobarDisplayed2 histogram by a
adding a suffix split by triggering logic (either because of opening a
new tab or loading a page with a password form).

The total count (by any trigger) is still logged (empty suffix).

Bug: 408165259
Change-Id: Ic7d60d2e967823559a3115d98b439f94ee1b7046
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6526046
Commit-Queue: Rafał Godlewski <[email protected]>
Reviewed-by: Mikel Astiz <[email protected]>
Reviewed-by: Rushan Suleymanov <[email protected]>
Cr-Commit-Position: refs/heads/main@{#1458733}

* Autoshard chromium/src test suites

This is an automated CL generated by the autosharder.
Optimal shard counts for test suites are calculated by querying recent
runtimes.

The build that created this CL was https://ci.chromium.org/b/8715089077216193281

[email protected]

Ignore-Freeze: True
Change-Id: I88ef53801876e7c38662afeaaeffaf24c896d238
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6536128
Commit-Queue: chromium-autosharder@chops-service-accounts.iam.gserviceaccount.com <chromium-autosharder@chops-service-accounts.iam.gserviceaccount.com>
Bot-Commit: Rubber Stamper <[email protected]>
Commit-Queue: Rubber Stamper <[email protected]>
Auto-Submit: chromium-autosharder@chops-service-accounts.iam.gserviceaccount.com <chromium-autosharder@chops-service-accounts.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/main@{#1458734}

* [ios] Clear FakeWebState's UserData at the end of the destructor

As done in WebStateImpl, destroy all UserData at the end of the
destructor, ensuring that the vtable is still valid when those
objects are destroyed and thus it is safe to call method on the
WebState in the UserData's destructor.

This is a followup to https://crrev.com/c/6439012.

Bug: 409299519
Change-Id: Ib9da2402b38c58be22dff7dc04ed9c91911f7d79
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6519712
Auto-Submit: Sylvain Defresne <[email protected]>
Reviewed-by: Mark Cogan <[email protected]>
Commit-Queue: Mark Cogan <[email protected]>
Cr-Commit-Position: refs/heads/main@{#1458735}

* Reland "Fix serialization of fragment-only url()s"

This is a reland of commit d2ec9fec68a3a418f70ef33b3ed944e1e72dff23

Original change's description:
> Fix serialization of fragment-only url()s
>
> This essentially aligns serialization between CSSImageValue and
> CSSURIValue - where the former, or rather users of the former, already
> handle fragment-only url()s.
>
> This allows dropping CSSImageValue::ComputedCSSValueMaybeLocal(), which
> was used by StyleMaskSourceImage, in favor of
> CSSImageValue::ComputedCSSValue().
>
> Fixed: 41473212
> Change-Id: I000c2869325bb379f4ef4f82199dd1c041ddefc6
> Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6512818
> Reviewed-by: Rune Lillesveen <[email protected]>
> Commit-Queue: Fredrik Söderquist <[email protected]>
> Cr-Commit-Position: refs/heads/main@{#1456802}

Change-Id: Ia057afebd8543002b29d16d54e636c9cd9e5b6d2
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6530404
Auto-Submit: Fredrik Söderquist <[email protected]>
Reviewed-by: Rune Lillesveen <[email protected]>
Commit-Queue: Rune Lillesveen <[email protected]>
Cr-Commit-Position: refs/heads/main@{#1458736}

* Roll Chrome Win32 PGO Profile

Roll Chrome Win32 PGO profile from chrome-win32-main-1746996658-1d10edb2fab6e35664b7d7c2a86901b3f22c7ff3-6d18a511a4bd3fe7184e30d8ba793cbb4864e0b2.profdata to chrome-win32-main-1747018210-cae43c07cb16fafe686dc0f6f00516ded7439460-1a403232281b462d1ac30d380312c60357bd5fae.profdata

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/pgo-win32-chromium
Please CC [email protected],[email protected] on the revert to ensure that a human
is aware of the problem.

To file a bug in Chromium main branch: https://bugs.chromium.org/p/chromium/issues/entry

To report a problem with the AutoRoller itself, please file a bug:
https://issues.skia.org/issues/new?component=1389291&template=1850622

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md

Cq-Include-Trybots: luci.chrome.try:win-chrome
Tbr: [email protected]
Merge-Approval-Bypass: Chrome autoroller
Change-Id: Ic485f6d8fbccb446528b3561b8c46cb3e916d795
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6535741
Bot-Commit: chromium-autoroll <[email protected]>
Commit-Queue: chromium-autoroll <[email protected]>
Cr-Commit-Position: refs/heads/main@{#1458737}

* [Android] Always populate accounts in identity_manager

Bug: 373290337
Change-Id: I1f387d41047d569d248d09dcf83eadccb2241511
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6478954
Reviewed-by: Boris Sazonov <[email protected]>
Commit-Queue: Tanmoy Mollik <[email protected]>
Cr-Commit-Position: refs/heads/main@{#1458738}

* Roll ANGLE from db33baf4eb0d to 8aa292509838 (1 revision)

https://chromium.googlesource.com/angle/angle.git/+log/db33baf4eb0d..8aa292509838

2025-05-12 [email protected] Roll Chromium from ba1762590c1d to 306f6953a911 (681 revisions)

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/angle-chromium-autoroll
Please CC [email protected],[email protected] on the revert to ensure that a human
is aware of the problem.

To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry
To file a bug in Chromium: https://bugs.chromium.org/p/chromium/issues/entry

To report a problem with the AutoRoller itself, please file a bug:
https://issues.skia.org/issues/new?component=1389291&template=1850622

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md

Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;luci.chromium.try:win_optional_gpu_tests_rel;luci.chromium.try:linux-swangle-try-x64;luci.chromium.try:win-swangle-try-x86
Bug: None
Tbr: [email protected]
Change-Id: I73731a2ce99e7b826c5375b2e841a600e864ac55
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6535903
Commit-Queue: chromium-autoroll <[email protected]>
Bot-Commit: chromium-autoroll <[email protected]>
Cr-Commit-Position: refs/heads/main@{#1458739}

* [B4B] Fix Batch upload promo content to use all the available space

Make the promo content use 100% of the width available, in case the
description does not use it by default.

Mainly affects the Close button positioning (on the right side of the
promo):
Before: https://screenshot.googleplex.com/C4J4uESgjrjvxMM
After: https://screenshot.googleplex.com/8asAnw25B4kpRxM

Bug: 411439295
Change-Id: I787e8a513cf9958186a22fe2324a9a5d4a48e859
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6533679
Reviewed-by: David Roger <[email protected]>
Commit-Queue: Ryan Sultanem <[email protected]>
Cr-Commit-Position: refs/heads/main@{#1458740}

* [B4B] Fix chrome:bookmarks in Incognito mode

http://crrev.com/c/6512972 recently introduced observation on the
IdentityManager and the SyncService, which are not available in
Incognito mode, without having a null check.

chrome:bookmarks is expected to be usable in Incognito Mode.

Fixed: 416790233
Change-Id: I25f1c0027f6236aed21790c3a623e50d1b0d75f6
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6533261
Commit-Queue: Ryan Sultanem <[email protected]>
Reviewed-by: David Roger <[email protected]>
Cr-Commit-Position: refs/heads/main@{#1458741}

* Roll clank/internal/apps from df8aed04389c to aafe4fa62195 (1 revision)

https://chrome-internal.googlesource.com/clank/internal/apps.git/+log/df8aed04389c..aafe4fa62195

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://skia-autoroll.corp.goog/r/clank-apps-chromium-autoroll
Please CC [email protected],[email protected] on the revert to ensure that a human
is aware of the problem.

To report a problem with the AutoRoller itself, please file a bug:
https://issues.skia.org/issues/new?component=1389291&template=1850622

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md

Bug: chromium:385309416
Tbr: [email protected]
No-Try: true
Change-Id: Idf759168c0c3103f364d1b8a0326a3612c95d2a5
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6536687
Bot-Commit: chromium-internal-autoroll <chromium-internal-autoroll@skia-corp.google.com.iam.gserviceaccount.com>
Commit-Queue: chromium-internal-autoroll <chromium-internal-autoroll@skia-corp.google.com.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/main@{#1458742}

* [iOS][LastVisited] Force VoiceOver focus on the subpage title

Fixed: 399196966
Change-Id: Ib6a34793d67d47d2dd8c873c1dc1b5f7a33929e9
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6533518
Reviewed-by: Ewann Pellé <[email protected]>
Commit-Queue: Filipa Senra <[email protected]>
Cr-Commit-Position: refs/heads/main@{#1458743}

* HttpStreamPool: Notify Jobs if available QUIC session exists after endpoint update

A QUIC session could become available for a destination outside
HttpStreamPool::AttemptManager::QuicAttempt, e.g., when an existing
QUIC session received an HTTP/3 Origin frame. In such case,
AttemptManager should use the existing session. Ideally we should
notify in-flight QuicAttempts when an existing QUIC session receives
an HTTP/3 Origin frame, but there is no such mechanism right now.
As a stopgap, this CL changes AttemptManager to check a matching QUIC
session and use the session if exists for notifying Jobs. Before
this CL, AttemptManager didn't create QuicHttpStream even when
it found a matching QUIC session in
CanUseExistingQuicSessionAfterEndpointChanges().

Also modify SPDY related logic for consistency with QUIC related logic.

Bug: 416364483
Change-Id: Id4df8ce07cc0393073d428d645933dd5748d95b9
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6528610
Commit-Queue: Kenichi Ishibashi <[email protected]>
Reviewed-by: Nidhi Jaju <[email protected]>
Cr-Commit-Position: refs/heads/main@{#1458744}

* Clean up code to wipe WEB_APK DataTypeStore

This code was added to clean up data that might have been left behind
due to a past bug. It has now been around long enough that all the
leftover data should've been cleaned up, so the cleanup logic can be
removed now.

This CL is effectively a partial revert of https://crrev.com/c/5868109.

Fixed: 365978267
Change-Id: I9c022ad023265304b4995a732b0f9a6960119f77
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6534161
Reviewed-by: Mahmoud Rashad <[email protected]>
Commit-Queue: Marc Treib <[email protected]>
Cr-Commit-Position: refs/heads/main@{#1458745}

* [Installer Downloader] Remove delegate dependency on c/b/infobar

Currently the Installer Downloader Infobar delegate depend on c/b by
using the ConfirmInfoBarCreator and c/b/ui. Since this code should move
under c/b, that cause a cycle dependency.

This CL remove the dependency on the helper in the c/b which is not
needed for win only infobar instantiation.

Change-Id: I3dfd352322d85b37742ac3dbd57164d53ca4506b
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6530826
Reviewed-by: Greg Thompson <[email protected]>
Commit-Queue: Daniel Soromou <[email protected]>
Reviewed-by: Kaan Alsan <[email protected]>
Cr-Commit-Position: refs/heads/main@{#1458746}

* HttpStreamPool: Refactor existing QUIC session checks

This is a follow-up of crrev.com/c/6528610. To reduce duplicated
QuicSessionPool::FindExistingSession(), this CL:
- Pass a session when AttemptManager::QuicAttempt succeeded
- Change QuicSessionAttempt to set an existing session if exists,
  instead of resetting its `session_`.
- Change QuicSessionPool's HasMatchingIpSession() and
  HasMatchingIpSessionForServiceEndpoint() to return a session if
  exists.

Bug: 416364483
Change-Id: I0e32253049922930bdc9f03bb95d125926a4cea5
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6532445
Commit-Queue: Kenichi Ishibashi <[email protected]>
Reviewed-by: Nidhi Jaju <[email protected]>
Cr-Commit-Position: refs/heads/main@{#1458747}

* compute pressure: Calculate ownContributionEstimate

`ownContributionEstimate` provides the information on how much the
rendering process is contributing to the current compute pressure.
It is only an estimate.

This path is the first patch of a two patches patchset.

This patch implements the implementation specific part of spec
changes[1]. It includes the changes in //services and //content

OwnContributionEstimate is calculated in //content/browser, because
it is a logical place where we can have the concept of process.
To calculate the own contribution estimate, the global cpu_utilization,
from service::mojom::PressureUpdate is used as well as the cumulative
CPU usage for the process under scrutiny.
The cumulative CPU usage is available by using Process::ProcessMetrics
class.

The ownContributionEstimate value exposition to //Blink or the WebAPI,
as well as the CDP and testdriver changes are addressed in the second
patch.

[1] https://w3c.github.io/compute-pressure/?experimental=1#the-owncontributionestimate-attribute

Bug: 402033762
Change-Id: I63af1835e011297669859f68b78300f69e46857d
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6309002
Reviewed-by: Mike West <[email protected]>
Commit-Queue: Arnaud Mandy <[email protected]>
Reviewed-by: Reilly Grant <[email protected]>
Reviewed-by: Yang Guo <[email protected]>
Cr-Commit-Position: refs/heads/main@{#1458748}

* Roll Chrome Android ARM64 PGO Profile

Roll Chrome Android ARM64 PGO profile from chrome-android64-main-1747036366-c2131c3c68511c20492cdd22446fd8ebf59f6691-2f6c50e530a1787effec74a34da173489562d059.profdata to chrome-android64-main-1747039901-591ce811687dfd7ed776c21e1c283a40b5eb1c61-77456a23076cf03c843109585d96a2c681472af4.profdata

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/pgo-android-arm64-chromium
Please CC [email protected],[email protected] on the revert to ensure that a human
is aware of the problem.

To file a bug in Chromium main branch: https://bugs.chromium.org/p/chromium/issues/entry

To report a problem with the AutoRoller itself, please file a bug:
https://issues.skia.org/issues/new?component=1389291&template=1850622

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md

Tbr: [email protected]
Merge-Approval-Bypass: Chrome autoroller
Change-Id: I975fc755844198e97d2ac72959b25f18568f58ea
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6536688
Commit-Queue: chromium-autoroll <[email protected]>
Bot-Commit: chromium-autoroll <[email protected]>
Cr-Commit-Position: refs/heads/main@{#1458749}

* [//cc] Set TextureDrawQuad::premultiplied_alpha only if possibly false

TextureDrawQuad::premultiplied_alpha's default value is `true`. Most
callers of SetNew()/SetAll() also pass a hardcoded value of `true`. This
CL removes the `premultiplied_alpha` arg from those methods and has
callers that *don't* always pass true explicit set the field.

Note: A bunch of test utilities can almost certainly be further cleaned
up to not take in a param for this value but instead hardcode it to
true; I'll look at those in followups.

Bug: 410591523
Change-Id: I8ef3f8f73a4abfb8c8af3f8952e62016be157a47
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6516061
Reviewed-by: Alexander Cooper <[email protected]>
Reviewed-by: Vasiliy Telezhnikov <[email protected]>
Commit-Queue: Colin Blundell <[email protected]>
Cr-Commit-Position: refs/heads/main@{#1458750}

* [ios] Invoke new BrowserUserData constructor

Since most of the BrowserUserData<T> wants to keep a pointer back
to the owning Browser, prepare managing the pointer in the base
class by using the new constructor taking the Browser* pointer.

This fixes all BrowserUserData<T> subclasses in the directory
//ios/chrome/browser/fullscreen (and code depending on the
TestFullscreenController).

Bug: 409299519
Change-Id: I5c873ebed633cc1aae883b098fa26e01be0b8bcb
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6520072
Reviewed-by: Asami Doi <[email protected]>
Commit-Queue: Sylvain Defresne <[email protected]>
Cr-Commit-Position: refs/heads/main@{#1458751}

* Roll Chrome Win64 PGO Profile

Roll Chrome Win64 PGO profile from chrome-win64-main-1746996658-cbdba33d0b37a918ff65ae745bf0439d6a3d0650-6d18a511a4bd3fe7184e30d8ba793cbb4864e0b2.profdata to chrome-win64-main-1747018210-7094410c255fd1183b0ad920c92d53bf33646d11-1a403232281b462d1ac30d380312c60357bd5fae.profdata

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/pgo-win64-chromium
Please CC [email protected],[email protected] on the revert to ensure that a human
is aware of the problem.

To file a bug in Chromium main branch: https://bugs.chromium.org/p/chromium/issues/entry

To report a problem with the AutoRoller itself, please file a bug:
https://issues.skia.org/issues/new?component=1389291&template=1850622

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md

Cq-Include-Trybots: luci.chrome.try:win64-chrome
Tbr: [email protected]
Merge-Approval-Bypass: Chrome autoroller
Change-Id: I037911ec2ded123217b482062369c95e914604ac
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6536426
Bot-Commit: chromium-autoroll <[email protected]>
Commit-Queue: chromium-autoroll <[email protected]>
Cr-Commit-Position: refs/heads/main@{#1458752}

* Roll Chrome Mac Arm PGO Profile

Roll Chrome Mac Arm PGO profile from chrome-mac-arm-main-1747036388-7577336db2baa3628af02328bb04d685eb7de7fc-6839328ba05c2600629ce83fbf784b29574f9b4c.profdata to chrome-mac-arm-main-1747043884-b82a0353e17f2959ed23727b69cdbc31f12216b1-80d9180f8e45eba46ee27626e1b703fd34584030.profdata

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/pgo-mac-arm-chromium
Please CC [email protected],[email protected] on the revert to ensure that a human
is aware of the problem.

To file a bug in Chromium main branch: https://bugs.chromium.org/p/chromium/issues/entry

To report a problem with the AutoRoller itself, please file a bug:
https://issues.skia.org/issues/new?component=1389291&template=1850622

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md

Cq-Include-Trybots: luci.chrome.try:mac-chrome
Tbr: [email protected]
Merge-Approval-Bypass: Chrome autoroller
Change-Id: I8cfcdc125aa9fa38e52f0bb626e627783992ea61
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6535541
Commit-Queue: chromium-autoroll <[email protected]>
Bot-Commit: chromium-autoroll <[email protected]>
Cr-Commit-Position: refs/heads/main@{#1458753}

* Remove unnecessary sync flag check.

Loyalty cards filling logic in browser autofill manager only needs to be
guarded by the kAutofillEnableLoyaltyCardsFilling flag. The sync flag is
unnecessary in this context.

Bug: 404437008
Change-Id: I99271ea81fcdd395d7294407095b270f857e1e82
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6536509
Reviewed-by: Jihad Hanna <[email protected]>
Commit-Queue: Norge Vizcay <[email protected]>
Cr-Commit-Position: refs/heads/main@{#1458754}

* Use external length resolver to resolve UnresolvedRelativeColor

For now, the constructor is creating default conversion data with
a nullptr element.

No behavior changes expected, as it will be resolved later instead
of at parse time.

Also, don't try to resolve at parse time.

Bug: 416454066
Change-Id: Iabebb4862548072f805f52f16016ecc2f5d05b7e
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6530103
Commit-Queue: Daniil Sakhapov <[email protected]>
Reviewed-by: Rune Lillesveen <[email protected]>
Cr-Commit-Position: refs/heads/main@{#1458755}

* Roll abseil_revision 1b52dcb350..4bf37d8e19

Change Log:
https://chromium.googlesource.com/external/github.com/abseil/abseil-cpp/+log/1b52dcb350..4bf37d8e19
Full diff:
https://chromium.googlesource.com/external/github.com/abseil/abseil-cpp/+/1b52dcb350..4bf37d8e19

Bug: 416394845
Change-Id: I529c041a89890b78c229ef536ff9f62bf80612bb
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6533125
Reviewed-by: Mirko Bonadei <[email protected]>
Commit-Queue: Mirko Bonadei <[email protected]>
Commit-Queue: Hans Wennborg <[email protected]>
Auto-Submit: Hans Wennborg <[email protected]>
Cr-Commit-Position: refs/heads/main@{#1458756}

* Roll vulkan-deps from 0f00b76ecd36 to 6b14cce1d656 (1 revision)

https://chromium.googlesource.com/vulkan-deps.git/+log/0f00b76ecd36..6b14cce1d656

Also rolling transitive DEPS:
  https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers/+log/ff0450c7bccfb78f9c7117f1ecd17f7321535cad..21baa6bb2e0d5f4ae093397733f4534ea6e8cd6e

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/vulkan-deps-chromium-autoroll
Please CC [email protected],[email protected],[email protected],[email protected],[email protected],[email protected] on the revert to ensure that a human
is aware of the problem.

To file a bug in Chromium: https://bugs.chromium.org/p/chromium/issues/entry

To report a problem with the AutoRoller itself, please file a bug:
https://issues.skia.org/issues/new?component=1389291&template=1850622

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md

Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;luci.chromium.try:win_optional_gpu_tests_rel;luci.chromium.try:linux-swangle-try-x64;luci.chromium.try:win-swangle-try-x86;luci.chromium.try:dawn-linux-x64-deps-rel
Bug: None
Tbr: [email protected],[email protected],[email protected]
Change-Id: Iaca2547a54c26ff85dea22998ab72a65f7cb0329
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6536690
Commit-Queue: chromium-autoroll <[email protected]>
Bot-Commit: chromium-autoroll <[email protected]>
Cr-Commit-Position: refs/heads/main@{#1458757}

* [iOS] Add timestamps to password changes in CWVAutofillDatamanager.

Currently password creation/modification via the CWVAutofillDatamanager do not update the date_created or date_password_modified fields of the underlying PasswordForm object. This sets out to ensure those fields are properly set.

Bug: 416473964
Change-Id: Ie0d31d7c27b59c7649af29f84f94123caadcffab
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6524549
Reviewed-by: Hiroshi Ichikawa <[email protected]>
Commit-Queue: Carlos Acosta <[email protected]>
Reviewed-by: John Wu <[email protected]>
Cr-Commit-Position: refs/heads/main@{#1458758}

* Remove unused redundant code after UX review.

Bug: 404436027
Change-Id: Ic6a7bc08ffb3e1ce45cd48c269aa05ef07f17de8
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6532433
Reviewed-by: Karol Sygiet <[email protected]>
Commit-Queue: Karol Sygiet <[email protected]>
Reviewed-by: Norge Vizcay <[email protected]>
Auto-Submit: Piotr Wrótniak <[email protected]>
Cr-Commit-Position: refs/heads/main@{#1458759}

* Hide tab where password change happens

Before this CL: password change is performed in the background tab
After this CL: password change is performed in the unattached WebContents. When necessary it's attached back to the tab strip where
the original tab is.

Bug: 415923860
Change-Id: Ic7959fbfb9bf180eaf05273d7fd131d1cb0050cd
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6509009
Auto-Submit: Viktor Semeniuk <[email protected]>
Reviewed-by: Maria Kazinova <[email protected]>
Reviewed-by: Erik Chen <[email protected]>
Commit-Queue: Viktor Semeniuk <[email protected]>
Cr-Commit-Position: refs/heads/main@{#1458760}

* [Signin] Remove kImprovedSettingsUIOnDesktop from settings pages

Bug: 370473765
Change-Id: Icdd1672747910de2bad25ca98c3eaa84304d1c74
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6512890
Commit-Queue: David Roger <[email protected]>
Reviewed-by: Liza Bipin <[email protected]>
Cr-Commit-Position: refs/heads/main@{#1458761}

* [CPSS] Verify that the correct model is loaded for on-device execution

There are two different types of model available for CPSS on-device.
Make sure the right model is served by the backend before executing it.

Bug: 414182439
Change-Id: I4ef327466dcdbe2e2ca4170be1916ef12ee39218
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6494489
Commit-Queue: Judith Hemp <[email protected]>
Reviewed-by: Judith Hemp <[email protected]>
Auto-Submit: Ravjit Uppal <[email protected]>
Reviewed-by: Elias Klim <[email protected]>
Cr-Commit-Position: refs/heads/main@{#1458762}

* Import wpt@89c28f8c22b17d0e95d8ec13f3e5f3219bca778e

https://github.com/web-platform-tests/wpt/compare/4127d1118...89c28f8c2

Using wpt-import in Chromium 9cb192761c946bccf6e832e8509c91c0e97a821c.
With Chromium commits locally applied on WPT:
  708406b093 "Add sibling-index/count() tests for @font-feature- [...]

Note to gardeners: This CL imports external tests and adds expectations
for those tests; if this CL is large and causes a few new failures,
please fix the failures by adding new lines to TestExpectations rather
than reverting. See:
https://chromium.googlesource.com/chromium/src/+/main/docs/testing/web_platform_tests.md

NOAUTOREVERT=true
[email protected]

No-Export: true
Cq-Include-Trybots: luci.chromium.try:linux-blink-rel
Change-Id: If6030506a0f56536f740d5fe9a9ae9208c1d2ce0
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6534160
Auto-Submit: WPT Autoroller <[email protected]>
Commit-Queue: Rubber Stamper <[email protected]>
Bot-Commit: Rubber Stamper <[email protected]>
Cr-Commit-Position: refs/heads/main@{#1458763}

* [gfx] Fix some unsafe buffers with wstring_view

Use wstring_view instead of pointers for string operations.

Bug: 354829279
Change-Id: Iaeb9279f6debd1007d4dcaefb56e71a38d1c37f8
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6533144
Reviewed-by: Mitsuru Oshima <[email protected]>
Reviewed-by: Nico Weber <[email protected]>
Commit-Queue: Ho Cheung <[email protected]>
Cr-Commit-Position: refs/heads/main@{#1458764}

* [ios] Pass info about flag widgets-for-multiprofile to widgets

Information about the key is store in appGroup NSUserDefaults. To
retrieve the value from the widgets we can now use:
  WidgetsForMultiprofile()

This is only a first step, build flag IOS_ENABLE_WIDGETS_FOR_MIM is
still used, migration will be performed in a follow-up CL.

Bug: 414734885
Change-Id: I85d12c3b59b1aa28ee51ac834104887eb70b3fb0
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6500558
Commit-Queue: Federica Germinario <[email protected]>
Reviewed-by: Mark Cogan <[email protected]>
Cr-Commit-Position: refs/heads/main@{#1458765}

* Roll Dawn from 7fda3b6896df to 3ae10bb874bd (1 revision)

https://dawn.googlesource.com/dawn.git/+log/7fda3b6896df..3ae10bb874bd

2025-05-12 [email protected] Support "immediate" address space in HLSL IR backend

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/dawn-chromium-autoroll
Please CC [email protected],[email protected] on the revert to ensure that a human
is aware of the problem.

To file a bug in Dawn: https://bugs.chromium.org/p/dawn/issues/entry
To file a bug in Chromium: https://bugs.chromium.org/p/chromium/issues/entry

To report a problem with the AutoRoller itself, please file a bug:
https://issues.skia.org/issues/new?component=1389291&template=1850622

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md

Cq-Include-Trybots: luci.chromium.try:dawn-android-arm-deps-rel;luci.chromium.try:dawn-android-arm64-deps-rel;luci.chromium.try:dawn-linux-x64-deps-rel;luci.chromium.try:dawn-mac-x64-deps-rel;luci.chromium.try:dawn-mac-arm64-deps-rel;luci.chromium.try:dawn-win10-x64-deps-rel;luci.chromium.try:dawn-win10-x86-deps-rel;luci.chromium.try:dawn-win11-arm64-deps-rel;luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;luci.chromium.try:win_optional_gpu_tests_rel;luci.chromium.try:gpu-fyi-cq-android-arm64
Bug: chromium:366291600
Tbr: [email protected]
Change-Id: I322577139903c16e521b69c819128c728da60359
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6535538
Commit-Queue: chromium-autoroll <[email protected]>
Bot-Commit: chromium-autoroll <[email protected]>
Cr-Commit-Position: refs/heads/main@{#1458766}

* Roll Chrome Android ARM64 PGO Profile

Roll Chrome Android ARM64 PGO profile from chrome-android64-main-1747039901-591ce811687dfd7ed776c21e1c283a40b5eb1c61-77456a23076cf03c843109585d96a2c681472af4.profdata to chrome-android64-main-1747043884-840e7e922aa563c1cb409c9f1f49f8aececcbf80-80d9180f8e45eba46ee27626e1b703fd34584030.profdata

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/pgo-android-arm64-chromium
Please CC [email protected],[email protected] on the revert to ensure that a human
is aware of the problem.

To file a bug in Chromium main branch: https://bugs.chromium.org/p/chromium/issues/entry

To report a problem with the AutoRoller itself, please file a bug:
https://issues.skia.org/issues/new?component=1389291&template=1850622

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md

Tbr: [email protected]
Merge-Approval-Bypass: Chrome autoroller
Change-Id: Ie296123936d1d260fb9a63afaa2a3864d80cea66
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6535542
Bot-Commit: chromium-autoroll <[email protected]>
Commit-Queue: chromium-autoroll <[email protected]>
Cr-Commit-Position: refs/heads/main@{#1458767}

* [iOS][CoI] Handle tab switching in Lens Overlay iPad

Tab switching should never trigger showing the lens overlay animated.

Bug: None
Change-Id: I641f26864a081a17b793b8efff663b76528d3dac
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6513371
Commit-Queue: Christian Xu <[email protected]>
Auto-Submit: Radu Nitescu <[email protected]>
Commit-Queue: Radu Nitescu <[email protected]>
Reviewed-by: Christian Xu <[email protected]>
Cr-Commit-Position: refs/heads/main@{#1458768}

* [iOS][CoI] Reposition the snapshot only if the window was not resized

Refrain from repositioning if the initial width does not match the
current one. Otherwise there would be a visual mismatch between the
content behind and the content of the snapshot

Bug: None
Change-Id: Ib01ca6f3d4cd79fcfbec56583a49a372b0782104
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6516175
Reviewed-by: Christian Xu <[email protected]>
Commit-Queue: Radu Nitescu <[email protected]>
Cr-Commit-Position: refs/heads/main@{#1458769}

* Revert "Fix bug with tab-modal dialog positioning with the side panel."

This reverts commit 7176fcbb52c066c33c38ece81df4158c6c674fe0.

Reason for revert:
LUCI Bisection has identified this change as the cause of a test failure. See the analysis: https://ci.chromium.org/ui/p/chromium/bisection/test-analysis/b/5698224200351744

Sample build with failed test: https://ci.chromium.org/b/8715085782494565361
Affected test(s):
[ninja://chrome/test:unit_tests/BrowserViewLayoutTest.Layout](https://ci.chromium.org/ui/test/chromium/ninja:%2F%2Fchrome%2Ftest:unit_tests%2FBrowserViewLayoutTest.Layout?q=VHash%3A799aae891109c818)

If this is a false positive, please report it at http://b.corp.google.com/createIssue?component=1199205&description=Analysis%3A+https%3A%2F%2Fci.chromium.org%2Fui%2Fp%2Fchromium%2Fbisection%2Ftest-analysis%2Fb%2F5698224200351744&format=PLAIN&priority=P3&title=Wrongly+blamed+https%3A%2F%2Fchromium-review.googlesource.com%2Fc%2Fchromium%2Fsrc%2F%2B%2F6516080&type=BUG

Original change's description:
> Fix bug with tab-modal dialog positioning with the side panel.
>
> Opening the side panel shrinks the web contents area, but the side panel
> state is linked to that specific tab. Switching tabs to one where the
> side panel is closed queues a layout to expand the web contents area.
> However, if a tab-modal dialog is open in the new tab, it will be
> re-positioned synchronously in response to the tab switching event,
> which means it gets its new position before the layout happens and will
> incorrectly position itself to accommodate the side panel.
>
> To fix this, this patch recalculates the layout in BrowserViewLayout::
> WebContentsModalDialogHostViews::GetDialogPosition before calculating
> the dialog position. It does not do actually apply the layout, since
> that would be very expensive and would probably be overwritten by the
> queued layout anyway.
>
> Bug: 407704446
> Change-Id: Id4730cd1e9ab92fc12371f9a2338bbd1c542bfba
> Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6516080
> Reviewed-by: Caroline Rising <[email protected]>
> Commit-Queue: Bret Sepulveda <[email protected]>
> Cr-Commit-Position: refs/heads/main@{#1458702}
>

Bug: 407704446
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Change-Id: Iee39f3557f2b24dbde6f1a6ffcf03c3ead4900f4
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6536194
Reviewed-by: Bret Sepulveda <[email protected]>
Reviewed-by: Vasilii Sukhanov <[email protected]>
Commit-Queue: Vasilii Sukhanov <[email protected]>
Cr-Commit-Position: refs/heads/main@{#1458770}

* Graphite: defer sending D3D11 commands to GPU.

Enable a toggle that tells Dawn to delay sending the commands to GPU
until the end of a frame where the swapbuffers is called.

This helps batching the commands and reducing the number of GPU
submissions to 1 per frame in most cases.

Bug: 377716220
Change-Id: Ic201abe18c84fbedf6005390a676cb5b4d0cb150
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6532447
Reviewed-by: Colin Blundell <[email protected]>
Commit-Queue: Quyen Le <[email protected]>
Cr-Commit-Position: refs/heads/main@{#1458771}

* [Installer Downloader] Move infobar delegate near to the core logic

The installer downloader controller is responsible of showing the
infobar. This CL move the infobar delegate near to the controller.

Change-Id: I16c7e76c68802da64fef014ec546bac0773be9d8
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6531583
Reviewed-by: Greg Thompson <[email protected]>
Commit-Queue: Daniel Soromou <[email protected]>
Reviewed-by: Kaan Alsan <[email protected]>
Cr-Commit-Position: refs/heads/main@{#1458772}

* Roll Crossbench from 803813fe85b3 to 4713630a70ba (1 revision)

https://chromium.googlesource.com/crossbench.git/+log/803813fe85b3..4713630a70ba

2025-05-12 [email protected] Add default stories/browsers merge logic for histograms probe

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/crossbench-chromium
Please CC [email protected],[email protected],[email protected] on the revert to ensure that a human
is aware of the problem.

To file a bug in Chromium: https://bugs.chromium.org/p/chromium/issues/entry

To report a problem with the AutoRoller itself, please file a bug:
https://issues.skia.org/issues/new?component=1389291&template=1850622

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md

Tbr: [email protected]
Change-Id: I586cca2e405fd2a28853c5db339c61197191243e
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6536249
Bot-Commit: chromium-autoroll <[email protected]>
Commit-Queue: chromium-autoroll <[email protected]>
Cr-Commit-Position: refs/heads/main@{#1458773}

* Roll DevTools Frontend from 3a15a39f3364 to 8756cf3ebc46 (1 revision)

https://chromium.googlesource.com/devtools/devtools-frontend.git/+log/3a15a39f3364..8756cf3ebc46

2025-05-12 [email protected] Optionally collapse and trim whitespace in the `Element.deepTextContent`

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/devtools-frontend-chromium
Please CC [email protected],[email protected] on the revert to ensure that a human
is aware of the problem.

To report a problem with the AutoRoller itself, please file a bug:
https://issues.skia.org/issues/new?component=1389291&template=1850622

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md

Bug: chromium:407751668
Change-Id: I00de989da5657aa3a99336d1d0e939edc72de0a8
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6535875
Bot-Commit: chromium-autoroll <[email protected]>
Commit-Queue: chromium-autoroll <[email protected]>
Cr-Commit-Position: refs/heads/main@{#1458774}

* Roll Chrome Android ARM64 PGO Profile

Roll Chrome Android ARM64 PGO profile from chrome-android64-main-1747043884-840e7e922aa563c1cb409c9f1f49f8aececcbf80-80d9180f8e45eba46ee27626e1b703fd34584030.profdata to chrome-android64-main-1747047691-4253be5df167bd2f1edeed1e820359afd583429a-b3057da57b4891b2994173852eb735abc948b889.profdata

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/pgo-android-arm64-chromium
Please CC [email protected],[email protected] on the revert to ensure that a human
is aware of the problem.

To file a bug in Chromium main branch: https://bugs.chromium.org/p/chromium/issues/entry

To report a problem with the AutoRoller itself, please file a bug:
https://issues.skia.org/issues/new?component=1389291&template=1850622

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md

Tbr: [email protected]
Merge-Approval-Bypass: Chrome autoroller
Change-Id: I47e2e65fdf35e45f28ab4208b973a2b40f15eb75
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6536448
Bot-Commit: chromium-autoroll <[email protected]>
Commit-Queue: chromium-autoroll <[email protected]>
Cr-Commit-Position: refs/heads/main@{#1458775}

* Roll clank/internal/apps from aafe4fa62195 to 7e7021d1b0a3 (1 revision)

https://chrome-internal.googlesource.com/clank/internal/apps.git/+log/aafe4fa62195..7e7021d1b0a3

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://skia-autoroll.corp.goog/r/clank-apps-chromium-autoroll
Please CC [email protected],[email protected] on the revert to ensure that a human
is aware of the problem.

To report a problem with the AutoRoller itself, please file a bug:
https://issues.skia.org/issues/new?component=1389291&template=1850622

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md

Bug: None
Tbr: [email protected]
No-Try: true
Change-Id: Ib26c3a5a52e8018a1091ce269941defb78994e97
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6536098
Commit-Queue: chromium-internal-autoroll <chromium-internal-autoroll@skia-corp.google.com.iam.gserviceaccount.com>
Bot-Commit: chromium-internal-autoroll <chromium-internal-autoroll@skia-corp.google.com.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/main@{#1458776}

* Reland "WebAuthn: Add browsertest for immediate mediation with touch ID"

This is a reland of commit f5af52de21520be071919ac683cbf0087cc52e84

No diff with the original PS.

Original change's description:
> WebAuthn: Add browsertest for immediate mediation with touch ID
>
> Bug: 393055190
> Change-Id: Iceb593549a0e13dbce7d8daed81140a897b397ed
> Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6520254
> Reviewed-by: Ken Buchanan <[email protected]>
> Commit-Queue: Adem Derinel <[email protected]>
> Cr-Commit-Position: refs/heads/main@{#1457999}

Bug: 393055190
Change-Id: I5e56ec0441460823a34b429de9e6887ba781a749
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6533301
Reviewed-by: Ken Buchanan <[email protected]>
Commit-Queue: Adem Derinel <[email protected]>
Cr-Commit-Position: refs/heads/main@{#1458777}

* Add test for scroll-direction initial state

Keep `none` value until resolution of these questions:
https://github.com/w3c/csswg-drafts/pull/12130#issuecomment-2871769914

Bug: 414556050
Change-Id: I6c3c077e236de45de662ba02ea005d7cccf8946e
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6536510
Commit-Queue: Munira Tursunova <[email protected]>
Reviewed-by: Rune Lillesveen <[email protected]>
Cr-Commit-Position: refs/heads/main@{#1458778}

* [OTPs] Implement basic OTP source guessing.

In order to query for OTP values, we need to understand if the
OTP value is sent via SMS, email, or to an authentication app or
somewhere else.
Our initial guess would be checking if the users have inputted values
that looked like phone numbers or email addresses into web forms.

Once the feature is implemented and we start gathering data on
the available OTP sources, we can utilize this data. For now
checking recently submitted values makes our best guess.

Bug: 415273770
Change-Id: Ia72ab4e2e42553efbb74679acec8b49bbe7d8db2
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6520257
Reviewed-by: Viktor Semeniuk <[email protected]>
Commit-Queue: Maria Kazinova <[email protected]>
Cr-Commit-Position: refs/heads/main@{#1458779}

* Update `TestExpectations` with bugs filed for crrev.com/c/6534160

[email protected]

Bug: 417031845
Change-Id: I530678c81b399842c01fa33a87f7bf7a646d499d
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6535329
Auto-Submit: WPT Autoroller <[email protected]>
Commit-Queue: Rubber Stamper <[email protected]>
Bot-Commit: Rubber Stamper <[email protected]>
Cr-Commit-Position: refs/heads/main@{#1458780}

* Roll optimization-guide from 3633af3203b2 to 8083b7784885

https://chrome-internal.googlesource.com/chrome/components/optimization_guide.git/+log/3633af3203b2..8083b7784885

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://skia-autoroll.corp.goog/r/optimization-guide-chromium
Please CC [email protected],[email protected] on the revert to ensure that a human
is aware of the problem.

To report a problem with the AutoRoller itself, please file a bug:
https://issues.skia.org/issues/new?component=1389291&template=1850622

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md

Bug: None
Change-Id: Ifc6b5c13e72037290f1984fc6688793ef07c109f
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6535856
Commit-Queue: chromium-internal-autoroll <chromium-internal-autoroll@skia-corp.google.com.iam.gserviceaccount.com>
Bot-Commit: chromium-internal-autoroll <chromium-internal-autoroll@skia-corp.google.com.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/main@{#1458781}

* Rollout updated /heuristics-json/internal

This CL contains the changes that happened as part of launching
AutofillParseEmailLabelAndPlaceholder

Bug: 416742993
Change-Id: I912f1039d122787e96ab26cf327398fb895c1e0c
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6532714
Reviewed-by: Jan Keitel <[email protected]>
Commit-Queue: Karol Sygiet <[email protected]>
Cr-Commit-Position: refs/heads/main@{#1458782}

* [function] Respect TreeScope in TransitiveFunctionCollector (reland)

Currently, InspectorCSSAgent assumes all functions are looked up
starting from the document scope, regardless of which scope
the function invocation actually came from. This was intended
as placeholder behavior pending a real solution.

This CL fixes that by including the TreeScope of the matched rule
in the RuleIndexList entries. This means we know which TreeScope
to start the lookup from when considering a given <dashed-function>.
Also, the lookup itself now traverses the chain of tree-scopes properly.

A previous version of this CL attempted to use std::tuple inside
a HeapVector, which (absent a TraceTrait for std::tuple) led to
GC'd CSSRules being reachable. The unit test ElementRuleCollectorTest.
TraceRuleIndexList now covers this case.

Fixed: 395798203
Change-Id: Ia2b40a7fe919a78e2c242bef5406206f7a536e88
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6533100
Reviewed-by: Philip Pfaffe <[email protected]>
Commit-Queue: Anders Hartvoll Ruud <[email protected]>
Cr-Commit-Position: refs/heads/main@{#1458783}

* Roll Chrome Mac Arm PGO Profile

Roll Chrome Mac Arm PGO profile from chrome-mac-arm-main-1747043884-b82a0353e17f2959ed23727b69cdbc31f12216b1-80d9180f8e45eba46ee27626e1b703fd34584030.profdata to chrome-mac-arm-main-1747050864-1d15761be9230e81ec0ea091f913de37fc45e768-a4324bea8a2487ce1c7bf4d446062f09d67452ae.profdata

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/pgo-mac-arm-chromium
Please CC c…
@yisibl
Copy link
Contributor

yisibl commented May 13, 2025

Are there use-cases for caring about the most recent scroll regardless of axis? If there are, maybe we can let an author opt into that with another keyword, like scroll-direction: down most-recent, so that the simpler version scroll-direction: down can just care about the direction of the most recent scroll in that axis.

The examples in @bramus' article have a lot of use cases that only care about the recent scroll direction.

@bramus
Copy link
Contributor

bramus commented May 13, 2025

The examples in @bramus' article have a lot of use cases that only care about the recent scroll direction.

But there’s also demos that depend the last-non-none direction. The “Hidey Bar” is the typical example for this, which Tab also mentioned.

In https://brm.us/hidey-bar I figured out how to “remember” the last-non-none direction: by (ab)using an infinite transition-delay on the custom prop that stores the direction – as documented in the explainer that is part of this PR.

Would be nice/handy if this “remember“ option were built into the API. Some ideas:

  1. Perhaps we distinguish between scroll-direction and active-scroll-direction?
  • active-scroll-direction represents the active scroll direction. If you stop scrolling, it becomes none again.
  • scroll-direction starts as none but once you scroll it remembers the last active scroll direction that is not none.
  1. More values? E.g. idle-after-down

Personal preference for 1 – seems more easy for authors.


Another question - do we want to remember the scroll direction of each axis independently, or together?

Good question. I see one use cases for scroll-based games that allow you to control a character walking in a 8-directional movement (cardinal directions + diagonals), which would rely on remembering each axis independently.

  • More values such as down-right?
  • More scroll-direction variants? i.e. (active-)(vertical|horizontal)-scroll-direction

But you could ask yourself if that’s a common enough use-case to tackle …

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants