* feat: inline text contents
Signed-off-by: eri <eri@inventati.org>
* feat: filter whitespace only nodes
Signed-off-by: eri <eri@inventati.org>
* chore: cleanup
Signed-off-by: eri <eri@inventati.org>
* fix: url fix
Signed-off-by: eri <eri@inventati.org>
* fix: review fixes
Signed-off-by: eri <eri@inventati.org>
Signed-off-by: Martin Robinson <mrobinson@igalia.com>
Co-authored-by: Martin Robinson <mrobinson@igalia.com>
---------
Signed-off-by: eri <eri@inventati.org>
Signed-off-by: Martin Robinson <mrobinson@igalia.com>
Co-authored-by: Martin Robinson <mrobinson@igalia.com>
* Update mozjs
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
* Fix changed readTransfer callback
https://bugzilla.mozilla.org/show_bug.cgi?id=1842713
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
* Use NewExternalArrayBuffer from glue
d33454be74
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
* Fix columnorigin and filename being in latin1
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
* fixup newexternalarray
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
* Float16 (this might require more work for codegen support)
https://bugzilla.mozilla.org/show_bug.cgi?id=1833647
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
* js.strict is removed
https://bugzilla.mozilla.org/show_bug.cgi?id=1621603
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
* asm options are now somewhere else
https://hg.mozilla.org/mozilla-central/rev/26045c88e3972957087d535e7f259e08857bd2a2
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
* Comment out offthread compilation
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
* Set NDK to 26
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
* Fix 1-origin handling
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
* Expect `FinalizationRegistry` interface
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
* Good expectations
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
* more expectations
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
* Add `WeakRef` to interfaces expectation
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
* mozjs upgrade: fixes for Android
Android NDK's layout has changed in r26 and 'lib64' no longer exists
under `toolchain/llvm/prebuilt/linux-x86_64`. The libraries that used to
be it are now present in `lib` folder itself.
This patch updates the build configuration to use the `lib` folder
instead when configuring the LIBCLANG_PATH environment variable.
This patch also updates to a newer mozjs version that includes fixes for
linker errors faced on Android (see #32769).
Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>
* Patch libz-sys & update mozjs
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
* update NDK version in README
Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>
* Use servo/mozjs
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
* Update mozjs again
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
---------
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>
Co-authored-by: Mukilan Thiyagarajan <mukilan@igalia.com>
* feat: watch root node
Signed-off-by: eri <eri@inventati.org>
* reafactor: divide inspector in components
Signed-off-by: eri <eri@inventati.org>
* feat: add css properties actor
Signed-off-by: eri <eri@inventati.org>
* feat: accesibility actor
Signed-off-by: eri <eri@inventati.org>
* feat: layout actor
Signed-off-by: eri <eri@inventati.org>
* feat: network parent and refactor
Signed-off-by: eri <eri@inventati.org>
* feat: progress on the inspector messages
Signed-off-by: eri <eri@inventati.org>
* feat: more progress on inspector
Signed-off-by: eri <eri@inventati.org>
* feat: try to fix nodes showing
Signed-off-by: eri <eri@inventati.org>
* feat: initial dom tree
Signed-off-by: eri <eri@inventati.org>
* feat: some more messages
Signed-off-by: eri <eri@inventati.org>
* feat: clean and add documentation
Signed-off-by: eri <eri@inventati.org>
* refactor: add more docs and clean
Signed-off-by: eri <eri@inventati.org>
* fix: restore deleted node attributes field
Signed-off-by: eri <eri@inventati.org>
* Apply suggestions from code review
Fix a few nits in comments
Signed-off-by: Martin Robinson <mrobinson@igalia.com>
---------
Signed-off-by: eri <eri@inventati.org>
Signed-off-by: Martin Robinson <mrobinson@igalia.com>
Co-authored-by: Martin Robinson <mrobinson@igalia.com>
`webxr` depends on a very old verison of `time`, which allowed serializing
monotonic clock output. This isn't possible on all platforms, so newer
versions of `time` do not allow this. In order to stop using the old
0.1 versions of `time` we have to stop relying on times passed from `webxr`
to Servo. This change does that, at the cost of removing the XR
profiling feature. It has to be rewritten in another way in the `webxr`
crate.
Signed-off-by: Martin Robinson <mrobinson@igalia.com>
* Update wgpu to c0e7c1ef94
This is few commits ahead of wgpu 22.0
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
* Make it compile
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
* Move usage checking to device timeline as per spec
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
* Add logging (trace) of WEBGPU messages
This is very useful when debugging
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
* update wgpu again
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
* set good
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
* skip `webgpu:api,operation,memory_sync,texture,same_subresource` for flakyness
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
* rm r.json
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
---------
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
* Upgrade stylo to 2024-07-16
Signed-off-by: Martin Robinson <mrobinson@igalia.com>
* Use the new `dom` crate from stylo
Signed-off-by: Martin Robinson <mrobinson@igalia.com>
---------
Signed-off-by: Martin Robinson <mrobinson@igalia.com>
Co-authored-by: Oriol Brufau <obrufau@igalia.com>
* Implement Servo side of GamepadHapticActuator
Signed-off-by: Daniel Adams <msub2official@gmail.com>
* Get build working
Signed-off-by: Daniel Adams <msub2official@gmail.com>
* Create effect handling on embedder side
Signed-off-by: Daniel Adams <msub2official@gmail.com>
* Update tracing for GamepadHapticEffect
Signed-off-by: Daniel Adams <msub2official@gmail.com>
* Update gilrs to point to commit with effect complete event
Signed-off-by: Daniel Adams <msub2official@gmail.com>
* Implement playing and preempting haptic effects
Signed-off-by: Daniel Adams <msub2official@gmail.com>
* Update IDL to add trigger rumble
Signed-off-by: Daniel Adams <msub2official@gmail.com>
* Update WPT expectations
Signed-off-by: Daniel Adams <msub2official@gmail.com>
* Handle stopping haptic effects from reset()
Signed-off-by: Daniel Adams <msub2official@gmail.com>
* ./mach fmt, fix test-tidy issues
Signed-off-by: Daniel Adams <msub2official@gmail.com>
* Add extra validity checks for trigger rumble
Signed-off-by: Daniel Adams <msub2official@gmail.com>
* Retrieve supported haptic effects from embedder
Signed-off-by: Daniel Adams <msub2official@gmail.com>
* Fix test expectations
Signed-off-by: Daniel Adams <msub2official@gmail.com>
* Add missing spec link, pin gilrs commit
Signed-off-by: Daniel Adams <msub2official@gmail.com>
* servoshell cargo formatting
Signed-off-by: Daniel Adams <msub2official@gmail.com>
* Fix Cargo.toml
Signed-off-by: Daniel Adams <msub2official@gmail.com>
* Additional comments, realm proof, naming
Signed-off-by: Daniel Adams <msub2official@gmail.com>
* ./mach fmt
Signed-off-by: Daniel Adams <msub2official@gmail.com>
* Update gilrs rev to gilrs-core 0.5.12 release
Signed-off-by: Daniel Adams <msub2official@gmail.com>
* Implement sequence ids for gamepad haptic promises
Signed-off-by: Daniel Adams <msub2official@gmail.com>
* Take playing effect promise instead of cloning
Signed-off-by: Daniel Adams <msub2official@gmail.com>
* Implement listener for reset function
Signed-off-by: Daniel Adams <msub2official@gmail.com>
* Fix Cargo.lock
Signed-off-by: Daniel Adams <msub2official@gmail.com>
* Restructure IPC listeners, add comments, handle visibility change
Signed-off-by: Daniel Adams <msub2official@gmail.com>
* Check that haptic effect still exists before handling ff completion event
Signed-off-by: Daniel Adams <msub2official@gmail.com>
* Visibility steps, add InRealm bindings for promises
Signed-off-by: Daniel Adams <msub2official@gmail.com>
* Add Gamepad EmbedderMsg arms to egl servo_glue
Signed-off-by: Daniel Adams <msub2official@gmail.com>
---------
Signed-off-by: Daniel Adams <msub2official@gmail.com>
* simple conversion to cstrings using as_ptr()
Signed-off-by: Bum Kim <bumcrystlbum@gmail.com>
* replaced byte strings with c strings using new helper functions
Signed-off-by: Bum Kim <bumcrystlbum@gmail.com>
* changed &[u8] type parameters to &CStr
Signed-off-by: Bum Kim <bumcrystlbum@gmail.com>
---------
Signed-off-by: Bum Kim <bumcrystlbum@gmail.com>
* Do not change media element ready state when network response is complete.
* Do not fire multiple error events for the same media content.
* Inform media backend when media response is complete.
* Continue delaying the load event when a complete media response is received.
* Only mark a media response as complete when the response is the active one.
* Update expectations for imagebitmap tests using video element.
* Update fetch ORB video test expectations.
* Update media CSS selector test expectation for non-implemented feature.
* Update expectations for media element tests that now work.
* Updat expected result for failing reftest.
* Update expected failure for test that loads an audio file in a video element.
* Update media test expectation for unimplemented track feature.
* Do not process media element ready state changes that are unchanged.
* Reset media element ready state to Current when playback finishes.
* Set media element ready state to Enough when appropriate player event is received.
* Update test expectations.
* simple conversion from byte string to c-string
Signed-off-by: Bum Kim <bumcrystlbum@gmail.com>
* convert byte strings to c-strings to c_char ptr
Signed-off-by: Bum Kim <bumcrystlbum@gmail.com>
---------
Signed-off-by: Bum Kim <bumcrystlbum@gmail.com>
* Update wgpu and revamp RenderPass
* Set good expectations
* Set one bad expectation
* send_render_command
* small fixups
* docs
* doc
* Put RenderPass inside PassState
* Use Pass enum for ComputePass too
* fix docs
* Do not wait on drop, but rather wake poller thread
* Update wgpu and render stuff
* Set some good expectations
* Update wgpu again
* handle IPC error as warning
* More good expectations
* Some more expectations
CTS does not match the spec: https://github.com/gpuweb/cts/issues/3806
* This expectations are due to other changes in servo
also happening on main
* Explain error_command_encoders and remove RefCell around it
* fixup
* store validness of passes
* More good expectations
* More docs
* this assert is wrong
* This is even more right per CTS/spec
Only Command encoder state errors are allowed here, but wgpu does not exposes them.
* More good expectations
* One bad expectation
* Fix my english
This change parses a comma-separated list of faces in the `<font>` tag
and also moves the parsing code from `stylo` to Servo. This means that
the servo-specific code can be removed from stylo decreasing the
differences between Gecko and Servo's version of `stylo`.
Add a skeleton implementation of FontFaceSet interface with support
for resolving the `document.fonts.ready` Promise when the loading of
web fonts is completed.
This change exposes new failures in the web platform tests.
These were ERROR before the change because `document.fonts.ready` caused
a `ReferenceError` causing the tests to be aborted and they now FAIL:
- /css/CSS2/linebox/vertical-align-top-bottom-001.html
- /css/css-flexbox/flex-one-sets-flex-basis-to-zero-px.html
- /css/css-fonts/generic-family-keywords-001.html
- /css/css-fonts/math-script-level-and-math-style/math-script-level-004.tentative.html
- /css/css-fonts/math-script-level-and-math-style/math-script-level-002.tentative.html
- /css/css-text/text-autospace/text-autospace-ligature-001.html
- /css/css-values/calc-size/calc-size-width.tentative.html
These were TIMEOUT before the change because `document.fonts.ready` was
a ReferenceError and the tests were asynchronous (reftest-wait). These now
FAIL because the assertions are now executed after fonts are loaded:
- /css/css-fonts/matching/fixed-stretch-style-over-weight.html
- /css/css-fonts/matching/range-descriptor-reversed.html
- /css/css-fonts/matching/stretch-distance-over-weight-distance.html
- /css/css-fonts/matching/style-ranges-over-weight-direction.html
- /css/css-fonts/variations/variable-box-font.html
- /css/css-fonts/variations/variable-gpos-m2b.html
- /css/css-fonts/variations/variable-gsub.html
- /css/css-fonts/variations/variable-opsz-size-adjust.html
- /css/css-position/sticky/position-sticky-change-top.html
- /css/css-position/sticky/position-sticky-fixed-ancestor.html
- /css/css-position/sticky/position-sticky-flexbox.html
- /css/css-position/sticky/position-sticky-grid.html
- /css/css-position/sticky/position-sticky-inline.html
- /css/css-position/sticky/position-sticky-rendering.html
- /css/css-position/sticky/position-sticky-stacking-context.html
- /css/css-position/sticky/position-sticky-table-td-left.html
- /css/css-position/sticky/position-sticky-table-td-right.html
- /css/css-position/sticky/position-sticky-table-tfoot-bottom.html
- /css/css-position/sticky/position-sticky-table-th-right.html
- /css/css-position/sticky/position-sticky-table-thead-top.html
- /css/css-position/sticky/position-sticky-table-tr-bottom.html
- /css/css-position/sticky/position-sticky-table-tr-top.html
- /css/css-position/sticky/position-sticky-writing-modes.html
- /css/css-pseudo/marker-intrinsic-contribution-001.html
- /css/css-text/hyphens/hyphens-character.html
These tests now PASS due to this patch:
* FAIL -> PASS
- /html/canvas/element/text/2d.text.draw.fill.maxWidth.fontface.html
- /html/canvas/element/text/2d.text.measure.width.empty.html
* TIMEOUT -> PASS
- /css/css-fonts/variations/font-descriptor-range-reversed.html
- /css/css-fonts/variations/variable-opsz.html
- /css/css-position/sticky/position-sticky-table-th-left.html
* ERROR -> PASS
- /css/css-fonts/generic-family-keywords-002.html
- /css/css-fonts/generic-family-keywords-003.html
* These two tests only PASS in Layout 2020:
- /css/CSS2/positioning/inline-static-position-001.html
- /css/cssom-view/getBoundingClientRect-empty-inline.html
These two tests have subtests that PASS intermittenttly:
- /fetch/metadata/generated/css-font-face.sub.tentative.html
- /css/css-fonts/generic-family-keywords-001.html
These tests are new TIMEOUTS that used to FAIL because
`documents.fonts.ready` was undefined:
- /resource-timing/TAO-match.html
- /resource-timing/content-type.html
- /resource-timing/nextHopProtocol-is-tao-protected.https.html
The failure in `/resize-observer/change-layout-in-error.html` could be
due to an issue in the ResizeObserver implementation that is now exposed
with this change, but this needs more investigation.
Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>
Co-authored-by: Martin Robinson <mrobinson@igalia.com>
* Make device cleanup right
* Use weakref for GPUDevice in globalscope
* No need to destroy device on drop
* DeviceReason early return
* make remove_gpu_device to be the only way to remove device
* device lost promise should be init at creation of device object
* device lost impl
* lock for device poll
workaround for wgpu deadlocks
* expect
* Less lost reason reasoning in script
* Update WebIDL.py
* Update WebIDL.py
* Add builtin-array.patch
* Fix CodegenRust.py and Configuration.py
* Fix missing downcasts
* mach fmt
* Update check and comment to explain why we need this check
* Update Global of DissimilarOriginWindow.webidl
Instead of using an explicit reflow when a web font laods, queue a
pending reflow. This should be able to eliminate multiple reflows some
situations. A followup should ensure that only nodes that have pending
fonts loading are reflows, but this change is the first step.