Automatic update from web-platform-tests
MSE-in-Workers: Fix deadlock on duration reduction
If MediaSourceInWorkers is enabled but MediaSourceNewAbortAndDuration is
not enabled, then when MediaSource duration is reduced, a deprecated
code path calls each SourceBuffer in the MediaSource to remove the media
that might potentially be truncated by the duration reduction. This
remove call itself took the same lock that is already held in the caller
in this case, causing unresponsive page due to double-lock on the
CrossThreadMediaSourceAttachment's lock.
This change calls Remove_Locked instead, since the preconditions checked
in SourceBuffer::remove are already enforced in
MediaSource::setDuration, and the double-lock is avoided.
This change also fixes a stray call to setting duration in a
MSE-in-Worker test to use the correct interface (though such call would
not have hit this double-lock on bots since those bots enable all
experimental web platform features.)
BUG=1268614,878133
TEST=manually confirmed repro fixed locally
Change-Id: I1a144cdab9bae5f66b6e1137c2b275c392c12023
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3274133
Commit-Queue: Matthew Wolenetz <wolenetz@chromium.org>
Commit-Queue: Will Cassella <cassew@chromium.org>
Auto-Submit: Matthew Wolenetz <wolenetz@chromium.org>
Reviewed-by: Will Cassella <cassew@chromium.org>
Cr-Commit-Position: refs/heads/main@{#940603}
--
wpt-commits: cc6a981ed8a6988e31e657fd43f8a19dc6068a44
wpt-pr: 31590
Automatic update from web-platform-tests
Ignore overflow inside monolithic content for fragmentation.
This is a revert of the fix for bug 1178742, and it will make us
compatible with Firefox. The exact behavior isn't defined in the spec.
See https://github.com/w3c/csswg-drafts/issues/6056
This change will also make it more sensible to fix crbug.com/1242348
and also easier to make the initial column balancing pass more in sync
with actual fragmentation (in a follow-up CL).
Bug: 1178742, 829028
Change-Id: I1bea2fce39b20723d14398ae54cc7f06fa54eb4b
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3270687
Reviewed-by: Ian Kilpatrick <ikilpatrick@chromium.org>
Commit-Queue: Ian Kilpatrick <ikilpatrick@chromium.org>
Cr-Commit-Position: refs/heads/main@{#940591}
--
wpt-commits: 8010b3d2e76d0f365f087abe4972775b352dad6e
wpt-pr: 31580
Automatic update from web-platform-tests
[@layer] Ensure layer establishment behavior on failed/unmatched imports
As per https://github.com/w3c/csswg-drafts/issues/6776:
1. @import with unmatched media query shouldn't establish layer
2. @import that fails to load should still establish layer
This patch adds test cases for it and also fixes our behavior on 1.
Bug: 1095765
Change-Id: Ia7d2c9921b4b93173546cbd78ab243dac3f92420
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3272669
Reviewed-by: Anders Hartvoll Ruud <andruud@chromium.org>
Commit-Queue: Xiaocheng Hu <xiaochengh@chromium.org>
Cr-Commit-Position: refs/heads/main@{#940505}
--
wpt-commits: c21a4bab57696f57f98fe063fd976e88e6556de4
wpt-pr: 31586
Automatic update from web-platform-tests
Tests for ::placeholder and ::file-selector-button inheritance
Both of those elements are tree-abiding pseudo elements which should
inherit from their originating elements per spec.
Bug: 922869
Change-Id: Ia00a9a421895e6fcd48b7403da97360dae73f91e
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3268596
Reviewed-by: Xiaocheng Hu <xiaochengh@chromium.org>
Commit-Queue: Rune Lillesveen <futhark@chromium.org>
Cr-Commit-Position: refs/heads/main@{#940495}
--
wpt-commits: f9d614349dbb0ce3ab5180f6fcfe24f727b34dac
wpt-pr: 31579
Automatic update from web-platform-tests
[FlexNG] Fragmentation for stretched items
As suggested in CL:3256656, refactor ApplyStretchAlignmentToChild()
to use BuildSpaceForLayout. To accomplish this, pass the final line
cross size into BuildSpaceForLayout during the final layout pass for
stretched items.
By doing this we can remove ApplyStretchAlignmentToChild(), and call
into LayoutWithBlockFragmentation() for stretched items if applicable
(since that will also call into BuildSpaceForLayout).
A new wpt test was added to test basic fragmentation for stretched flex
items.
virtual/layout_ng_flex_frag/fast/multicol/flexbox/doubly-nested-with-zero-width-flexbox-and-forced-break-crash.html
is now being skipped due to a timeout. Seems to be caused by the
forced break. This test was not timing out before since fragmentation
was not being applied to the test previously. This will be
investigated in a follow-up.
Bug: 660611
Change-Id: Ifefbe1480c7134c5fbf215cd1e03a8e79e45f1ff
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3267938
Commit-Queue: Alison Maher <almaher@microsoft.com>
Reviewed-by: David Grogan <dgrogan@chromium.org>
Reviewed-by: Morten Stenshorne <mstensho@chromium.org>
Cr-Commit-Position: refs/heads/main@{#940473}
--
wpt-commits: 76ecf1910addf9f0f49d25c978790a8a15573fc5
wpt-pr: 31561
Automatic update from web-platform-tests
Move change-duration-during-transtion.html to WPT
In the process of moving the test, a few changes were made to address
test flakes. Though the test was triggering to style updates, the
second update could complete before the page was rendered, which would
result in no transition being triggered. The test was accelerated by
forcing the animation to finish, rather than waiting on the
transitionend event.
Bug: 1267553
Change-Id: Id8eb7b86ccad76b0ec33050c7103fd21d16530a5
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3270068
Commit-Queue: Kevin Ellis <kevers@chromium.org>
Reviewed-by: Steve Kobes <skobes@chromium.org>
Cr-Commit-Position: refs/heads/main@{#940458}
--
wpt-commits: 7f625604ff78d716ad4b7130543cb54aa400a1fb
wpt-pr: 31567
Automatic update from web-platform-tests
Move transition-timing-function.html to WPT and deflake
The original test did not properly ensure that the style change would be
picked up after rendering the page. Thus, we might not see transition
animations. The test also relied on windows.internals, which does not
provide cross-browser support. Moved the test to WPT and switched to
using appropriate web-animation API calls. Dropped the webkit prefix
from the test. Finally, updated the expected target values. Two of the
values in the original test were off by 1, but matched the overly loose
tolerance. The updated version computes the expected value of the cubic
Bezier easing functions.
Note, this is one of 6 flaky tests associated with the bug. Next step is
to port the remaining tests unless WPT equivalents can be found.
Bug: 1267553
Change-Id: If083981a705709d9d0f95b83429d986170dee3d2
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3269980
Commit-Queue: Kevin Ellis <kevers@chromium.org>
Reviewed-by: Steve Kobes <skobes@chromium.org>
Cr-Commit-Position: refs/heads/main@{#940433}
--
wpt-commits: 0aebe5d1145f727f5cfedb7f2aeb7c6f53274dd8
wpt-pr: 31565
Automatic update from web-platform-tests
[@layer] Make 'revert-layer' work in keyframes
As per the recent CSSWG resolution [1], 'revert-layer' in keyframes
should revert from the animation origin. This patch implements that.
[1] https://github.com/w3c/csswg-drafts/issues/6749#issuecomment-960303732
Bug: 1095765
Change-Id: I3f093548da61108c24c05c6a679e9b1d85207467
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3232606
Reviewed-by: Anders Hartvoll Ruud <andruud@chromium.org>
Commit-Queue: Xiaocheng Hu <xiaochengh@chromium.org>
Cr-Commit-Position: refs/heads/main@{#940387}
--
wpt-commits: 96eed7c0ae5e3539dcc70ee4a777158f5237bde3
wpt-pr: 31319
Automatic update from web-platform-tests
[@layer] Add a WPT for 'revert-layer' in the style attribute
The behavior is recently resolved by CSSWG:
https://github.com/w3c/csswg-drafts/issues/6743#issuecomment-960302655
Bug: 1095765
Change-Id: I3ba69a555fa68b1efb1c40fd9a5362387fd4d541
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3271505
Auto-Submit: Xiaocheng Hu <xiaochengh@chromium.org>
Reviewed-by: Anders Hartvoll Ruud <andruud@chromium.org>
Commit-Queue: Xiaocheng Hu <xiaochengh@chromium.org>
Cr-Commit-Position: refs/heads/main@{#940370}
--
wpt-commits: 8154494727c8990112979fbf77fda4bee98f4bae
wpt-pr: 31571
Automatic update from web-platform-tests
Add flat tree traversal check in DisplayLocking top layer logic
The top layer logic this patch modifies was added in
http://crrev.com/933004. Similar fixes to very similar clusterfuzz
crashes were made in http://crrev.com/929719 and
http://crrev.com/935108.
Fixed: 1267276
Change-Id: I210681d9f49203621edb1cb78a783adc3476d94e
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3268092
Commit-Queue: Joey Arhar <jarhar@chromium.org>
Reviewed-by: vmpstr <vmpstr@chromium.org>
Cr-Commit-Position: refs/heads/main@{#940363}
--
wpt-commits: 8747a026591a1138bb1f172183386edc91645a94
wpt-pr: 31543
Automatic update from web-platform-tests
Fix interactionId when click gets the wrong PointerId
Since click events sometimes do not get the correct PointerId, we use
the last PointerId of a pointerdown or pointerup seen. But we also
take care to reset this last seen when we see other kinds of events,
to prevent the click from being accidentally attributed to an
interaction in the past that did not trigger it.
Bug: 1264930
Change-Id: Ieb5773f3a6c9a9cfd46b428b5a925c4535060386
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3255225
Reviewed-by: Robert Flack <flackr@chromium.org>
Commit-Queue: Nicolás Peña Moreno <npm@chromium.org>
Cr-Commit-Position: refs/heads/main@{#940359}
--
wpt-commits: 7a9f249672ab058dd93bab1a51930b7913d5287e
wpt-pr: 31458
Automatic update from web-platform-tests
Always use FreeType for rendering COLR on Mac
This addresses glyph colorization issues for mixed glyph (SVG and glyf)
fonts on Mac and ensures foreground color painting issues on Mac.
Bug: 944093
Change-Id: I2f0586f5b8135776ecfcc63499a8da764b4ebbaf
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3263829
Commit-Queue: Dominik Röttsches <drott@chromium.org>
Commit-Queue: Morten Stenshorne <mstensho@chromium.org>
Reviewed-by: Morten Stenshorne <mstensho@chromium.org>
Auto-Submit: Dominik Röttsches <drott@chromium.org>
Cr-Commit-Position: refs/heads/main@{#940350}
--
wpt-commits: 1bd46821799cdc6cf7852dd7563892a8cbbe5613
wpt-pr: 31518
Automatic update from web-platform-tests
Fix flakiness of wpt/web-animations/.../onfinish.html (#31562)
assert_equals was being used for time comparisons, which allows for no
numerical precision tolerance. Instead, we should be using
assert_times_equal, which has a built in tolerance of 1 microsecond.
Bug: 1267535
Change-Id: I76be9723645f8e4457b35baa4fe516d6013c6eea
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3270992
Reviewed-by: Steve Kobes <skobes@chromium.org>
Commit-Queue: Kevin Ellis <kevers@chromium.org>
Cr-Commit-Position: refs/heads/main@{#940005}
Co-authored-by: Kevin Ellis <kevers@chromium.org>
--
wpt-commits: 132095249cb1bf8339e59c61978c9aaa2c4bfb37
wpt-pr: 31562
Automatic update from web-platform-tests
Don't skip body background when not propagated
Body background propagation to viewport is stopped when html root or
body is contained, which means we should paint the background for the
body element itself when that happens.
The wpt test did test we didn't propagate the background to the
viewport, but not that we painted it for body. Modify the code and the
test to make sure the body background is painted.
Bug: 1266731
Change-Id: I405ac1dde17fc059f5145ba295f0d3e8e1ca1ba3
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3270331
Reviewed-by: Morten Stenshorne <mstensho@chromium.org>
Commit-Queue: Rune Lillesveen <futhark@chromium.org>
Cr-Commit-Position: refs/heads/main@{#939876}
--
wpt-commits: db3981180f2b913410a810b863136efc60472ab8
wpt-pr: 31558
Automatic update from web-platform-tests
Support style invalidation of ':has()' in rightmost compound
This is the initial CL of supporting style invalidation with ':has()'.
To minimize complexity, we will focus on the following limited usage.
- Supports ':has()' in a rightmost, top-level compound
- Supports ':has()' argument starts with child or descendant combinator
- Only allow attribute or elemental selectors in argument
So the following will be ignored for now.
- Ignore ':has()' in a non-rightmost compound
- Ignore ':has()' in a logical combinations
- Ignore ':has()' argument starts with '~' or '+'
- Ignore all pseudos in ':has()' argument
To support this case, for a change on an element, we need to invalidate
ancestors.
Invalidate every ancestors for every mutations on every element is very
bad for performance.
So we need a way to skip these.
- irrelevant element
- irrelevant ancestor
- irrelevant mutation
To skip the 'irrelevant element' and 'irrelevant ancestor', this CL
introduces two flags in the ComputedStyle.
- AncestorsAffectedByHas : Indicate that the element has an ancestor
affected by ':has()' state change
- AffectedByHas : Indicate that the element can be affected by ':has()'
state change
During style recalculation, 'AffectedByHas' and 'AncestorAffectedByHas'
flag will be set when SelectorChecker tries to match any ':has()'
selector on an element. The 'AncestorAffectedByHas' flag is inherited
by children of the element.
<style> .a:has(.b) { color: red }</style>
<div>
<div class="a"> <!-- AffectedByHas, AncestorAffectedByHas -->
<div> <!-- AncestorAffectedByHas -->
<div> <!-- AncestorAffectedByHas -->
</div>
</div>
</div>
<div>
<div>
</div>
</div>
</div>
Only for a mutation on the element with 'AncestorAffectedByHas', style
engine will walk up ancestors. And it invalidates style only when an
ancestor is 'AffectedByHas'.
Still we have invalidation for irrelevant mutation and invalidation on
irrelevant ancestors. We will handle those by separate CLs.
Bug: 669058
Change-Id: Ia7e607e01f9a070c0d69d89679b99efa0a104797
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3260677
Commit-Queue: Byungwoo Lee <blee@igalia.com>
Reviewed-by: Rune Lillesveen <futhark@chromium.org>
Cr-Commit-Position: refs/heads/main@{#940274}
--
wpt-commits: e29b779bac49b4976b7fad8c10b8c9e762018cf1
wpt-pr: 31504
Automatic update from web-platform-tests
[SelectMenu] Fix popup position when zoom is used.
This CL fixes the popup position when zoom is used by ensuring
that the computed coordinates are zoom adjusted.
This CL also updates the behavior so that recomputing the position isn't
required only when the popup is closed since there are some cases where
the position needs to be recomputed (e.g. popup receives focus when
the scrollbar is clicked).
The new behavior is validated by: selectmenu-popup-position-with-zoom
and selectmenu-many-options.
Bug: 1121840
Change-Id: Ib924000963a241825b83b4555b25c75c5470f097
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3271770
Commit-Queue: Ionel Popescu <iopopesc@microsoft.com>
Reviewed-by: Mason Freed <masonf@chromium.org>
Reviewed-by: Dan Clark <daniec@microsoft.com>
Cr-Commit-Position: refs/heads/main@{#940173}
--
wpt-commits: 60960e42ad3db540d6bf8310e0cd1f1f9e1948af
wpt-pr: 31568
Automatic update from web-platform-tests
Skip DisplayLock forced updates when outside flat tree
It would seem that the style code can get in a bad state when we try to
set style bits in a node that's outside the flat tree during a forced
update. This patch skips setting those bits when the node to unlock is
outside the flat tree.
Fixed: 1266891
Change-Id: Idd6af0ad60f7151bad9c59c4996d539691ae7408
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3268447
Reviewed-by: vmpstr <vmpstr@chromium.org>
Commit-Queue: Joey Arhar <jarhar@chromium.org>
Cr-Commit-Position: refs/heads/main@{#940136}
--
wpt-commits: 0ba08e058166f52dcd12d0caa8d96f28ec31b108
wpt-pr: 31546
Automatic update from web-platform-tests
Add a WPT for pointerevent user activation trigger.
Related to HTML issue: https://github.com/whatwg/html/issues/3849
Also fix double-activation in Chrome's gesture tap.
Bug: 826293, 1265587
Change-Id: I3bc3bcbcfeda242512fb777a1c8881c475fed5fc
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3254213
Reviewed-by: Robert Flack <flackr@chromium.org>
Reviewed-by: Avi Drissman <avi@chromium.org>
Commit-Queue: Mustaq Ahmed <mustaq@chromium.org>
Cr-Commit-Position: refs/heads/main@{#940118}
--
wpt-commits: aa2fc4c2ddfac8b0870c0b075899478c9cabc0c2
wpt-pr: 31521
Automatic update from web-platform-tests
GetTopExecutionContext method for Canvas rendering contexts
BaseRenderingContext2D and CanvasPath access UMA, UseCounters and
RuntimeFlags through
GetCanvasRenderingContextHost()->GetTopExecutionContext(). This doesn't
work and has never worked for PaintRenderingContexts as there is no
class that works as a "host" for these contexts.
This CL adds a GetTopExecutionContext() function to all canvas rendering
2d contexts that returns a pointer to the execution context directly.
For canvas elements and offscreen canvases, this works exactly as before
(i.e. host->execution_context). For paint rendering contexts a pointer
to the PaintWorkletGlobalScope is passed in on creation.
Before this change some new Canvas2D API features would cause crashes
in paint worklets.
Change-Id: Icb6529c285d1aff2c001291a4387c613fb24fba7
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3260452
Reviewed-by: Robert Flack <flackr@chromium.org>
Reviewed-by: Fernando Serboncini <fserb@chromium.org>
Commit-Queue: Aaron Krajeski <aaronhk@chromium.org>
Cr-Commit-Position: refs/heads/main@{#940114}
--
wpt-commits: 755553ec4f8eb116eea31556a6cfc83b18bcde1d
wpt-pr: 31560
Automatic update from web-platform-tests
Rename a WPT test to avoid name conflict
Change-Id: Iff30020d4ab3d4696d8222f1ca4c72dd842a9afd
Fixed: 1268508
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3270891
Auto-Submit: Xiaocheng Hu <xiaochengh@chromium.org>
Commit-Queue: Chris Harrelson <chrishtr@chromium.org>
Reviewed-by: Chris Harrelson <chrishtr@chromium.org>
Cr-Commit-Position: refs/heads/main@{#940072}
--
wpt-commits: ce80a2fb62fec502329326e46b299999337e23ac
wpt-pr: 31564
Automatic update from web-platform-tests
[@layer] Implement layer serialization in @import rules (#31428)
This patch also fixes a bug in ConsumeAtRulePrelude that the result
prelude may contain leading white spaces. The new test requires the fix
to pass.
Bug: 1095765
Change-Id: Ie565309d38aa208aa0e60b5c862ec1e62a5764b2
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3252521
Commit-Queue: Xiaocheng Hu <xiaochengh@chromium.org>
Reviewed-by: Anders Hartvoll Ruud <andruud@chromium.org>
Cr-Commit-Position: refs/heads/main@{#937046}
Co-authored-by: Xiaocheng Hu <xiaochengh@chromium.org>
--
wpt-commits: 00be84da812dbc479b2d1ec9bd8859a04b21d87e
wpt-pr: 31428
Automatic update from web-platform-tests
[@layer] Full style and at-rule invalidate when layer order is reversed
In active style update, it is possible that the changed rule sets have
only layer rules, and yet it changes layer ordering and invalidates all
at rules and element styles. This patch handles this case.
Bug: 1095765
Change-Id: I9c94ffe06d82aa2fd584bc9fb64ea2eb2593c232
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3269036
Reviewed-by: Anders Hartvoll Ruud <andruud@chromium.org>
Commit-Queue: Xiaocheng Hu <xiaochengh@chromium.org>
Cr-Commit-Position: refs/heads/main@{#939877}
--
wpt-commits: 6c4e5d93d6a09aad2c334c94a87ae8c0c5206c5a
wpt-pr: 31552
Automatic update from web-platform-tests
Fetch: Plumb navigation redirect chain through service workers
Navigation redirection works differently than normal redirection.
Navigation requests are made using "manual" redirect mode which means
the redirect is not immediately followed. Instead the redirect location
is handed back up to the NavigationURLLoaderImpl which then manually
follows the redirect. This results in a new request being sent for each
step in the redirect chain.
This CL plumbs the redirect chain information from
NavigationURLLoaderImpl down through each request so it can be included
with requests proxied by a passthrough service worker.
For more detailed information about these changes please see the
internal design doc at:
https://docs.google.com/document/d/1KZscujuV7bCFEnzJW-0DaCPU-I40RJimQKoCcI0umTQ/edit?usp=sharing
We have rough consensus to make this change in this spec issue:
https://github.com/whatwg/fetch/issues/1335
Note, this CL includes some expected test failures. These are due to
the "lax-allowing-unsafe" intervention that is currently enabled. See:
https://source.chromium.org/chromium/chromium/src/+/main:third_party/blink/web_tests/TestExpectations;l=4635;drc=e8133cbf2469adb99c6610483ab78bcfb8cc4c76
Bug: 1115847,1241188
Change-Id: I2a2a17639e0bec3222684e0d444d6d98a21402ed
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3213310
Commit-Queue: Ben Kelly <wanderview@chromium.org>
Reviewed-by: Nasko Oskov <nasko@chromium.org>
Reviewed-by: Matt Menke <mmenke@chromium.org>
Reviewed-by: Yutaka Hirano <yhirano@chromium.org>
Cr-Commit-Position: refs/heads/main@{#939851}
--
wpt-commits: e819cf974e9157bfbfb251678a4e752a29afb057
wpt-pr: 31490
This adds a 4GB max limit for GC parameters related to heap size and fixes the
test that set this to an over-large value.
Differential Revision: https://phabricator.services.mozilla.com/D130749