aboutsummaryrefslogtreecommitdiffstats
path: root/components
Commit message (Collapse)AuthorAgeFilesLines
* layout: Add a basic support for `list-style-position: outside` (#32114)Martin Robinson2024-04-223-17/+141
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This change adds very basic support for `list-style-position`. Currently, the marker does not do any kind of baseline alignment with the rest of the list item contents and it also doesn't force the list item to be at least as tall as the marker. This adds a few new failures: - Four failures because markers do not ensure that list-items have at least the same block size as they do: - FAIL [expected PASS] /css/CSS2/lists/list-style-applies-to-012.xht - FAIL [expected PASS] /css/CSS2/lists/list-style-applies-to-014.xht - FAIL [expected PASS] /css/CSS2/lists/list-style-type-applies-to-012.xht - FAIL [expected PASS] /css/CSS2/lists/list-style-type-applies-to-014.xht - One failure because we don't yet support the `::marker` pseudo-selector: - FAIL [expected PASS] /css/css-position/position-absolute-dynamic-list-marker.html - One failure because we don't support the list item exception for the line height quirk: - FAIL [expected PASS] /quirks/line-height-in-list-item.tentative.html Co-authored-by: Oriol Brufau <obrufau@igalia.com> <!-- Please describe your changes on the following line: --> Fixes #27383. --- <!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `___` with appropriate data: --> - [x] `./mach build -d` does not report any errors - [x] `./mach test-tidy` does not report any errors - [x] These changes fix #27383. - [ ] There are tests for these changes OR - [ ] These changes do not require tests because ___ <!-- Also, please make sure that "Allow edits from maintainers" checkbox is checked, so that we can help you if you get stuck somewhere along the way.--> <!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. --> Co-authored-by: Oriol Brufau <obrufau@igalia.com>
* fonts: Fix emoji font selection on macOS (#32122)Martin Robinson2024-04-222-149/+231
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This fixes two issues that were preventing emojis from being properly selected from fonts on macOS. 1. `CTFont::get_glyphs_for_characters` takes the input characters as UniChar which are UTF-16 encoded characters. We need to encode the input `char` as UTF-16 before passing it to CoreText. 2. The font fallback list is updated with the latest logic from Gecko, which importantly adds "Apple Color Emoji" to the list of fallback fonts. Sorry for the big change, but this is just a direct port of the code from Gecko. With these two changes, emojis display but in grayscale. 😅 To fix this, another part of the font stack will need to detect when the font supports color and pass that information to WebRender when creating the font instance. We will likely do this in platform independent way later that will depend on some more preliminary changes. <!-- Please describe your changes on the following line: --> --- <!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `___` with appropriate data: --> - [x] `./mach build -d` does not report any errors - [x] `./mach test-tidy` does not report any errors - [x] These changes are part of #17267. - [x] There are tests for these changes, but the macOS CI does not currently run WPT so we cannot observe the updated results. <!-- Also, please make sure that "Allow edits from maintainers" checkbox is checked, so that we can help you if you get stuck somewhere along the way.--> <!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->
* fonts: Rework platform font initialization (#32127)Mukilan Thiyagarajan2024-04-2221-429/+650
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This change reworks the way that platform fonts are created and descriptor data is on `FontTemplate` is initialized. The main change here is that platform fonts for local font faces are always initialized using the font data loaded into memory from disk. This means that there is now only a single path for creating platform fonts. In addition, the font list is now responsible for getting the `FontTemplateDescriptor` for local `FontTemplate`s. Before the font had to be loaded into memory to get the weight, style, and width used for the descriptor. This is what fonts lists are for though, so for every platform we have that information before needing to load the font. In the future, hopefully this will allow discarding fonts before needing to load them into memory. Web fonts still get the descriptor from the platform handle, but hopefully that can be done with skrifa in the future. Thsese two fixes together allow properly loading indexed font variations on Linux machines. Before only the first variation could be instantiated. Fixes https://github.com/servo/servo/issues/13317. Fixes https://github.com/servo/servo/issues/24554. Co-authored-by: Martin Robinson <mrobinson@igalia.com> ---- - [x] `./mach build -d` does not report any errors - [x] `./mach test-tidy` does not report any errors - [x] These changes fix #13317 and #24554 - [x] There are tests for these changes --------- Co-authored-by: Martin Robinson <mrobinson@igalia.com>
* fix(user-timing): fix clearing marks/measures by name (#32120)Nolan Lawson2024-04-221-8/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This fixes several tests in [wpt/user-timing](https://wpt.fyi/results/user-timing?label=master&product=chrome%5Bexperimental%5D&product=firefox%5Bexperimental%5D&product=safari%5Bexperimental%5D&product=servo&aligned) by fixing some logic errors in how marks/measures are cleared (via [`clearMarks`](https://developer.mozilla.org/en-US/docs/Web/API/Performance/clearMarks) and [`clearMeasures`](https://developer.mozilla.org/en-US/docs/Web/API/Performance/clearMeasures)). There are two changes: 1. Fix the boolean logic in `clear_entries_by_name_and_type` so that, when `clearMarks('foo')` or `clearMeasures('foo')` is called, the presence of the entry name correctly filters based on existing entry names. 2. Make the `entry_name` param a `DOMString` rather than an `Option<DOMString>` since every API call has it as `Some` anyway, and I'm not aware of any [Performance APIs](https://developer.mozilla.org/en-US/docs/Web/API/Performance) where you can clear all entries regardless of type. (This is not strictly required for the fix, but I think it makes the code easier to read.) ~~I also considered adding the expected WPT results using `mach update-wpt`. But I'm not sure if you want these changes, since the expectations are currently missing (i.e. `tests/wpt/meta/user-timing` does not exist).~~ (_Update: added!_) For the record, this PR fixes the following tests: - `clearMarks.html.ini` - `clearMeasures.html.ini` - `clear_non_existent_mark.any.js.ini` - `clear_non_existent_measure.any.js.ini` - `clear_one_mark.any.js.ini` - `clear_one_measure.any.js.ini` ~~In case you do want these meta files, here they are: https://github.com/nolanlawson/servo/commit/510e6146ba01bae4f4aafda8754718e24ce6e868~~ --- <!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `___` with appropriate data: --> - [x] `./mach build -d` does not report any errors - [x] `./mach test-tidy` does not report any errors - [ ] These changes fix #___ (GitHub issue number if applicable) <!-- Either: --> - [x] There are tests for these changes OR - [ ] These changes do not require tests because ___ <!-- Also, please make sure that "Allow edits from maintainers" checkbox is checked, so that we can help you if you get stuck somewhere along the way.--> <!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->
* Fix InsertRule to use the right CssRuleTypes (#32125)Oriol Brufau2024-04-2212-41/+42
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `CSSRule::Type()` returns an u16 for CSSOM. `InsertRule()` was incorrectly using this to create a `CssRuleTypes`. Instead of `CssRuleTypes::from_bits(rule_type)`, it should be something like `CssRuleTypes::from_bits(1 << rule_type)`. However, that would only work when `Type()` provides an actual value, which per https://drafts.csswg.org/cssom/#dom-cssrule-type only happens for old rule types. New rule types just return 0. Therefore, this patch changes the signature of `SpecificCSSRule::ty()` to return the actual `CssRuleType`, and then `CSSRule::Type()` can zero it out when necessary. The fix is only relevant for CSS Nesting, which is currently disabled on Servo, so no test is necessary. <!-- Please describe your changes on the following line: --> --- <!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `___` with appropriate data: --> - [X] `./mach build -d` does not report any errors - [X] `./mach test-tidy` does not report any errors - [X] These changes do not require tests because the fix is only relevant for CSS Nesting, which is currently disabled <!-- Also, please make sure that "Allow edits from maintainers" checkbox is checked, so that we can help you if you get stuck somewhere along the way.--> <!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->
* clippy: fix several lint warns (#32126)Kitsu2024-04-2217-83/+54
| | | | | | | | | | | | | | | As seems #31500 still remain opened here's the next partial fix. Fixed list: `unused_mut`, `clippy::needless_borrow`, `clippy::match_ref_pats`, `clippy::borrow_deref_ref`, `clippy::ptr_eq`, `clippy::unnecessary_cast`, `clippy::derivable_impls`, `clippy::collapsible_match`, `clippy::extra_unused_lifetimes`, `clippy::map_clone`, `clippy::manual_filter`. - [x] `./mach build -d` does not report any errors - [x] `./mach test-tidy` does not report any errors - [x] These changes are part of #31500. - [x] These changes do not require tests because are only cosmetic.
* layout: Have `TextRun::glyph_run_is_preserved_newline` take into account ↵Martin Robinson2024-04-212-4/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `TextRunSegment` offset (#32119) A `TextRun` is composed of `TextRunSegment`s that are composed of `GlyphRun`s. `TextRun::glyph_run_is_preserved_newline` is indexing into the `TextRun` text, but the `GlyphRun` indexes that it uses are relative to the `TextRunSegment` offset. Before the code was using the offset without incorporating the `TextRunSegment` offset. This led to miscalculation of preserved newline location while processing text content. <!-- Please describe your changes on the following line: --> --- <!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `___` with appropriate data: --> - [x] `./mach build -d` does not report any errors - [x] `./mach test-tidy` does not report any errors - [x] There are tests for these changes <!-- Also, please make sure that "Allow edits from maintainers" checkbox is checked, so that we can help you if you get stuck somewhere along the way.--> <!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->
* layout: Have `current_block_direction_position` in `PlacementState` use `Au` ↵Ekta Siwach2024-04-191-13/+12
| | | | (#31948)
* Fixed some clippy warnings in components (#32107)komuhangi2024-04-199-29/+20
| | | | | | | * Fixed some clippy warnings in components * Updated handling of NaN values in comparison * Updated formatting using ./mach fmt
* script: Add an implementation of `Default` for `Documents` (#32048)Son of Binary2024-04-191-7/+10
|
* clippy: Fix collapsible_if warning (#32109)Oluwatobi Sofela2024-04-191-4/+3
|
* clippy: Fix `explicit_auto_deref` warnings in `components/script` (#32113)Oluwatobi Sofela2024-04-193-62/+62
| | | | | * clippy: Fix explicit_auto_deref warnings * refactor: Change basic comments to rustdoc comments
* clippy: Fix `map_flatten` warning in `components/script` (#32110)Oluwatobi Sofela2024-04-181-4/+3
| | | | | * clippy: Fix map_flatten warning * refactor: Change plain comments to rustdoc comments
* clippy: Fix clone_on_copy warnings (#32108)Oluwatobi Sofela2024-04-181-2/+2
|
* Simplify `FontHandle` and rename it to `PlatformFont` (#32101)Martin Robinson2024-04-179-80/+71
| | | | | | | | | | | | | | | | * Simplify `FontHandle` and rename it to `PlatformFont` Rename it to `PlatformFont` and move the `FontTemplate` member to `Font`, because it's shared by all platforms. * Update components/gfx/platform/freetype/font.rs Co-authored-by: Mukilan Thiyagarajan <mukilanthiagarajan@gmail.com> * Fix build for MacOS and Windows --------- Co-authored-by: Mukilan Thiyagarajan <mukilanthiagarajan@gmail.com>
* layout: Add support for `clear` on `<br>` elements (#32094)Martin Robinson2024-04-171-2/+34
| | | | | | | | `<br>` elements are a bit "special" in the sense that they defer a linebreak, but can also have `clear` applied to them. The `clear` that they supply should be applie *after* the linebreak is processed. This change adds special processing for this situation. Fixes #15402.
* Rename `FontTemplateInfo` to `FontTemplateAndWebRenderFontKey` (#32100)Martin Robinson2024-04-173-16/+16
| | | | This clarifies what this type does a bit. Based on a suggestion by @mukilan.
* gfx: Remove `FontTemplateData` (#32034)Martin Robinson2024-04-1619-598/+392
| | | | | | | | | | | | | | | | | | | Now that `FontTemplateData` is more or less the same on all platforms, it can be removed. This is a preparatory change for a full refactor of the font system on Servo. The major changes here are: - Remove `FontTemplateData` and move its members into `FontTemplate` - Make `FontTemplate` have full interior mutability instead of only the `FontTemplateData` member. This is preparation for having these data types `Send` and `Sync` with locking. - Remove the strong/weak reference concept for font data. In practice, all font data references were strong, so this was never fully complete. Instead of using this approach, the new font system will use a central font data cache with references associated to layouts. - The `CTFont` cache is now a global cache, so `CTFont`s can be shared between threads. The cache is cleared when clearing font caches. A benefit of this change (apart from `CTFont` sharing) is that font data loading is platform-independent now.
* Backout `Host`-header related change from #32024. (#32093)Philip Lamb2024-04-163-25/+1
| | | #32024 broke a different set of nginx sites, and a more sophisticated fix for the case of a missing HTTP 1.1 `Host` header is required.
* Upgrade Stylo to 2024-03-01 (#32089)Oriol Brufau2024-04-1613-110/+78
| | | | | | | * Upgrade Stylo to 2024-03-01 * Fixup for https://bugzil.la/1882754 * Update test expectations
* layout: Add support for `background-attachment: fixed` (#32068)Martin Robinson2024-04-153-87/+217
| | | Co-authored-by: Oriol Brufau <obrufau@igalia.com>
* layout: Add support for `<object>` with image data URLs (#32069)Martin Robinson2024-04-155-7/+71
| | | | | This is enough support for `<object>` to get Acid2 working. Co-authored-by: Oriol Brufau <obrufau@igalia.com>
* Keep 1st collapsible space after a preserved one (#32037)Oriol Brufau2024-04-152-15/+19
| | | | | | | | The logic was to remove any collapsible white space preceded by other white space. However, this should only happen if the preceding space is also collapsible. Also fixing the logic in ContentSizesComputation, which was wrong but previously it didn't matter.
* Upgrade Stylo to 2024-01-16 (#32066)Oriol Brufau2024-04-134-20/+29
| | | | | | | | | | | | | | | * Upgrade Stylo to 2024-01-16 * Fixup for https://phabricator.services.mozilla.com/D187736 * Fixup for https://phabricator.services.mozilla.com/D196415 * Fixup for https://phabricator.services.mozilla.com/D197147 * Fixup for https://phabricator.services.mozilla.com/D196194 * Fixup for https://phabricator.services.mozilla.com/D196195 * Update test expectations
* Element collapsing thru should collapse with its children (#32060)Oriol Brufau2024-04-121-9/+11
| | | | | | | If the top and bottom margins of an element collapse through, then this patch treats the bottom margin as collapsing with its children, even if `height` doesn't compute to zero. Co-authored-by: Martin Robinson <mrobinson@igalia.com>
* Treat indefinite percentages as auto for margin collapse (#32059)Oriol Brufau2024-04-121-19/+27
| | | | | | | The top and bottom margins of an element can collapse through if its height is auto or zero. Indefinite percentages behave as auto, so they shouldn't prevent the margins from collapsing. Co-authored-by: Martin Robinson <mrobinson@igalia.com>
* Remove `FontContextHandle` (#32038)Martin Robinson2024-04-1215-247/+151
| | | | | | | | | | | | | | | | | | | | | | | The `FontContextHandle` was really only used on FreeType platforms to store the `FT_Library` handle to use for creating faces. Each `FontContext` and `FontCacheThread` would create its own `FontContextHandle`. This change removes this data structure in favor of a mutex-protected shared `FontContextHandle` for an entire Servo process. The handle is initialized using a `OnceLock` to ensure that it only happens once and also that it stays alive for the entire process lifetime. In addition to greatly simplifying the code, this will make it possible for different threads to share platform-specific `FontHandle`s, avoiding multiple allocations for a single font. The only downside to all of this is that memory usage of FreeType fonts isn't measured (though the mechanism is still there). This is because the `FontCacheThread` currently doesn't do any memory measurement. Eventually this *will* happen though, during the font system redesign. In exchange, this should reduce the memory usage since there is only a single FreeType library loaded into memory now. This is part of #32033.
* Obey min-height and max-height on floated elements (#32057)Oriol Brufau2024-04-121-4/+8
| | | Co-authored-by: Martin Robinson <mrobinson@igalia.com>
* clippy: Fix `comparison_*` warnings (#32058)eri2024-04-125-78/+92
|
* Fixes for HTTP header compliance. (#32024)Philip Lamb2024-04-114-24/+44
| | | | | - Fix 400 errors from nginx in response to Servo requests by implementing conformant albeit non-normative removal of whitespace from `Accept` and `Accept-Language` HTTP headers. (To match behaviour of Firefox, Safari, and Chrome) https://datatracker.ietf.org/doc/html/rfc7231#section-5.3.2 - Provide `Host` header as REQUIRED by HTTP protocol https://www.rfc-editor.org/rfc/rfc9110#field.host - Update tests.
* clippy: Fix question_mark warning (#32051)Oluwatobi Sofela2024-04-111-3/+1
|
* clippy: Fix iter_cloned_collect warning (#32053)Oluwatobi Sofela2024-04-111-5/+1
|
* clippy: Fix `redundant_*` warnings (#32056)eri2024-04-118-73/+68
| | | | | | | * clippy: Fix `redundant_field_names` warnings * clippy: Fix other `redundant_*` warnings * docs: Update docstring comments
* clippy: Fix needless_late_init warning (#32052)Oluwatobi Sofela2024-04-111-4/+3
|
* clippy: Fix needless_lifetimes warning (#32049)Oluwatobi Sofela2024-04-111-1/+1
|
* Implement form-associated custom elements and their ElementInternals (#31980)cathiechen2024-04-1114-147/+1122
| | | | | | | | | | | | | | | | | | | | | | | | | | | | * FACEs work, setFormValue test is awful so now has _mozilla backup * 1. Impl Validatable in ElementInternals instead of HTMLElement. 2. Reuse the code in Validatable trait. 3. The form associated custom element is not a customized built-in element. * add some comments * support readonly attribute and complete barred from constraint validation * Addressed the code review comments * Updated the legacy-layout results * Fixed the WPT failures in ElementInternals-validation.html * Addressed the code review comments * Review suggestions * Fixed silly mistakes and update the test result outside elementinternals * update the test results --------- Co-authored-by: Patrick Shaughnessy <pshaughn@comcast.net> Co-authored-by: Martin Robinson <mrobinson@igalia.com>
* Upgrade Stylo to 2023-12-01 (#32032)Oriol Brufau2024-04-102-0/+2
| | | | | | | | | | | | | | | | | | | * Upgrade Stylo to 2023-12-01 * Fixup for https://phabricator.services.mozilla.com/D191362 * Fixup for https://phabricator.services.mozilla.com/D191522 * Fixup for https://phabricator.services.mozilla.com/D191613 * Fixup for https://phabricator.services.mozilla.com/D191161 * Fixup for https://phabricator.services.mozilla.com/D191615 * Fixup for https://phabricator.services.mozilla.com/D193048 * Fixup for https://phabricator.services.mozilla.com/D193547 * Update test expectations
* Fixed some clippy warnings in components (#32025)komuhangi2024-04-106-18/+15
| | | | | * Fixed some clippy warnings in components * Updated the simplification of bolean expressions in componets/script/dom/range.rs
* clippy: fix warnings in components/script (#32023)Azhar Ismagulova2024-04-093-19/+18
|
* chore: Clean up use of `gfx` and `constellation` types (#31981)Martin Robinson2024-04-0915-119/+62
| | | | | | | | | | | | This change contains three semi-related clean ups: 1. the `to_webrender()` and `from_webrender()` functions on Pipeline are turned into more-idiomatic `From` and `Into` implementations. 2. `combine_id_with_fragment_type` now returns a `u64` as that is what is expected for all callers and not a `usize`. 3. The `query_scroll_id` query is removed entirely. The `ExternalScrollId` that this queries is easily generated directly from the node's opaque id. Querying into layout isn't necessary at all.
* Gamepad: Remove GamepadList and fix dropped connection event on startup (#31684)Daniel Adams2024-04-086-133/+76
| | | | | | | | | | | | | | | * Replace GamepadList * Fix initial gamepad connection event from gilrs getting dropped * Fix gamepad reconnection issues, use MutNullableDom * Reduce some repetition in handle_gamepad_events * Address feedback, move some steps to navigator methods * Refactor internal navigator gamepad methods * Add note re: unused gilrs index, adjust navigator gamepad methods
* fix: Handle table.deleteRow with no rows (#32009)shanehandley2024-04-071-7/+20
| | | | | * fix: Handle table.deleteRow with no rows * Respond to review, update legacy layout expectations
* Fixed some clippy warnings by replacing 'match' with 'if' (#32007)komuhangi2024-04-075-71/+57
|
* Clippy: Fix the error of variants having the same prefix. (#31953)Aarya Khandelwal2024-04-055-45/+41
| | | | | | | | | | | | | | | | | | | * fix error: all variants have same prefix * made the suggested changes * fixed errors caused by commit * silenced the clippy warning. * ran ./mach fmt * Update components/script/dom/htmlmediaelement.rs Co-authored-by: Samson <16504129+sagudev@users.noreply.github.com> --------- Co-authored-by: Samson <16504129+sagudev@users.noreply.github.com>
* gfx: Do not apply scale to `CoreText` font metrics (#31996)Martin Robinson2024-04-051-27/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | Since the original version of the CoreText font code, it has scaled the metrics from CoreText by an unusual scale: ``` let scale = px_to_pt(self.ctfont.pt_size()) / (ascent + descent); ``` It's unclear what this scale was trying to accomplish. Note that it's passing the return value of `pt_size()` to `px_to_pt` which seems backward. This scale seems bogus, but perhaps it's based on a misconception about what its returned from CoreText. Unlike the return values of `CGFont` methods, which are returned in font units, the ones from `CTFont` are "scaled according to the point size and matrix of the font reference." Indeed, when just interpreting these values as pixel values, the results more or less match Firefox and Chrome. This becomes much more obvious now that we have support for `ex` units. Even when not using `ex`, you can sometimes see the top parts of glyphs cut off due to this scaling. This change removes the scaling and simply interpets the return values of `CTFont` methods as pixels. It addresses all of the issues mentioned above. Note that this path will eventually just be a fallback path and metrics will come from sfnt tables in the future.
* Show poster over first video frame if available (#32001)eri2024-04-051-5/+22
|
* layout: Add a `FontMetricsProvider` for resolving font-relative units (#31966)Martin Robinson2024-04-049-52/+147
| | | | | | | | | | | | | | | | | | | The only font relative unit that Servo knows how to resolve currently is `rem` (relative to the root font size). This is because Stylo cannot do any font queries. This adds a mechanism to allow this, exposing the ability to properly render `ex` units in Servo. This change only allows resolving some font size relative units thoug, as Servo doesn't collect all the FontMetrics it needs to resolve them all. This capability will be added in followup changes. Some new tests fail: - ex-unit-001.html: This test fails because Servo does not yet have support for setting the weight using @font-face rules on web fonts. - ex-unit-004.html: This test fails because Servo does not yet have support for setting the Unicode range of a web font using @font-face rules. - first-available-font-001.html: This test fails because the above two feature are missing.
* script: Make layout DOM wrappers not generic on layout data (#31994)Martin Robinson2024-04-046-281/+105
| | | | | | | | | Remove the type parameter from the layout DOM wrappers. This is possible now that style and layout data are separate and the `Any` nature of the layout data is exposed in the wrappers. Removing the phantom data member of the wrappers also allows using the default `derive` implementations for things like `Clone`, `Copy`, and `PartialEq`.
* Fixed some clippy warning by adding default implementations (#31989)komuhangi2024-04-049-65/+22
| | | | | | | | | | | * Fixed some clippy warning by adding default implementations * Updated PR that adds default implementation of structs * Clean up and extend `Default` implementations --------- Co-authored-by: Martin Robinson <mrobinson@igalia.com>
* webgpu: Implement onSubmittedWorkDone (#31772)Samson2024-04-043-4/+60
| | | | | | | | | | | | | | | | | | | | | | | * Implement onSubmittedWorkDone * Use rust closures for callback & actually remove entries from hashmap. * Remove hashmap * Fix warnings * Update expectations * clean flaky crashes * re * Update components/script/dom/gpuqueue.rs Co-authored-by: Martin Robinson <mrobinson@igalia.com> --------- Co-authored-by: Martin Robinson <mrobinson@igalia.com>