This is a small cleanup that moves and renames this class. The rename is
simply because we are exposing a lot about the details of Servo's
rendering in the API and it makes sense to start thinking about
abstracting that away a bit.
This also moves the struct to `gfx`, which does have an effect on
Servo's dependency graph. This adds a new dependency on gfx to
`compositing`, but `compositing` had a transitive dependency on
gfx before through `canvas`.
* layout: Round getClientRect queries to pixels properly
Instead of just flooring all pixels in getClientRect queries, we should
round the rectangle.
* Fix scrollWidth/scrollHeight too, and tests
* Tests passing
* Test expectation for legacy layout
---------
Co-authored-by: Oriol Brufau <obrufau@igalia.com>
This adds support for table `border-spacing` property. Note that we do
not yet support the collapsed border model.
Co-authored-by: Oriol Brufau <obrufau@igalia.com>
* Matrix in CI and mach try with presets
* small fixups
* names in trigger try run comment
* let
* f
* rename step
* fix running try on win
* fix try branch full
* py3.10
* typo
* Make unit-tests default to false, except in basic os runs
Fixes https://github.com/servo/servo/issues/31174
* make full use linux-wpt & linux-wpt also include unit-tests
so full is equal to main workflow
* Stylish fixes
* cmp json as dict
The Android documentation was missing a few packages that needed to be
installed as well as some quotes to properly run the commands. In
addition, trim down the build setup and move the more complex contents
to the wiki.
Update the GStreamer runtime deps to reflect reality.
* layout: Implement computation of table column widths
This change implements the various steps of table column width
computation, ignoring features that don't exist yet (such as separated
borders, column elements, and colgroups).
Co-authored-by: Oriol Brufau <obrufau@igalia.com>
* Fix an issue with the assignment of column percent width
* Respond to review comments
---------
Co-authored-by: Oriol Brufau <obrufau@igalia.com>
Bumps [pin-project](https://github.com/taiki-e/pin-project) from 1.1.3
to 1.1.4.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/taiki-e/pin-project/releases">pin-project's
releases</a>.</em></p>
<blockquote>
<h2>1.1.4</h2>
<ul>
<li>Suppress <code>clippy::missing_docs_in_private_items</code> and
<code>clippy::missing_inline_in_public_items</code> lints in generated
code. (<a
href="https://redirect.github.com/taiki-e/pin-project/pull/356">#356</a>,
thanks <a
href="https://github.com/daxpedda"><code>@daxpedda</code></a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/taiki-e/pin-project/blob/main/CHANGELOG.md">pin-project's
changelog</a>.</em></p>
<blockquote>
<h2>[1.1.4] - 2024-01-25</h2>
<ul>
<li>Suppress <code>clippy::missing_docs_in_private_items</code> and
<code>clippy::missing_inline_in_public_items</code> lints in generated
code. (<a
href="https://redirect.github.com/taiki-e/pin-project/pull/356">#356</a>,
thanks <a
href="https://github.com/daxpedda"><code>@daxpedda</code></a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="6aefde4e39"><code>6aefde4</code></a>
Release 1.1.4</li>
<li><a
href="017dbf710e"><code>017dbf7</code></a>
Update changelog</li>
<li><a
href="0b650935a6"><code>0b65093</code></a>
Move lint test to sub-crate</li>
<li><a
href="3b38bcf885"><code>3b38bcf</code></a>
Add <code>allow(clippy::missing_docs_in_private_items)</code></li>
<li><a
href="e0edbbcf33"><code>e0edbbc</code></a>
Ignore new clippy lints in tests</li>
<li><a
href="b0dd3419e2"><code>b0dd341</code></a>
Remove extra comma</li>
<li><a
href="3a2ccfe123"><code>3a2ccfe</code></a>
Ignore more clippy lints at workspace level</li>
<li><a
href="05c247eef3"><code>05c247e</code></a>
ci: Check with both -Z minimal-versions and -Z
direct-minimal-versions</li>
<li><a
href="f19afbc6fa"><code>f19afbc</code></a>
ci: Use taiki-e/github-actions/.github/workflows/miri.yml reusable
workflow</li>
<li><a
href="8c6cfbf36f"><code>8c6cfbf</code></a>
Update ui test output to nightly-2024-01-09</li>
<li>Additional commits viewable in <a
href="https://github.com/taiki-e/pin-project/compare/v1.1.3...v1.1.4">compare
view</a></li>
</ul>
</details>
<br />
[](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
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 show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@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)
</details>
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [bytemuck](https://github.com/Lokathor/bytemuck) from 1.14.0 to
1.14.1.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/Lokathor/bytemuck/blob/main/changelog.md">bytemuck's
changelog</a>.</em></p>
<blockquote>
<h2>1.14.1</h2>
<ul>
<li>docs clarifications.</li>
</ul>
<h2>1.14</h2>
<ul>
<li><code>write_zeroes</code> and <code>fill_zeroes</code> functions:
Writes (to one) or fills (a slice)
zero bytes to all bytes covered by the provided reference. If your type
has
padding, this will even zero out the padding bytes.</li>
<li><code>align_offset</code> feature: causes pointer alignment checks
to use the
<code>align_offset</code> pointer method rather than as-casting the
pointer to <code>usize</code>.
This <em>may</em> improve codegen, if the compiler would have otherwise
thought that
the pointer address escaped. No formal benchmarks have been done either
way.</li>
<li><code>must_cast</code> feature: Adds <code>must_*</code> family of
functions. These functions will
fail to compile if the cast requested can't be statically known to
succeed.
The error messages can be kinda bad when this happens, but eliminating
the
possibility of a runtime error might be worth it to you.</li>
</ul>
<h2>1.13.1</h2>
<ul>
<li>Remove the requirement for the <em>source</em> data type to be
<code>AnyBitPattern</code> on
<code>pod_collect_to_vec</code>, allowing you to pod collect vecs of
<code>char</code> into vecs of
<code>u32</code>, or whatever.</li>
</ul>
<h2>1.13</h2>
<ul>
<li>Now depends on <code>bytemuck_derive-1.4.0</code></li>
<li>Various small enhancements that would have been patch version
updates, but
which have been rolled into this minor version update.</li>
</ul>
<h2>1.12.4</h2>
<ul>
<li>This has additional impls for existing traits and cleans up some
internal code,
but there's no new functions so I guess it counts as just a patch
release.</li>
</ul>
<h2>1.12.3</h2>
<ul>
<li>This bugfix makes the crate do stuff with <code>Arc</code> or not
based on the
<code>target_has_atomic</code> config. Previously, some targets that
have allocation but
not atomics were getting errors. This raises the MSRV of the
<code>extern_crate_alloc</code> feature to 1.60, but opt-in features are
<em>not</em> considered
to be hard locked to 1.34 like the basic build of the crate is.</li>
</ul>
<h2>1.12.2</h2>
<ul>
<li>Fixes <code>try_pod_read_unaligned</code> bug that made it always
fail unless the target
type was exactly pointer sized in which case UB <em>could</em> happen.
The
<code>CheckedBitPattern::is_valid_bit_pattern</code> was being asked to
check that a
<em>reference</em> to the <code>pod</code> value was a valid bit
pattern, rather than the actual
bit pattern itself, and so the check could in some cases be
illegally</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="1e1a22e5ea"><code>1e1a22e</code></a>
chore: Release bytemuck version 1.14.1</li>
<li><a
href="2ae1a14a3f"><code>2ae1a14</code></a>
changelog</li>
<li><a
href="8dc32b1e50"><code>8dc32b1</code></a>
Explicitly document that pod_read_unaligned and try_pod_read_unaligned
don't ...</li>
<li><a
href="085a5f573e"><code>085a5f5</code></a>
Revise the crate-level docs.</li>
<li><a
href="c705218630"><code>c705218</code></a>
Added custom crate path with tests (<a
href="https://redirect.github.com/Lokathor/bytemuck/issues/209">#209</a>)</li>
<li><a
href="fd27a5b018"><code>fd27a5b</code></a>
Add from_box_bytes and box_bytes_of with BoxBytes type (<a
href="https://redirect.github.com/Lokathor/bytemuck/issues/211">#211</a>)</li>
<li><a
href="d10fbfc6ff"><code>d10fbfc</code></a>
allow deriving <code>CheckedBitPattern</code> for enums with fields (<a
href="https://redirect.github.com/Lokathor/bytemuck/issues/171">#171</a>)</li>
<li>See full diff in <a
href="https://github.com/Lokathor/bytemuck/compare/v1.14.0...v1.14.1">compare
view</a></li>
</ul>
</details>
<br />
[](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
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 show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@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)
</details>
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [regex-automata](https://github.com/rust-lang/regex) from 0.4.4 to
0.4.5.
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a
href="https://github.com/rust-lang/regex/commits/regex-automata-0.4.5">compare
view</a></li>
</ul>
</details>
<br />
[](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
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 show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@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)
</details>
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Shape text during InlineFormattingContext construction rather than doing
it twice during fragment tree construction. This is a step on the way
toward proper font fallback.
This also moves all `TextRun` related code into `text_run.rs` to try to
trim down the size of `inline.rs`.
<!-- 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: -->
- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors
- [x] These changes do not require tests because this should only have
performance impacts.
<!-- 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. -->
<!-- Please describe your changes on the following line: -->
part #31064
---
<!-- 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
<!-- Either: -->
- [x] These changes do not require tests because there is no behavior
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. -->
There types are not used we can migrate them, in next PR I will make
`HeapFloat32Array` generic and convert ArrayBufferView, ArrayBuffer,
Uint8ClampedArray and Float64Array.
Signed-off-by: Bentaimia Haddadi <haddadi.taym@gmail.com>
* Replace time with std::time in components/gfx
Signed-off-by: devjos <github_11837948@feido.de>
* Remove time dependency in components/gfx/Cargo.toml
Signed-off-by: devjos <github_11837948@feido.de>
---------
Signed-off-by: devjos <github_11837948@feido.de>
This fixes an issue where the dylib for harfbuzz cannot be found when
running unit tests on some systems, because unit tests don't get their
rpaths adjusted during build. This is quite likely an issue with dylib
dependency management. We just need a bit more exploration of how this
is traditionally handled.
* constellation: focusing, closing, and native window visibility
* rename “browser” to “webview”, “unfocus” to “blur”
* remove native window visibility from constellation
* rename more “browser” to “webview”
* guard clauses
* don’t automatically focus when no webviews are focused
* comment spec steps for window.close()
* use format interpolation
Co-authored-by: Martin Robinson <mrobinson@igalia.com>
* fix formatting
* rename “Webview” to “WebView” in types and type parameters
* remove unused method
* fix libsimpleservo
---------
Co-authored-by: Martin Robinson <mrobinson@igalia.com>
Replaced elements should never be able to have a layout internal
display, according to the specification. This change makes it so that
the used value of replaced element's display is always inline, as the
specification says.
Before counting whitepsace-only `GlyphStore`s where counted as a single
justification opportunity when trimming whitespace from the front and
back of lines. This isn't correct, instead count the actual number of
word seperators of the trimmed `GlyphStore`s.
These two counts can be different in the case where whitespace collapse
isn't happening yet (flexbox). In addition, using word seperators means
the code is making less assumptions about the contents of the line and
is more robust.
This fixes some crashes in flexbox tests on debug builds.
Co-authored-by: Rakhi Sharma <atbrakhi@igalia.com>
* build: Add support for Visual Studio 2022 and VC143 DLLs
This change adds supports fot Visual Studio 2022 and the VC143 (current)
version of the Visual Studio CRT. In addition, it reworks the way that
Visual Studio is found, returning all installations in a generator,
separately finding it via vswhere.exe, searching paths, and via
environment variables.
All of these installations are searched for the DLLs with highest
priority given to the highest version of MS Visual Studio installed. The
hope is that this makes the process more robust and properly handles
having multiple versions installed, but only one with the correct
runtime DLLs.
* Update based on review comments
Co-authored-by: Mukilan Thiyagarajan <mukilan@igalia.com>
---------
Co-authored-by: Mukilan Thiyagarajan <mukilan@igalia.com>
* ci: fix reference to android job filename in main.yml
* mach: fix build command to handle android
The refactoring done in PR #31092 introduced the call to
get_binary_path in the unconditional path, but did not
pass the android flag to the call.
Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>
---------
Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>
* Android build
* Fixes
* More fixes
- Still failing in the linking step
* More work on getting linking working
Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>
* android: use mozjs with ndk r25c. loads servo.org
more android build fixes.
* fix ./mach run for android and make it follow logs
Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>
* add experimental logic for compositor pause/resume
Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>
* pass DPI from android to simpleservo
Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>
* ci: add android workflow
Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>
* switch to ANDROID_SDK_ROOT and ANDROID_NDK_ROOT vars
Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>
* upgrade gradle to 4.10.1
Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>
* upgrade to gradle 5.1.1
Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>
* upgrade to gradle 8 and agp 8
Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>
* make compositing work again with external present
Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>
* android: improve mach support for non-NixOS and CI
Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>
* fix sampler compilation bug introduced in #30490
Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>
* ci: add android build to main workflow
Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>
* gradle: set MinSdk = targetSdk = 30
NDK requires we compile against the minSdk API level
which is 30 in our case.
Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>
* add instructions for android in README.md
Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>
* apk: move servosurface to servoview
Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>
* apk: uncomment the mediasession callbacks on MainActivity
Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>
* apk: fix crash on MainAtivity.onDestroy
Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>
* apk: drop VR, arm 5 and unused code
This commit drops:
* support for google, oculusvr
* support for arm5 architecture
and also removes
* fakeld scripts
* unused java code
Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>
* cleanup shell.nix
Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>
* android: add FIXMEs for gstreamer code
Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>
* apk: remove commented code and debug logs
Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>
* cleanup ServoView.java
Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>
* mach: comment call to download gstreamer deps for android
Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>
* disable bluetooth for jniapi as blurdroid is broken
Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>
* fixup! README.md
* fixup! remove change in Cargo.toml
* fixup! move shell variables together
* fixup! cleanup jniapi/Cargo.toml comments
* delete commented gstreamer related android code
Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>
* remove unused config variable in servbuild
Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>
* android: more cleanup
Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>
* force no_static_freetype only for android
* use actions to manage sdk, ndk and java
Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>
* rename embedder event names to be more clear.
Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>
* link to startup crash issue
Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>
* fix lint issues
Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>
* upgrade env_logger to 0.10 with duplicate exception
libservo and android_logger can use env_logger 0.10
but quickcheck is still stuck on 0.8 and has not seen
any activity in the last 2 years. This commit adds
a duplicate exception until the quickcheck dependency
can be upgraded (or replaced)
Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>
* android: fix comments
Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>
* disable jemalloc on android
Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>
* fixup! replace linux with android in cfg
---------
Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>
Co-authored-by: Martin Robinson <mrobinson@igalia.com>
Instead of a tricky stack of enum iterators expose a `foreach()`
function on InlineFormattingContext, which takes a `FnMut`. This
prevents callers wanting to iterate from keeping a stack of iterators
and will potentially allow a future version of this function to avoid
borrowing the ArcRefCell<...> of inline boxes for every iteration
(presumably using something like OwnedRef).
Convert `inline_content_sizes` to use this new `foreach()` function and
move the `Computation` out of the function body to
`ContentSizesComputation`. This reduces the stack depth of inline size
computation, because `foreach()` is iterative and not recursive.
This is a preliminary change to removing the second round of text shaping
during layout, because shaping will use this new iterator.
* layout: Add *very* basic support for table layout
This is the first step to proper table layout. It implements a naive
layout algorithm, notably only taking into account the preferred widths
of the first table row. Still, it causes some float tests to start
passing, so turn on the `layout.tables.enabled` preference for those
directories.
Co-authored-by: Oriol Brufau <obrufau@igalia.com>
* Address review comments
* Fix a crash with rowspan=0
* Turn on pref and update results for `/css/css-tables` and `/css/CSS2/tables`
---------
Co-authored-by: Oriol Brufau <obrufau@igalia.com>