Dictionary slots currently never shrink: when removing properties we put the slots
on the dictionary free list. If we know there are no slotful properties left, however,
we can free the slots and reset the free list.
This is mostly nice for densifying because we can usually free all slots in that case.
The patch also fixes a minor issue in `NativeObject::shrinkSlots`, because this code
is now used for dictionary objects for the first time.
Differential Revision: https://phabricator.services.mozilla.com/D153437
The power-of-two heuristic in `maybeDensifySparseElements` doesn't work well if
we're getting slots from the slot free list, because in that case the slot span
can be the same power-of-two for a long time and adding elements becomes
quadratic.
This patch avoids the problem by only trying to densify if we're using the last
slot. That still handles the common initialization pattern this code was written
to handle.
Differential Revision: https://phabricator.services.mozilla.com/D153436
Automatic update from web-platform-tests
Add RemoteContextHelper a convenience wrapper for remote contexts.
This provides a way to easily create them, runs scripts in them and correctly navigate them.
It also adds 2 tests that use it to test unload handlers in the main frame. I could not find an existing test (the ones alongside all test unload in an iframe).
Some more tests using this are in https://crrev.com/c/3750822.
Bug: 1348500
Change-Id: I5b0bd107283bf54c75b4eed9b276728581d7d557
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3779868
Reviewed-by: Dominic Farolino <dom@chromium.org>
Reviewed-by: Domenic Denicola <domenic@chromium.org>
Commit-Queue: Fergal Daly <fergal@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1030380}
--
wpt-commits: 34052aec26936cf5d37a80d02cfd20645cfc48fe
wpt-pr: 35234
Automatic update from web-platform-tests
Add test for mixed number, percent, alpha in color() (#34832)
--
wpt-commits: 179e67f86c91e4229d67a32b357e11a191ebd7fa
wpt-pr: 34832
Automatic update from web-platform-tests
These two tests were failing in Safari because Safari doesn't allow keyboard focus on button by default. (#35287)
Use input elements instead so that they could be focused in Safari.
--
wpt-commits: d76e7ab2824ee84f0a127911fdcfd47050f47c4c
wpt-pr: 35287
Automatic update from web-platform-tests
Add test for <link rel=preconnect> (#35288)
* Add test for preconnect
--
wpt-commits: 69d20d0e3431b88bc778b6ec321a561292d4c054
wpt-pr: 35288
Automatic update from web-platform-tests
Bluetooth: Extend Bluetooth blocklist for blocked manufacturer data
Extend Bluetooth blocklist for blocked manufacturer data so that any
filters in the option that matches blocked manufacturer data will be
excluded or rejected. It also filters out blocked manufacturer data
coming from device’s advertisement before sending them to the clients on
the renderer side.
Bug: 1163207
Change-Id: Ic7d70c1b4359b1a4db64182afafe48b70d4bb3db
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3781118
Commit-Queue: Jack Hsieh <chengweih@chromium.org>
Reviewed-by: Mustafa Emre Acer <meacer@chromium.org>
Reviewed-by: Reilly Grant <reillyg@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1030072}
--
wpt-commits: 7ba9ad0bb2e0102b5178a686ace4ba04c10666ce
wpt-pr: 35225
Automatic update from web-platform-tests
Fix interactionid-tap.html flaky test memory leak (#34946)
addListenersAndTap() is an async func that wasn't resolved when
t.done() happened. So refactored interactionid-tap.html from a async_test to promise_test and make sure all pending promises are settled before finishing the test. Also added a few returns to event-timing-test-utils.js to make sure the async chain is well defined.
Same issue applies to interactionid-click.html. Though we didn't see
any memory leak from any test result, it might just because it uses
test_driver.click() which might has less work to finish after
dispatching. Potentially the race condition is still possible. So
I added .then() in interactionid-click.html to settle pending promises to eliminating race conditions from happening.
Bug: 1338420
Change-Id: Id33ef7d420807d0687f32b810ff820866c3b9507
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3780795
Commit-Queue: Aoyuan Zuo <zuoaoyuan@chromium.org>
Reviewed-by: Lan Wei <lanwei@chromium.org>
Reviewed-by: Michal Mocny <mmocny@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1029818}
Co-authored-by: Aoyuan Zuo <zuoaoyuan@chromium.org>
--
wpt-commits: 64db3f242524c8bfd6fbf708c32d143193658c61
wpt-pr: 34946
Automatic update from web-platform-tests
[tables] Fix collapsed-borders paint issue.
We introduced some slightly more complex paint logic in patch:
https://chromium-review.googlesource.com/c/chromium/src/+/3646093
... to deal with fragmented table.
The new paint logic wasn't the root cause of the bug, rather the two new
fields on the physical fragment:
- table_section_row_offsets
- table_section_start_row_index
If simplified layout was triggered the simplified layout algorithm
didn't copy these fields over to the new fragment, which caused the
borders to not paint.
This patch performs the necessary copying of the fields.
Bug: 1348154
Change-Id: I7836dc3f0b0b09bbd5ece69f289cd5f6769105ce
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3792095
Reviewed-by: Philip Rogers <pdr@chromium.org>
Reviewed-by: David Grogan <dgrogan@chromium.org>
Commit-Queue: Ian Kilpatrick <ikilpatrick@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1029955}
--
wpt-commits: 3085a8619ead4447c782a23db06d00b4bff4a257
wpt-pr: 35278
Automatic update from web-platform-tests
Move mojojs support out of fedcm-helper.js
That way, only tests that actually need mojojs will fail on other browsers.
R=yigu@chromium.org
Bug: 1309251
Change-Id: Ib0326fc28539afb18ae2717aa99f22fa6c05cccd
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3792816
Commit-Queue: Yi Gu <yigu@chromium.org>
Auto-Submit: Christian Biesinger <cbiesinger@chromium.org>
Reviewed-by: Yi Gu <yigu@chromium.org>
Commit-Queue: Christian Biesinger <cbiesinger@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1029928}
--
wpt-commits: 3634857023dc653a839238687491787d3c247b89
wpt-pr: 35277
Automatic update from web-platform-tests
Fix fedcm-network-requests.sub.https.html test
This CL fixes:
- non-test regression caused by
https://chromium-review.googlesource.com/c/chromium/src/+/3759246
(Calling callback after IdpNetworkRequestManager is destroyed)
- test regression caused by
https://chromium-review.googlesource.com/c/chromium/src/+/3774541
(Bad FakeIdentityRequestDialogController refactor)
- adds missing call to set IDP cookie in
"Get after abort should work" test.
BUG=1343651
TEST=IdpNetworkRequestManagerTest.DontCallCallbackAfterManagerDeletion
Change-Id: I49b7c21ae346e1322aeb62f6a100ec03e29a5867
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3790026
Commit-Queue: Peter Kotwicz <pkotwicz@chromium.org>
Reviewed-by: Christian Biesinger <cbiesinger@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1029544}
--
wpt-commits: 2d25c82b1e49eb566a3bc11b96796b1acdb8aa4a
wpt-pr: 35253
Automatic update from web-platform-tests
Create reference tests for shadow and opacity effects using filters and properties
The Canvas 2D API provides several ways to generate shadow and opacity effects on drawn elements: by using Canvas filters or setting specific properties. The resulting effects from using either approach should be the same.
These tests check the behavior of each approach against each other and against "manual" drawings that simulate shadows by drawing several rectangles. Also, they check the expected behavior when using both filters and properties at the same time.
Bug: 1341691
Change-Id: I9fec81e99653d17c842aee39f3b0be25e684bc3b
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3744242
Reviewed-by: Aaron Krajeski <aaronhk@chromium.org>
Reviewed-by: Juanmi Huertas <juanmihd@chromium.org>
Commit-Queue: Andres Perez <andresrperez@google.com>
Cr-Commit-Position: refs/heads/main@{#1029375}
--
wpt-commits: 25a35be7a8c21c7d9a28eff0173b82d7aaa37427
wpt-pr: 34712
Automatic update from web-platform-tests
[@container] Containers forcing legacy for children
For size container queries, we may end up marking a size container
element to force legacy layout without re-attaching the LayoutObject
(since that is not possible during interleaved style/layout).
To make sure child layout objects are forced to legacy, we need to check
the element in addition to the ForceLegacyLayout() flag on the
LayoutObject in order to cover all cases when creating anonymous layout
objects, for instance for anonymous table objects.
Bug: 1345894, 1346969
Change-Id: Ifb3efd1643efd5b048d46dbda570dc4482dd7385
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3789987
Reviewed-by: Ian Kilpatrick <ikilpatrick@chromium.org>
Commit-Queue: Rune Lillesveen <futhark@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1029346}
--
wpt-commits: db2df0a749b778d59d93e59513443552ad7233f2
wpt-pr: 35259
Automatic update from web-platform-tests
css-shadow-parts: fix ::part() when element also has @exportparts
CL:3610986 rearranges the loop in StyleResolver::MatchPseudoPartRules
to include the ::part() matching element’s own tree scope, so we can
consider :host::part() rules, but it erroneously maps part names
through @exportparts before moving to the scope directly above. As a
result, we start searching for ::part() rules with our forwarded part
names when we should be searching for rules with our own part names.
This patch defers mapping part names through @exportparts until after
the scope directly above the ::part() matching element.
Fixed: 1347634
Change-Id: Ibe369d0f9324fa9f45112d35d921511513b2b59e
--
wpt-commits: 60bc2a452a2282d555dbdaa1c0c57560b47dbda4
wpt-pr: 35258
Automatic update from web-platform-tests
Revert "Direct Sockets API: Move remoteAddress and remotePort into UDPSocketOptions to align with the spec"
This reverts commit 9306bf128580dbd3648d85e6cf35db0821c3a898.
Reason for revert: likely culprit for many blink test failures on Mac, see crbug.com/1348160
Original change's description:
> Direct Sockets API: Move remoteAddress and remotePort into UDPSocketOptions to align with the spec
>
> Bug: 1345262
> Change-Id: I7332f5785b408e36811b5a3d6fbe5f5808654b4d
> Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3777041
> Commit-Queue: Andrew Rayskiy <greengrape@google.com>
> Reviewed-by: Reilly Grant <reillyg@chromium.org>
> Cr-Commit-Position: refs/heads/main@{#1029166}
Bug: 1345262, 1348160
Change-Id: I92680d22dd3e288bd325f1d7e2ba627a91eb903e
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3790885
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Commit-Queue: Maksim Moskvitin <mmoskvitin@google.com>
Owners-Override: Maksim Moskvitin <mmoskvitin@google.com>
Cr-Commit-Position: refs/heads/main@{#1029192}
--
wpt-commits: 2f5ff8263e5cfac671328dfafced710a227be706
wpt-pr: 35260
Automatic update from web-platform-tests
Direct Sockets API: Move remoteAddress and remotePort into UDPSocketOptions to align with the spec
Bug: 1345262
Change-Id: I7332f5785b408e36811b5a3d6fbe5f5808654b4d
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3777041
Commit-Queue: Andrew Rayskiy <greengrape@google.com>
Reviewed-by: Reilly Grant <reillyg@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1029166}
--
wpt-commits: ab100837450fe39d39128011b51cb82fe4d0fa0c
wpt-pr: 35236
Automatic update from web-platform-tests
Move AffectedBySubjectHas flag to HasInvalidationFlags.
:has() invalidation doesn't work properly when the :has() pseudo
class is in the subject position and the 'display' property of the
:has() anchor element is 'none' since the 'AffectedBySubjectHas'
flag is in the computed style extra fields.
To fix the bug, this CL moves the AffectedBySubjectHas flag to the
HasInvalidationFlags so that the flag can be stored in the element
rare data.
Like the other :has() related flags in HasInvalidationFlags, the
AffectedBySubjectHas flag will not be cleared after the flag is set.
Bug: 1347181
Change-Id: I98d68c87433f7c1a9a169ea1c471993336216f1d
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3787517
Reviewed-by: Rune Lillesveen <futhark@chromium.org>
Commit-Queue: Byungwoo Lee <blee@igalia.com>
Cr-Commit-Position: refs/heads/main@{#1029123}
--
wpt-commits: a7d8c3fb1d74a8e8366a0109ba1f742777b00fc7
wpt-pr: 35233
Automatic update from web-platform-tests
Fix a bug in this test that the host wasn't getting focused. (#35257)
HTML defines steps to run when an element is inserted into a document (i.e. document tree),
not anytime an element is connected to a document:
https://html.spec.whatwg.org/multipage/interaction.html#the-autofocus-attribute
--
wpt-commits: c86f08bc81892a44c2eb80344d6e3c651b71b80b
wpt-pr: 35257
Automatic update from web-platform-tests
[Accept-CH] (3) Remove delegation support from chromium
This removes support for the name="accept-ch" meta tag. Now that we have
the delegate-ch meta tag to replace it and usage is low, this isn't
needed.
This CL is part of a series:
(1) Disable support in chromium
(2) Remove tests from devtools
(3) Remove support from chromium
Bug: 1334152
Change-Id: Id8b5fe5f167375a20b153af103aeb51cdf495f8d
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3755606
Reviewed-by: Charlie Reis <creis@chromium.org>
Reviewed-by: Yoav Weiss <yoavweiss@chromium.org>
Reviewed-by: Victor Tan <victortan@chromium.org>
Reviewed-by: Yue Ru Sun <yrsun@chromium.org>
Commit-Queue: Ari Chivukula <arichiv@chromium.org>
Auto-Submit: Ari Chivukula <arichiv@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1028930}
--
wpt-commits: 9b0f0894471a7549104788472986c78361bba70e
wpt-pr: 34898
Automatic update from web-platform-tests
CSS-wide keywords are not allowed unquoted in local()
Instead of dropping the descriptor, we stored a local() descriptor with
an empty font name which caused a crash. If the parsed font name is the
empty string, drop the descriptor.
Bug: 1342244
Change-Id: I5eb2c450b2019df475ed0caafba647fd9dc7fb61
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3789343
Reviewed-by: Dominik Röttsches <drott@chromium.org>
Commit-Queue: Rune Lillesveen <futhark@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1028890}
--
wpt-commits: d0ea7f21d6f02bc788163442bb38e5c06b5a089d
wpt-pr: 35247
Automatic update from web-platform-tests
[Multi Apps] Reject add() call promise in case of error(s)
Bug: 1313108, 1171317
Change-Id: Ie2ababf6febd67d2bb6cbc7a9adc61f81d4eefc3
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3740651
Reviewed-by: Mike West <mkwst@chromium.org>
Commit-Queue: Sam Thiesen <samicolon@google.com>
Reviewed-by: Daniel Murphy <dmurph@chromium.org>
Reviewed-by: Ivan Šandrk <isandrk@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1028668}
--
wpt-commits: 6473beec7ac068080691984b8efbfd69323fbb7e
wpt-pr: 34924
Automatic update from web-platform-tests
Fix incorrect unit in Container Query test
--
wpt-commits: a56a474935bbfd82b26833f763567d18d026d295
wpt-pr: 35237
Automatic update from web-platform-tests
Don't re-lock DisplayLocks during forced unlock
When a DisplayLock is unlocked via ForceUnlockIfNeeded, subsequent
updates to the DisplayLock can cause it to become locked again which is
problematic.
This patch prevents the DisplayLock from being locked again until the
next frame.
Fixed: 1338135
Change-Id: I07790658e25ea9fe2f4e8de154e3a58e7e08892b
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3751710
Commit-Queue: Joey Arhar <jarhar@chromium.org>
Reviewed-by: Vladimir Levin <vmpstr@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1028405}
--
wpt-commits: 0966be69c8686977b6e0c1efc6f9f020055aa474
wpt-pr: 34744