Remove support for energy and heartbeats profiling
Both are disabled by default (energy at compile-time, heartbeats with a run-time option). Neither is tested of CI. Neither has been used in a long time. They might have Undefined Behavior: https://github.com/servo/servo/issues/26550#issuecomment-634238098. They each depend on a mostly-unmaintained C library. The thread-safety expectation of those libraries are unknown.
Introduce ElementCSSInlineStyle for SVGElement
---
- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors
- [x] These changes fix#26777 and fix#26032 and fix#21990
- [x] There are tests for these changes
<!-- Also, please make sure that "Allow edits from maintainers" checkbox is checked, so that we can help you if you get stuck somewhere along the way.-->
<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->
Prefix `on` for function name of inline events
While checking what needs to be done for the spec-update, I've noticed the logic of checking `is window-reflecting element (e.g. body and frameset)` is already handled by the `is` casting function.
However, we still failed to pass the tests because we're missing `on` prefix for inline functions.
I'm not sure if this patch is good enough (or maybe at least I need to add a comment for why adding `on` prefix?).
Besides, I checked [how Gecko handles](https://searchfox.org/mozilla-central/rev/8bc4e35c9bb47c1fe3131e6155d9f482e1efef9a/dom/events/EventListenerManager.cpp#1012-1022) and looks like they also just pass the atom directly.
But, the [generated atom](https://searchfox.org/mozilla-central/source/__GENERATED__/xpcom/ds/nsGkAtomList.h#775) is prefixed with `on` which is correct to just pass it into the `CompileFunction`.
---
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `___` with appropriate data: -->
- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors
- [x] These changes fix#26479
- [x] There are tests for these changes
<!-- Also, please make sure that "Allow edits from maintainers" checkbox is checked, so that we can help you if you get stuck somewhere along the way.-->
<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->
build(deps): bump proc-macro-nested from 0.1.3 to 0.1.4
Bumps [proc-macro-nested](https://github.com/dtolnay/proc-macro-hack) from 0.1.3 to 0.1.4.
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a href="https://github.com/dtolnay/proc-macro-hack/commits">compare view</a></li>
</ul>
</details>
<br />
[](https://dependabot.com/compatibility-score/?dependency-name=proc-macro-nested&package-manager=cargo&previous-version=0.1.3&new-version=0.1.4)
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
- `@dependabot use these labels` will set the current labels as the default for future PRs for this repo and language
- `@dependabot use these reviewers` will set the current reviewers as the default for future PRs for this repo and language
- `@dependabot use these assignees` will set the current assignees as the default for future PRs for this repo and language
- `@dependabot use this milestone` will set the current milestone as the default for future PRs for this repo and language
- `@dependabot badge me` will comment on this PR with code to add a "Dependabot enabled" badge to your readme
Additionally, you can set the following in your Dependabot [dashboard](https://app.dependabot.com):
- Update frequency (including time of day and day of week)
- Pull request limits (per update run and/or open at any time)
- Out-of-range updates (receive only lockfile updates, if desired)
- Security updates (receive only security updates, if desired)
</details>
Update raqote and associated dependencies
<!-- Please describe your changes on the following line: -->
---
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `___` with appropriate data: -->
- [ ] `./mach build -d` does not report any errors
- [ ] `./mach test-tidy` does not report any errors
- [ ] These changes fix #___ (GitHub issue number if applicable)
<!-- Either: -->
- [ ] There are tests for these changes OR
- [ ] These changes do not require tests because ___
<!-- Also, please make sure that "Allow edits from maintainers" checkbox is checked, so that we can help you if you get stuck somewhere along the way.-->
<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->
build(deps): bump proc-macro2 from 0.4.26 to 0.4.30
Bumps [proc-macro2](https://github.com/alexcrichton/proc-macro2) from 0.4.26 to 0.4.30.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/alexcrichton/proc-macro2/releases">proc-macro2's releases</a>.</em></p>
<blockquote>
<h2>0.4.30</h2>
<ul>
<li>Implement Clone for TokenStream's IntoIter (<a href="https://github-redirect.dependabot.com/alexcrichton/proc-macro2/issues/177">#177</a>, thanks <a href="https://github.com/ivanbakel">@ivanbakel</a>)</li>
</ul>
<h2>0.4.29</h2>
<ul>
<li>Support compiling with <code>RUSTFLAGS='-Z allow-features='</code> on a nightly compiler (<a href="https://github-redirect.dependabot.com/alexcrichton/proc-macro2/issues/176">#176</a>, thanks <a href="https://github.com/Nemo157">@Nemo157</a>)</li>
</ul>
<h2>0.4.28</h2>
<ul>
<li>Avoid needlessly escaping <code>'</code> inside a string literal or <code>"</code> inside a character literal (<a href="https://github-redirect.dependabot.com/alexcrichton/proc-macro2/issues/60">#60</a>)</li>
<li>Add impls of Copy, Clone, Debug, PartialEq, Eq for proc_macro2::LineColumn</li>
</ul>
<h2>0.4.27</h2>
<ul>
<li>
<p>Add Cargo cfg <code>"span-locations"</code> to expose <a href="https://docs.rs/proc-macro2/0.4/proc_macro2/struct.Span.html#method.start"><code>Span::start</code></a> and <a href="https://docs.rs/proc-macro2/0.4/proc_macro2/struct.Span.html#method.end"><code>Span::end</code></a> accessors that give the line and column location of a Span (<a href="https://github-redirect.dependabot.com/alexcrichton/proc-macro2/issues/166">#166</a>)</p>
<p>Be aware that this involves storing more information than before inside of Spans which increases their size -- leading to possibly slower performance of any code involving proc-macro2 types (but only when the cfg is enabled).</p>
</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="f514921bb4"><code>f514921</code></a> Release 0.4.30</li>
<li><a href="1ef4d12484"><code>1ef4d12</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/alexcrichton/proc-macro2/issues/177">#177</a> from ivanbakel/cloneable_intoiter</li>
<li><a href="f6754d35b2"><code>f6754d3</code></a> Make TokenStream's IntoIter derive Clone</li>
<li><a href="79c8ed793f"><code>79c8ed7</code></a> Release 0.4.29</li>
<li><a href="ce12a482f0"><code>ce12a48</code></a> Remove double negative in !proc_macro_span_disallowed</li>
<li><a href="b455dd7764"><code>b455dd7</code></a> Use a cfg called proc_macro_span to control feature(proc_macro_span)</li>
<li><a href="8a1827af91"><code>8a1827a</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/alexcrichton/proc-macro2/issues/176">#176</a> from Nemo157/block-nightly-feature</li>
<li><a href="099db2afbb"><code>099db2a</code></a> Detect if the user has disallowed usage of the proc_macro_span feature</li>
<li><a href="692f49ce86"><code>692f49c</code></a> Fix reference to Serde in contribution section</li>
<li><a href="16c2b45e92"><code>16c2b45</code></a> Release 0.4.28</li>
<li>Additional commits viewable in <a href="https://github.com/alexcrichton/proc-macro2/compare/0.4.26...0.4.30">compare view</a></li>
</ul>
</details>
<br />
[](https://dependabot.com/compatibility-score/?dependency-name=proc-macro2&package-manager=cargo&previous-version=0.4.26&new-version=0.4.30)
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
- `@dependabot use these labels` will set the current labels as the default for future PRs for this repo and language
- `@dependabot use these reviewers` will set the current reviewers as the default for future PRs for this repo and language
- `@dependabot use these assignees` will set the current assignees as the default for future PRs for this repo and language
- `@dependabot use this milestone` will set the current milestone as the default for future PRs for this repo and language
- `@dependabot badge me` will comment on this PR with code to add a "Dependabot enabled" badge to your readme
Additionally, you can set the following in your Dependabot [dashboard](https://app.dependabot.com):
- Update frequency (including time of day and day of week)
- Pull request limits (per update run and/or open at any time)
- Out-of-range updates (receive only lockfile updates, if desired)
- Security updates (receive only security updates, if desired)
</details>
build(deps): bump unicode-normalization from 0.1.5 to 0.1.12
Bumps [unicode-normalization](https://github.com/unicode-rs/unicode-normalization) from 0.1.5 to 0.1.12.
<details>
<summary>Commits</summary>
<ul>
<li><a href="59febebede"><code>59febeb</code></a> Publish 0.1.12</li>
<li><a href="fa604a6b99"><code>fa604a6</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/unicode-rs/unicode-normalization/issues/52">#52</a> from clintfred/master</li>
<li><a href="91bd7d8c0b"><code>91bd7d8</code></a> bump to smallvec 1.1.0</li>
<li><a href="02f8b230b7"><code>02f8b23</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/unicode-rs/unicode-normalization/issues/49">#49</a> from unicode-rs/bump</li>
<li><a href="87fac9dafe"><code>87fac9d</code></a> Bump to 0.1.11</li>
<li><a href="d81a08a4ec"><code>d81a08a</code></a> Add #[allow(ellipsis_inclusive_range_patterns)] to unicode.py</li>
<li><a href="717e6c2dac"><code>717e6c2</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/unicode-rs/unicode-normalization/issues/48">#48</a> from kentfredric/attempt-4</li>
<li><a href="fc87399fce"><code>fc87399</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/unicode-rs/unicode-normalization/issues/47">#47</a> from unicode-rs/version-bump</li>
<li><a href="5fabe3660c"><code>5fabe36</code></a> Bump to 0.1.10</li>
<li><a href="0f4cb1e0b5"><code>0f4cb1e</code></a> Add travis glue to test built package too</li>
<li>Additional commits viewable in <a href="https://github.com/unicode-rs/unicode-normalization/compare/v0.1.5...v0.1.12">compare view</a></li>
</ul>
</details>
<br />
[](https://dependabot.com/compatibility-score/?dependency-name=unicode-normalization&package-manager=cargo&previous-version=0.1.5&new-version=0.1.12)
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
- `@dependabot use these labels` will set the current labels as the default for future PRs for this repo and language
- `@dependabot use these reviewers` will set the current reviewers as the default for future PRs for this repo and language
- `@dependabot use these assignees` will set the current assignees as the default for future PRs for this repo and language
- `@dependabot use this milestone` will set the current milestone as the default for future PRs for this repo and language
- `@dependabot badge me` will comment on this PR with code to add a "Dependabot enabled" badge to your readme
Additionally, you can set the following in your Dependabot [dashboard](https://app.dependabot.com):
- Update frequency (including time of day and day of week)
- Pull request limits (per update run and/or open at any time)
- Out-of-range updates (receive only lockfile updates, if desired)
- Security updates (receive only security updates, if desired)
</details>
Add Layout 2020 box tree support for Flexbox, behind a pref
CC https://github.com/servo/servo/issues/26639
Layout support will come in future PRs. This one generates a zero-size fragment with no content.
Implement readablestream support
<!-- Please describe your changes on the following line: -->
FIX#21482FIX#24876FIX#26392
---
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `___` with appropriate data: -->
- [ ] `./mach build -d` does not report any errors
- [ ] `./mach test-tidy` does not report any errors
- [ ] These changes fix #___ (GitHub issue number if applicable)
<!-- Either: -->
- [ ] There are tests for these changes OR
- [ ] These changes do not require tests because ___
<!-- Also, please make sure that "Allow edits from maintainers" checkbox is checked, so that we can help you if you get stuck somewhere along the way.-->
<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->
Implement GPURenderPassEncoder
Add webidls for GPURenderPassEncoder and GPURenderEncoderBase and
implement relevant methods.
<!-- Please describe your changes on the following line: -->
r?@kvark
---
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `___` with appropriate data: -->
- [X] `./mach build -d` does not report any errors
- [X] `./mach test-tidy` does not report any errors
- [ ] These changes fix #___ (GitHub issue number if applicable)
<!-- Either: -->
- [ ] There are tests for these changes OR
- [ ] These changes do not require tests because ___
<!-- Also, please make sure that "Allow edits from maintainers" checkbox is checked, so that we can help you if you get stuck somewhere along the way.-->
<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->
This should help out quite a bit with uBO, which has lots of very
general attribute selectors. We invalidate per attribute name rather
than using a SelectorMap, which prevents matching for attribute
selectors that can't have changed.
The idea is that this should be generally cheaper, though there are
cases where this would be a slight pesimization. For example, if there's
an attribute selector like:
my-specific-element[my-attribute] { /* ... */ }
And you change `my-attribute` in an element that isn't a
`my-specific-element`, before that the SelectorMap would've prevented us
from selector-matching completely. Now we'd still run selector-matching
for that (though the matching would be pretty cheap).
However I think this should speed up things generally, let's see what
the perf tests think before landing this though.
Differential Revision: https://phabricator.services.mozilla.com/D76825
This addresses a minor regression in bloom-matching.html. The common
case here is that there's no selector to the right of the
pseudo-element, so keep that path inline, while keeping all other checks
out of line.
Differential Revision: https://phabricator.services.mozilla.com/D76793