Instead of trying to understand the precise Control Flow Graph, we now construct
MIR more like how a baseline compiler does it: whenever we have a forward jump
in the bytecode we add the block to a pendingBlocks list (keyed on the target
pc) and when we get to a jump target op we "link" any pending blocks for that
pc.
This patch also changes 'continues' in while/for-in/for-of loops to be more
similar to continues in for-loops and do-while loops. They're now just forward
jumps to the end of the loop body, instead of backward jumps to the branch at
the top that jumps to the condition. It's simpler and because they're now plain
forward branches the PendingBlock system handles them automatically.
We still always emit a jump target op for continues, even if there are no
continues. It's pretty easy to optimize this but that will be done in a
follow-up (bug 1595699) to not complicate this patch more. We can likely also
remove some source notes.
Differential Revision: https://phabricator.services.mozilla.com/D52635
--HG--
extra : moz-landing-system : lando
Previously we had to check for this pointer when finalizing objects and clear it in the rare cases it was present. It's simpler to trace any dictionary object reachable from a shape which means we can remove this special case.
This adds tracing and a pre-write barrier to the pointer. There is still no post barrier for this which means nursery special case handling of this is still present.
Differential Revision: https://phabricator.services.mozilla.com/D53791
--HG--
extra : moz-landing-system : lando
Right now we post updates and it "works" because we prevent the UpdateOverflow
call if we're during reflow.
If this happens during styling however this is not sound (and it is not sound
in general and has caused badness in the past, as noted by the other
workarounds).
Make it sound by preventing to observe ancestors, and do it everywhere, removing
various ad-hoc hacks that were spread around elsewhere.
This changes expectations of two tests:
* clip-path-recursion-002.svg: Now we consider the inner clip-path reference
invalid. This matches WebKit and Blink, and I don't see any spec text
explicitly asking for our old behavior, so I just changed the test.
* element-paint-recursion.html: Changes the expectations of elements
referencing themselves via -moz-element(). Now it is invalid, instead of
painting ourselves once inside ourselves, which was a bit wild on its own.
Differential Revision: https://phabricator.services.mozilla.com/D53890
--HG--
extra : moz-landing-system : lando
At first I thought this was going to enable simplifications in the selector
parser (to simplify the attribute selector setup), but I couldn't end up
shrinking the layout enough.
However this should help with bug 1559076, which returns Option<Atom>, and it
was easy to write.
Differential Revision: https://phabricator.services.mozilla.com/D53766
--HG--
extra : moz-landing-system : lando
This patch makes network change event different from network ID change event on Linux and Android. Network change event is now also sent when any address has been added, removed or changed.
Differential Revision: https://phabricator.services.mozilla.com/D53796
--HG--
extra : moz-landing-system : lando
It seems newer glibc versions implement nanosleep() in terms of
clock_nanosleep(), which broke the profiler due to the sandbox rules
whitelisting the former but not the later.
Unfortunate that the profiler will fail in old Firefox versions though... :/
Differential Revision: https://phabricator.services.mozilla.com/D53879
--HG--
extra : moz-landing-system : lando
The helper function waits for an event to be dispatched,
which adds extra safety.
Differential Revision: https://phabricator.services.mozilla.com/D53927
--HG--
extra : moz-landing-system : lando
Automatic update from web-platform-tests
Minor changes to testdriver docs (#20050)
1. Rename testdriver-tutorial to testdriver-extension-tutorial, and
clarify that it's about how to extend testdriver.
2. Clarify testdriver Actions docs to focus on Actions builder API
instead of action_sequence
--
wpt-commits: 0e7c85dc27c8b539112cd6d82beea3ebcb5ef430
wpt-pr: 20050
Differential Revision: https://phabricator.services.mozilla.com/D53620
Automatic update from web-platform-tests
Fix a dead link in docs (#20038)
Although the link without the file extension works on Sphinx, it does not work
on GitHub. Adding the ".md" extension makes it work in both places.
--
wpt-commits: e61b881d6f43346b25672f9ea2259f1ffcd69062
wpt-pr: 20038
Differential Revision: https://phabricator.services.mozilla.com/D53619
Automatic update from web-platform-tests
[webnfc] Support reading/writing 'unknown' type records
Previously, TNF_UNKNOWN records were read and represented as 'opaque'
type records, and writing TNF_UNKNOWN records was not supported.
As part of effort to make web nfc more of a low level API, we have the
spec change https://github.com/w3c/web-nfc/pull/373 that defines an
explicit mapping for
TNF_UNKNOWN <---> 'unknown' type NDEFRecord
This CL introduces the new 'unknown' type and supports reading/writing
them accordingly.
BUG=520391
Change-Id: I384256d35b665c740edb9bef221d3319bf7df063
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1886114
Commit-Queue: Leon Han <leon.han@intel.com>
Reviewed-by: Reilly Grant <reillyg@chromium.org>
Cr-Commit-Position: refs/heads/master@{#712001}
--
wpt-commits: d4a7c5c8ff1f9a56e692b19469e655fd7f684582
wpt-pr: 19971
Differential Revision: https://phabricator.services.mozilla.com/D53616
Automatic update from web-platform-tests
[webnfc] Add BufferSource into the union type NDEFMessageSource
This CL updates the definition of the union type NDEFMessageSource:
(DOMString or ArrayBuffer or NDEFMessageInit)
==>
(DOMString or BufferSource or NDEFMessageInit)
BUG=520391
Change-Id: I603616047814c56744eed94efd7f3579079b0875
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1886351
Reviewed-by: Reilly Grant <reillyg@chromium.org>
Reviewed-by: Yuki Shiino <yukishiino@chromium.org>
Commit-Queue: Leon Han <leon.han@intel.com>
Cr-Commit-Position: refs/heads/master@{#711986}
--
wpt-commits: c0ec46c3e6f1452abf3cf9916f3e2ceb4c494b12
wpt-pr: 19974
Differential Revision: https://phabricator.services.mozilla.com/D53614
Automatic update from web-platform-tests
Fix form submission for <button>s with children
Form submission stopped working after crrev.com/c/1850358 when using
event.preventDefault() and form.submit() in a click event handler for a
<button type=submit> when the button has child elements and the click
was made on one of the child elements.
Bug: 1020086
Change-Id: I8976298ac56a64ff7033cb2f7b46ee5116229464
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1896050
Reviewed-by: Mason Freed <masonfreed@chromium.org>
Commit-Queue: Joey Arhar <jarhar@chromium.org>
Cr-Commit-Position: refs/heads/master@{#711918}
--
wpt-commits: ac527a6087fc4c16a81ab001470d9e4e114c94b9
wpt-pr: 20054
Differential Revision: https://phabricator.services.mozilla.com/D53613
Automatic update from web-platform-tests
[css-pseudo] Apply ::marker styles to markers
Currently markers are assigned a mostly empty style, it just inherits
from the list item and has some customizations like `display`.
This patch makes them use the style of the ::marker pseudo-element.
The inheritance is also from the list item, and the customizations are
applied afterwards.
The change only affects markers originated by real elements. Markers
originated by ::before or ::after pseudo-elements should get the styles
from ::before::marker or ::after::marker, but this will be addressed in
a follow-up patch.
Spec: https://drafts.csswg.org/css-pseudo-4/#marker-pseudo
BUG=457718
TEST=external/wpt/css/css-pseudo/marker-and-other-pseudo-elements.html
TEST=external/wpt/css/css-pseudo/marker-color.html
TEST=external/wpt/css/css-pseudo/marker-font-properties.html
Change-Id: Ide2fbc344e4732257044ebd3e7966906af21c434
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1893265
Reviewed-by: Rune Lillesveen <futhark@chromium.org>
Commit-Queue: Oriol Brufau <obrufau@igalia.com>
Cr-Commit-Position: refs/heads/master@{#711883}
--
wpt-commits: e76f87b52667b3e8b43285e72b654bfa7cb8ace9
wpt-pr: 20025
Differential Revision: https://phabricator.services.mozilla.com/D53611
Automatic update from web-platform-tests
[WebCryptoAPI] Defer harness completion (#19904)
This change ensures that all subtests are executed when the tests are
evaluated in dedicated worker contexts.
--
wpt-commits: 0b2fcd3261f03fd69acd345dc8c7e55e613f62d8
wpt-pr: 19904
Differential Revision: https://phabricator.services.mozilla.com/D53609
Automatic update from web-platform-tests
[Native File System] Return modified time for File objects
Plumb through FileInfo to the renderer, and populate the returned File
object with the correct value.
BUG=1018945
Change-Id: Ic11d819ea83be49df831bbda37519779be0b8781
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1891463
Reviewed-by: Matthew Denton <mpdenton@chromium.org>
Reviewed-by: Marijn Kruisselbrink <mek@chromium.org>
Commit-Queue: Olivier Yiptong <oyiptong@chromium.org>
Cr-Commit-Position: refs/heads/master@{#711864}
--
wpt-commits: 4d61f3e5fd066fad4366a8fb10e6c2e730bce338
wpt-pr: 20009
Differential Revision: https://phabricator.services.mozilla.com/D53607
Automatic update from web-platform-tests
Revert to waiting for first interval when pruning first interval
When 'end' changes so that we need to discard/prune our current
interval, and said interval is the first interval, revert back to
waiting for a first interval again.
Bug: 1020163
Change-Id: I7185253474e23a3a58294043102c91e1a59fe10c
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1895335
Reviewed-by: Stephen Chenney <schenney@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#711709}
--
wpt-commits: 2c92ac0ff99519626494fcb4329891deea0e631d
wpt-pr: 20046
Differential Revision: https://phabricator.services.mozilla.com/D53604
Automatic update from web-platform-tests
Bug 1574668 - switch to community TC deployment (#20039)
Within the new "Community" deployment of Taskcluster, the worker pools
(provisionerId/workerType) are different -- WPT has a dedicated worker
pool all to itself. This uses the new worker pool names in the new
deployment. Once things are migrated to the new deployment, the logic
here can be removed and replaced with simple strings.
--
wpt-commits: 8aeb44900921dce5401a91a2ede05dbbbb2d56f2
wpt-pr: 20039
Differential Revision: https://phabricator.services.mozilla.com/D53602
Automatic update from web-platform-tests
Cleanup Edge driver files after every run (#20023)
* Added task to delete msedgedriver.exe at the end of each run
* Delete unzipped folder and zip file
* Split up deletion tasks
* Always delete Driver_Notes folder
--
wpt-commits: f6d693b1796efc206c68e3a9fd4faa3aac55efaa
wpt-pr: 20023
Differential Revision: https://phabricator.services.mozilla.com/D53598
Automatic update from web-platform-tests
Rename mojom-side transforms on input sources for consistency
There should be no functional changes introduced by this CL.
Renames XRInputSource-related data in mojom structs. This CL does not
attempt to fix names of other variables / functions that are used to
compute the data that will then be set on the mojom structs - this will
have to happen in a follow-up (mostly on device side, blink usage should
already be consistent).
Change-Id: I1b4888158a7ed57cecce7de87634e639cf23d6ad
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1891455
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Reviewed-by: Klaus Weidner <klausw@chromium.org>
Reviewed-by: Alexander Cooper <alcooper@chromium.org>
Commit-Queue: Piotr Bialecki <bialpio@chromium.org>
Cr-Commit-Position: refs/heads/master@{#711458}
--
wpt-commits: f355fee8497e96d9da6f96bde38152b0be060783
wpt-pr: 20029
Differential Revision: https://phabricator.services.mozilla.com/D53597
Automatic update from web-platform-tests
[RTCPeerConnection] Ship parameterless setLocalDescription().
Intent to Implement and Ship:
https://groups.google.com/a/chromium.org/forum/#!topic/blink-dev/OqPfCpC5RYU
For background, motivation, requirements and implementation notes, see
https://docs.google.com/document/d/1XLwNN2kUIGGTwz9LQ0NwJNkcybi9oKnynUEZB1jGA14/edit?usp=sharing
Parameterless setLocalDescription() implicitly creates an offer or answer
as appropriate based on the current signaling state. This is already
implemented in third_party/webrtc using an operations chain. This CL
reuses existing plumbing (used by SLD/SRD already) to surface state
changes when invoking the new SetLocalDescription variety.
The PeerConnectionTracker is updated to track parameterless SLD so that
it shows up in chrome://webrtc-internals/. The old SLD and SRD showed up
as events as follow:
- When SLD(sdp) is called, a "setLocalDescription" event shows up with the
SDP as the event's value.
- When SLD(sdp) resolves, a "setLocalDescriptionOnSuccess" event shows up
without a value.
The parameterless setLocalDescription() instead shows up in
chrome://webrtc-internals/ as:
- When SLD() is called, a "setLocalDescriptionImplicitCreateOfferOrAnswer"
event shows up without a value.
- When SLD() resolves, a "setLocalDescriptionImplicitCreateOfferOrAnswerOnComplete"
event shows up with the resulting SDP as the event's value.
As such, chrome://webrtc-internals/ remains useful for debugging even if
parameterless SLD is used.
Bug: chromium:980885
Change-Id: I469f63cdaab83991749d5a0d47fe751666304fe6
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1890420
Reviewed-by: Guido Urdaneta <guidou@chromium.org>
Reviewed-by: Steve Anton <steveanton@chromium.org>
Commit-Queue: Henrik Boström <hbos@chromium.org>
Cr-Commit-Position: refs/heads/master@{#711445}
--
wpt-commits: f7b4aa0021ecf0c1470205f110b40eb40a0a1667
wpt-pr: 20001
Differential Revision: https://phabricator.services.mozilla.com/D53595
Automatic update from web-platform-tests
[docs] describe required system setup in more detail (#19940)
* [docs] describe required system setup in more detail
The recommendation to use WSL is from https://github.com/web-platform-tests/wpt/pull/8183
and is removed, as with Windows 10 the required setup is fairly modest.
Anyone using WSL can simply follow the Linux instructions.
* Revert Fedora documentation
https://github.com/web-platform-tests/wpt/issues/20035
* Use .bash_profile
* Mention WSL
--
wpt-commits: dd8b3c711e034e06372a5fe356bfbaf45100433c
wpt-pr: 19940
Differential Revision: https://phabricator.services.mozilla.com/D53594
Automatic update from web-platform-tests
[scroll-snap] Make several wpt tests independent of scrollbar-width
Multiple scroll snap wpt tests use `scrollbar-width:none` css property
to hide scrollbars. This property is only supported in Gecko.
This CL adds the legacy webkit prefixed property [1] to enable the same
functionality. This addition allows 8 existing tests to pass in Chrome (and
potentially in Safari).
[1] ::-webkit-scrollar { display: none; }
Fixed: 1003055
Change-Id: Iefe5f5071d23cd40bab71a9d0e360b62e10e9c73
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1884816
Auto-Submit: Majid Valipour <majidvp@chromium.org>
Reviewed-by: Stephen McGruer <smcgruer@chromium.org>
Commit-Queue: Majid Valipour <majidvp@chromium.org>
Cr-Commit-Position: refs/heads/master@{#711384}
--
wpt-commits: dc048c67d786f646ab659ea050183989ff3e8bfb
wpt-pr: 19955
Differential Revision: https://phabricator.services.mozilla.com/D53592