aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/dom
Commit message (Collapse)AuthorAgeFilesLines
...
* [clippy] Rename enum FormSubmitter and its elements (#32791)Danila Matveev2024-07-173-44/+44
| | | | | | | | | | | | | * [clippy] Renames enum FormSubmitter and its elements Signed-off-by: Danila Matveev <usurname.r@gmail.com> * fmt Signed-off-by: Danila Matveev <usurname.r@gmail.com> --------- Signed-off-by: Danila Matveev <usurname.r@gmail.com>
* clippy: Fix four warnings (#32789)Danila Matveev2024-07-173-3/+6
| | | | | | | | | | | | | | | | | * Fixes 4 clippy rules Signed-off-by: Danila Matveev <usurname.r@gmail.com> * Rollbacks changes in range.rs and silences clippy::neg_cmp_op_on_partial_ord Signed-off-by: Danila Matveev <usurname.r@gmail.com> * Fixes a fmt issue Signed-off-by: Danila Matveev <usurname.r@gmail.com> --------- Signed-off-by: Danila Matveev <usurname.r@gmail.com>
* Fixes typo in clippy::enum_variant_names (#32784)Danila Matveev2024-07-161-1/+1
| | | | Signed-off-by: Danila Matveev <optician_owl@fastmail.com> Signed-off-by: Danila Matveev <usurname.r@gmail.com>
* script: `document.visibilityState` and `document.hidden` (#32635)Ngo Iok Ui (Wu Yu Wei)2024-07-125-8/+154
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Squashed commit of the following: commit 5e0ea9996cb0d8137c3e1cd04487a1065b61289d Author: Wu Yu Wei <yuweiwu@pm.me> Date: Thu Jul 11 13:37:51 2024 +0900 Move lint to new_inherited Signed-off-by: Wu Yu Wei <yuweiwu@pm.me> commit a8cbfb1eef2650d153ef41c232d9e80e1118fc37 Merge: b819968f3e 7a33f8f008 Author: Wu Yu Wei <yuweiwu@pm.me> Date: Thu Jul 11 13:32:18 2024 +0900 Merge branch 'main' into visibility commit b819968f3eaa361c8a2cf3af679943ae2065ab32 Merge: eda2ec4c22 1c6b74e1f1 Author: Wu Wayne <yuweiwu@pm.me> Date: Tue Jul 9 14:26:43 2024 +0900 Merge branch 'main' into visibility commit eda2ec4c225c63236d6851ea525455cad8874ce5 Author: Wu Wayne <yuweiwu@pm.me> Date: Thu Jul 4 14:25:05 2024 +0900 Include page-visibility tests to wpt commit 9da7b4ee39b141e59e4a21a64445c4b08499463f Author: Wu Yu Wei <yuweiwu@pm.me> Date: Thu Jul 4 12:50:40 2024 +0900 Add TODO comment for future update commit 11f55fea3ead0c8fa07f16557a63cc6a77c15c3f Author: Wu Yu Wei <yuweiwu@pm.me> Date: Wed Jul 3 11:01:51 2024 +0900 Add spaces between steps commit 408c3e51f25867e85f894cd77a6355bc32f2aa00 Author: Wu Wayne <yuweiwu@pm.me> Date: Tue Jul 2 18:33:53 2024 +0900 Update MANIFEST.json commit 679fe4ffdd28554b11b4018395fac22a08ccbc34 Author: Wu Wayne <yuweiwu@pm.me> Date: Tue Jul 2 18:27:02 2024 +0900 Add VisibilityStateEntry to mozilla/interfaces.html commit 4a456a2b4a473fa795274edf56ecf660616f90eb Author: Wu Wayne <yuweiwu@pm.me> Date: Tue Jul 2 14:28:11 2024 +0900 Update meta results commit cd191447ff61de392526e00c13f765c2df7a269e Merge: 7ff480a698 ad01342f00 Author: Ngo Iok Ui (Wu Yu Wei) <yuweiwu@pm.me> Date: Tue Jul 2 13:47:49 2024 +0900 Merge branch 'main' into visibility commit 7ff480a698413ac5526edfb1b8731373bb9d04ae Author: Wu Yu Wei <yuweiwu@pm.me> Date: Tue Jul 2 13:12:44 2024 +0900 Update description text of update_visibility_state commit 0e496b7bce4fd5476a1919737b00e8f0c9e2fdc8 Author: Wu Yu Wei <yuweiwu@pm.me> Date: Tue Jul 2 12:59:40 2024 +0900 Add specification link to VisibilityStateEntry methods commit 3e4a061450621bd17f19ff81099dd4daaeaea478 Author: Wu Yu Wei <yuweiwu@pm.me> Date: Tue Jul 2 12:31:53 2024 +0900 Add descriptive text to each step commit 8bbdfcae97db5002b09e5f5ecec6ae80d080dc95 Author: Wu Wayne <yuweiwu@pm.me> Date: Fri Jun 28 19:15:34 2024 +0900 mach fmt commit dc1c7a4aec6aba56af7afcfee6feadbee242a643 Author: Wu Wayne <yuweiwu@pm.me> Date: Fri Jun 28 19:01:00 2024 +0900 Add update_visibility_state commit 6aa18143319044dc084a9585ab064cd853bccc21 Author: Wu Wayne <yuweiwu@pm.me> Date: Fri Jun 28 16:06:25 2024 +0900 Add VisibilityStateEntry.webidl commit 638ae3cd563004334d35cc3fbdc1f918d29833d0 Author: Wu Yu Wei <yuweiwu@pm.me> Date: Fri Jun 28 13:39:29 2024 +0900 Add visibilityState and hidden in Document.webidl Signed-off-by: Wu Yu Wei <yuweiwu@pm.me> * Move creation into reflect call Signed-off-by: Wu Yu Wei <yuweiwu@pm.me> --------- Signed-off-by: Wu Yu Wei <yuweiwu@pm.me>
* script: Use the new C string literal in the DOM bindings (#32741)Bumsoo Kim2024-07-115-62/+59
| | | | | | | | | | | | | | | | | * 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>
* DevTools: Display console messages and errors (#32727)eri2024-07-091-3/+9
| | | | | | | | | | | | | | | | | * feat: add streams to browsing context * feat: console now works! * feat: order console messages * feat: add streams to new browsing contexts * fix: apply suggestions Co-authored-by: Martin Robinson <mrobinson@igalia.com> --------- Co-authored-by: Martin Robinson <mrobinson@igalia.com>
* Remove media element state changes triggered by network responses (#32643)Josh Matthews2024-07-091-29/+47
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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.
* Fix more clippy (#32740)石蕊 (Pi-Cla)2024-07-0915-65/+54
|
* DevTools: Replace camel case variable names (#32726)eri2024-07-083-26/+26
| | | | | | | | | * refactor: rename to snake case * refactor: more renaming * chore: format * chore: clean
* Add customElements.getName (#32715)Keith Cirkel2024-07-072-0/+12
| | | | | * Add customElements.getName * rebaseline
* Replace null-byte terminated string literals with C-string literals (#32716)Bumsoo Kim2024-07-065-27/+27
| | | | | | | | | | | | | * 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>
* script: Impl cloning of JSPrincipals (#32706)Samson2024-07-062-3/+61
| | | | | | | * Impl cloning of JSPrincipals * bincode as workspace dependency * Update mozjs and cc
* webgpu: Update wgpu and revamp RenderPass (#32665)Samson2024-07-045-217/+203
| | | | | | | | | | | | | | | | | | | | | * 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
* clippy: Fix a bunch of warnings in `script` (#32680)Martin Robinson2024-07-0424-104/+141
| | | This is just a portion of the errors that are remaining to be fixed.
* Updated all kill_*_id functions defined in indentityhub.rs to free_*_id ↵newmoneybigbucks2024-07-041-15/+15
| | | | | naming format for issue 32685 (#32688) Signed-off-by: newmoneybigbucks <newmoneybigbucks@protonmail.com>
* webgpu: Remove mutex around Identities (#32682)派卡 (pi-cla)2024-07-0314-77/+53
|
* webgpu: Implement ShaderCompilationInfo (#32642)Samson2024-07-026-26/+97
| | | | | | | | | * ShaderCompilationInfo * expectations * Handle CompilationInfo promise in GPUShaderModule * Fix my english
* webgpu: Update wgpu and revamp computepass (#32575)Samson2024-06-286-115/+101
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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
* html: Parse a comma-separated list of faces in the `<font>` tag (#32622)Martin Robinson2024-06-262-4/+39
| | | | | | 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`.
* script: Implement the `FontFaceSet` DOM API (#32576)Mukilan Thiyagarajan2024-06-266-4/+144
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* Upgrade stylo to 2024-05-31 (#32474)Oriol Brufau2024-06-241-0/+5
| | | | | | | | | | | * Upgrade stylo to 2024-05-31 * Fixup for https://phabricator.services.mozilla.com/D211731 * Fixup for https://phabricator.services.mozilla.com/D207779 * Fixup for https://phabricator.services.mozilla.com/D207781 * Update test expectations
* Proper GPUDevice cleanup (#32520)Samson2024-06-203-14/+26
| | | | | | | | | | | * 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
* fix: codegen on callback (#32537)Ngo Iok Ui (Wu Yu Wei)2024-06-183-8/+24
| | | | | * Fix codegen on callback * Add test callbacks to testbinding.rs
* servoshell: Reset link status when loading a new document (#32518)webbeef2024-06-181-0/+1
| | | | | * Reset link status when loading a new document * Reset hover link when navigating back or forward
* Use workspace definitions for all crates and update to the 2021 edition (#32544)Martin Robinson2024-06-182-2/+6
|
* implement basic infra for ResizeObserver (#31108)Gregory Terzian2024-06-1711-3/+593
|
* webgpu: Implement device lost (#32354)Samson2024-06-174-32/+41
| | | | | | | | | | | | | * 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
* htmlmetaelement: improve parsing of meta http-equiv (#32508)shanehandley2024-06-151-1/+8
|
* Update WebIDL.py (#32495)Ngo Iok Ui (Wu Yu Wei)2024-06-154-14/+13
| | | | | | | | | | | | | | | | | * 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
* Implement HTMLImageElement decode (#31269)Taym Haddadi2024-06-133-1/+97
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Implement HTMLImageElement decode Signed-off-by: Bentaimia Haddadi <haddadi.taym@gmail.com> * Fix Decode doc link Signed-off-by: Bentaimia Haddadi <haddadi.taym@gmail.com> * Temp * Decode HTML Image Signed-off-by: Bentaimia Haddadi <haddadi.taym@gmail.com> * Fix doc link Signed-off-by: Bentaimia Haddadi <haddadi.taym@gmail.com> * Move image decode to process_image_response_for_environment_change Signed-off-by: Bentaimia Haddadi <haddadi.taym@gmail.com> * Update some wpt test result Signed-off-by: Bentaimia Haddadi <haddadi.taym@gmail.com> * Handle multiple image decode promises Signed-off-by: Bentaimia Haddadi <haddadi.taym@gmail.com> * Remove unnecessary promise calls Signed-off-by: Bentaimia Haddadi <haddadi.taym@gmail.com> * Update more wpt test result Signed-off-by: Bentaimia Haddadi <haddadi.taym@gmail.com> * Undo body-size-cross-origin.https.html.ini changes Signed-off-by: Bentaimia Haddadi <haddadi.taym@gmail.com> * Reject decode when src and srcset are missing Signed-off-by: Bentaimia Haddadi <haddadi.taym@gmail.com> * Revert "Reject decode when src and srcset are missing" This reverts commit 1b57ab978f9fc24facafc8af97ee8851d5142533. * Drain promises vec and run update_the_image_data when element is created Signed-off-by: Bentaimia Haddadi <haddadi.taym@gmail.com> * resolve decode promise in abort_request when request is CompletelyAvailable Signed-off-by: Bentaimia Haddadi <haddadi.taym@gmail.com> * Update wpt test Signed-off-by: Bentaimia Haddadi <haddadi.taym@gmail.com> * Move storing promise in decode task Signed-off-by: Bentaimia Haddadi <haddadi.taym@gmail.com> * Remove the resolve logic from decode task Signed-off-by: Bentaimia Haddadi <haddadi.taym@gmail.com> * Revert "Remove the resolve logic from decode task" This reverts commit eee6096d50dbe46a22a5bbfd7f15c03988ed2f4b. * reject or reject current promise before storing it Signed-off-by: Bentaimia Haddadi <haddadi.taym@gmail.com> * Add comment to explain why resolve promise when state is CompletelyAvailable Signed-off-by: Bentaimia Haddadi <haddadi.taym@gmail.com> --------- Signed-off-by: Bentaimia Haddadi <haddadi.taym@gmail.com>
* clippy fixes regarding clone_from (#32482)Peter Mikola2024-06-125-7/+21
|
* script: Remove explicit reflow for web font loads (#32455)Martin Robinson2024-06-101-1/+0
| | | | | | 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.
* webgpu: Enable gles support (#32452)Hieu Do2024-06-091-0/+8
|
* Update to Rust 1.78 (#32217)Samson2024-06-011-2/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Update to rust 1.78 * Update crown for rust 1.78 * rust 1.78 is now stable * Update for nix * Update comment Co-authored-by: Martin Robinson <mrobinson@igalia.com> * Update support/crown/src/common.rs * Update support/crown/Cargo.toml * Update support/crown/src/common.rs * Fix ipc problem * Update ipc-channel to 0.18.1 * fixed fixme --------- Co-authored-by: Martin Robinson <mrobinson@igalia.com>
* webgpu: Move errorscopes to WGPU thread (#32304)Samson2024-05-2229-587/+483
| | | | | | | | | | | | | | | | | | | | | * Prepare errorscopes logic in wgpu_thread * remove scope_id from ipc * new GPUErrors per spec * remove cotent timeline error_scope * fixup poperrorscope types * device_scope -> gpu_error and nice errors * Handle errors detection more elegantly * good expectations * new expectations * Make error_scope.errors Vec as per spec
* script: Have `Document` own `Layout` (#32316)Martin Robinson2024-05-206-84/+64
| | | | | | Have `Document` own `Layout`. This makes it impossible to have a `Document` without `Layout`, which was true, but now the compiler checks it. In addition, `Layout` is now released when the `Document` is, avoiding leaking the entire `Layout`.
* compositor: Move WebRender-ish messages and types to `webrender_traits` (#32315)Mukilan Thiyagarajan2024-05-205-13/+14
| | | | | | | | | | | | | | | | | | | | * Move WebRender related types to `webrender_traits` This refactor moves several WebRender related types from `compositing_traits`, `script_traits` and `net_traits` crates to the `webrender_traits` crate. This change also moves the `Image` type and associated function out of `net_traits` and into the `pixels` crate. Co-authored-by: Martin Robinson <mrobinson@igalia.com> Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com> * Move `script_traits::WebrenderIpcSender` to `webrender_traits::WebRenderScriptApi` --------- Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com> Co-authored-by: Martin Robinson <mrobinson@igalia.com>
* Move non-gfx things out of `gfx_traits` and create a `base` crate (#32296)Martin Robinson2024-05-1730-41/+37
| | | | | | | | | | | | | | | | | | | | | | | For a long time, `gfx_traits` has held a lot of things unrelated to graphics and also unrelated to the `gfx` crate (which is mostly about fonts). This is a cleanup which does a few things: 1. Move non `gfx` crate things out of `gfx_traits`. This is important in order to prevent dependency cycles with a different integration between layout, script, and fonts. 2. Rename the `msg` crate to `base`. It didn't really contain anything to do with messages and instead mostly holds ids, which are used across many different crates in Servo. This new crate will hold the *rare* data types that are widely used. Details: - All BackgroundHangMonitor-related things from base to a new `background_hang_monitor_api` crate. - Moved `TraversalDirection` to `script_traits` - Moved `Epoch`-related things from `gfx_traits` to `base`. - Moved `PrintTree` to base. This should be widely useful in Servo. - Moved `WebrenderApi` from `base` to `webrender_traits` and renamed it to `WebRenderFontApi`.
* Rename NavigationType to NavigationTimingType (#32299)shanehandley2024-05-162-16/+16
| | | | | | | | | This was renamed in the spec: https://github.com/w3c/navigation-timing/pull/172 The NavigationType enum name is now part of the navigation history apis: https://html.spec.whatwg.org/multipage/nav-history-apis.html\#navigationtype
* Fix RefCell borrows (#32276)Samson2024-05-131-3/+2
| | | | | | | * Fix RefCell borrows * Update document.rs fmt
* script: Start rework to better match the specification HTML event loop (#31505)Gregory Terzian2024-05-133-15/+70
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Fix the HTML event-loop: add a update the rendering task add rendering task source sketch structure to update the rendering resize steps composition events fix warnings in rendering task source refactor handling of composition events: put window and doc for pipeline on top set script as user interacting in update the rendering task fmt add todos for other steps, put all compositor handling logic in one place update the rendering: evaluate media queries and report changes update the rendering: update animations and send events update the rendering: run animation frames update the rendering: order docs put rendering related info on documents map tidy update the rendering: add issue numbers to todos update the rendering: reflow as last step update the rendering: add todo for top layer removals note rendering opportunity when ticking animations for testing fix double borrow crash in css/basic-transition fix faster reversing of transitions test undo ordering of docs bypass not fully-active pipeline task throttling for rendering tasks ensure tasks are dequed from task queue prioritize update the rendering task remove servo media stuff from set activity tidy debug update the rendering: perform microtask checkpoint after task tidy-up only run evaluate media queries if resized re-add evaluation of media queries for each rendering task, re-prioritize rendering tasks, re-add microtask checkpoint for all sequential messages re-structure resize steps, and their interaction with evaluating media queries and reacting to environment changes update the rendering: remove reflow call at the end update webmessaging expectations update to FAIL /html/browsers/browsing-the-web/navigating-across-documents/initial-empty-document/load-pageshow-events-iframe-contentWindow.html update to FAIL load-pageshow-events-window-open.html add issue number for ordering of docs nits move batching of mouse move event to document info nits add doc for mouse move event index reset mouse move event index when taking pending compositor events fix replacing mouse move event nits * move update the rendering related data to document * move re-taking of tasks to try_recv * address nits * change task queue try_recv into take_tasks_and_recv, with nits * refactor process_pending_compositor_events * when updating the rendering, return early if script cannot continue running * use an instant for the last render opportunity time * nits * remove handle_tick_all_animations * use a vec for pending resize and compositor events * fix spec links * Fix a few other nits before landing --------- Co-authored-by: Martin Robinson <mrobinson@igalia.com>
* fix: Implement additional logic in ↵shanehandley2024-05-134-14/+67
| | | | DOMString::set_best_representation_of_the_floating_point_number in order to correct some failing tests related to -0 values. (#32272)
* clippy: Fix last few warnings (#32270)Pi-Cla2024-05-123-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Fix clippy in components/script warning: writing `&mut Vec` instead of `&mut [_]` involves a new object where a slice will do (components/script/dom/htmlformelement.rs:896:20) warning: `Box::new(_)` of default value (components/script/dom/paintworkletglobalscope.rs:291:29) warning: this creates an owned instance just for comparison (components/script/dom/radionodelist.rs:105:50) * Fix clippy in layout_thread (2013 and 2020) warning: this `if` statement can be collapsed (components/layout_thread/lib.rs:876:17) warning: the following explicit lifetimes could be elided: 'a (components/layout_thread/lib.rs:239 and 2020 same line) warning: deref which would be done by auto-deref (components/layout_thread/lib.rs:500 and 1289) warning: dereferencing a tuple pattern where every element takes a reference (components/layout_thread/lib.rs:503,1562 and 2020 line 1153) warning: useless conversion to the same type: `style::invalidation::element::restyle_hints::RestyleHint` (components/layout_thread_2020/lib.rs:742:36) * Fix clippy in components/servo warning: constants have by default a `'static` lifetime (components/servo/lib.rs:1238:31) warning: creating a `let` binding to a value of unit type, which usually can't be used afterwards (5 occurances in components/servo/lib.rs) * FIx clippy in ports/servoshell warning: this expression creates a reference which is immediately dereferenced by the compiler (ports/servoshell/app.rs:251:89) warning: using `clone` on type `Option<TopLevelBrowsingContextId>` which implements the `Copy` trait (ports/servoshell/webview.rs:122:9)
* Implement attributes for the `<meter>` element (#32230)shanehandley2024-05-112-13/+139
| | | | | * Implement attributes for the meter element * Remove checks for min < max before clamping
* clippy: Fix vtable_address_comparisons error (#32262)sergiitomusiak2024-05-091-1/+5
| | | | | | | | | | | | * clippy: Fix vtable_address_comparisons error * Update components/script/dom/bindings/root.rs Co-authored-by: Mukilan Thiyagarajan <mukilanthiagarajan@gmail.com> --------- Co-authored-by: Sergii Tomusiak <sergiitomusiak@github.com> Co-authored-by: Mukilan Thiyagarajan <mukilanthiagarajan@gmail.com>
* webgpu: Refactor webgpu crate (#32255)Samson2024-05-0813-25/+22
| | | | | | | * wgpu(_core) -> wgc * Refactor webgpu crate split lib.rs into multiple modules
* webgpu: Update to wgpu 0.20 (#32173)Samson2024-05-087-34/+38
| | | | | | | | | | | * Update wgpu to 0.20 * good expectations * Throw TypeError in configure on unsupported format instead of panic * Expect * `into_command_buffer_id`,`into_command_encoder_id`
* Revert "script: implement AbortController (#31361)" (#32243)Samson2024-05-0711-254/+8
| | | This reverts commit 7fce850cffb72a6fbcf763a40164a9b35b7fa833.
* script: implement AbortController (#31361)Smitty2024-05-0411-8/+254
| | | | | | | | | | | | | | | | | | | | | * Implement AbortController Signed-off-by: syvb <me@iter.ca> * Update WPT tests Signed-off-by: syvb <me@iter.ca> * Address review comments * Fix duplicate import generation * Update WPT test expectations * Change expectation to FAIL for flaky test --------- Signed-off-by: syvb <me@iter.ca>
* Fix some clippy warnings in `components/gfx` and `components/script` (#32215)Pi-Cla2024-05-0214-26/+39
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * clippy: Squish warnings and errors in gfx warning: redundant closure (gfx/font.rs:415:18) warning: useless conversion to the same type (gfx/font.rs:534:9) warning: the following explicit lifetimes could be elided: 'a (gfx/font.rs:619:16) error: this loop never actually loops (gfx/font_cache_thread.rs:112:9) warning: this expression creates a reference which is immediately dereferenced by the compiler (gfx/font_cache_thread.rs:229:51) warning: redundant closure (gfx/font_cache_thread.rs:551:18) 3 instances of: warning: casting integer literal to `f64` is unnecessary (gfx/platform/freetype/font_list.rs:271-273) * clippy: methods called `from_*` usually take no `self` It reports that by standard convention, from_* methods should not take any `&self` parameter * clippy: you should consider adding a `Default` implementation It reports that public types with a pub fn new() -> Self should have a Default implementation since they can be constructed without arguments * clippy: casting to the same type is unnecessary (`f32` -> `f32`) * clippy: use of `unwrap_or_else` to construct default value * clippy: methods called `is_*` usually take `self` by mutable reference or `self` by reference or no `self` * clippy: manual `!RangeInclusive::contains` implementation contains expresses the intent better and has less failure modes (such as fencepost errors or using || instead of &&) * clippy: this function has an empty `#[must_use]` attribute, but returns a type already marked as `#[must_use]` * clippy: Fix some new warnings warning: this `if` statement can be collapsed (gfx/font.rs:468:130) warning: this lifetime isn't used in the impl (gfx/platform/freetype/font.rs:341:6) warning: field assignment outside of initializer for an instance created with Default::default() (compositor.rs:881:17)