* Update XRInputSource interface to latest spec
Signed-off-by: Daniel Adams <msub2official@gmail.com>
* Bump webxr version
Signed-off-by: Daniel Adams <msub2official@gmail.com>
* Add missing spec link
Signed-off-by: Daniel Adams <msub2official@gmail.com>
---------
Signed-off-by: Daniel Adams <msub2official@gmail.com>
This adds supports for right-to-left text assigning bidi levels to all
line items when necessary. This includes support for the `dir` attribute
as well as corresponding CSS properties like `unicode-bidi`. It only
implements right-to-left rendering for inline layout at the moment and
doesn't include support for `dir=auto`. Because of missing features,
this causes quite a few tests to start failing, as references become
incorrect due to right-to-left rendering being active in some cases,
but not others (before it didn't exist at all).
Analysis of most of the new failures:
```
- /css/css-flexbox/gap-001-rtl.html
/css/css-flexbox/gap-004-rtl.html
- Require implementing BiDi in Flexbox, because the start and
end inline margins are opposite the order of items.
- /css/CSS2/bidi-text/direction-applies-to-*.xht
/css/CSS2/bidi-text/direction-applies-to-002.xht
/css/CSS2/bidi-text/direction-applies-to-003.xht
/css/CSS2/bidi-text/direction-applies-to-004.xht
- Broken due to a bug in tables, not allocating the
right amount of width for a column.
- /css/css-lists/inline-list.html
- This fails because we wrongly insert a soft wrap opportunity between the
start of an inline box and its first content.
- /css/css-text/bidi/bidi-lines-001.html
/css/css-text/bidi/bidi-lines-002.html
/css/CSS2/text/bidi-flag-emoji.html
- We do not fully support unicode-bidi: plaintext
- /css/css-text/text-align/text-align-end-010.html
/css/css-text/text-align/text-align-justify-006.html
/css/css-text/text-align/text-align-start-010.html
/html/dom/elements/global-attributes/*
- We do not support dir=auto yet.
- /css/css-text/white-space/tab-bidi-001.html
- Servo doesn't support tab stops
- /css/CSS2/positioning/abspos-block-level-001.html
/css/css-text/word-break/word-break-normal-ar-000.html
- Do not yet support RTL layout in block
- /css/css-text/white-space/pre-wrap-018.html
- Even in RTL contexts, spaces at the end of the line must hang and
not be reordered
- /css/css-text/white-space/trailing-space-and-text-alignment-rtl-002.html
- We are letting spaces hang with white-space: pre, but they shouldn't
hang.
```
Signed-off-by: Martin Robinson <mrobinson@igalia.com>
Co-authored-by: Rakhi Sharma <atbrakhi@igalia.com>
* Update XRPose interface with missing members
Signed-off-by: Daniel Adams <msub2official@gmail.com>
* ./mach fmt
Signed-off-by: Daniel Adams <msub2official@gmail.com>
---------
Signed-off-by: Daniel Adams <msub2official@gmail.com>
* Add recommendedViewportScale and requestViewportScale
Signed-off-by: Daniel Adams <msub2official@gmail.com>
* Remove currently unused internal slots
Signed-off-by: Daniel Adams <msub2official@gmail.com>
---------
Signed-off-by: Daniel Adams <msub2official@gmail.com>
In particular, `main_content_sizes()` now works with columns.
`layout_for_block_content_size()` is now used for both intrinsic sizes
and intrinsic contributions, a IntrinsicSizingMode parameter is added
to choose the behavior.
Also, we consider the main size of a flex item as indefinite if its flex
basis is indefinite and the flex container has an indefinite main size.
Signed-off-by: Oriol Brufau <obrufau@igalia.com>
Co-authored-by: Martin Robinson <mrobinson@igalia.com>
* Sync `GPUObjectDescriptorBase` (label is not option anymore)
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
* Sync `GPUFeatureName`
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
* shader_f16 feature is not usable in wgpu so disable it
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
* sync `GPUTextureFormat`
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
* `validate_texture_format_required_features`
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
* Sync `GPUTexture` attributes
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
* Make `entryPoint` in `GPUProgrammableStage` optional
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
* Set good expectations
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
* Bad expectations because naga does not support cons declarations
Also fail on firefox, where skipped before due to missing device features
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
* Bad expectation, also fails on firefox
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
* Bad expectations, because naga does not support `let pos = positions[vertex_index];`
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
* Set expectation
external texture does not work in firefox too (again naga)
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
* set bad expectations, because naga does not support `enable`
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
* Set bad expectations for, `Texture with '' label has been destroyed`
also fails in firefox with same reason
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
* one bad expectation
also on firefox
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
* expect that also matches firefox
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
* more expect
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
* Use only 1 proc for _webgpu
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
* better doc comment
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
---------
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
`dirs-next` is still used by the version of the `term` crate we are
using, but this also remoes a version of `cstr` so our dependency count
does not change.
A new version of `raqote` hasn't been released, so this depends on the
upstream repository directly. It's been almost 4 months since the
release has been ready -- so it's unclear when it will happen.
Fixes#32801.
Signed-off-by: Martin Robinson <mrobinson@igalia.com>
This change adds an expensive layout for the determination of minimum
automatic size and flex basis in process of flexbox layout. Currently,
the layout is not cached, so may be performed up to 2 more times than
necessary.
Signed-off-by: Martin Robinson <mrobinson@igalia.com>
Co-authored-by: Oriol Brufau <obrufau@igalia.com>
* Add makeXRCompatible to WebGLRenderContextBase
Signed-off-by: Daniel Adams <msub2official@gmail.com>
* Activate webgl2 for webxr wpt, update meta expectations
Signed-off-by: Daniel Adams <msub2official@gmail.com>
* Update meta legacy layout expectations
Signed-off-by: Daniel Adams <msub2official@gmail.com>
* Remove no longer existing expectations from meta files
Signed-off-by: Daniel Adams <msub2official@gmail.com>
* Remove files for fully passing tests
Signed-off-by: Daniel Adams <msub2official@gmail.com>
* Remove out-of-date expectations from meta legacy layout
Signed-off-by: Daniel Adams <msub2official@gmail.com>
* Update webgl conformance expectations
Signed-off-by: Daniel Adams <msub2official@gmail.com>
* Fix test numbering in expectations
Signed-off-by: Daniel Adams <msub2official@gmail.com>
---------
Signed-off-by: Daniel Adams <msub2official@gmail.com>
These operations are deprecated and might be removed
in a future rust version. Clippy is also complaining
about them.
Signed-off-by: Simon Wülker <simon.wuelker@arcor.de>
* Update parser interface for reentrancy.
Signed-off-by: Josh Matthews <josh@joshmatthews.net>
* Remove assertions around invoking scripts with active parser.
Signed-off-by: Josh Matthews <josh@joshmatthews.net>
* Add regression test.
Signed-off-by: Josh Matthews <josh@joshmatthews.net>
* Run test with normal and async html parser.
Signed-off-by: Josh Matthews <josh@joshmatthews.net>
---------
Signed-off-by: Josh Matthews <josh@joshmatthews.net>
We want to selectively enable right-to-left writing modes per layout
context. This change makes that possible by allowing access to
`writing-mode` though an interface that always returns the default
horizontal top-to-bottom (implicitly left-to-right) writing mode.
Signed-off-by: Martin Robinson <mrobinson@igalia.com>
Co-authored-by: Rakhi Sharma <atbrakhi@igalia.com>
The most recent version of WebRender tracks stacking context offsets in
a different way, which broke legacy layout. It's easier just to track
the stacking context offset in Servo and apply them to the items
manually like we do in non-legacy layout.
Signed-off-by: Martin Robinson <mrobinson@igalia.com>
* remove from rand
Mutex<OsRng> can be initialized in compile time.
Signed-off-by: Hayashi Mikihiro <34ttrweoewiwe28@gmail.com>
* remove from layout_2020
Mutex<()> can be initialize in compile time
Signed-off-by: Hayashi Mikihiro <34ttrweoewiwe28@gmail.com>
* remove from media
`IS_MULTIPROCESS` doesn't be used.
Signed-off-by: Hayashi Mikihiro <34ttrweoewiwe28@gmail.com>
* remove lazy_static from dependencies
Signed-off-by: Hayashi Mikihiro <34ttrweoewiwe28@gmail.com>
* rewrite suppressed_leaks_for_asan.txt
For all of lazy_static was replaced with LazyLock.
Signed-off-by: Hayashi Mikihiro <34ttrweoewiwe28@gmail.com>
---------
Signed-off-by: Hayashi Mikihiro <34ttrweoewiwe28@gmail.com>
* ohos: redirect stdout/stderr to logging sink
Based on the existing android `redirect_stdout_to_logcat` implementation,
but using the safe abstractions from `nix` and dumping to the `log` sink,
instead of directly writing the log.
Signed-off-by: Jonathan Schwender <jonathan.schwender@huawei.com>
* android: Use new shared implementation for logcat redirection.
Signed-off-by: Jonathan Schwender <jonathan.schwender@huawei.com>
* servoshell: Register cfg(production)
Signed-off-by: Jonathan Schwender <jonathan.schwender@huawei.com>
* Update ports/servoshell/egl/log.rs
Co-authored-by: Martin Robinson <mrobinson@igalia.com>
Signed-off-by: Jonathan Schwender <55576758+jschwe@users.noreply.github.com>
* Change info! to debug! to match original behavior on android
Signed-off-by: Jonathan Schwender <jonathan.schwender@huawei.com>
---------
Signed-off-by: Jonathan Schwender <jonathan.schwender@huawei.com>
Signed-off-by: Jonathan Schwender <55576758+jschwe@users.noreply.github.com>
Co-authored-by: Martin Robinson <mrobinson@igalia.com>
These are similar to `flex-start` and `flex-end`, but in `wrap-reverse`
situations, they are the opposite.
Signed-off-by: Martin Robinson <mrobinson@igalia.com>
Co-authored-by: Oriol Brufau <obrufau@igalia.com>
This change removes restrictions on using the column layout mode of
flexbox and adds an initial implementation of sizing for that flex
direction. There's a lot of missing pieces still, but in some cases this
does render column flexbox.
In particular, there are now two code paths for preferred widths
(intrinsic size) calcuation: one in the main axis (row) and one in
the cross axis (column) corresponding to the flex direciton with
horizontal writing modes.
In addition, `FlexItemBox::inline_content_sizes` is removed in favor of
making `sizing::outer_inline` /
`IndependentFormattingContext::outer_inline_content_sizes` generic
enough to handle using a different value for auto minimum sizes, which
flexbox needs.
Signed-off-by: Martin Robinson <mrobinson@igalia.com>
Co-authored-by: Oriol Brufau <obrufau@igalia.com>
* Remove usage of lazy-static in background_hang_monitor
The lazy-static crate was only used to construct a mutex,
but since Mutex::new is const this can be done at compiletime
instead.
Signed-off-by: Simon Wülker <simon.wuelker@arcor.de>
* Remove usage of lazy-static in servoshell
Lazy-static was only used to construct a mutex, but
since Mutex::new is const this can simply be done at
compiletime.
Signed-off-by: Simon Wülker <simon.wuelker@arcor.de>
---------
Signed-off-by: Simon Wülker <simon.wuelker@arcor.de>
This converts all geometry in the FragmentTree into physical geometry,
doing conversions ahead of time instead of when traversing the fragment
tree. This is necessary to properly implement BiDi in Servo as we need
to know what side borders are on in mixed RTL and LTR contexts.
In addition, fragments are laid out in a particular context and only
that context knows its writing mode. There were issues where were using
one writing mode to lay out and another to convert to phyisical
coordinates. This isn't an issue now since we only use the default
writing mode, but starts to be an issue with BiDi text.
Closes#25564.
Signed-off-by: Martin Robinson <mrobinson@igalia.com>
This fixes various unused code warnings after the recent rust upgrade.
Some of the dead code is maintained, as it is quite likely that it will
be used in future changes.
Signed-off-by: Martin Robinson <mrobinson@igalia.com>
* ohos: Fix compilation for x86_64
Signed-off-by: Jonathan Schwender <jonathan.schwender@huawei.com>
* ohos: Use the SDK compiler-wrapper
When compiling for x86_64-unknown-linux-ohos without the compiler
wrapper, for some reason mozjs_sys will be refercing a wrong mangled symbol
resulting in the following error when loading the .so at runtime:
```
_ZNSt3__111this_thread9sleep_forERKNS_6chrono8durationIxNS_5ratioILl1ELl1000000000EEEEE: symbol not found
```
This problem does not occur when compiling for aarch64 or when using the compiler wrapper.
In this case the correct symbol
`_ZNSt4__n111this_thread9sleep_forERKNS_6chrono8durationIxNS_5ratioILl1ELl1000000000EEEEE`
is referenced.
It's unclear why manually passing the flags via CFLAGS / CXXFLAGS does not work.
Signed-off-by: Jonathan Schwender <jonathan.schwender@huawei.com>
---------
Signed-off-by: Jonathan Schwender <jonathan.schwender@huawei.com>
This is the last step toward removing our use of `syn` version
1. It does three things:
1. Upgrades `async-recursion` to a newer version that uses `syn` 2.
2. Removes the use of `enum-iterator` that was only used to produce a
trivial list of enum names. This reduces the number of crates we
dependo on by 2.
3. Upgrades `media` to a version which no longer uses `syn` 1
Fixes#33034.
Signed-off-by: Martin Robinson <mrobinson@igalia.com>
* Add missing indendations in comments.
Signed-off-by: Daniel Frantes <danfrantes@seznam.cz>
* Fix test tidy error
Signed-off-by: Daniel Frantes <danfrantes@seznam.cz>
---------
Signed-off-by: Daniel Frantes <danfrantes@seznam.cz>