This workflows tested Servo with the most recent nightly version of
Servo. Now that Serv compiles against a stable version of Rust, this
isn't so interesting. We are hoping to eliminate all use of unstable
features in the future.
We can now use the "new" pip resolver which should prevent the
installation of conflicting packages. Also, take this opportunity to
make bootstrap more resilient. Hash all dependencies to detect
situations where a newer marker file has been installed, but for an
older branch. This should ensure that dependencies are up to date even
when switching back and forth between older and new branches.
This also updates some dependencies to be the same as the ones used for
WPT tests, which is an issue caught be the resolver.
Fixes#10611.
This makes it more foolproof to install crown from inside the Servo
directory, because the root Servo config.toml overrides the rustc to use
crown (an obvious circular dependency).
After the recent GStreamer upgrade these tests are completely
unreliable. It seems that we need to make some changes to the CI
environment to ensure that these can run in a reliable manner and not
run into missing audio device errors.
This was enabled to allow using the simd / std::simd / packed-simd crate
in the glyph cache [1][2]. Support for simd in the gfx crate was removed
though [3], so this flag is not really doing anything -- and the Android
build is currently broken. Plus, it's unclear what target features we
can enable using stable Rust. We can explore adding neon support when
Android is working again.
This is part of a long-term effort to remove build complication and make
it so that `cargo build` is equivalent to `./mach build`.
1. https://github.com/servo/servo/pull/10916
2. https://github.com/servo/servo/pull/10900
3. https://github.com/servo/servo/pull/24304
PR #30974 integrated `servo/devices` repo into servo
codebase. `servo/devices` exposed the `bluetooth`
feature to conditionally compile native bluetooth
support for the target platform. In servo, this feature
is indirectly enabled via the `native-bluetooth` feature
exposed by `components/bluetooth`. When `servo/devices` was
integrated to servo, the conditional code was not updated
to use the `native-bluetooth` feature directly.
Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>
* inital
* audiobuffer: return float 32 array as channel data
* add on heap float 32 array type
* fix warnings
* add list of webidl interfaces to ignore for float 32
* codegen: remove duplication of builtin return type handling
* bindings: derive default for float 32 array wrapper
* bindings: allow unsafe code in typedarrays module
* bindings: rename float 32 array wrapper
* bindings: rename HeapFloat32Array is_set method to is_initialized
* bindings: assert float 32 array is initialized before data can be acquired
* bindings: use let syntax for error handling in float 32 array wrapper
* bindings: use copy_from_slice where possible in float 32 array wrapper
* bindings: rename args in typedarray copy methods
* codegen: use idl type in builtin names for float 32 array
* bindings: add a util to create float 32 arrays, use in dom matrix readonly
* codegen: tidy
* bindings: box the heap inside heaped float 32 arrays
* Nix: bump nixpkgs to nixos-unstable (except gnumake + clang)
* we can get clang 11 from nixos-unstable
* bump clang to 15
* simplify approach now that we get clang from nixos-unstable
* drop clang to version 14 (#31059)
This is just a bit of code movement that trims down the size of the
`inline.rs` file in order to make it a bit more manageable. It leads the
way to more refactoring and cleanup in the future.
Add documentation and simplify the way that GStreamer shared objects
lists are stored. In addition, move the list of extra GStreamer DLL
dependencies to to the `gstreamer.py` file.
The conditional plugin logic is no longer required as we are having
already increased our GStreamer version requirements.
* remove NixOS check from mach wrapper
* pin nixpkgs to fix jemalloc-sys + mozangle build scripts
* add stdenv.cc.cc to LD_LIBRARY_PATH to fix webrender build.rs
* add all buildInputs to LD_LIBRARY_PATH to fix ldd servo
* add glib + zlib to buildInputs to fix ldd servo
* working! patchelf --remove-rpath --set-interpreter
* undo changes that were ultimately unhelpful
* make compiled programs independent of Nix
* avoid installing patchelf’d toolchains in ~/.rustup
* remove another spurious change
* fix rustup pollution
* only enable on other distros when MACH_USE_NIX is set
Despite the name of this dependency, it only handles bluetooth. Because
it's a separate repository. Integrating it, allows changes here to be
tested more consistently. In addition, it's likely that new bluetooth
libraries will allow removing the majority of the platform-specific code
in this directory.
This is based on the version of this dependency from:
https://github.com/servo/devices/pull/34
* layout: Implement support for `line-height` and `vertical-align`
This is an initial implementation of proper `line-height` and
`vertical-align` support. While this change includes the bulk of the
work there are still many missing pieces for full support. In particular
some big missing things are:
- Flex containers do not properly compute their baselines. The idea is
to tackle this in a followup change. This causes various flex tests
to start failing because everything used to be top aligned.
- The implementation of the line-height quirks (only active in quirks
mode) are incomplete. While the quirk works in many cases, there are
still some cases where it is handled incorrectly. This requires more
redesign and refinement, better suited for a followup.
- Most of the features are CSS 3 such as precision control of the
baseline and first and last baselines are not implemented. This
change gets us close to CSS 2.x support.
While there are many new test passes with this change some tests are
starting to fail. An accounting of new failures:
Tests failing also in Layout 2013:
- /css/css2/positioning/toogle-abspos-on-relpos-inline-child.html (only passes in Chrome)
- /css/CSS2/fonts/font-applies-to-001.xht (potentially an issue with font size)
Invalid tests:
- /css/CSS2/visudet/inline-block-baseline-003.xht
- /css/CSS2/visudet/inline-block-baseline-004.xht
- These are are failing in all browsers. See https://bugs.chromium.org/p/chromium/issues/detail?id=1222151.
Missing table support:
- /_mozilla/mozilla/table_valign_middle.html
Missing `font-size-adjust` support :
- /css/css-fonts/font-size-adjust-zero-2.html (also failing in 2013)
Incomplete form field support :
- /html/rendering/widgets/the-select-element/option-add-label-quirks.html (label isn't rendered so button isn't the right size in quirks mode due to line height quirk)
Need support for calculating flexbox baseline:
- /css/css-flexbox/fieldset-baseline-alignment.html
- /css/css-flexbox/flex-inline.html
- /css/css-flexbox/flexbox-baseline-multi-line-horiz-001.html
- /css/css-flexbox/flexbox-baseline-single-item-001a.html
- /css/css-flexbox/flexbox-baseline-single-item-001b.html
Failing because we don't create anonymous inline boxes for text children of blocks:
- /css/CSS2/linebox/anonymous-inline-inherit-001.html
Passes locally (potentially related to fonts):
- /css/CSS2/css1/c414-flt-fit-004.xht
- /css/css-transforms/transform-input-017.html
- /html/obsolete/requirements-for-implementations/the-marquee-element-0/marquee-min-intrinsic-size.html
- /css/css-fonts/first-available-font-005.html
- /css/css-fonts/first-available-font-006.html
* Some cleanups after live review with @mukilan
Also update results.
* Update web-platform-tests to revision b'ecbab417501c89bca2265314e35719a950b07e02'
* update expectation for service-worker-registration.https.html.ini
The expectation of CRASH was added during the import
seemingly due to an intermittent crash in CI. The test is
no longer crashing.
---------
Co-authored-by: Mukilan Thiyagarajan <mukilan@igalia.com>
Ubuntu 20.04 doesn't have a new enough version of GStreamer, so
automatically disable media when running on that platform.
This also cleans up the media detection a bit, putting the result in a
`enable-media` variable and moving some of the logic into the build
scripts themselves rather than the platform module.