Commit graph

10209 commits

Author SHA1 Message Date
switchpiggy
bf49260e81 Implemented special cases for Element.clientWidth() and clientHeight() 2023-05-04 23:03:36 -07:00
bors-servo
a8f7c45811
Auto merge of #29693 - mrobinson:cleanup-options, r=mukilan
Clean up how command-line options are passed around

<!-- 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 fix #29678
- [x] These changes do not require tests because they do not change behavior.
2023-05-03 10:44:48 +02:00
Martin Robinson
17e3f34e65 Fix flakiness in animation tests
1. When updating the animation timeline, ensure that nodes that are
   animating are marked dirty, if necessary, so any style queries will
   force an layout flush.
2. Disable the problematic transition test suites, as they are in Gecko.
   These suites often fail when Servo is so overloaded that it cannot
   deliver frames fast enough to get more than two samples during the
   animation lifecycle.

Fixes #28334.
Fixes #26435.
Fixes #21486.
2023-05-02 08:37:15 +02:00
Philip Lamb
22ed81e397 Bump mozangle to 0.3.3. 2023-05-01 19:09:21 +02:00
Martin Robinson
0a3797d130 Clean up arguments passed to ScriptThread 2023-05-01 14:10:32 +02:00
Martin Robinson
dc192172ad Clean up debug options 2023-05-01 14:09:28 +02:00
cybai
7c9c786053 Reset to in-memory stream with empty byte sequence for None init body
Because the response body stream is initialized with FetchResponse, it
cannot be processed with in-memory empty sequence. Thus, instead of
using the FetchResponse stream, we'll reset it to Memory body stream
with empty byte sequence if there's no init body.
2023-04-27 14:18:36 +09:00
AnthonyJ3
6907f6be3e fixup! defaulted credentials mode to same-origin & removed fallback credentials 2023-04-25 19:01:49 -04:00
Martin Robinson
eca0acf459 Allow script to scroll overflow: scroll elements
Before the code was only allowing `overflow: hidden` elements to scroll.
This fixes that issue and also clean up the code that deals with
detecting whether the body is a "potentially scrollable" in quirks mode.
2023-04-25 21:25:00 +02:00
Martin Robinson
3ab5e2a188 Scroll from script should trigger a reflow
Scrolling from script should flow layout and send a display list to
WebRender. This allows all of the scroll nodes to exist in WebRender
before asking it to move the node.

See https://gist.github.com/paulirish/5d52fb081b3570c81e3a.
Fixes #29659.
2023-04-25 21:25:00 +02:00
bors-servo
c44c6e8c11
Auto merge of #29646 - CYBAI:fix-classname-filter, r=jdm
Fix checking for empty set in getElementsByClassName

Because empty set with `.all(predicate)` will always return `true`, it will result in always filtering wrong elements when the classes is empty set.

Thus, we return earlier with `always_empty` HTMLCollection in the empty classes case so that we can avoid filtering on empty sets.

With adding the checking, we can fix the failures in `/dom/nodes/getElementsByClassName-empty-set.html`.

---

- [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)
- [x] There are tests for these changes
2023-04-24 07:55:25 +02:00
cybai
c77e4e4e69 Fix checking for empty set for getElementsByClassName
Because empty set with `.all(predicate)` will always return `true`, it
will result in always filtering wrong elements when the classes is empty
set.

Thus, we return earlier with `always_empty` HTMLCollection in the mpety
classes case so that we can avoid filtering on empty sets.
2023-04-21 15:21:53 +09:00
cybai
0f65bbd296 Throw HierarchyRequest error for Attr in pre-insert and replacechild 2023-04-21 15:07:22 +09:00
AnthonyJ3
7fda52ba5c fixup! defaulted credentials mode to same-origin & removed fallback credentials 2023-04-17 17:34:57 -04:00
AnthonyJ3
9d8090a876 defaulted credentials mode to same-origin & removed fallback credentials
Signed-off-by: AnthonyJ3 <johnsonac.3300@gmail.com>
2023-04-16 22:31:03 -04:00
cybai
c4882aab7e Update steps comment to match latest (2023-04-14) spec 2023-04-14 14:32:28 +09:00
cybai
445c90e5c5 Respect MIME type from headers instead of caching it 2023-04-13 00:31:49 +09:00
Yutaro Ohno
f7449da485 Remove unnecessary steps from "multipart/form-data encoding algorithm"
The specifications for the "multipart/form-data encoding algorithm" has
changed [1], and the "_charset_" is not now handled here.

Remove no longer necessary steps from the "multipart/form-data encoding
algorithm".

Similar to the "text/plain encoding algorithm" case fixed by f0818aa3
(Remove unnecessary steps from "text/plain encoding algorithm").

[1]: https://github.com/whatwg/html/pull/3645

Signed-off-by: Yutaro Ohno <yutaro.ono.418@gmail.com>
2023-04-07 00:43:00 +09:00
Yutaro Ohno
f0818aa383 Remove unnecessary steps from "text/plain encoding algorithm"
For "text/plain encoding algorithm", the specification [1] has changed
[2] and "_charset_" is not now handled here. It's supposed to be handled
in "construct the form data set" algorithm, and we've already
implemented that [3]. So we now have extra steps for "text/plain
encoding" algorithm.

Remove no longer necessary steps from text/plain encoding algorithm so
that it meets the specification.

[1]: https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#text/plain-encoding-algorithm
[2]: https://github.com/whatwg/html/pull/3645
[3]: https://github.com/servo/servo/pull/25217

Signed-off-by: Yutaro Ohno <yutaro.ono.418@gmail.com>
2023-04-05 20:02:31 +09:00
Martin Robinson
9e0b41ebc4 Add support for <iframe> elements for Layout 2020
This change adds support for the <iframe> element to Layout 2020. In
addition, certain aspects of the implementation are made the same
between both layout systems.
2023-04-04 17:49:24 +02:00
Yutaro Ohno
239776a270 Implement URL.canParse
Add an implementation of `URL.canParse` as a static method. See
[here][1] for the specification.

[1]: https://url.spec.whatwg.org/#dom-url-canparse

Signed-off-by: Yutaro Ohno <yutaro.ono.418@gmail.com>
2023-04-02 19:36:42 +09:00
bors-servo
e0f87cbba2
Auto merge of #29396 - delan:window-getter, r=jdm
HTML #named-access-on-the-window-object

This patch implements [named access on the window object](https://html.spec.whatwg.org/#named-access-on-the-window-object) based on @pylbrecht’s and @yvt’s previous work (see also #27952, #25562, #21869, #19904).

That work makes 130 tests pass, and I’ve made some additional changes to make [the test for the feature itself](https://wpt.live/webidl/ecmascript-binding/window-named-properties-object.html) pass too, but I haven’t worked with mozjs before, so I have no idea if I’ve gone about my changes the Right Way.

In particular, this patch:

* [x] applies @pylbrecht’s patch (#27952)
* [x] resolves conflicts related to #29079 and #28546 (5ae0ca48f8a74e4bae04f8bc9e50252a05e4c1e1)
* [x] applies @yvt’s patch to the segfault in getPrototypeIfOrdinary (1e24ffdec6e91784b76a8f02bda26e8de0420c94)
* [x] reverts the change introducing Untransplantable (76dc35a2b4ddd39f588b6c0b4e9bd46346888606), since #28534 was abandoned in favour of #28536
* [x] triages the unexpected WPT results, updating expectations as needed (see below)
* [x] fixes the failures in /webidl/ecmascript-binding/window-named-properties-object.html (3844f69ea9b591b766fee3537f640e7aae05bb11)
    * [x] fixes the failures in the [[GetOwnProperty]] subtest (75c24e9c134c531f8fc893a185683ea2e609a47e)
    * [x] fixes the failures in the [[DefineOwnProperty]] subtest (e4e7a14e514db75c3d6694fb1aaeb24d04c9ae81)
    * [x] fixes the failures in the [[HasProperty]] subtest (75c24e9c134c531f8fc893a185683ea2e609a47e)
    * [x] fixes the failures in the [[Get]] subtest (4bafb273d0d1d57589cede88ba2696b0e42920a9)
    * [x] fixes the failures in the [[Set]] (direct) subtest (e4e7a14e514db75c3d6694fb1aaeb24d04c9ae81)
    * [x] fixes the failures in the [[Delete]] subtest (4bafb273d0d1d57589cede88ba2696b0e42920a9)
    * [x] fixes the failures in the [[OwnPropertyKeys]] subtest (afcd24a2973557509438833b8fe06a24377710f1)
* [x] resolves the todos and fixmes
    * [x] Document: handle exposed objects ×3 (ed3e37bb22276031e0423dfa8005bc79ab673913)
    * [x] Window::NamedGetter: document.get_elements_with_id() (618ef5744645bb14405d95177bf49aa3b98439dc)
    * [x] get_own_property_descriptor: check for interactions with indexed access (b906faee59aa15f716662c223fc61758c4053299)
    * [x] create trap: pass proper classp (618ef5744645bb14405d95177bf49aa3b98439dc)

<details><summary>131× tests that now pass</summary>

* **/webidl/ecmascript-binding/window-named-properties-object.html**
  *directly relevant to this patch*
* **/FileAPI/Blob-methods-from-detached-frame.html**
  done #29450 #29451
* **/cors/script-304.html**
* **/css/CSS2/abspos/adjacent-to-relpos-inline-in-inline-that-had-block.html**
* **/css/CSS2/abspos/adjacent-to-relpos-inline-that-had-block.html**
* **/css/CSS2/floats-clear/remove-block-before-self-collapsing-sibling-with-clearance.html**
* **/css/CSS2/floats/computed-float-position-absolute.html**
* **/css/CSS2/normal-flow/block-in-inline-hittest-float-001.html**
* **/css/CSS2/normal-flow/block-in-inline-insert-018.html**
* **/css/CSS2/normal-flow/margin-collapse-through-percentage-padding.html**
* **/css/CSS2/positioning/abspos-change-in-inline-block.html**
* **/css/CSS2/positioning/abspos-width-change-inline-container-001.html**
* **/css/CSS2/positioning/detach-abspos-before-layout.html**
* **/css/CSS2/positioning/relpos-percentage-left-in-scrollable-2.html**
* **/css/CSS2/positioning/relpos-percentage-left-in-scrollable.html**
* **/css/CSS2/stacking-context/composite-change-after-scroll-preserves-stacking-order.html**
* **/css/CSS2/stacking-context/opacity-change-parent-stacking-context.html**
* **/css/CSS2/stacking-context/opacity-change-twice-stacking-context.html**
* **/css/CSS2/stacking-context/opacity-transition-change-parent-stacking-context.html**
* **/css/css-animations/animation-base-response-002.html**
* **/css/css-animations/style-animation-parsing.html**
* **/css/css-backgrounds/background-clip-color-repaint.html**
* **/css/css-backgrounds/background-image-gradient-currentcolor-conic-repaint.html**
* **/css/css-backgrounds/background-image-gradient-currentcolor-linear-repaint.html**
* **/css/css-backgrounds/background-image-gradient-currentcolor-radial-repaint.html**
* **/css/css-backgrounds/background-image-none-gradient-repaint.html**
* **/css/css-backgrounds/border-radius-dynamic-from-no-radius.html**
* **/css/css-backgrounds/child-move-reveals-parent-background.html**
* **/css/css-color/filters-under-will-change-opacity.html**
* **/css/css-flexbox/anonymous-flex-item-001.html**
* **/css/css-flexbox/anonymous-flex-item-003.html**
* **/css/css-flexbox/dynamic-bsize-change.html**
* **/css/css-flexbox/flex-aspect-ratio-img-row-016.html**
* **/css/cssom/at-namespace.html**
* **/css/cssom/computed-style-002.html**
* **/css/cssom/getComputedStyle-display-none-002.html**
* **/css/cssom/getComputedStyle-display-none-003.html**
* **/css/cssom/preferred-stylesheet-reversed-order.html**
* **/css/cssom-view/HTMLImageElement-x-and-y-ignore-transforms.html**
* **/css/cssom-view/pt-to-px-width.html**
* **/css/cssom-view/scroll-back-to-initial-position.html**
* **/css/css-text-decor/text-decoration-color-recalc-002.html**
* **/css/css-text-decor/text-decoration-line-grammar-error-color-dynamic-001.optional.html**
* **/css/css-text-decor/text-decoration-line-spelling-error-color-dynamic-001.optional.html**
* **/css/css-text/text-indent/percentage-value-intrinsic-size.html**
* **/css/css-text/white-space/display-contents-remove-whitespace-change.html**
* **/css/css-text/white-space/white-space-empty-text-sibling.html**
* **/css/css-transforms/change-perspective-property.html**
* **/css/css-transforms/change-scale-wide-range.html**
* **/css/css-transforms/change-transform-origin-property.html**
* **/css/css-transforms/dynamic-fixed-pos-cb-change.html**
* **/css/css-transforms/individual-transform/change-rotate-property.html**
* **/css/css-transforms/individual-transform/change-scale-property.html**
* **/css/css-transforms/paint-order-with-transform-change.html**
* **/css/css-transforms/size-change-under-backface-visibility-hidden.html**
* **/css/css-transforms/subpixel-transform-changes-001.html**
* **/css/css-transforms/subpixel-transform-changes-002.html**
* **/css/css-transforms/subpixel-transform-changes-003.html**
* **/css/css-transforms/subpixel-transform-changes-004.html**
* **/css/css-transitions/transition-reparented.html**
* **/css/css-ui/historical/moz-user-modify-01.html**
* **/css/css-ui/historical/user-modify-01.html**
* **/css/css-ui/historical/webkit-user-modify-01.html**
* **/css/css-ui/resize-change-margin.html**
* **/css/css-ui/text-overflow-change-color.html**
* **/css/css-ui/text-overflow-ellipsis-width-001.html**
* **/css/css-values/animations/line-height-lh-transition.html**
* **/css/css-values/calc-nesting.html**
* **/css/css-values/update-subpixel-rem-unit.html**
* **/css/css-values/viewport-units-modify.html**
* **/css/css-variables/css-variable-change-style-001.html**
* **/css/css-variables/css-variable-change-style-002.html**
* **/css/css-variables/variable-cycles.html**
* **/css/selectors/attribute-selectors/style-attribute-selector.html**
* **/css/selectors/i18n/lang-pseudo-class-disconnected.html**
* **/css/selectors/invalidation/attribute.html**
* **/css/selectors/invalidation/class-id-attr.html**
* **/css/selectors/invalidation/defined.html**
* **/css/selectors/invalidation/sheet-going-away-001.html**
* **/css/selectors/invalidation/sibling.html**
* **/css/selectors/missing-right-token.html**
* **/css/selectors/not-complex.html**
* **/css/selectors/not-specificity.html**
* **/css/selectors/nth-of-type-namespace.html**
* **/css/selectors/selectors-case-sensitive-001.html**
* **/css/selectors/visited-inheritance.html**
* **/custom-elements/CustomElementRegistry-constructor-and-callbacks-are-held-strongly.html**
* **/dom/events/event-global-is-still-set-when-coercing-beforeunload-result.html**
* **/dom/nodes/remove-and-adopt-thcrash.html**
* **/html/browsers/browsing-the-web/history-traversal/history-traversal-navigate-parent-while-child-loading.html**
* **/html/browsers/history/the-history-interface/history_back_cross_realm_method.html**
* **/html/browsers/history/the-history-interface/history_forward_cross_realm_method.html**
* **/html/browsers/history/the-history-interface/history_go_cross_realm_method.html**
* **/html/browsers/the-window-object/named-access-on-the-window-object/window-named-properties.html**
* **/html/dom/elements/images/bypass-cache-revalidation.html**
* **/html/rendering/non-replaced-elements/tables/table-ua-stylesheet.html**
* **/html/rendering/replaced-elements/attributes-for-embedded-content-and-images/img-alt-crash-001.html**
* **/html/rendering/replaced-elements/embedded-content/change-src-while-not-displayed.html**
* **/html/rendering/replaced-elements/embedded-content/cross-domain-iframe-in-multicol.sub.html**
* **/html/rendering/replaced-elements/embedded-content/cross-domain-iframe.sub.html**
* **/html/rendering/replaced-elements/embedded-content/tall-cross-domain-iframe-in-scrolled.sub.html**
* **/html/rendering/widgets/the-select-element/select-invalidation.html**
* **/html/semantics/document-metadata/the-base-element/base_target_does_not_affect_iframe_src_navigation.html**
* **/html/semantics/document-metadata/the-base-element/base_target_does_not_affect_location_assignment.html**
* **/html/semantics/embedded-content/the-embed-element/embed-document-under-content-visibility-focus.html**
* **/html/semantics/embedded-content/the-embed-element/embed-document-under-content-visibility-gbcr.html**
* **/html/semantics/embedded-content/the-iframe-element/iframe-network-error.sub.html**
* **/html/semantics/embedded-content/the-iframe-element/srcdoc-anchor.html**
* **/html/semantics/embedded-content/the-iframe-element/srcdoc-attribute-reset.html**
* **/html/semantics/embedded-content/the-img-element/image-compositing-change.html**
* **/html/semantics/embedded-content/the-img-element/image-compositing-large-scale-change.html**
* **/html/semantics/embedded-content/the-img-element/image-loading-lazy-clip-path.html**
* **/html/semantics/embedded-content/the-img-element/image-loading-lazy-zero-intersection-area.html**
* **/html/semantics/embedded-content/the-img-element/image-loading-subpixel-clip.html**
* **/html/semantics/forms/form-submission-0/form-double-submit-to-different-origin-frame.html**
* **/html/semantics/forms/form-submission-0/form-submit-iframe-then-location-navigate.html**
* **/html/semantics/forms/form-submission-0/reparent-form-during-planned-navigation-task.html**
* **/html/semantics/forms/the-button-element/button-willvalidate-readonly-attribute.html**
* **/html/semantics/forms/the-input-element/datetime-local-trailing-zeros.html**
* **/html/semantics/forms/the-input-element/radio-morphed.html**
* **/html/semantics/forms/the-progress-element/progress.html**
* **/html/semantics/forms/the-select-element/select-willvalidate-readonly-attribute.html**
* **/html/semantics/selectors/pseudo-classes/placeholder-shown-type-change.html**
* **/html/syntax/serializing-html-fragments/initial-linefeed-pre.html**
* **/html/webappapis/scripting/events/event-handler-processing-algorithm-error/frameset-element-synthetic-errorevent.html**
* **/html/webappapis/scripting/events/event-handler-processing-algorithm-error/frameset-element-synthetic-event.html**
* **/quirks/unitless-length/excluded-properties-001.html**
* **/quirks/unitless-length/excluded-properties-003.html**
* **/selection/caret/empty-elements.html**
* **/selection/contenteditable/cefalse-on-boundaries.html**
* **/selection/textcontrols/onselectionchange-content-attribute.html**
</details>

<details><summary>94× tests that improve but still fail in a way that’s clearly the subject of the test</summary>

* **/css/css-animations/animation-base-response-001.html**
* **/css/css-backgrounds/background-image-gradient-currentcolor-visited.html**
* **/css/css-backgrounds/inheritance.sub.html**
* **/css/css-backgrounds/local-attachment-content-box-scroll.html**
* **/css/css-color/canvas-change-opacity.html**
* **/css/css-color/color-initial-canvastext.html**
* **/css/css-flexbox/flex-aspect-ratio-img-column-010.html**
* **/css/css-flexbox/flex-aspect-ratio-img-row-004.html**
* **/css/css-fonts/parsing/font-face-src-format.html**
  getter works but insertRule does nothing
* **/css/css-fonts/parsing/font-face-src-list.html**
  as above
* **/css/css-fonts/parsing/font-face-src-local.html**
  as above, but also delayed length change?
* **/css/css-fonts/parsing/font-face-src-tech.html**
  as above
* **/css/css-text/white-space/trailing-space-before-br-001.html**
* **/css/css-transforms/3d-rendering-context-behavior.html**
  failures are subject of test, but also blank page?
* **/css/css-transforms/individual-transform/change-translate-property.html**
* **/css/css-transforms/preserve-3d-flat-grouping-properties.html**
* **/css/css-transforms/transforms-support-calc.html**
* **/css/css-transitions/inherit-height-transition.html**
* **/css/css-ui/inheritance.html**
* **/css/css-ui/parsing/outline-width-computed.html**
  failures are subject of test; https://drafts.csswg.org/css-values-4/#snap-a-length-as-a-border-width
* **/css/css-values/lh-unit-003.html**
* **/css/css-values/viewport-units-compute.html**
* **/css/css-values/viewport-units-keyframes.html**
* **/css/css-values/viewport-units-media-queries.html**
* **/css/css-values/viewport-units-writing-mode.html**
* **/css/cssom-view/elementsFromPoint-table.html**
* **/css/cssom-view/scroll-behavior-default-css.html**
* **/css/cssom-view/scroll-behavior-element.html**
* **/css/cssom-view/scroll-behavior-main-frame-root.html**
* **/css/cssom-view/scroll-behavior-main-frame-window.html**
* **/css/cssom-view/scroll-behavior-smooth-navigation.html**
* **/css/cssom-view/scroll-behavior-subframe-root.html**
* **/css/cssom/computed-style-003.html**
* **/css/cssom/computed-style-004.html**
* **/css/cssom/font-variant-shorthand-serialization.html**
* **/css/selectors/dir-selector-auto.html**
* **/css/selectors/has-argument-with-explicit-scope.html**
* **/css/selectors/has-basic.html**
* **/css/selectors/has-relative-argument.html**
* **/css/selectors/invalidation/attribute-or-elemental-selectors-in-has.html**
* **/css/selectors/invalidation/child-indexed-pseudo-classes-in-has.html**
* **/css/selectors/invalidation/dir-pseudo-class-in-has.html**
* **/css/selectors/invalidation/empty-pseudo-in-has.html**
* **/css/selectors/invalidation/has-in-adjacent-position.html**
* **/css/selectors/invalidation/has-in-ancestor-position.html**
* **/css/selectors/invalidation/has-in-parent-position.html**
* **/css/selectors/invalidation/has-in-sibling-position.html**
* **/css/selectors/invalidation/has-invalidation-after-removing-non-first-element.html**
* **/css/selectors/invalidation/has-invalidation-for-wiping-an-element.html**
* **/css/selectors/invalidation/has-sibling.html**
* **/css/selectors/invalidation/has-with-not.html**
* **/css/selectors/invalidation/has-with-pseudo-class.html**
* **/css/selectors/invalidation/input-pseudo-classes-in-has.html**
* **/css/selectors/invalidation/is-pseudo-containing-complex-in-has.html**
* **/css/selectors/invalidation/lang-pseudo-class-in-has.html**
* **/css/selectors/invalidation/not-pseudo-containing-complex-in-has.html**
* **/css/selectors/invalidation/typed-child-indexed-pseudo-classes-in-has.html**
* **/css/selectors/is-where-basic.html**
* **/css/selectors/is-where-not.html**
* **/html/rendering/non-replaced-elements/tables/form-in-tables.html**
* /html/rendering/replaced-elements/embedded-content-rendering-rules/canvas-update-
* **/html/semantics/document-metadata/the-meta-element/color-scheme/meta-color-scheme-attribute-changes.html**
* **/html/semantics/document-metadata/the-meta-element/color-scheme/meta-color-scheme-normal-descendant-change.html**
* **/html/semantics/document-metadata/the-meta-element/color-scheme/meta-color-scheme-remove.html**
* **/html/semantics/embedded-content/the-img-element/image-loading-lazy-slow-aspect-ratio.html**
* **/html/semantics/embedded-content/the-img-element/image-loading-lazy-slow.html**
* **/html/semantics/interactive-elements/the-dialog-element/inertness-with-modal-dialogs-and-iframes.html**
* **/html/semantics/popovers/popover-stacking.html**
* **/referrer-policy/generic/inheritance/popup-inheritance-form-submission.html**
* **/resource-timing/resource-reload-TAO.html**
* **/selection/bidi/modify.tentative.html**
* **/selection/contenteditable/modify.tentative.html**
* **/selection/textcontrols/selectionchange.html**
* **/css/CSS2/normal-flow/block-in-inline-client-rects-001.html**
* **/css/CSS2/positioning/relpos-percentage-top-in-scrollable.html**
* **/css/css-animations/computed-style-animation-parsing.html**
* **/css/css-variables/variables-substitute-guaranteed-invalid.html**
* **/css/cssom-view/elementsFromPoint-simple.html**
* **/css/cssom/CSSStyleSheet-modify-after-removal.html**
* **/css/cssom/getComputedStyle-display-none-001.html**
* **/css/selectors/focus-visible-script-focus-001.html**
* **/css/selectors/has-specificity.html**
* **/css/selectors/invalidation/is.html**
* **/css/selectors/invalidation/not-002.html**
* **/dom/events/EventListener-handleEvent-cross-realm.html**
* **/dom/traversal/TreeWalker-acceptNode-filter-cross-realm.html**
* **/html/browsers/the-window-object/window-properties.https.html**
* **/html/browsers/the-window-object/window-prototype-chain.html**
* **/html/browsers/windows/nested-browsing-contexts/frameElement.sub.html**
* **/html/dom/aria-element-reflection.html**
* **/html/rendering/replaced-elements/embedded-content-rendering-rules/canvas-update-with-border-object-fit.html**
* **/html/semantics/forms/form-submission-0/form-double-submit-multiple-targets.html**
* **/html/semantics/forms/the-input-element/show-picker-cross-origin-iframe.html**
* **/html/webappapis/scripting/events/compile-event-handler-lexical-scopes-form-owner.html**
* **/quirks/unitless-length/excluded-properties-002.html**
</details>

<details><summary>22× tests with failures that looked interesting</summary>

* 1× CRASH [expected ...]
    * **/css/css-fonts/crash-large-grapheme-cluster.html**
      crash is subject of test
* 6× FAIL [expected PASS] /... (reftest)
    * **/css/css-flexbox/anonymous-flex-item-005.html**
      old pass was spurious
    * **/css/css-flexbox/anonymous-flex-item-006.html**
      old pass was spurious
    * **/css/css-text-decor/text-decoration-line-recalc.html**
      old pass was spurious; ‘text-decoration’ shorthand unimplemented
    * **/css/css-ui/appearance-auto-non-html-namespace-001.html**
      old pass was spurious
    * **/html/canvas/element/drawing-text-to-the-canvas/direction-inherit-rtl.html**
      old pass was spurious
    * **/html/canvas/element/drawing-text-to-the-canvas/direction-rtl.html**
      old pass was spurious
* 13× TIMEOUT [expected ...]
    * **/css/css-fonts/font-size-monospace-adjust.html**
      timeout is subject of test; reftest runner bug with 1e10s transition?
    * **/css/cssom-view/background-change-during-smooth-scroll.html**
      timeout is subject of test
    * **/css/selectors/invalidation/has-complexity.html**
      timeout is subject of test
    * **/css/selectors/invalidation/media-loading-pseudo-classes-in-has.html**
      timeout is subject of test; :has() unimplemented
    * **/fetch/stale-while-revalidate/stale-image.html**
      timeout is subject of test
    * **/html/browsers/browsing-the-web/history-traversal/history-traversal-navigates-multiple-frames.html**
      timeout is subject of test
    * **/html/rendering/widgets/appearance/appearance-animation-001.html**
      timeout is subject of test; reftest runner bug with 1e10s animation?
    * **/html/rendering/widgets/appearance/appearance-animation-002.html**
      timeout is subject of test; reftest runner bug with 1e10s animation?
    * **/html/rendering/widgets/appearance/appearance-transition-001.html**
      timeout is subject of test; reftest runner bug with 1e10s transition?
    * **/html/rendering/widgets/appearance/appearance-transition-002.html**
      timeout is subject of test; reftest runner bug with 1e10s transition?
    * **/html/rendering/widgets/appearance/appearance-transition-003.html**
      timeout is subject of test; reftest runner bug with 1e10s transition?
    * **/resource-timing/opaque-origin.html**
      timeout is subject of test
    * **/selection/textcontrols/selectionchange-bubble.html**
      timeout is subject of test
* **/webidl/ecmascript-binding/invalid-this-value-cross-realm.html**
  ‘HTMLDocument’ unimplemented
</details>

---
<!-- 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 #27949 (GitHub issue number if applicable)

<!-- Either: -->
- [x] There are tests for these changes (including but not limited to web-platform-tests/wpt#39211) OR
- [ ] These changes do not require tests because ___
2023-03-28 18:31:41 +02:00
bors-servo
11559eb8f8
Auto merge of #29465 - 2shiori17:issue-29388, r=jdm
Implement Headers.prototype.getSetCookie

<!-- 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 fix #29388

<!-- 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. -->
2023-03-28 04:10:37 +02:00
2shiori17
b6e4e44ccf Fix return value of concept-header-list-get to Option<Vec<u8>> 2023-03-26 19:57:39 +09:00
2shiori17
e4a4f60c53 Fix concept-headers-append 2023-03-26 00:54:04 +09:00
Delan Azabani
557ce73f5f add spec issue as todo in [[OwnPropertyKeys]] trap 2023-03-23 19:15:20 +08:00
Delan Azabani
c831a136b2 clarify and test interactions with indexed access 2023-03-23 18:07:50 +08:00
Delan Azabani
fb2acb0b02 clarify todos about exposed objects 2023-03-23 18:07:46 +08:00
Delan Azabani
b1f78d8a3d fix attrs in descriptor for @@toStringTag property 2023-03-23 18:07:44 +08:00
Delan Azabani
dd905d8434 clean up spurious changes and todos with no action needed 2023-03-23 18:07:39 +08:00
Delan Azabani
65da7b668b clean up lints and tidy errors 2023-03-23 18:07:36 +08:00
Delan Azabani
9a8a5bdbf7 make ownPropertyKeys trap return @@toStringTag key
This fixes the failures in the “[[OwnPropertyKeys]]” subtest.
2023-03-23 18:07:11 +08:00
Delan Azabani
bbaacb7b2d make getOwnPropertyDescriptor trap accept @@toStringTag key
This fixes the failures in the “[[Get]]” and “[[Delete]]” subtests.
2023-03-23 18:07:08 +08:00
Delan Azabani
33387eb75a make getOwnPropertyDescriptor trap accept integer indices
Several /webidl/ecmascript-binding/window-named-properties-object.html
subtests, including the “[[GetOwnProperty]]” and “[[HasProperty]]”
subtests, expect iframe.contentWindow.Window.prototype[0] to return an
element with id “0”.

This commit makes the getOwnPropertyDescriptor trap accept property
keys that are integer indices, by converting them to a DOMString just
like we would for a property key that is a JSString.
2023-03-23 18:07:05 +08:00
Delan Azabani
9a3d6969c9 migrate use of deprecated RUST_JS_{IS,TO}_STRING 2023-03-23 18:07:02 +08:00
Delan Azabani
8814e4bb4f fix failures in [[DefineOwnProperty]] subtest
Calling throw_type_error in the [[DefineOwnProperty]] trap (and
returning false) makes the internal method throw a TypeError, which
means both Object#defineProperty and Reflect#defineProperty will throw
a TypeError, but we actually want the latter to return false.

This commit makes the trap set ObjectOpResult to a TypeError (and
return true), making the internal method return false per the spec [1]
and in turn allowing Reflect#defineProperty to return false.

[1] https://webidl.spec.whatwg.org/#named-properties-object-defineownproperty
2023-03-23 18:06:58 +08:00
Delan Azabani
1f74d4c75b revert: Introduce Untransplantable trait to indicate transplantability at the type level
(8f7b0cff87f0eab921e13e6990d76e12935e8675)
2023-03-23 18:06:17 +08:00
Delan Azabani
4c7f198ee2 apply yvt/servo/fix-named-window-getter 2023-03-23 18:02:35 +08:00
Delan Azabani
fd1de05592 apply pylbrecht/servo/named.window.getter (closes #27952) 2023-03-23 18:01:26 +08:00
bors-servo
d5b910ee86
Auto merge of #29384 - sagudev:idl, r=jdm
Update WebIDL.py

Update WebIDL.py to latest version from mozilla-central.
There were two major changes:
- [Rename legacy extended attributes in webidls](55dac83d9a) [bug 1631581](https://bugzilla.mozilla.org/show_bug.cgi?id=1631581)
- [removal of ReadableStream from WebIDL](https://phabricator.services.mozilla.com/D143074), which was solved with porting reverted removal patch (2801cc82b0)

WebIDL.Parser now has `use_builtin_readable_streams` field by default set to `true` (to use SM readable stream implementation), which could help with #29088.

My try build: https://github.com/sagudev/servo/actions/runs/4216638911

---
<!-- 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: -->
- [ ] 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. -->
2023-03-22 02:23:01 +01:00
2shiori17
80a140e82f Add comments for concept-headers-append 2023-03-21 17:15:57 +09:00
2shiori17
74ecc2bd64 Remove net from dependencies 2023-03-20 22:12:50 +09:00
2shiori17
68472fabf8 Fix dom-headers-get 2023-03-11 20:15:14 +09:00
2shiori17
7d1d387f3d Fix header ordering 2023-03-11 20:05:32 +09:00
2shiori17
b5b6225850 Fix concept-headers-append 2023-03-11 17:32:38 +09:00
2shiori17
ee1f241231 Implement concept-header-list-sort-and-combine 2023-03-06 23:34:04 +09:00
2shiori17
4ee3f575f6 Implement Headers.prototype.getSetCookie 2023-03-05 11:35:46 +09:00
bors-servo
37f26f5250
Auto merge of #29451 - servo:fix-blob-slice-text, r=Loirooriol
script: fix BorrowError in (new Blob).slice(0,0).text()

When getting the text of a sliced Blob, we call GlobalScope.get_blob_url_id, which borrows the blob_state field mutably and calls the get_blob_size method (aka [Blob#size](https://w3c.github.io/FileAPI/#dfn-size)), which tries to borrow the same field immutably, causing a panic.

This patch inlines the relevant parts of get_blob_size into get_blob_url_id, so we can reuse the mutable borrow.

* /FileAPI/Blob-methods-from-detached-frame.html was 4/4 FAIL, will be 4/4 PASS once #29396 also lands
* /fetch/api/basic/scheme-blob.sub.any.html was CRASH, now 10/17 PASS and 7/17 FAIL
* /fetch/api/basic/scheme-blob.sub.any.worker.html was CRASH, now 10/17 PASS and 7/17 FAIL

---
<!-- 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 #29450

<!-- Either: -->
- [x] There are tests for these changes OR
- [ ] These changes do not require tests because ___
2023-03-02 17:04:58 +01:00
2shiori17
247a4778ee Make HTMLInputElement.list an HTMLDataListElement
Signed-off-by: 2shiori17 <98276492+2shiori17@users.noreply.github.com>
2023-03-02 19:22:28 +09:00
2shiori17
b6d3ff97de Implement URLSearchParams's size
Signed-off-by: 2shiori17 <98276492+2shiori17@users.noreply.github.com>
2023-03-02 12:21:08 +09:00