Instead of exposing many different kinds of messages to the compositor
that are routed through the constellation, expose a single message type
which can be sent across IPC channels. In addition, this IPC channel and
the route to the crossbeam channel with the compositor is created along
with the `CompositorProxy`, simplifying what needs to be passed around
during pipeline initialization.
Previously, some image updates (from video) were sent over IPC with a
special serialization routine and some were sent via crossbeam channels
(canvas). Now all updates go over the IPC channel `IpcSharedMemory` is
used to avoid serialization penalties. This should improve performance
and reduce copies for video, but add a memory copy overhead for canvas.
This will improve in the future when canvas renders directly into a
texture.
All-in-all this is a simplification which opens the path toward having a
standard compositor API and reduces the number of duplicate messages and
proxying that had to happen in libservo.
Signed-off-by: Martin Robinson <mrobinson@igalia.com>
* extract generated class constructor hook into handwritten functions
Signed-off-by: Gae24 <96017547+Gae24@users.noreply.github.com>
* downcast to window only when it's actually used
Signed-off-by: Gae24 <96017547+Gae24@users.noreply.github.com>
* simplify downcast
Signed-off-by: Gae24 <96017547+Gae24@users.noreply.github.com>
* rename htmlconstructor to constructor, include call_default_constructor in it
Signed-off-by: Gae24 <96017547+Gae24@users.noreply.github.com>
---------
Signed-off-by: Gae24 <96017547+Gae24@users.noreply.github.com>
This seems to be necessary now, in much the same way it is necessary on
a normal Ubuntu system. I'm not sure what changed that this is now
required.
Signed-off-by: Martin Robinson <mrobinson@igalia.com>
Github has updated the `ubuntu-latest` label to use 24.04, but that
breaks the lint job. Since the build job (github hosted and self hosted
runners) still explicitly use 22.04, pin the same version for lint job
until we upgrade all the workflows together.
Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>
* Make checking for cookie prefixes case-insensitive
Cookie-Prefixes like "__Host-" and "__Secure-" are case insensitive
as per https://www.ietf.org/archive/id/draft-ietf-httpbis-rfc6265bis-15.html#name-storage-model.
This is tested by many WPT tests in cookies/prefix, for example
* cookies/prefix/__host.document-cookie.html
* cookies/prefix/__host.document-cookie.https.html
Since the implementation and the specification had diverged quite
significantly i also updated/added spec comments where appropriate
and slightly restructured code so its easier to follow. However,
the only change in behaviour is the prefix check described above.
Signed-off-by: Simon Wülker <simon.wuelker@arcor.de>
* Update WPT expectations
Signed-off-by: Simon Wülker <simon.wuelker@arcor.de>
* Remove unused import
Signed-off-by: Simon Wülker <simon.wuelker@arcor.de>
* Fix cookie test cases
Signed-off-by: Simon Wülker <simon.wuelker@arcor.de>
* Fix ignore cookie with __Host prefix and no specified path attribute
Signed-off-by: Simon Wülker <simon.wuelker@arcor.de>
* Fix another cookie test case
Signed-off-by: Simon Wülker <simon.wuelker@arcor.de>
---------
Signed-off-by: Simon Wülker <simon.wuelker@arcor.de>
* clippy: Fix type_complexity warning in components/script/dom
Signed-off-by: taniishkaaa <tanishkasingh2004@gmail.com>
* Use destructure function only once
Signed-off-by: taniishkaaa <tanishkasingh2004@gmail.com>
---------
Signed-off-by: taniishkaaa <tanishkasingh2004@gmail.com>
* clippy: Fix large size difference between variants in components/shared/webrender/lib.rs
Signed-off-by: chickenleaf <vyaan2000@gmail.com>
* clippy: Fix large size difference between variants of ScriptToCompositorMsg
Signed-off-by: chickenleaf <vyaan2000@gmail.com>
* Remove trailing white space
Signed-off-by: Martin Robinson <mrobinson@igalia.com>
---------
Signed-off-by: chickenleaf <vyaan2000@gmail.com>
Signed-off-by: Martin Robinson <mrobinson@igalia.com>
Co-authored-by: Martin Robinson <mrobinson@igalia.com>
BoxFragment::new() had some logic to mark relative positioned boxes with
both insets in the same axis set to something different than `auto` as
overconstrained.
However, this was dead code, since overconstrainment is checked for
getComputedStyle queries, but not for relative positioning.
Also, the logic was wrong: it was detecting vertical overconstrainment
by checking `left` and `bottom` (instead of `top` and `bottom`).
So it can just be removed.
Signed-off-by: Oriol Brufau <obrufau@igalia.com>
* Document "fetch" method
Signed-off-by: Simon Wülker <simon.wuelker@arcor.de>
* Bring http_network_or_cache_fetch closer to the spec
Signed-off-by: Simon Wülker <simon.wuelker@arcor.de>
* fix test-tidy errors
Signed-off-by: Simon Wülker <simon.wuelker@arcor.de>
* Move all code into http_loader.rs
Signed-off-by: Simon Wülker <simon.wuelker@arcor.de>
* Don't panic if hyper/servo disagree about valid origins
Signed-off-by: Simon Wülker <simon.wuelker@arcor.de>
* Add "otherwise" to spec comment
Signed-off-by: Simon Wülker <simon.wuelker@arcor.de>
* Convert FIXME's to TODOs when appropriate
Signed-off-by: Simon Wülker <simon.wuelker@arcor.de>
* Remove TODO about No-Store cache directive
Signed-off-by: Simon Wülker <simon.wuelker@arcor.de>
* Remove indentation from multiline spec comments
Signed-off-by: Simon Wülker <simon.wuelker@arcor.de>
* Add fetch assertions
This is from a spec update where assertions
about requests origin not being client
were added.
Signed-off-by: Simon Wülker <simon.wuelker@arcor.de>
* Add note about serializing headers
Signed-off-by: Simon Wülker <simon.wuelker@arcor.de>
* Add TODO about partitioning http cache
Signed-off-by: Simon Wülker <simon.wuelker@arcor.de>
* Convert FIXME to TODO in script/
Signed-off-by: Simon Wülker <simon.wuelker@arcor.de>
* Link to relevant issue for TODO comments
Signed-off-by: Simon Wülker <simon.wuelker@arcor.de>
---------
Signed-off-by: Simon Wülker <simon.wuelker@arcor.de>
* Update IDLs and Bindings conf
Signed-off-by: Daniel Adams <msub2official@gmail.com>
* Add AES crate
Signed-off-by: Daniel Adams <msub2official@gmail.com>
* Implement DOM interfaces
Signed-off-by: Daniel Adams <msub2official@gmail.com>
* IDL tidy
Signed-off-by: Daniel Adams <msub2official@gmail.com>
* Remove deriveKey from inRealms for now until implemented
Signed-off-by: Daniel Adams <msub2official@gmail.com>
* Fix CryptoKey rustdoc comments
Signed-off-by: Daniel Adams <msub2official@gmail.com>
* Move string constants to top of file
Signed-off-by: Daniel Adams <msub2official@gmail.com>
* Use properly rooted CryptoKey
Signed-off-by: Daniel Adams <msub2official@gmail.com>
* Code clarity
Signed-off-by: Daniel Adams <msub2official@gmail.com>
* Rework NormalizedAlgorithm to not hold a DOMString
Signed-off-by: Daniel Adams <msub2official@gmail.com>
* Add Rustdoc for CryptoKey interface
Signed-off-by: Daniel Adams <msub2official@gmail.com>
* Move ignore mallocsizeof to rand crate, remove from crypto
Signed-off-by: Daniel Adams <msub2official@gmail.com>
* Update cargo lock
Signed-off-by: Daniel Adams <msub2official@gmail.com>
* Fix key handling, implement exportKey with JWK TODO
Signed-off-by: Daniel Adams <msub2official@gmail.com>
* Add missing spec link
Signed-off-by: Daniel Adams <msub2official@gmail.com>
* Use create_buffer_source, remove aes dep from libservo
Signed-off-by: Daniel Adams <msub2official@gmail.com>
* Fix crash when running in worker
Signed-off-by: Daniel Adams <msub2official@gmail.com>
* Update expectations
Signed-off-by: Daniel Adams <msub2official@gmail.com>
* fmt
Signed-off-by: Daniel Adams <msub2official@gmail.com>
* Move CryptoKey and SubtleCrypto behind pref for now
Signed-off-by: Daniel Adams <msub2official@gmail.com>
* Update expectations
Signed-off-by: Daniel Adams <msub2official@gmail.com>
* Readd timeout expectation
Signed-off-by: Daniel Adams <msub2official@gmail.com>
---------
Signed-off-by: Daniel Adams <msub2official@gmail.com>
The most recent [v0.1.3] release seems to not set the expected
OHOS_SDK_NATIVE and OHOS_BASE_SDK_HOME environment variables.
This is causing the OHOS builds to fail in CI and blocking the merge
queue. This change pins he action to the last known good version until
the error can be addressed upstream.
Fixes#33712.
Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>