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

Make Layout 2013 style a superset of Layout 2020 style #29940

Merged
merged 1 commit into from
Jun 29, 2023

Conversation

mrobinson
Copy link
Member

@mrobinson mrobinson commented Jun 27, 2023

This is the first step toward removing the compile-time difference in
style between Layout 2020 and Layout 2013. This change:

  • Adds attr() CSS content support to legacy layout
  • Adds parsing support for some unsupported features such as display: flow-root and display: contents.

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

@mrobinson
Copy link
Member Author

@bors-servo try=wpt

@bors-servo
Copy link
Contributor

⌛ Trying commit 6b3eec7 with merge b6158da...

bors-servo added a commit that referenced this pull request Jun 27, 2023
Make Layout 2013 style a superset of Layout 2020 style

This is the first step toward removing the compile-time difference in
style between Layout 2020 and Layout 2013.

<!-- 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
- [ ] 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. -->
@github-actions
Copy link

Test results for linux-wpt-layout-2013 from try job (#5393974929):

Flaky unexpected result (16)
  • OK /_mozilla/mozilla/task_queue_throttling.any.html (#22519)
    • FAIL [expected PASS] subtest: Throttling the performance timeline task queue. assert_true: expected true got false
  • TIMEOUT [expected OK] /_webgl/conformance/glsl/misc/shader-uniform-packing-restrictions.html (#28103)
    • NOTRUN [expected PASS] subtest: Overall test
  • 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
  • TIMEOUT [expected PASS] /css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-image-width-001.html
  • OK /fetch/local-network-access/worker-blob-fetch.window.html (#29602)
    • PASS [expected FAIL] subtest: treat-as-public to public: success.
  • 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/navigation-unload-same-origin-fragment.html (#20768)
    • FAIL [expected PASS] subtest: Tests that a fragment navigation in the unload handler will not block the initial navigation assert_equals: expected "" but got "#fragment"
  • OK /html/browsers/browsing-the-web/navigating-across-documents/navigation-unload-same-origin.window.html (#29049)
    • FAIL [expected PASS] subtest: Same-origin navigation started from unload handler must be ignored assert_equals: expected "?pass" but got "?fail"
  • TIMEOUT [expected OK] /html/interaction/focus/the-autofocus-attribute/skip-another-top-level-browsing-context.html (#24161)
    • TIMEOUT [expected PASS] subtest: Autofocus elements queued in another top-level browsing context's documents should be skipped. Test timed out
  • TIMEOUT [expected OK] /html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-3.html (#24057)
    • TIMEOUT [expected FAIL] subtest: Check that popups from a sandboxed iframe escape the sandbox if
      allow-popups-to-escape-sandbox is used Test timed out
  • TIMEOUT [expected OK] /html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-2.html (#22154)
    • NOTRUN [expected FAIL] subtest: Check that popups from a sandboxed iframe do not escape the sandbox
  • 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
  • TIMEOUT [expected OK] /html/webappapis/scripting/processing-model-2/unhandled-promise-rejections/promise-rejection-events.html (#26371)
    • TIMEOUT [expected FAIL] subtest: delayed handling: delaying handling rejected promise created from createImageBitmap will cause both events to fire Test timed out
  • OK [expected TIMEOUT] /webmessaging/without-ports/017.html (#24486)
    • PASS [expected TIMEOUT] subtest: origin of the script that invoked the method, about:blank
  • OK [expected TIMEOUT] /webmessaging/without-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 (9)
  • FAIL [expected PASS] /css/css-text/white-space/trailing-other-space-separators-break-spaces-005.html (#25875)
  • OK [expected TIMEOUT] /fetch/api/redirect/redirect-keepalive.any.html (#29536)
  • CRASH [expected OK] /html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-1.html (#24066)
  • OK /html/semantics/links/links-created-by-a-and-area-elements/htmlanchorelement_noopener.html (#23205)
    • FAIL [expected PASS] subtest: Check that rel=noopener with target=_self does a normal load this.openedWindow.findLink is not a function
  • OK [expected ERROR] /html/semantics/scripting-1/the-script-element/defer-script/async-script.html?reload (#29054)
  • TIMEOUT /html/webappapis/scripting/events/compile-event-handler-settings-objects.html (#24246)
    • TIMEOUT [expected PASS] subtest: The entry settings object while executing the compiled callback via Web IDL's invoke must be that of the node document Test timed out
  • TIMEOUT [expected OK] /html/webappapis/scripting/processing-model-2/integration-with-the-javascript-job-queue/promise-job-entry.html (#25805)
    • TIMEOUT [expected FAIL] subtest: Fulfillment handler on pending-then-fulfilled promise Test timed out
    • TIMEOUT [expected FAIL] subtest: Rejection handler on pending-then-rejected promise Test timed out
  • CRASH [expected OK] /quirks/table-cell-width-calculation.html (#16650)
  • OK [expected ERROR] /workers/semantics/run-a-worker/003.html (#22765)
Stable unexpected results (26)
  • TIMEOUT [expected FAIL] /css/CSS2/generated-content/before-after-display-types-001.xht
  • TIMEOUT [expected FAIL] /css/CSS2/generated-content/before-after-floated-001.xht
  • TIMEOUT [expected PASS] /css/CSS2/generated-content/before-after-images-001.xht
  • TIMEOUT [expected FAIL] /css/CSS2/generated-content/before-after-positioned-001.xht
  • TIMEOUT [expected FAIL] /css/CSS2/generated-content/before-after-table-parts-001.xht
  • TIMEOUT [expected FAIL] /css/CSS2/generated-content/before-after-table-whitespace-001.xht
  • TIMEOUT [expected FAIL] /css/CSS2/generated-content/content-004.xht
  • TIMEOUT [expected FAIL] /css/css-align/self-alignment/self-align-safe-unsafe-flex-001.html
  • TIMEOUT [expected FAIL] /css/css-align/self-alignment/self-align-safe-unsafe-flex-002.html
  • TIMEOUT [expected PASS] /css/css-align/self-alignment/self-align-safe-unsafe-flex-003.html
  • TIMEOUT [expected FAIL] /css/css-align/self-alignment/self-align-safe-unsafe-grid-001.html
  • TIMEOUT [expected FAIL] /css/css-align/self-alignment/self-align-safe-unsafe-grid-002.html
  • TIMEOUT [expected PASS] /css/css-align/self-alignment/self-align-safe-unsafe-grid-003.html
  • PASS [expected FAIL] /css/css-conditional/at-supports-namespace-001.html
  • OK /css/cssom/serialize-values.html
    • PASS [expected FAIL] subtest: content: url("http://localhost/")
    • PASS [expected FAIL] subtest: content: url(http://localhost/)
    • PASS [expected FAIL] subtest: content: attr(foo-bar)
    • PASS [expected FAIL] subtest: content: attr(foo_bar)
  • OK /html/dom/elements/the-innertext-and-outertext-properties/getter.html
    • FAIL [expected PASS] subtest: display:contents container ("<div style='display:contents'>abc") assert_equals: outerText expected (string) "abc" but got (undefined) undefined
    • FAIL [expected PASS] subtest: display:contents container ("<div><div style='display:contents'>abc") assert_equals: outerText expected (string) "abc" but got (undefined) undefined
    • FAIL [expected PASS] subtest: display:contents rendered ("<div>123<span style='display:contents'>abc") assert_equals: innerText expected "123abc" but got "abc"
    • FAIL [expected PASS] subtest: display:contents not processed via textContent ("<div style='display:contents'> ") assert_equals: innerText expected "" but got "abc"
    • FAIL [expected PASS] subtest: display:contents not processed via textContent ("<div><div style='display:contents'> ") assert_equals: innerText expected "" but got "abc"
  • OK /html/rendering/non-replaced-elements/the-fieldset-and-legend-elements/fieldset-display.html
    • PASS [expected FAIL] subtest: fieldset with display: flow-root
  • OK /html/rendering/non-replaced-elements/the-fieldset-and-legend-elements/legend-display.html
    • PASS [expected FAIL] subtest: rendered legend with display: flow-root
    • PASS [expected FAIL] subtest: rendered legend with display: flow-root; overflow:hidden
    • PASS [expected FAIL] subtest: rendered legend with display: flow-root; columns:1
    • PASS [expected FAIL] subtest: rendered legend with display: flow-root; overflow:hidden;columns:1
  • OK /html/rendering/widgets/button-layout/computed-style.html
    • PASS [expected FAIL] subtest: computed display of <button type=submit> with display: contents
    • PASS [expected FAIL] subtest: computed display of <input type=reset> with display: flow-root
    • PASS [expected FAIL] subtest: computed display of <input type=button> with display: flow-root
    • PASS [expected FAIL] subtest: computed display of <input type=submit> with display: flow-root
    • PASS [expected FAIL] subtest: computed display of <input type=color> with display: flow-root
    • PASS [expected FAIL] subtest: computed display of <button type=submit> with display: flow-root
  • OK /html/rendering/widgets/button-layout/display-other.html
    • PASS [expected FAIL] subtest: display: flow-root
  • CRASH [expected OK] /referrer-policy/css-integration/child-css/external-import-stylesheet.html
  • CRASH [expected OK] /referrer-policy/css-integration/child-css/internal-import-stylesheet.html
  • CRASH [expected OK] /referrer-policy/css-integration/image/external-import-stylesheet.html
  • CRASH [expected OK] /referrer-policy/css-integration/image/external-stylesheet.html
  • CRASH [expected OK] /referrer-policy/css-integration/image/internal-import-stylesheet.html
  • CRASH [expected OK] /referrer-policy/css-integration/image/internal-stylesheet.html

@mrobinson
Copy link
Member Author

@bors-servo try=wpt

@bors-servo
Copy link
Contributor

⌛ Trying commit bb4335d with merge b93284b...

bors-servo added a commit that referenced this pull request Jun 28, 2023
Make Layout 2013 style a superset of Layout 2020 style

This is the first step toward removing the compile-time difference in
style between Layout 2020 and Layout 2013. This change:

- Adds `attr()` CSS content support to legacy layout
- Adds parsing support for some unsupported features such as `display: flow-root` and `display: contents`.

<!-- 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
- [ ] 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. -->
@bors-servo
Copy link
Contributor

💔 Test failed - checks-github

@mrobinson
Copy link
Member Author

@bors-servo try=wpt

@bors-servo
Copy link
Contributor

⌛ Trying commit afc8c51 with merge 55c973b...

bors-servo added a commit that referenced this pull request Jun 28, 2023
Make Layout 2013 style a superset of Layout 2020 style

This is the first step toward removing the compile-time difference in
style between Layout 2020 and Layout 2013. This change:

- Adds `attr()` CSS content support to legacy layout
- Adds parsing support for some unsupported features such as `display: flow-root` and `display: contents`.

<!-- 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. -->
@github-actions
Copy link

Test results for linux-wpt-layout-2013 from try job (#5398571756):

Flaky unexpected result (24)
  • OK /_mozilla/mozilla/task_queue_throttling.any.html (#22519)
    • FAIL [expected PASS] subtest: Throttling the performance timeline task queue. assert_true: expected true got false
  • TIMEOUT [expected OK] /_webgl/conformance/glsl/misc/shader-uniform-packing-restrictions.html (#28103)
    • NOTRUN [expected PASS] subtest: Overall test
  • 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
  • TIMEOUT [expected PASS] /css/CSS2/margin-padding-clear/margin-bottom-052.xht
  • TIMEOUT [expected PASS] /css/css-color/animation/opacity-animation-ending-correctly-001.html (#29215)
  • FAIL [expected PASS] /css/css-ui/accent-color-invalidation-currentcolor.html (#28690)
  • ERROR [expected TIMEOUT] /html/browsers/browsing-the-web/history-traversal/persisted-user-state-restoration/scroll-restoration-fragment-scrolling-cross-origin.html (#28541)
  • TIMEOUT [expected OK] /html/browsers/browsing-the-web/navigating-across-documents/initial-empty-document/iframe-src-aboutblank-navigate-immediately.html (#29048)
    • TIMEOUT [expected FAIL] subtest: Navigating to a different document with link click Test timed out
    • NOTRUN [expected FAIL] subtest: Navigating to a different document with form submission
  • OK /html/browsers/browsing-the-web/navigating-across-documents/initial-empty-document/load-pageshow-events-iframe-contentWindow.html (#28681)
    • FAIL [expected PASS] subtest: load & pageshow events do not fire on contentWindow of <iframe> element created with src='about:blank' assert_unreached: load should not be fired Reached unreachable code
  • OK /html/browsers/browsing-the-web/navigating-across-documents/initial-empty-document/load-pageshow-events-window-open.html (#28691)
    • PASS [expected FAIL] subtest: load event does not fire on window.open('about:blank')
  • 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/navigation-unload-same-origin.window.html (#29049)
    • FAIL [expected PASS] subtest: Same-origin navigation started from unload handler must be ignored assert_equals: expected "?pass" but got "?fail"
  • OK /html/browsers/browsing-the-web/read-media/pageload-image-in-popup.html (#23849)
    • PASS [expected FAIL] subtest: The document for a standalone media file should have one child in the body.
  • TIMEOUT [expected OK] /html/browsers/origin/cross-origin-objects/cross-origin-objects.html (#28569)
  • OK /html/browsers/the-window-object/open-close/creating_browsing_context_test_01.html (#29046)
    • PASS [expected FAIL] subtest: first argument: absolute url
  • TIMEOUT [expected FAIL] /html/canvas/element/manual/drawing-text-to-the-canvas/canvas.2d.disconnected.html (#29224)
  • CRASH [expected OK] /html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-3.html (#24057)
  • TIMEOUT [expected OK] /html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-3.html (#24066)
    • NOTRUN [expected FAIL] subtest: Check that popups from a sandboxed iframe do not escape the sandbox
  • OK /html/semantics/forms/form-submission-0/multipart-formdata.window.html (#28725)
    • PASS [expected FAIL] subtest: multipart/form-data: \r\n in value (normal form)
  • 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)
  • OK /html/semantics/links/links-created-by-a-and-area-elements/htmlanchorelement_noopener.html (#23205)
    • FAIL [expected PASS] subtest: Check that rel=noopener with target=_self does a normal load this.openedWindow.findLink is not a function
  • TIMEOUT /html/webappapis/scripting/events/compile-event-handler-settings-objects.html (#24246)
    • FAIL [expected PASS] subtest: The entry settings object while executing the compiled callback via Web IDL's invoke must be that of the node document assert_equals: expected "/html/webappapis/scripting/events/resources/open-window.html" but got "blank"
  • 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 that are known to be intermittent (13)
  • FAIL [expected PASS] /css/css-text/white-space/trailing-other-space-separators-break-spaces-005.html (#25875)
  • TIMEOUT /fetch/metadata/generated/css-images.sub.tentative.html (#29047)
    • FAIL [expected PASS] subtest: border-image sec-fetch-user - Not sent to non-trustworthy same-site destination assert_unreached: Reached unreachable code
    • PASS [expected FAIL] subtest: border-image sec-fetch-site - HTTPS downgrade (header not sent)
  • OK /html/browsers/browsing-the-web/navigating-across-documents/replace-before-load/a-click.html (#28697)
  • TIMEOUT [expected OK] /html/interaction/focus/the-autofocus-attribute/supported-elements.html (#24145)
    • TIMEOUT [expected FAIL] subtest: Element with tabindex should support autofocus Test timed out
    • NOTRUN [expected PASS] subtest: Non-HTMLElement should not support autofocus
    • NOTRUN [expected FAIL] subtest: Host element with delegatesFocus should support autofocus
    • NOTRUN [expected FAIL] subtest: Host element with delegatesFocus including no focusable descendants should be skipped
    • NOTRUN [expected FAIL] subtest: Area element should support autofocus
  • OK /html/semantics/embedded-content/the-img-element/non-active-document.html (#21544)
    • 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/forms/historical.html (#28568)
    • PASS [expected FAIL] subtest: <input name=isindex> should not be supported
  • OK [expected ERROR] /html/semantics/scripting-1/the-script-element/defer-script/async-script.html?reload (#29054)
  • TIMEOUT [expected OK] /html/webappapis/scripting/processing-model-2/integration-with-the-javascript-job-queue/promise-job-entry-different-function-realm.html (#25805)
    • TIMEOUT [expected FAIL] subtest: Fulfillment handler on pending-then-fulfilled promise Test timed out
    • TIMEOUT [expected FAIL] subtest: Rejection handler on pending-then-rejected promise Test timed out
  • TIMEOUT [expected OK] /html/webappapis/scripting/processing-model-2/integration-with-the-javascript-job-queue/promise-job-entry.html (#25805)
    • TIMEOUT [expected FAIL] subtest: Sanity check: this all works as expected with no promises involved Test timed out
  • TIMEOUT [expected OK] /html/webappapis/scripting/processing-model-2/unhandled-promise-rejections/promise-rejection-events.html (#26371)
    • TIMEOUT [expected FAIL] subtest: delayed handling: delaying handling rejected promise created from createImageBitmap will cause both events to fire Test timed out
  • OK /quirks/table-cell-width-calculation.html (#16650)
    • FAIL [expected PASS] subtest: The table cell width calculation quirk, the quirk shouldn't apply for generated content assert_equals: cell width, quirks mode expected "2px" but got "0px"
  • TIMEOUT [expected CRASH] /webmessaging/broadcastchannel/cross-partition.https.tentative.html (#29058)
  • OK [expected ERROR] /workers/semantics/run-a-worker/003.html (#22765)
Stable unexpected results (9)
  • OK /css/css-text-decor/animations/discrete-no-interpolation.html
    • PASS [expected FAIL] subtest: CSS Transitions: property <text-decoration-style> from [initial] to [dashed] at (0.5) should be [dashed]
    • PASS [expected FAIL] subtest: CSS Transitions: property <text-decoration-style> from [initial] to [dashed] at (0.6) should be [dashed]
    • PASS [expected FAIL] subtest: CSS Transitions: property <text-decoration-style> from [initial] to [dashed] at (1) should be [dashed]
    • PASS [expected FAIL] subtest: CSS Transitions: property <text-decoration-style> from [initial] to [dashed] at (1.5) should be [dashed]
    • PASS [expected FAIL] subtest: CSS Transitions with transition: all: property <text-decoration-style> from [initial] to [dashed] at (0.5) should be [dashed]
    • PASS [expected FAIL] subtest: CSS Transitions with transition: all: property <text-decoration-style> from [initial] to [dashed] at (0.6) should be [dashed]
    • PASS [expected FAIL] subtest: CSS Transitions with transition: all: property <text-decoration-style> from [initial] to [dashed] at (1) should be [dashed]
    • PASS [expected FAIL] subtest: CSS Transitions with transition: all: property <text-decoration-style> from [initial] to [dashed] at (1.5) should be [dashed]
    • PASS [expected FAIL] subtest: CSS Animations: property <text-decoration-style> from [initial] to [dashed] at (-0.3) should be [initial]
    • PASS [expected FAIL] subtest: CSS Animations: property <text-decoration-style> from [initial] to [dashed] at (0) should be [initial]
    • And 5 more unexpected results...
  • OK /css/css-text-decor/inheritance.html
    • PASS [expected FAIL] subtest: Property text-decoration-color has initial value rgba(2, 3, 4, 0.5)
    • PASS [expected FAIL] subtest: Property text-decoration-color does not inherit
    • PASS [expected FAIL] subtest: Property text-decoration-style has initial value solid
    • PASS [expected FAIL] subtest: Property text-decoration-style does not inherit
  • OK /css/css-text-decor/parsing/text-decoration-color-computed.html
    • PASS [expected FAIL] subtest: Property text-decoration-color value 'rgb(0, 0, 255)'
    • PASS [expected FAIL] subtest: Property text-decoration-color value 'currentcolor'
    • PASS [expected FAIL] subtest: Property text-decoration-color value 'inherit'
  • OK /css/css-text-decor/parsing/text-decoration-color-valid.html
    • PASS [expected FAIL] subtest: e.style['text-decoration-color'] = "currentcolor" should set the property value
    • PASS [expected FAIL] subtest: e.style['text-decoration-color'] = "red" should set the property value
    • PASS [expected FAIL] subtest: e.style['text-decoration-color'] = "rgba(10, 20, 30, 0.4)" should set the property value
  • OK /css/css-text-decor/parsing/text-decoration-style-computed.html
    • PASS [expected FAIL] subtest: Property text-decoration-style value 'solid'
    • PASS [expected FAIL] subtest: Property text-decoration-style value 'double'
    • PASS [expected FAIL] subtest: Property text-decoration-style value 'dotted'
    • PASS [expected FAIL] subtest: Property text-decoration-style value 'dashed'
    • PASS [expected FAIL] subtest: Property text-decoration-style value 'wavy'
  • OK /css/css-text-decor/parsing/text-decoration-style-valid.html
    • PASS [expected FAIL] subtest: e.style['text-decoration-style'] = "solid" should set the property value
    • PASS [expected FAIL] subtest: e.style['text-decoration-style'] = "double" should set the property value
    • PASS [expected FAIL] subtest: e.style['text-decoration-style'] = "dotted" should set the property value
    • PASS [expected FAIL] subtest: e.style['text-decoration-style'] = "dashed" should set the property value
    • PASS [expected FAIL] subtest: e.style['text-decoration-style'] = "wavy" should set the property value
  • PASS [expected FAIL] /css/css-variables/variable-generated-content-dynamic-001.html
  • OK /css/css-variables/variable-presentation-attribute.html
    • PASS [expected FAIL] subtest: Testing 'text-decoration-style'.
  • OK /quirks/unitless-length/excluded-properties-002.html
    • PASS [expected FAIL] subtest: Property column-span does not support quirky length

@mrobinson
Copy link
Member Author

@bors-servo try=wpt

@bors-servo
Copy link
Contributor

⌛ Trying commit 6383e12 with merge bc1ffc9...

bors-servo added a commit that referenced this pull request Jun 28, 2023
Make Layout 2013 style a superset of Layout 2020 style

This is the first step toward removing the compile-time difference in
style between Layout 2020 and Layout 2013. This change:

- Adds `attr()` CSS content support to legacy layout
- Adds parsing support for some unsupported features such as `display: flow-root` and `display: contents`.

<!-- 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. -->
@github-actions
Copy link

Test results for linux-wpt-layout-2013 from try job (#5401541356):

Flaky unexpected result (13)
  • OK /_mozilla/mozilla/task_queue_throttling.any.html (#22519)
    • FAIL [expected PASS] subtest: Throttling the performance timeline task queue. assert_true: expected true got false
  • TIMEOUT [expected OK] /_webgl/conformance/glsl/misc/shader-uniform-packing-restrictions.html (#28103)
    • NOTRUN [expected PASS] subtest: Overall test
  • 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-text/white-space/trailing-space-position-001.html (#24585)
    • FAIL [expected PASS] subtest: CSS Test: Positions of trailing collapsible spaces 4 assert_equals: expected 0 but got -0
  • TIMEOUT [expected OK] /html/browsers/origin/cross-origin-objects/cross-origin-objects.html (#28569)
  • TIMEOUT [expected OK] /html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-1.html (#24066)
    • NOTRUN [expected FAIL] subtest: Check that popups from a sandboxed iframe do not escape the sandbox
  • OK /html/semantics/forms/form-submission-0/urlencoded2.window.html (#28687)
    • PASS [expected FAIL] subtest: application/x-www-form-urlencoded: \r\n in name (normal form)
  • OK [expected ERROR] /html/semantics/scripting-1/the-script-element/defer-script/async-script.html?reload (#29054)
  • OK /html/webappapis/animation-frames/callback-cross-realm-report-exception.html
    • FAIL [expected PASS] subtest: requestAnimationFrame() reports the exception from its callback in the callback's global object assert_array_equals: lengths differ, expected array ["frame1"] length 1, got [] length 0
  • TIMEOUT [expected OK] /html/webappapis/scripting/processing-model-2/integration-with-the-javascript-job-queue/promise-job-entry.html (#25805)
    • TIMEOUT [expected FAIL] subtest: Fulfillment handler on pending-then-fulfilled promise Test timed out
    • TIMEOUT [expected FAIL] subtest: Rejection handler on pending-then-rejected promise Test timed out
  • ERROR /resource-timing/content-type-parsing.html (#29131)
    • TIMEOUT [expected FAIL] subtest: mime-type 16 : text/html;charset=�gbk Test timed out
    • NOTRUN [expected TIMEOUT] subtest: mime-type 17 : text/html;charset= gbk
  • OK [expected TIMEOUT] /webmessaging/with-ports/017.html (#24486)
    • PASS [expected TIMEOUT] subtest: origin of the script that invoked the method, about:blank
Stable unexpected results that are known to be intermittent (11)
  • FAIL [expected PASS] /css/css-text/white-space/trailing-other-space-separators-break-spaces-005.html (#25875)
  • TIMEOUT /fetch/metadata/generated/css-images.sub.tentative.html (#29047)
    • TIMEOUT [expected PASS] subtest: background-image sec-fetch-dest - Not sent to non-trustworthy same-site destination Test timed out
    • TIMEOUT [expected PASS] subtest: background-image sec-fetch-site - HTTPS downgrade (header not sent) Test timed out
    • PASS [expected FAIL] subtest: border-image sec-fetch-site - HTTPS downgrade (header not sent)
  • OK /html/browsers/browsing-the-web/navigating-across-documents/navigate-to-unparseable-url.html (#29050)
    • PASS [expected FAIL] subtest: <a> tag navigate fails for unparseable URLs
  • OK /html/browsers/browsing-the-web/navigating-across-documents/replace-before-load/a-click.html (#28697)
  • OK /html/semantics/forms/form-submission-0/text-plain.window.html (#28687)
    • PASS [expected FAIL] subtest: text/plain: double quote in value (normal form)
  • OK /html/semantics/links/links-created-by-a-and-area-elements/htmlanchorelement_noopener.html (#23205)
    • FAIL [expected PASS] subtest: Check that rel=noopener with target=_self does a normal load this.openedWindow.findLink is not a function
  • TIMEOUT /html/webappapis/scripting/events/compile-event-handler-settings-objects.html (#24246)
    • FAIL [expected PASS] subtest: The entry settings object while executing the compiled callback via Web IDL's invoke must be that of the node document assert_equals: expected "/html/webappapis/scripting/events/resources/open-window.html" but got "blank"
  • OK /quirks/table-cell-width-calculation.html (#16650)
    • FAIL [expected PASS] subtest: The table cell width calculation quirk, the quirk shouldn't apply for generated content assert_equals: cell width, quirks mode expected "2px" but got "0px"
  • TIMEOUT [expected OK] /webmessaging/with-ports/018.html (#24485)
    • TIMEOUT [expected PASS] subtest: origin of the script that invoked the method, javascript: Test timed out
  • OK [expected TIMEOUT] /webmessaging/without-ports/017.html (#24486)
    • PASS [expected TIMEOUT] subtest: origin of the script that invoked the method, about:blank
  • OK [expected ERROR] /workers/semantics/run-a-worker/003.html (#22765)
Stable unexpected results (2)
  • OK /css/css-text-decor/parsing/text-decoration-color-valid.html
    • PASS [expected FAIL] subtest: e.style['text-decoration-color'] = "currentcolor" should set the property value
    • PASS [expected FAIL] subtest: e.style['text-decoration-color'] = "red" should set the property value
    • PASS [expected FAIL] subtest: e.style['text-decoration-color'] = "rgba(10, 20, 30, 0.4)" should set the property value
  • PASS [expected FAIL] /css/css-variables/variable-generated-content-dynamic-001.html

@bors-servo
Copy link
Contributor

💔 Test failed - checks-github

This is the first step toward removing the compile-time difference in
style between Layout 2020 and Layout 2013.
@mrobinson
Copy link
Member Author

@bors-servo try=wpt

@bors-servo
Copy link
Contributor

⌛ Trying commit d4b5fc1 with merge 32e6cf1...

bors-servo added a commit that referenced this pull request Jun 28, 2023
Make Layout 2013 style a superset of Layout 2020 style

This is the first step toward removing the compile-time difference in
style between Layout 2020 and Layout 2013. This change:

- Adds `attr()` CSS content support to legacy layout
- Adds parsing support for some unsupported features such as `display: flow-root` and `display: contents`.

<!-- 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. -->
@github-actions
Copy link

Test results for linux-wpt-layout-2013 from try job (#5402080894):

Flaky unexpected result (15)
  • OK /_mozilla/mozilla/task_queue_throttling.any.html (#22519)
    • FAIL [expected PASS] subtest: Throttling the performance timeline task queue. assert_true: expected true got false
  • TIMEOUT [expected OK] /_webgl/conformance/glsl/misc/shader-uniform-packing-restrictions.html (#28103)
    • NOTRUN [expected PASS] subtest: Overall test
  • 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
  • PASS [expected FAIL] /css/css-text/white-space/trailing-other-space-separators-break-spaces-011.html (#25875)
  • OK /fetch/local-network-access/worker-blob-fetch.window.html (#29602)
    • PASS [expected FAIL] subtest: public to public: success.
  • TIMEOUT [expected OK] /html/browsers/browsing-the-web/navigating-across-documents/initial-empty-document/iframe-src-aboutblank-navigate-immediately.html (#29048)
    • TIMEOUT [expected FAIL] subtest: Navigating to a different document with form submission Test timed out
  • OK [expected TIMEOUT] /html/browsers/browsing-the-web/navigating-across-documents/javascript-url-load-as-html.xhtml (#29070)
    • PASS [expected TIMEOUT] subtest: javascript: URL navigation to a string must create a HTML document using the correct properties
  • OK /html/browsers/browsing-the-web/read-media/pageload-image-in-popup.html (#23849)
    • PASS [expected FAIL] subtest: The document for a standalone media file should have one child in the body.
  • TIMEOUT [expected OK] /html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-3.html (#24066)
    • NOTRUN [expected FAIL] subtest: Check that popups from a sandboxed iframe do not escape the sandbox
  • OK /html/semantics/embedded-content/the-img-element/non-active-document.html (#21544)
    • 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
  • TIMEOUT [expected OK] /html/webappapis/scripting/processing-model-2/integration-with-the-javascript-job-queue/promise-job-entry-different-function-realm.html (#25805)
    • TIMEOUT [expected FAIL] subtest: Fulfillment handler on fulfilled promise Test timed out
  • OK [expected TIMEOUT] /webaudio/the-audio-api/the-audiocontext-interface/audiocontext-not-fully-active.html (#27664)
  • TIMEOUT [expected CRASH] /webmessaging/broadcastchannel/cross-partition.https.tentative.html (#29058)
  • OK [expected TIMEOUT] /webmessaging/with-ports/017.html (#24486)
    • PASS [expected TIMEOUT] subtest: origin of the script that invoked the method, about:blank
Stable unexpected results that are known to be intermittent (12)
  • FAIL [expected PASS] /css/css-text/white-space/trailing-other-space-separators-break-spaces-005.html (#25875)
  • TIMEOUT /fetch/metadata/generated/css-images.sub.tentative.html (#29047)
    • PASS [expected FAIL] subtest: border-image sec-fetch-site - HTTPS downgrade (header not sent)
  • OK /html/browsers/browsing-the-web/navigating-across-documents/initial-empty-document/load-pageshow-events-iframe-contentWindow.html (#28681)
    • FAIL [expected PASS] subtest: load & pageshow events do not fire on contentWindow of <iframe> element created with src='about:blank' assert_unreached: load should not be fired Reached unreachable code
  • 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/navigation-unload-same-origin.window.html (#29049)
    • FAIL [expected PASS] subtest: Same-origin navigation started from unload handler must be ignored assert_equals: expected "?pass" but got "?fail"
  • OK [expected ERROR] /html/semantics/scripting-1/the-script-element/defer-script/async-script.html?reload (#29054)
  • TIMEOUT [expected OK] /html/webappapis/scripting/processing-model-2/integration-with-the-javascript-job-queue/promise-job-entry.html (#25805)
    • TIMEOUT [expected FAIL] subtest: Fulfillment handler on pending-then-fulfilled promise Test timed out
    • TIMEOUT [expected FAIL] subtest: Rejection handler on pending-then-rejected promise Test timed out
  • TIMEOUT [expected OK] /html/webappapis/scripting/processing-model-2/unhandled-promise-rejections/promise-rejection-events.html (#26371)
    • TIMEOUT [expected FAIL] subtest: delayed handling: delaying handling rejected promise created from createImageBitmap will cause both events to fire Test timed out
  • OK /quirks/table-cell-width-calculation.html (#16650)
    • FAIL [expected PASS] subtest: The table cell width calculation quirk, the quirk shouldn't apply for generated content assert_equals: cell width, quirks mode expected "2px" but got "0px"
  • TIMEOUT [expected OK] /wasm/jsapi/functions/entry.html (#27087)
    • TIMEOUT [expected FAIL] subtest: Start function Test timed out
  • TIMEOUT [expected OK] /webmessaging/with-ports/018.html (#24485)
    • TIMEOUT [expected PASS] subtest: origin of the script that invoked the method, javascript: Test timed out
  • OK [expected ERROR] /workers/semantics/run-a-worker/003.html (#22765)

@bors-servo
Copy link
Contributor

☀️ Test successful - checks-github
State: approved= try=True

Copy link
Contributor

@Loirooriol Loirooriol left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In general claiming to support things that aren't really supported is not a good thing, but I guess that's fine since Servo is still very experimental and layout 2013 is no longer the default.

@mrobinson
Copy link
Member Author

@bors-servo r=Loirooriol

@bors-servo
Copy link
Contributor

📌 Commit d4b5fc1 has been approved by Loirooriol

@bors-servo
Copy link
Contributor

⌛ Testing commit d4b5fc1 with merge 3257414...

@github-actions
Copy link

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

Flaky unexpected result (1)
  • TIMEOUT [expected PASS] /css/css-color/animation/opacity-animation-ending-correctly-002.html (#29216)
Stable unexpected results that are known to be intermittent (3)
  • PASS [expected FAIL] /_mozilla/css/dirty_viewport.html (#13731)
  • PASS [expected FAIL] /_mozilla/css/pseudo_content_with_layers.html (#13479)
  • PASS [expected FAIL] /_mozilla/mozilla/iframe/resize_after_load.html (#13573)

@github-actions
Copy link

Test results for linux-wpt-layout-2013 from try job (#5416099713):

Flaky unexpected result (16)
  • TIMEOUT /FileAPI/url/url-in-tags-revoke.window.html (#19978)
    • TIMEOUT [expected FAIL] subtest: Opening a blob URL in a new window immediately before revoking it works. Test timed out
  • OK /_mozilla/mozilla/task_queue_throttling.any.html (#22519)
    • FAIL [expected PASS] subtest: Throttling the performance timeline task queue. assert_true: expected true got false
  • TIMEOUT [expected OK] /_webgl/conformance/glsl/misc/shader-uniform-packing-restrictions.html (#28103)
    • NOTRUN [expected PASS] subtest: Overall test
  • 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-flexbox/text-as-flexitem-size-001.html (#28726)
    • FAIL [expected PASS] subtest: .flexbox > div 1 assert_equals:
      <div data-expected-width="70" data-expected-height="35">
      <p>xx xxx</p>
      <p>xx</p>
      </div>
      width expected 70 but got 46
    • FAIL [expected PASS] subtest: .flexbox > div 2 assert_equals:
      <div data-expected-width="50" data-expected-height="45">
      <p>xx xxx</p>
      <p>xx</p>
      </div>
      width expected 50 but got 46
    • FAIL [expected PASS] subtest: .flexbox > div 5 assert_equals:
      <div style="height: 30px" data-expected-width="70" data-expected-height="30">
      <p>xx xxx</p>
      <p>xx</p>
      </div>
      width expected 70 but got 46
    • FAIL [expected PASS] subtest: .flexbox > div 8 assert_equals:
      <div style="min-height: 40px" data-expected-width="70" data-expected-height="40">
      <p>xx xxx</p>
      <p>xx</p>
      </div>
      width expected 70 but got 46
    • FAIL [expected PASS] subtest: .flexbox > div 11 assert_equals:
      <div style="max-height: 20px" data-expected-width="70" data-expected-height="20">
      <p>xx xxx</p>
      <p>xx</p>
      </div>
      width expected 70 but got 46
  • TIMEOUT [expected OK] /fetch/local-network-access/iframe.tentative.https.window.html (#29605)
    • TIMEOUT [expected FAIL] subtest: public to local, grandparent navigates: failure. Test timed out
    • TIMEOUT [expected FAIL] subtest: public to local, grandparent navigates: success. Test timed out
  • OK /html/browsers/browsing-the-web/navigating-across-documents/initial-empty-document/load-pageshow-events-iframe-contentWindow.html (#28681)
    • FAIL [expected PASS] subtest: load & pageshow events do not fire on contentWindow of <iframe> element created with src='' assert_unreached: load should not be fired Reached unreachable code
  • OK /html/browsers/browsing-the-web/navigating-across-documents/initial-empty-document/load-pageshow-events-window-open.html (#28691)
    • PASS [expected FAIL] subtest: load event does not fire on window.open('about:blank')
  • 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/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 [expected ERROR] /html/semantics/scripting-1/the-script-element/defer-script/async-script.html?reload (#29054)
  • TIMEOUT /html/webappapis/scripting/events/compile-event-handler-settings-objects.html (#24246)
    • TIMEOUT [expected PASS] subtest: The entry settings object while executing the compiled callback via Web IDL's invoke must be that of the node document Test timed out
  • ERROR /resource-timing/content-type-parsing.html (#29131)
    • TIMEOUT [expected FAIL] subtest: mime-type 16 : text/html;charset=�gbk Test timed out
    • NOTRUN [expected TIMEOUT] subtest: mime-type 17 : text/html;charset= gbk
  • TIMEOUT [expected OK] /webmessaging/with-ports/018.html (#24485)
    • TIMEOUT [expected PASS] subtest: origin of the script that invoked the method, javascript: Test timed out
  • ERROR [expected OK] /workers/baseurl/alpha/import-in-moduleworker.html (#21315)
Stable unexpected results that are known to be intermittent (9)
  • FAIL [expected PASS] /css/css-text/white-space/trailing-other-space-separators-break-spaces-005.html (#25875)
  • ERROR [expected TIMEOUT] /html/browsers/browsing-the-web/history-traversal/persisted-user-state-restoration/scroll-restoration-fragment-scrolling-cross-origin.html (#28541)
  • TIMEOUT [expected OK] /html/browsers/browsing-the-web/navigating-across-documents/initial-empty-document/iframe-src-aboutblank-navigate-immediately.html (#29048)
    • TIMEOUT [expected FAIL] subtest: Navigating to a different document with link click Test timed out
    • NOTRUN [expected FAIL] subtest: Navigating to a different document with form submission
  • OK /html/browsers/browsing-the-web/navigating-across-documents/navigation-unload-same-origin.window.html (#29049)
    • FAIL [expected PASS] subtest: Same-origin navigation started from unload handler must be ignored assert_equals: expected "?pass" but got "?fail"
  • OK /html/browsers/the-window-object/open-close/creating_browsing_context_test_01.html (#29046)
    • PASS [expected FAIL] subtest: first argument: absolute url
  • OK /html/semantics/embedded-content/the-img-element/non-active-document.html (#21544)
    • 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/links/links-created-by-a-and-area-elements/htmlanchorelement_noopener.html (#23205)
    • FAIL [expected PASS] subtest: Check that rel=noopener with target=_self does a normal load this.openedWindow.findLink is not a function
  • OK /quirks/table-cell-width-calculation.html (#16650)
    • FAIL [expected PASS] subtest: The table cell width calculation quirk, the quirk shouldn't apply for generated content assert_equals: cell width, quirks mode expected "2px" but got "0px"
  • OK [expected ERROR] /workers/semantics/run-a-worker/003.html (#22765)

@bors-servo
Copy link
Contributor

☀️ Test successful - checks-github
Approved by: Loirooriol
Pushing 3257414 to master...

@bors-servo bors-servo merged commit 3257414 into servo:master Jun 29, 2023
@mrobinson mrobinson deleted the servo-2013-superset branch June 1, 2024 09:33
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.

3 participants