Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

script: Add pre element obsolete width attribute support #31792

Merged
merged 1 commit into from Mar 25, 2024

Conversation

bplaat
Copy link
Contributor

@bplaat bplaat commented Mar 20, 2024

This pr implements the pre element obsolete width attribute, it's quite a small change but also my first in the servo project 🎉


  • ./mach build -d does not report any errors
  • ./mach test-tidy does not report any errors
  • There are tests for these changes

I can't find a wpt test that tests the this obsolete attribute, maybe I should add one?

@mrobinson
Copy link
Member

This should also affect layout, right? I think you are missing the part that actually implements the behavior that this attribute affects.

@bplaat
Copy link
Contributor Author

bplaat commented Mar 20, 2024

This should also affect layout, right?

Nope the spec says the prop only needs to reflect the attr. Also Firefox, Chrome and Safari don't adjust the width of the element when this attr is set.

@mrobinson mrobinson added the T-linux-wpt-2020 Do a try run of the WPT label Mar 20, 2024
@github-actions github-actions bot removed the T-linux-wpt-2020 Do a try run of the WPT label Mar 20, 2024
Copy link

🔨 Triggering try run (#8363529805) for Linux WPT

Copy link

Test results for linux-wpt-layout-2020 from try job (#8363529805):

Flaky unexpected result (15)
  • TIMEOUT [expected OK] /_webgl/conformance/glsl/misc/shader-with-non-reserved-words.html (#16216)
    • NOTRUN [expected PASS] subtest: Overall test
  • TIMEOUT [expected OK] /_webgl/conformance/uniforms/out-of-bounds-uniform-array-access.html (#26225)
    • NOTRUN [expected PASS] subtest: Overall test
  • OK /css/css-fonts/variations/at-font-face-font-matching.html (#20684)
    • PASS [expected FAIL] subtest: Matching font-style: 'oblique 20deg' should prefer 'oblique 40deg 50deg' over 'oblique 10deg'
    • PASS [expected FAIL] subtest: Matching font-style: 'oblique 21deg' should prefer 'oblique 10deg' over 'italic'
  • OK /css/css-values/viewport-units-after-font-load.html (#27645)
    • FAIL [expected PASS] subtest: Viewport units are correctly updated after resize even if a font load has happened before

      assert_equals: Height shouldn't have changed expected "0px" but got "300px"
      

  • OK /css/cssom-view/MediaQueryList-addListener-removeListener.html (#24569)
    • PASS [expected FAIL] subtest: listeners are called correct number of times
  • TIMEOUT /fetch/metadata/generated/css-images.sub.tentative.html (#29047)
    • PASS [expected TIMEOUT] subtest: background-image sec-fetch-site - HTTPS downgrade (header not sent)
  • OK /html/browsers/browsing-the-web/navigating-across-documents/empty-iframe-load-event.html (#29066)
    • FAIL [expected PASS] subtest: Check execution order from nested timeout

      assert_equals: Expected nested setTimeout to run second expected true but got false
      

    • FAIL [expected PASS] subtest: Check execution order on load handler

      assert_equals: Expected onload to run first expected false but got true
      

  • OK /html/browsers/browsing-the-web/navigating-across-documents/navigation-unload-cross-origin.sub.window.html (#29056)
    • FAIL [expected PASS] subtest: Cross-origin navigation started from unload handler must be ignored

      promise_test: Unhandled rejection with value: object "SecurityError: The operation is insecure."
      

  • OK /html/browsers/browsing-the-web/navigating-across-documents/replace-before-load/a-click.html (#28697)
    • PASS [expected FAIL] subtest: aElement.click() before the load event must NOT replace
  • TIMEOUT [expected CRASH] /html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-1.html (#22647)
  • OK /html/semantics/embedded-content/the-img-element/non-active-document.html (#21544)
    • FAIL [expected PASS] subtest: DOMParser

      assert_unreached: got unexpected load event Reached unreachable code
      

    • FAIL [expected PASS] subtest: createHTMLDocument

      assert_unreached: got unexpected error event Reached unreachable code
      

    • FAIL [expected PASS] subtest: <template>

      assert_unreached: got unexpected error event Reached unreachable code
      

  • OK /html/semantics/embedded-content/the-img-element/sizes/parse-a-sizes-attribute-standards-mode.html (#21666)
    • PASS [expected FAIL] subtest: <img srcset="/images/green-1x1.png?e38 50w, /images/green-16x16.png?e38 51w" sizes="(min-width:calc(0)) 1px"> ref sizes="1px" (standards mode)
  • OK /html/semantics/forms/form-submission-0/text-plain.window.html (#28687)
    • PASS [expected FAIL] subtest: text/plain: 0x00 in value (normal form)
    • PASS [expected FAIL] subtest: text/plain: single quote in name (formdata event)
  • TIMEOUT /html/webappapis/scripting/events/compile-event-handler-settings-objects.html (#24246)
    • PASS [expected FAIL] subtest: The entry settings object while executing the compiled callback via Web IDL's invoke must be that of the node document
  • TIMEOUT [expected OK] /webmessaging/without-ports/018.html (#24485)
    • TIMEOUT [expected PASS] subtest: origin of the script that invoked the method, javascript:

      Test timed out
      

Stable unexpected results that are known to be intermittent (17)
  • FAIL [expected PASS] /_mozilla/css/dirty_viewport.html (#13731)
  • TIMEOUT [expected OK] /_webgl/conformance/glsl/misc/shader-uniform-packing-restrictions.html (#28103)
    • NOTRUN [expected PASS] subtest: Overall test
  • PASS [expected FAIL] /css/css-sizing/dynamic-available-size-iframe.html (#31559)
  • OK [expected CRASH] /html/browsers/windows/embedded-opener-remove-frame.html (#23867)
    • FAIL [expected TIMEOUT] subtest: opener of discarded auxiliary browsing context

      assert_object_equals: property "get" expected function "function opener() {
          [native code]
      }" got function "function opener() {
          [native code]
      }"
      

  • PASS [expected CRASH] /html/canvas/element/manual/drawing-text-to-the-canvas/canvas.2d.disconnected-font-size-math.html (#30063)
  • FAIL [expected CRASH] /html/canvas/element/manual/text/canvas.2d.disconnected.html (#30063)
  • CRASH [expected TIMEOUT] /html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-3.html (#24057)
  • OK [expected CRASH] /html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-1.html (#24066)
    • FAIL [expected NOTRUN] subtest: Check that popups from a sandboxed iframe do not escape the sandbox

      assert_equals: It came from a sandboxed iframe expected "null" but got "http://web-platform.test:8000"
      

  • CRASH [expected OK] /html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-3.html (#24066)
  • OK /html/semantics/forms/form-submission-0/urlencoded2.window.html (#28687)
    • PASS [expected FAIL] subtest: application/x-www-form-urlencoded: backslash in name (formdata event)
  • TIMEOUT [expected OK] /resource-timing/nested-context-navigations-iframe.html (#24311)
    • TIMEOUT [expected PASS] subtest: Test that iframe navigations are not observable by the parent, even after history navigations by the parent

      Test timed out
      

    • NOTRUN [expected PASS] subtest: Test that crossorigin iframe navigations are not observable by the parent, even after history navigations by the parent
    • NOTRUN [expected PASS] subtest: Test that cross-site iframe navigations are not observable by the parent, even after history navigations by the parent
    • NOTRUN [expected PASS] subtest: Test that iframe navigations are not observable by the parent
    • NOTRUN [expected PASS] subtest: Test that crossorigin iframe navigations are not observable by the parent
    • NOTRUN [expected PASS] subtest: Test that cross-site iframe navigations are not observable by the parent
    • NOTRUN [expected PASS] subtest: Test that iframe refreshes are not observable by the parent
    • NOTRUN [expected PASS] subtest: Test that crossorigin iframe refreshes are not observable by the parent
    • NOTRUN [expected PASS] subtest: Test that cross-site iframe refreshes are not observable by the parent
  • TIMEOUT /resource-timing/test_resource_timing.https.html (#25216)
    • PASS [expected FAIL] subtest: PerformanceEntry has correct name, initiatorType, startTime, and duration (img)
  • OK [expected TIMEOUT] /webmessaging/with-ports/017.html (#24486)
    • PASS [expected TIMEOUT] subtest: origin of the script that invoked the method, about:blank
  • OK [expected TIMEOUT] /webmessaging/with-ports/018.html (#24485)
    • PASS [expected TIMEOUT] subtest: origin of the script that invoked the method, javascript:
  • OK /workers/WorkerGlobalScope-close.html (#23064)
    • PASS [expected FAIL] subtest: Test sending a message after closing.
  • OK [expected ERROR] /workers/constructors/Worker/Worker-constructor.html (#22991)
  • ERROR [expected OK] /workers/semantics/run-a-worker/003.html (#22765)
Stable unexpected results (2)
  • OK /html/dom/idlharness.https.html?include=HTML.*
    • PASS [expected FAIL] subtest: HTMLPreElement interface: attribute width
    • PASS [expected FAIL] subtest: HTMLPreElement interface: document.createElement("pre") must inherit property "width" with the proper type
    • PASS [expected FAIL] subtest: HTMLPreElement interface: document.createElement("listing") must inherit property "width" with the proper type
    • PASS [expected FAIL] subtest: HTMLPreElement interface: document.createElement("xmp") must inherit property "width" with the proper type
  • CRASH [expected OK] /html/dom/reflection-grouping.html

Copy link

⚠️ Try run (#8363529805) failed.

@mrobinson
Copy link
Member

Looks like there is one new test passing and one new pass.

 ▶ CRASH [expected OK] /html/dom/reflection-grouping.html
  │ 
  │ Expected an AttrValue::Int: implement parse_plain_attribute (thread Script(1,1), at components/script/dom/element.rs:1753)
  │    0: servoshell::backtrace::print
  │    1: servoshell::main::{{closure}}
  │    2: <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call
  │              at /rustc/a28077b28a02b92985b3a3faecf92813155f1ea1/library/alloc/src/boxed.rs:2021:9
  │       std::panicking::rust_panic_with_hook
  │              at /rustc/a28077b28a02b92985b3a3faecf92813155f1ea1/library/std/src/panicking.rs:735:13
  │    3: std::panicking::begin_panic::{{closure}}
  │    4: std::sys_common::backtrace::__rust_end_short_backtrace
  │    5: std::panicking::begin_panic
  │    6: script::dom::element::Element::get_int_attribute
  │    7: <script::dom::htmlpreelement::HTMLPreElement as script::dom::bindings::codegen::Bindings::HTMLPreElementBinding::HTMLPreElement_Binding::HTMLPreElementMethods>::Width
  │    8: script::dom::bindings::codegen::Bindings::HTMLPreElementBinding::HTMLPreElement_Binding::get_width::{{closure}}
  │    9: mozjs::panic::wrap_panic
  │   10: script::dom::bindings::codegen::Bindings::HTMLPreElementBinding::HTMLPreElement_Binding::get_width
  │   11: script::dom::bindings::utils::generic_call.4690
  │   12: _Z12CallJSNativeP9JSContextPFbS0_jPN2JS5ValueEEN2js10CallReasonERKNS1_8CallArgsE
  │              at /home/runner/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/d1f1519/mozjs-sys/mozjs/js/src/vm/Interpreter.cpp:486:13
  │       _ZN2js23InternalCallOrConstructEP9JSContextRKN2JS8CallArgsENS_14MaybeConstructENS_10CallReasonE
  │              at /home/runner/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/d1f1519/mozjs-sys/mozjs/js/src/vm/Interpreter.cpp:580:12
  │   13: _ZL12InternalCallP9JSContextRKN2js13AnyInvokeArgsENS1_10CallReasonE
  │              at /home/runner/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/d1f1519/mozjs-sys/mozjs/js/src/vm/Interpreter.cpp:647:10
  │       _ZN2js4CallEP9JSContextN2JS6HandleINS2_5ValueEEES5_RKNS_13AnyInvokeArgsENS2_13MutableHandleIS4_EENS_10CallReasonE
  │              at /home/runner/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/d1f1519/mozjs-sys/mozjs/js/src/vm/Interpreter.cpp:679:8
  │   14: _ZN2js10CallGetterEP9JSContextN2JS6HandleINS2_5ValueEEES5_NS2_13MutableHandleIS4_EE
  │              at /home/runner/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/d1f1519/mozjs-sys/mozjs/js/src/vm/Interpreter.cpp:801:10
  │   15: _ZL10CallGetterP9JSContextN2JS6HandleIPN2js12NativeObjectEEENS2_INS1_5ValueEEENS2_INS1_11PropertyKeyEEENS3_16PropertyInfoBaseIjEENS1_13MutableHandleIS7_EE
  │              at /home/runner/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/d1f1519/mozjs-sys/mozjs/js/src/vm/NativeObject.cpp:2080:12
  │       _ZL19GetExistingPropertyILN2js7AllowGCE1EEbP9JSContextNS0_11MaybeRootedIN2JS5ValueEXT_EE10HandleTypeENS4_IPNS0_12NativeObjectEXT_EE10HandleTypeENS4_INS5_11PropertyKeyEXT_EE10HandleTypeENS0_16PropertyInfoBaseIjEENS7_17MutableHandleTypeE
  │              at /home/runner/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/d1f1519/mozjs-sys/mozjs/js/src/vm/NativeObject.cpp:2108:12
  │       _ZL23NativeGetPropertyInlineILN2js7AllowGCE1EEbP9JSContextNS0_11MaybeRootedIPNS0_12NativeObjectEXT_EE10HandleTypeENS4_IN2JS5ValueEXT_EE10HandleTypeENS4_INS9_11PropertyKeyEXT_EE10HandleTypeE12IsNameLookupNSB_17MutableHandleTypeE
  │              at /home/runner/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/d1f1519/mozjs-sys/mozjs/js/src/vm/NativeObject.cpp:2256:14
  │       _ZN2js17NativeGetPropertyEP9JSContextN2JS6HandleIPNS_12NativeObjectEEENS3_INS2_5ValueEEENS3_INS2_11PropertyKeyEEENS2_13MutableHandleIS7_EE
  │              at /home/runner/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/d1f1519/mozjs-sys/mozjs/js/src/vm/NativeObject.cpp:2287:10
  │   16: _ZN2jsL33GetElementOperationWithStackIndexEP9JSContextN2JS6HandleINS2_5ValueEEEiS5_NS2_13MutableHandleIS4_EE
  │       _ZN2jsL19GetElementOperationEP9JSContextN2JS6HandleINS2_5ValueEEES5_NS2_13MutableHandleIS4_EE
  │              at /home/runner/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/d1f1519/mozjs-sys/mozjs/js/src/vm/Interpreter-inl.h:522:10
  │       _ZN2js3jit17DoGetElemFallbackEP9JSContextPNS0_13BaselineFrameEPNS0_14ICFallbackStubEN2JS6HandleINS7_5ValueEEESA_NS7_13MutableHandleIS9_EE
  │              at /home/runner/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/d1f1519/mozjs-sys/mozjs/js/src/jit/BaselineIC.cpp:653:8
  │   17: <unknown>
  │   18: <unknown>
  │   19: <unknown>
  │   20: <unknown>
  │   21: <unknown>
  │   22: <unknown>
  │   23: <unknown>
  │   24: <unknown>
  │   25: <unknown>
  │   26: <unknown>
  │   27: <unknown>
  │   28: <unknown>
  │   29: <unknown>
  │   30: <unknown>
  │   31: <unknown>
  │   32: _ZL13EnterBaselineP9JSContextR12EnterJitData
  │              at /home/runner/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/d1f1519/mozjs-sys/mozjs/js/src/jit/BaselineJIT.cpp:143:5
  │       _ZN2js3jit32EnterBaselineInterpreterAtBranchEP9JSContextPNS_16InterpreterFrameEPh
  │              at /home/runner/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/d1f1519/mozjs-sys/mozjs/js/src/jit/BaselineJIT.cpp:199:26
  │   33: <unknown>
  │ mozilla::detail::MutexImpl::~MutexImpl: pthread_mutex_destroy failed: Device or resource busy
  │ Caught signal 11thread panicked while processing panic. aborting.
  │ Redirecting call to abort() to mozalloc_abort
  └ 

@bplaat
Copy link
Contributor Author

bplaat commented Mar 20, 2024

I fixed the failing test by implementing parse_plain_attribute()

@mrobinson mrobinson added the T-linux-wpt-2020 Do a try run of the WPT label Mar 20, 2024
@github-actions github-actions bot removed the T-linux-wpt-2020 Do a try run of the WPT label Mar 20, 2024
Copy link

🔨 Triggering try run (#8366515763) for Linux WPT

Copy link

Test results for linux-wpt-layout-2020 from try job (#8366515763):

Flaky unexpected result (22)
  • CRASH [expected PASS] /_webgl/conformance/glsl/bugs/long-expressions-should-not-crash.html (#19221)
  • TIMEOUT [expected OK] /_webgl/conformance/glsl/misc/shader-with-non-reserved-words.html (#16216)
    • NOTRUN [expected PASS] subtest: Overall test
  • TIMEOUT [expected OK] /_webgl/conformance/uniforms/out-of-bounds-uniform-array-access.html (#26225)
    • NOTRUN [expected PASS] subtest: Overall test
  • OK /css/css-fonts/variations/at-font-face-font-matching.html (#20684)
    • PASS [expected FAIL] subtest: Matching font-weight: '400' should prefer '351 398' over '501 550'
    • PASS [expected FAIL] subtest: Matching font-weight: '430' should prefer '450 460' over '500'
    • PASS [expected FAIL] subtest: Matching font-weight: '430' should prefer '350 399' over '340 398'
    • PASS [expected FAIL] subtest: Matching font-weight: '500' should prefer '500' over '450 460'
    • PASS [expected FAIL] subtest: Matching font-weight: '399' should prefer '350 399' over '340 360'
    • PASS [expected FAIL] subtest: Matching font-style: 'oblique -10deg' should prefer 'oblique -10deg' over 'oblique -5deg'
  • PASS [expected FAIL] /css/css-sizing/dynamic-available-size-iframe.html (#31559)
  • OK /css/css-values/calc-in-media-queries-with-mixed-units.html (#31731)
    • FAIL [expected PASS] subtest: box should be orange if the calc between vh+px in @media was correct

      assert_equals: expected "rgb(255, 165, 0)" but got "rgb(0, 0, 255)"
      

  • OK /css/cssom-view/MediaQueryList-addListener-handleEvent.html (#24571)
    • FAIL [expected PASS] subtest: doesn't look up handleEvent method on callable event listeners

      assert_equals: expected 1 but got 0
      

  • OK /css/cssom-view/MediaQueryList-addListener-removeListener.html (#24569)
    • PASS [expected FAIL] subtest: listeners are called correct number of times
  • OK /css/cssom-view/MediaQueryList-change-event-matches-value.html (#27973)
    • FAIL [expected PASS] subtest: MediaQueryList.changed is correct for all lists in the document even during a change event handler

      assert_equals: Should've fired the change event in both MediaQueryLists expected 2 but got 0
      

  • TIMEOUT /fetch/metadata/generated/css-images.sub.tentative.html (#29047)
    • PASS [expected TIMEOUT] subtest: background-image sec-fetch-site - HTTPS downgrade (header not sent)
  • OK [expected TIMEOUT] /html/browsers/browsing-the-web/navigating-across-documents/javascript-url-referrer.window.html (#29081)
    • PASS [expected TIMEOUT] subtest: no-referrer referrer policy used to create the starting page
  • OK /html/browsers/browsing-the-web/navigating-across-documents/javascript-url-return-value-handling-dynamic.html (#28066)
    • FAIL [expected PASS] subtest: 0041 set in href="" targeting a frame and clicked

      assert_equals: expected "A" but got ""
      

    • FAIL [expected PASS] subtest: 0080 00FF set in href="" targeting a frame and clicked

      assert_equals: expected "�ÿ" but got ""
      

    • FAIL [expected PASS] subtest: 0080 00FF 0100 set in href="" targeting a frame and clicked

      assert_equals: expected "�ÿĀ" but got ""
      

    • FAIL [expected PASS] subtest: D83D DE0D set in href="" targeting a frame and clicked

      assert_equals: expected "😍" but got ""
      

  • OK /html/browsers/history/the-history-interface/traverse_the_history_3.html (#21383)
    • PASS [expected FAIL] subtest: Multiple history traversals, last would be aborted
  • OK /html/browsers/history/the-history-interface/traverse_the_history_4.html (#21383)
    • PASS [expected FAIL] subtest: Multiple history traversals, last would be aborted
  • OK /html/browsers/history/the-history-interface/traverse_the_history_5.html (#21383)
    • FAIL [expected PASS] subtest: Multiple history traversals, last would be aborted

      assert_array_equals: Pages opened during history navigation expected property 1 to be 5 but got 3 (expected array [6, 5] got [6, 3])
      

  • TIMEOUT [expected OK] /html/browsers/history/the-history-interface/traverse_the_history_write_onload_1.html (#21581)
    • TIMEOUT [expected PASS] subtest: Traverse the history when a history entry is written in the load event

      Test timed out
      

  • OK [expected TIMEOUT] /html/infrastructure/urls/base-url/document-base-url-window-initiator-is-not-opener.https.window.html (#30970)
  • TIMEOUT [expected CRASH] /html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-1.html (#24066)
  • OK /html/webappapis/dynamic-markup-insertion/document-write/module-delayed.html (#27659)
    • FAIL [expected PASS] subtest: async document.write in a module

      assert_true: onload must be called expected true got false
      

  • OK /html/webappapis/dynamic-markup-insertion/document-write/module-tla-delayed.html (#29137)
    • FAIL [expected PASS] subtest: document.write in an imported module

      assert_true: onload must be called expected true got false
      

  • OK [expected TIMEOUT] /webmessaging/with-ports/017.html (#24486)
    • PASS [expected TIMEOUT] subtest: origin of the script that invoked the method, about:blank
  • OK [expected TIMEOUT] /webmessaging/with-ports/018.html (#24485)
    • PASS [expected TIMEOUT] subtest: origin of the script that invoked the method, javascript:
Stable unexpected results that are known to be intermittent (13)
  • FAIL [expected PASS] /_mozilla/css/iframe/hide_and_show.html (#15265)
  • FAIL [expected PASS] /_mozilla/mozilla/iframe/resize_after_load.html (#13573)
  • TIMEOUT [expected OK] /_webgl/conformance/glsl/misc/shader-uniform-packing-restrictions.html (#28103)
    • NOTRUN [expected PASS] subtest: Overall test
  • TIMEOUT [expected OK] /custom-elements/reactions/customized-builtins/HTMLMediaElement.html (#31014)
  • OK /html/browsers/browsing-the-web/navigating-across-documents/replace-before-load/a-click.html (#28697)
    • PASS [expected FAIL] subtest: aElement.click() before the load event must NOT replace
  • PASS [expected CRASH] /html/canvas/element/manual/drawing-text-to-the-canvas/canvas.2d.disconnected-font-size-math.html (#30063)
  • FAIL [expected CRASH] /html/canvas/element/manual/text/canvas.2d.disconnected.html (#30063)
  • TIMEOUT [expected CRASH] /html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-2.html (#22667)
  • CRASH [expected TIMEOUT] /html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-3.html (#24057)
  • OK /html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-3.html (#24066)
    • FAIL [expected NOTRUN] subtest: Check that popups from a sandboxed iframe do not escape the sandbox

      assert_equals: It came from a sandboxed iframe expected "null" but got "http://web-platform.test:8000"
      

  • OK [expected CRASH] /html/semantics/forms/the-fieldset-element/disabled-003.html (#31730)
  • TIMEOUT /resource-timing/test_resource_timing.html (#25720)
    • FAIL [expected PASS] subtest: PerformanceEntry has correct name, initiatorType, startTime, and duration (img)

      assert_equals: expected 8684288 but got 8684032
      

  • OK [expected TIMEOUT] /webmessaging/without-ports/017.html (#24486)
    • PASS [expected TIMEOUT] subtest: origin of the script that invoked the method, about:blank
Stable unexpected results (2)
  • OK /html/dom/idlharness.https.html?include=HTML.*
    • PASS [expected FAIL] subtest: HTMLPreElement interface: attribute width
    • PASS [expected FAIL] subtest: HTMLPreElement interface: document.createElement("pre") must inherit property "width" with the proper type
    • PASS [expected FAIL] subtest: HTMLPreElement interface: document.createElement("listing") must inherit property "width" with the proper type
    • PASS [expected FAIL] subtest: HTMLPreElement interface: document.createElement("xmp") must inherit property "width" with the proper type
  • OK /html/dom/reflection-grouping.html
    • PASS [expected FAIL] subtest: pre.width: typeof IDL attribute
    • PASS [expected FAIL] subtest: pre.width: IDL get with DOM attribute unset
    • PASS [expected FAIL] subtest: pre.width: setAttribute() to 0
    • PASS [expected FAIL] subtest: pre.width: setAttribute() to 1
    • PASS [expected FAIL] subtest: pre.width: setAttribute() to 2147483647
    • PASS [expected FAIL] subtest: pre.width: setAttribute() to 2147483648
    • PASS [expected FAIL] subtest: pre.width: setAttribute() to -2147483649
    • PASS [expected FAIL] subtest: pre.width: setAttribute() to 4294967295
    • PASS [expected FAIL] subtest: pre.width: setAttribute() to 4294967296
    • PASS [expected FAIL] subtest: pre.width: setAttribute() to ""
    • And 57 more unexpected results...

Copy link

⚠️ Try run (#8366515763) failed.

@bplaat
Copy link
Contributor Author

bplaat commented Mar 21, 2024

@mrobinson wpt passed but it expects that some tests fail, do I need to update that fail and remove the expected fails?

@mrobinson
Copy link
Member

You will need to regenerate results for these newly passing tests:

  1. ./mach test-wpt -r /html/dom/idlharness.https.html /html/dom/reflection-grouping.html --log-out out.log
  2. ./mach update-wpt out.log

and then also for legacy layout

  1. ./mach test-wpt -r /html/dom/idlharness.https.html /html/dom/reflection-grouping.html --log-out out.log --legacy-layout
  2. ./mach update-wpt out.log --legacy-layout

@mrobinson
Copy link
Member

Pinging @Loirooriol to ask his opinion about whether or not it makes sense to implement support for a deprecated attribute. I have my doubts in this case because it doesn't really do anything. @bplaat This is a well-made change, but perhaps it makes sense to work on something that's actually functional? I'm happy to help guide you to something if you are interested.

@bplaat
Copy link
Contributor Author

bplaat commented Mar 21, 2024

Sure this is quite useless but is in the spec so it is worth implementing. I choose it because it is quite small and it would make for a nice first pr

@Loirooriol
Copy link
Contributor

So this is https://html.spec.whatwg.org/multipage/obsolete.html#HTMLPreElement-partial, which is in "16.3 Requirements for implementations", so it seems good.

@mrobinson
Copy link
Member

mrobinson commented Mar 21, 2024

@bplaat Sounds like this is fine! Please update test results and then we can land this.

@mrobinson mrobinson added this pull request to the merge queue Mar 22, 2024
@github-merge-queue github-merge-queue bot removed this pull request from the merge queue due to failed status checks Mar 22, 2024
@mrobinson
Copy link
Member

@bplaat There is a test still failing for legacy layout. Just run the commands above, but also the legacy layout version:

    OK /html/dom/reflection-grouping.html
        PASS [expected FAIL] subtest: pre.width: setAttribute() to " 7"
        PASS [expected FAIL] subtest: pre.width: setAttribute() to "7"
        PASS [expected FAIL] subtest: pre.width: setAttribute() to "
7"
        PASS [expected FAIL] subtest: pre.width: setAttribute() to "
7"
        PASS [expected FAIL] subtest: pre.width: setAttribute() to " 7"
        PASS [expected FAIL] subtest: pre.width: setAttribute() to "᠎7"
        PASS [expected FAIL] subtest: pre.width: setAttribute() to " 7"
        PASS [expected FAIL] subtest: pre.width: setAttribute() to " 7"
        PASS [expected FAIL] subtest: pre.width: setAttribute() to " 7"
        PASS [expected FAIL] subtest: pre.width: setAttribute() to " 7"
        And 9 more unexpected results...

@bplaat
Copy link
Contributor Author

bplaat commented Mar 24, 2024

@mrobinson I run the command for both layouts and committed the files, when I run the commands again no files are changed

@mrobinson mrobinson added this pull request to the merge queue Mar 24, 2024
@github-merge-queue github-merge-queue bot removed this pull request from the merge queue due to failed status checks Mar 24, 2024
@mrobinson mrobinson added this pull request to the merge queue Mar 25, 2024
Merged via the queue into servo:main with commit 97144dd Mar 25, 2024
9 checks passed
@bplaat bplaat deleted the pre-width branch March 25, 2024 17:15
ektuu pushed a commit to ektuu/servo that referenced this pull request Mar 25, 2024
ektuu pushed a commit to ektuu/servo that referenced this pull request Mar 28, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants