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

layout: Add initial support for text-transform #31396

Merged
merged 1 commit into from Feb 22, 2024

Conversation

mrobinson
Copy link
Member

@mrobinson mrobinson commented Feb 21, 2024

This adds basic support for text-transform in a way that is more
complete than legacy layout. There are still many missing elements of
proper text-transform support such as:

  1. Support for full-width and full-size-kana
  2. Support for grapheme based uppercasing, lowercasing, and
    capitalization. These are all done per-code point right now.
  3. Support for the language-specific SpecialCasing.txt cases for case
    mapping such as the ones for Irish and Turkish.

Co-authored-by: Rakhi Sharma atbrakhi@igalia.com


@atbrakhi atbrakhi added the T-full Do a full try run label Feb 22, 2024
@github-actions github-actions bot removed the T-full Do a full try run label Feb 22, 2024
Copy link

🔨 Triggering try run (#8001161989) for Linux WPT, MacOS, Windows, Android

Copy link

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

Flaky unexpected result (16)
  • 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 /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
  • 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 OK] /html/infrastructure/urls/base-url/document-base-url-window-initiator-is-not-opener.https.window.html (#30970)
  • TIMEOUT [expected OK] /html/interaction/focus/the-autofocus-attribute/document-with-fragment-top.html (#28259)
    • TIMEOUT [expected FAIL] subtest: Autofocus elements in top-level browsing context's documents with "top" fragments should work. Test timed out
  • OK [expected TIMEOUT] /html/interaction/focus/the-autofocus-attribute/supported-elements.html (#24145)
    • FAIL [expected TIMEOUT] subtest: Host element with delegatesFocus including no focusable descendants should be skipped promise_test: Unhandled rejection with value: object "TypeError: host.attachShadow is not a function"
    • FAIL [expected NOTRUN] subtest: Area element should support autofocus assert_equals: expected Element node <area></area> but got Element node <body>
      <img src="/media/poster.png" usemap="#map">
      <map n...
  • TIMEOUT [expected OK] /html/interaction/focus/the-autofocus-attribute/update-the-rendering.html (#24145)
    • TIMEOUT [expected FAIL] subtest: "Flush autofocus candidates" should be happen before a scroll event and animation frame callbacks Test timed out
  • OK [expected TIMEOUT] /html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-1.html (#22647)
    • FAIL [expected TIMEOUT] subtest: Check that popups from a sandboxed iframe escape the sandbox if
      allow-popups-to-escape-sandbox is used assert_equals: It came from a sandboxed iframe expected "null" but got "http://web-platform.test:8000"
  • OK [expected TIMEOUT] /html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-2.html (#22667)
    • FAIL [expected TIMEOUT] subtest: Check that popups from a sandboxed iframe escape the sandbox if
      allow-popups-to-escape-sandbox is used assert_equals: It came from a sandboxed iframe expected "null" but got "http://web-platform.test:8000"
  • OK [expected TIMEOUT] /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"
  • 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: 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 /resource-timing/test_resource_timing.https.html (#25216)
    • FAIL [expected PASS] subtest: PerformanceEntry has correct name, initiatorType, startTime, and duration (img) assert_equals: expected 30186752 but got 30186496
  • 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 (15)
  • TIMEOUT [expected OK] /_webgl/conformance/glsl/misc/shader-uniform-packing-restrictions.html (#28103)
    • 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: '500' should prefer '350 399' over '351 398'
    • PASS [expected FAIL] subtest: Matching font-stretch: '110%' should prefer '115% 116%' over '105%'
    • PASS [expected FAIL] subtest: Matching font-style: 'italic' should prefer 'oblique 5deg' over 'normal'
    • PASS [expected FAIL] subtest: Matching font-style: 'italic' should prefer 'normal' over 'oblique 0deg'
    • PASS [expected FAIL] subtest: Matching font-style: 'italic' should prefer 'oblique 0deg' over 'oblique -60deg -30deg'
    • PASS [expected FAIL] subtest: Matching font-style: 'oblique 20deg' should prefer 'oblique 10deg' over 'italic'
    • PASS [expected FAIL] subtest: Matching font-style: 'oblique 21deg' should prefer 'oblique -50deg -20deg' over 'oblique -40deg -30deg'
    • PASS [expected FAIL] subtest: Matching font-style: 'oblique 10deg' should prefer 'oblique 15deg 20deg' over 'oblique 30deg 60deg'
    • PASS [expected FAIL] subtest: Matching font-style: 'oblique -20deg' should prefer 'oblique -10deg' over 'italic'
  • PASS [expected FAIL] /css/css-text/text-transform/text-transform-full-size-kana-001.html (#21949)
  • PASS [expected FAIL] /css/css-text/text-transform/text-transform-full-size-kana-002.html (#21949)
  • PASS [expected FAIL] /css/css-text/text-transform/text-transform-full-size-kana-003.html (#21949)
  • PASS [expected FAIL] /css/css-text/text-transform/text-transform-full-size-kana-004.html (#21949)
  • OK /css/cssom-view/MediaQueryList-addListener-removeListener.html (#24569)
    • PASS [expected FAIL] subtest: listeners are called correct number of times
  • 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)
    • FAIL [expected PASS] subtest: load event does not fire on window.open('about:blank') assert_unreached: load should not be fired Reached unreachable code
  • TIMEOUT [expected OK] /html/browsers/browsing-the-web/navigating-across-documents/javascript-url-referrer.window.html (#29081)
    • TIMEOUT [expected PASS] subtest: no-referrer referrer policy used to create the starting page Test timed out
  • 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 ""
  • OK /html/browsers/browsing-the-web/navigating-across-documents/navigation-unload-same-origin.window.html (#29049)
    • PASS [expected FAIL] subtest: Same-origin navigation started from unload handler must be ignored
  • OK /html/semantics/forms/historical.html (#28568)
    • FAIL [expected PASS] subtest: <input name=isindex> should not be supported assert_regexp_match: expected object "/?isindex=x$/" but got "about:blank"
  • TIMEOUT /resource-timing/test_resource_timing.html (#25720)
    • PASS [expected FAIL] subtest: PerformanceEntry has correct name, initiatorType, startTime, and duration (img)
  • 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 (59)
  • PASS [expected FAIL] /css/CSS2/text/text-transform-001.xht
  • PASS [expected FAIL] /css/CSS2/text/text-transform-applies-to-001.xht
  • PASS [expected FAIL] /css/CSS2/text/text-transform-applies-to-002.xht
  • PASS [expected FAIL] /css/CSS2/text/text-transform-applies-to-003.xht
  • PASS [expected FAIL] /css/CSS2/text/text-transform-applies-to-005.xht
  • PASS [expected FAIL] /css/CSS2/text/text-transform-applies-to-006.xht
  • PASS [expected FAIL] /css/CSS2/text/text-transform-applies-to-007.xht
  • PASS [expected FAIL] /css/CSS2/text/text-transform-applies-to-008.xht
  • PASS [expected FAIL] /css/CSS2/text/text-transform-applies-to-009.xht
  • PASS [expected FAIL] /css/CSS2/text/text-transform-applies-to-010.xht
  • PASS [expected FAIL] /css/CSS2/text/text-transform-applies-to-011.xht
  • PASS [expected FAIL] /css/CSS2/text/text-transform-applies-to-014.xht
  • PASS [expected FAIL] /css/CSS2/text/text-transform-applies-to-015.xht
  • PASS [expected FAIL] /css/CSS2/text/text-transform-cap-001.xht
  • PASS [expected FAIL] /css/CSS2/text/text-transform-cap-002.xht
  • OK /css/css-text/inheritance.html
    • PASS [expected FAIL] subtest: Property text-transform has initial value none
    • PASS [expected FAIL] subtest: Property text-transform inherits
  • OK /css/css-text/parsing/text-transform-computed.html
    • PASS [expected FAIL] subtest: Property text-transform value 'none'
    • PASS [expected FAIL] subtest: Property text-transform value 'capitalize'
    • PASS [expected FAIL] subtest: Property text-transform value 'uppercase'
    • PASS [expected FAIL] subtest: Property text-transform value 'lowercase'
    • PASS [expected FAIL] subtest: Property text-transform value 'full-width'
    • PASS [expected FAIL] subtest: Property text-transform value 'full-size-kana'
    • PASS [expected FAIL] subtest: Property text-transform value 'capitalize full-width'
    • PASS [expected FAIL] subtest: Property text-transform value 'full-width full-size-kana'
    • PASS [expected FAIL] subtest: Property text-transform value 'uppercase full-width full-size-kana'
  • OK /css/css-text/parsing/text-transform-valid.html
    • PASS [expected FAIL] subtest: e.style['text-transform'] = "none" should set the property value
    • PASS [expected FAIL] subtest: e.style['text-transform'] = "capitalize" should set the property value
    • PASS [expected FAIL] subtest: e.style['text-transform'] = "uppercase" should set the property value
    • PASS [expected FAIL] subtest: e.style['text-transform'] = "lowercase" should set the property value
    • PASS [expected FAIL] subtest: e.style['text-transform'] = "full-width" should set the property value
    • PASS [expected FAIL] subtest: e.style['text-transform'] = "full-size-kana" should set the property value
    • PASS [expected FAIL] subtest: e.style['text-transform'] = "capitalize full-width" should set the property value
    • PASS [expected FAIL] subtest: e.style['text-transform'] = "uppercase full-size-kana" should set the property value
    • PASS [expected FAIL] subtest: e.style['text-transform'] = "full-width full-size-kana" should set the property value
    • PASS [expected FAIL] subtest: e.style['text-transform'] = "full-width lowercase" should set the property value
    • And 8 more unexpected results...
  • FAIL [expected PASS] /css/css-text/text-transform/text-transform-capitalize-033.html
  • PASS [expected FAIL] /css/css-text/text-transform/text-transform-full-size-kana-008.html
  • FAIL [expected PASS] /css/css-text/text-transform/text-transform-lowercase-101.xht
  • FAIL [expected PASS] /css/css-text/text-transform/text-transform-lowercase-102.xht
  • FAIL [expected PASS] /css/css-text/text-transform/text-transform-uppercase-101.xht
  • FAIL [expected PASS] /css/css-text/text-transform/text-transform-upperlower-001.html
  • FAIL [expected PASS] /css/css-text/text-transform/text-transform-upperlower-002.html
  • FAIL [expected PASS] /css/css-text/text-transform/text-transform-upperlower-003.html
  • FAIL [expected PASS] /css/css-text/text-transform/text-transform-upperlower-004.html
  • FAIL [expected PASS] /css/css-text/text-transform/text-transform-upperlower-005.html
  • FAIL [expected PASS] /css/css-text/text-transform/text-transform-upperlower-006.html
  • FAIL [expected PASS] /css/css-text/text-transform/text-transform-upperlower-007.html
  • FAIL [expected PASS] /css/css-text/text-transform/text-transform-upperlower-008.html
  • FAIL [expected PASS] /css/css-text/text-transform/text-transform-upperlower-009.html
  • FAIL [expected PASS] /css/css-text/text-transform/text-transform-upperlower-010.html
  • FAIL [expected PASS] /css/css-text/text-transform/text-transform-upperlower-014.html
  • FAIL [expected PASS] /css/css-text/text-transform/text-transform-upperlower-015.html
  • FAIL [expected PASS] /css/css-text/text-transform/text-transform-upperlower-017.html
  • FAIL [expected PASS] /css/css-text/text-transform/text-transform-upperlower-018.html
  • FAIL [expected PASS] /css/css-text/text-transform/text-transform-upperlower-019.html
  • FAIL [expected PASS] /css/css-text/text-transform/text-transform-upperlower-020.html
  • FAIL [expected PASS] /css/css-text/text-transform/text-transform-upperlower-021.html
  • FAIL [expected PASS] /css/css-text/text-transform/text-transform-upperlower-022.html
  • FAIL [expected PASS] /css/css-text/text-transform/text-transform-upperlower-023.html
  • FAIL [expected PASS] /css/css-text/text-transform/text-transform-upperlower-024.html
  • FAIL [expected PASS] /css/css-text/text-transform/text-transform-upperlower-025.html
  • FAIL [expected PASS] /css/css-text/text-transform/text-transform-upperlower-028.html
  • FAIL [expected PASS] /css/css-text/text-transform/text-transform-upperlower-029.html
  • FAIL [expected PASS] /css/css-text/text-transform/text-transform-upperlower-030.html
  • FAIL [expected PASS] /css/css-text/text-transform/text-transform-upperlower-031.html
  • FAIL [expected PASS] /css/css-text/text-transform/text-transform-upperlower-032.html
  • FAIL [expected PASS] /css/css-text/text-transform/text-transform-upperlower-033.html
  • FAIL [expected PASS] /css/css-text/text-transform/text-transform-upperlower-034.html
  • FAIL [expected PASS] /css/css-text/text-transform/text-transform-upperlower-035.html
  • FAIL [expected PASS] /css/css-text/text-transform/text-transform-upperlower-101.html
  • FAIL [expected PASS] /css/css-text/text-transform/text-transform-upperlower-102.html
  • FAIL [expected PASS] /css/css-text/text-transform/text-transform-upperlower-103.html
  • FAIL [expected PASS] /css/css-text/text-transform/text-transform-upperlower-104.html
  • FAIL [expected PASS] /css/css-text/text-transform/text-transform-upperlower-105.html
  • OK /css/cssom/serialize-values.html
    • PASS [expected FAIL] subtest: text-transform: capitalize
    • PASS [expected FAIL] subtest: text-transform: uppercase
    • PASS [expected FAIL] subtest: text-transform: lowercase
    • PASS [expected FAIL] subtest: text-transform: none
    • PASS [expected FAIL] subtest: text-transform: inherit
  • TIMEOUT [expected OK] /html/semantics/embedded-content/media-elements/video_loop_base.html
    • NOTRUN [expected PASS] subtest: Check if video.loop is set to true that expecting the seeking event is fired more than once

Copy link

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

Flaky unexpected result (17)
  • 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 FAIL] /css/css-animations/animation-delay-010.html (#26573)
  • OK /css/cssom-view/MediaQueryList-addListener-removeListener.html (#24569)
    • PASS [expected FAIL] subtest: listeners are called correct number of times
  • OK /html/browsers/browsing-the-web/navigating-across-documents/empty-iframe-load-event.html (#29066)
    • PASS [expected FAIL] subtest: Check execution order on load handler
    • PASS [expected FAIL] subtest: Check execution order from nested timeout
  • OK /html/browsers/browsing-the-web/navigating-across-documents/initial-empty-document/load-pageshow-events-iframe-contentWindow.html (#28681)
    • PASS [expected FAIL] subtest: load & pageshow events do not fire on contentWindow of <iframe> element created with src=''
    • PASS [expected FAIL] subtest: load & pageshow events do not fire on contentWindow of <iframe> element created with src='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/replace-before-load/a-click.html (#28697)
  • OK /html/browsers/history/the-history-interface/traverse_the_history_3.html (#21383)
    • PASS [expected FAIL] subtest: Multiple history traversals, last would be aborted
  • FAIL [expected CRASH] /html/canvas/element/manual/text/canvas.2d.disconnected.html (#30063)
  • CRASH [expected OK] /html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-3.html (#24066)
  • TIMEOUT [expected OK] /html/semantics/forms/form-submission-0/reparent-form-during-planned-navigation-task.html (#29724)
    • TIMEOUT [expected PASS] subtest: reparent-form-during-planned-navigation-task Test timed out
  • OK /html/semantics/forms/form-submission-0/text-plain.window.html (#28687)
    • PASS [expected FAIL] subtest: text/plain: \r\n in filename (formdata event)
  • OK /html/semantics/forms/form-submission-0/urlencoded2.window.html (#28687)
    • PASS [expected FAIL] subtest: application/x-www-form-urlencoded: double quote in name (formdata event)
  • OK /html/syntax/parsing/DOMContentLoaded-defer.html (#21550)
    • PASS [expected FAIL] subtest: The end: DOMContentLoaded and defer scripts
  • TIMEOUT /resource-timing/test_resource_timing.https.html (#25216)
    • FAIL [expected PASS] subtest: PerformanceEntry has correct name, initiatorType, startTime, and duration (img) assert_equals: expected 7929088 but got 7928832
  • 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
Stable unexpected results that are known to be intermittent (8)
  • CRASH [expected OK] /_mozilla/mozilla/service-workers/service-worker-registration.https.html (#31036)
  • TIMEOUT [expected OK] /_webgl/conformance/glsl/misc/shader-uniform-packing-restrictions.html (#28103)
    • NOTRUN [expected PASS] subtest: Overall test
  • OK /css/cssom-view/scroll-behavior-smooth-navigation.html (#29564)
    • FAIL [expected PASS] subtest: Smooth scrolling while doing history navigation. assert_not_equals: Shouldn't be scrolled to top anymore. got disallowed value 0
  • 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"
  • CRASH [expected TIMEOUT] /html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-2.html (#22667)
  • OK /html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-2.html (#22154)
    • 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 /html/semantics/links/links-created-by-a-and-area-elements/htmlanchorelement_noopener.html (#23205)
    • PASS [expected FAIL] subtest: Check that rel=noopener with target=_self does a normal load
  • TIMEOUT /resource-timing/test_resource_timing.html (#25720)
    • PASS [expected FAIL] subtest: PerformanceEntry has correct name, initiatorType, startTime, and duration (img)

Copy link

⚠️ Try run (#8001161989) failed.

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

🔨 Triggering try run (#8003757910) for Linux WPT

Copy link

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

Flaky unexpected result (18)
  • 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 '500' over '350 399'
    • PASS [expected FAIL] subtest: Matching font-weight: '400' should prefer '501 550' over '502 560'
    • PASS [expected FAIL] subtest: Matching font-weight: '430' should prefer '420 440' over '450 460'
    • PASS [expected FAIL] subtest: Matching font-weight: '500' should prefer '350 399' over '351 398'
    • PASS [expected FAIL] subtest: Matching font-weight: '399' should prefer '400' over '450 460'
    • PASS [expected FAIL] subtest: Matching font-style: 'oblique 21deg' should prefer 'italic' over 'oblique 0deg'
    • PASS [expected FAIL] subtest: Matching font-style: 'oblique 10deg' should prefer 'oblique 10deg' over 'oblique 5deg'
    • PASS [expected FAIL] subtest: Matching font-style: 'oblique 0deg' should prefer 'oblique 30deg 60deg' over 'oblique 40deg 50deg'
    • PASS [expected FAIL] subtest: Matching font-style: 'oblique -21deg' should prefer 'italic' over 'oblique 0deg'
  • OK /css/cssom-view/MediaQueryList-addListener-removeListener.html (#24569)
    • PASS [expected FAIL] subtest: listeners are called correct number of times
  • TIMEOUT /css/cssom-view/MediaQueryList-extends-EventTarget.html (#25269)
    • FAIL [expected PASS] subtest: onchange removes listener assert_equals: expected 1 but got 0
  • OK /css/cssom-view/matchMedia.html
    • PASS [expected FAIL] subtest: iframe.matchMedia("(width: 200px)") matches
  • TIMEOUT /fetch/metadata/generated/element-img-environment-change.sub.html (#30111)
    • PASS [expected FAIL] subtest: sec-fetch-site - Not sent to non-trustworthy same-origin destination, no attributes
  • OK /html/browsers/browsing-the-web/navigating-across-documents/initial-empty-document/load-pageshow-events-window-open.html (#28691)
    • FAIL [expected PASS] subtest: load event does not fire on window.open('about:blank') assert_unreached: load should not be fired Reached unreachable code
  • 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)
    • PASS [expected FAIL] subtest: aElement.click() before the load event must NOT replace
  • 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/interaction/focus/the-autofocus-attribute/autofocus-dialog.html (#29087)
    • TIMEOUT [expected FAIL] subtest: <dialog>-contained autofocus element gets focused when the dialog is shown Test timed out
  • OK /html/interaction/focus/the-autofocus-attribute/document-with-fragment-valid.html (#28259)
    • PASS [expected FAIL] subtest: Autofocus elements in top-level browsing context's documents with URL fragments should be skipped.
  • OK [expected TIMEOUT] /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-2.html (#22154)
  • TIMEOUT /resource-timing/nested-context-navigations-iframe.html (#24311)
    • TIMEOUT [expected PASS] subtest: Test that cross-site iframe navigations are not observable by the parent, even after history navigations by the parent Test timed out
    • 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 TIMEOUT] subtest: Test that iframe refreshes are not observable by the parent
  • OK [expected ERROR] /workers/constructors/Worker/Worker-constructor.html (#22991)
Stable unexpected results that are known to be intermittent (17)
  • TIMEOUT [expected OK] /_webgl/conformance/glsl/misc/shader-uniform-packing-restrictions.html (#28103)
    • NOTRUN [expected PASS] subtest: Overall test
  • PASS [expected FAIL] /css/css-text/text-transform/text-transform-full-size-kana-001.html (#21949)
  • PASS [expected FAIL] /css/css-text/text-transform/text-transform-full-size-kana-002.html (#21949)
  • PASS [expected FAIL] /css/css-text/text-transform/text-transform-full-size-kana-003.html (#21949)
  • PASS [expected FAIL] /css/css-text/text-transform/text-transform-full-size-kana-004.html (#21949)
  • 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
  • TIMEOUT [expected OK] /html/browsers/browsing-the-web/navigating-across-documents/javascript-url-referrer.window.html (#29081)
    • TIMEOUT [expected FAIL] subtest: origin referrer policy used to create the starting page Test timed out
    • NOTRUN [expected PASS] 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 ""
  • OK /html/browsers/browsing-the-web/navigating-across-documents/navigation-unload-same-origin.window.html (#29049)
    • PASS [expected FAIL] subtest: Same-origin navigation started from unload handler must be ignored
  • OK /html/browsers/history/the-history-interface/traverse_the_history_5.html (#21383)
    • PASS [expected FAIL] subtest: Multiple history traversals, last would be aborted
  • TIMEOUT [expected OK] /html/infrastructure/urls/base-url/document-base-url-window-initiator-is-not-opener.https.window.html (#30970)
  • CRASH [expected TIMEOUT] /html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-1.html (#22647)
  • OK [expected TIMEOUT] /html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-2.html (#22667)
    • FAIL [expected TIMEOUT] subtest: Check that popups from a sandboxed iframe escape the sandbox if
      allow-popups-to-escape-sandbox is used assert_equals: It came from a sandboxed iframe expected "null" but got "http://web-platform.test:8000"
  • OK [expected ERROR] /html/semantics/scripting-1/the-script-element/defer-script/async-script.html?reload (#29054)
  • 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:
  • TIMEOUT [expected OK] /webmessaging/without-ports/017.html (#24486)
    • TIMEOUT [expected PASS] subtest: origin of the script that invoked the method, about:blank Test timed out
Stable unexpected results (10)
  • PASS [expected FAIL] /_mozilla/css/text_transform_lowercase_a.html
  • PASS [expected FAIL] /_mozilla/css/text_transform_uppercase_a.html
  • PASS [expected FAIL] /css/CSS2/css1/c545-txttrans-000.xht
  • PASS [expected FAIL] /css/CSS2/text/text-transform-bicameral-008.xht
  • FAIL [expected PASS] /css/CSS2/text/text-transform-bicameral-011.xht
  • PASS [expected FAIL] /css/CSS2/text/text-transform-bicameral-012.xht
  • FAIL [expected PASS] /css/css-text/text-transform/text-transform-capitalize-033.html
  • PASS [expected FAIL] /css/css-text/text-transform/text-transform-full-size-kana-008.html
  • PASS [expected FAIL] /css/css-text/writing-system/writing-system-text-transform-001.html
  • OK /css/cssom/serialize-values.html
    • PASS [expected FAIL] subtest: text-transform: capitalize
    • PASS [expected FAIL] subtest: text-transform: uppercase
    • PASS [expected FAIL] subtest: text-transform: lowercase
    • PASS [expected FAIL] subtest: text-transform: none
    • PASS [expected FAIL] subtest: text-transform: inherit

Copy link

⚠️ Try run (#8003757910) failed.

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

🔨 Triggering try run (#8004887916) for Linux WPT

Copy link

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

Flaky unexpected result (18)
  • TIMEOUT [expected OK] /FileAPI/url/url-charset.window.html (#26997)
    • TIMEOUT [expected PASS] subtest: Blob charset should override any auto-detected charset. Test timed out
    • TIMEOUT [expected PASS] subtest: Blob charset should override <meta charset>. Test timed out
  • FAIL [expected PASS] /_mozilla/css/iframe/hide_and_show.html (#15265)
  • 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
  • TIMEOUT [expected PASS] /css/css-color/animation/opacity-animation-ending-correctly-001.html (#29215)
  • TIMEOUT [expected OK] /custom-elements/reactions/customized-builtins/HTMLMediaElement.html (#31014)
  • TIMEOUT [expected OK] /fetch/content-encoding/gzip/big-gzip-body.https.any.html
    • TIMEOUT [expected FAIL] subtest: large gzip data should be decompressed successfully with byte stream Test timed out
  • TIMEOUT /fetch/metadata/generated/element-img-environment-change.https.sub.html (#30111)
    • FAIL [expected TIMEOUT] subtest: sec-fetch-site - Cross-site, no attributes promise_test: Unhandled rejection with value: object "Error: Failed to query for recorded headers."
    • FAIL [expected NOTRUN] subtest: sec-fetch-site - Same site, no attributes promise_test: Unhandled rejection with value: object "Error: Failed to query for recorded headers."
    • FAIL [expected NOTRUN] subtest: sec-fetch-site - Same-Origin -> Cross-Site -> Same-Origin redirect, no attributes promise_test: Unhandled rejection with value: object "Error: Failed to query for recorded headers."
    • TIMEOUT [expected NOTRUN] subtest: sec-fetch-site - Same-Origin -> Same-Site -> Same-Origin redirect, no attributes Test timed out
  • 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 ""
    • FAIL [expected PASS] subtest: DE0D 0041 set in href="" targeting a frame and clicked assert_equals: expected "\ufffdA" but got ""
  • OK /html/browsers/browsing-the-web/navigating-across-documents/navigation-unload-cross-origin.sub.window.html (#29056)
    • PASS [expected FAIL] subtest: Cross-origin navigation started from unload handler must be ignored
  • OK [expected TIMEOUT] /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-2.html (#22154)
  • OK /html/semantics/forms/form-submission-0/text-plain.window.html (#28687)
    • PASS [expected FAIL] subtest: text/plain: Basic test (formdata event)
  • OK /html/semantics/forms/form-submission-0/urlencoded2.window.html (#28687)
    • PASS [expected FAIL] subtest: application/x-www-form-urlencoded: 0x00 in name (formdata event)
    • PASS [expected FAIL] subtest: application/x-www-form-urlencoded: double quote in filename (formdata event)
  • TIMEOUT /resource-timing/test_resource_timing.html (#25720)
    • 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
  • 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 (13)
  • TIMEOUT [expected OK] /_webgl/conformance/glsl/misc/shader-uniform-packing-restrictions.html (#28103)
    • 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: '500' should prefer '501 550' over '502 560'
    • PASS [expected FAIL] subtest: Matching font-style: 'normal' should prefer 'oblique -50deg -20deg' over 'oblique -40deg -30deg'
    • PASS [expected FAIL] subtest: Matching font-style: 'italic' should prefer 'oblique 5deg 10deg' over 'oblique 5deg'
    • 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 10deg' should prefer 'oblique 15deg 20deg' over 'oblique 30deg 60deg'
  • PASS [expected FAIL] /css/css-text/text-transform/text-transform-full-size-kana-001.html (#21949)
  • PASS [expected FAIL] /css/css-text/text-transform/text-transform-full-size-kana-002.html (#21949)
  • PASS [expected FAIL] /css/css-text/text-transform/text-transform-full-size-kana-003.html (#21949)
  • PASS [expected FAIL] /css/css-text/text-transform/text-transform-full-size-kana-004.html (#21949)
  • 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)
    • FAIL [expected PASS] subtest: load event does not fire on window.open('about:blank') assert_unreached: load should not be fired Reached unreachable code
  • TIMEOUT [expected OK] /html/browsers/browsing-the-web/navigating-across-documents/javascript-url-referrer.window.html (#29081)
    • TIMEOUT [expected PASS] subtest: no-referrer referrer policy used to create the starting page Test timed out
  • 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 OK] /html/infrastructure/urls/base-url/document-base-url-window-initiator-is-not-opener.https.window.html (#30970)
  • OK [expected TIMEOUT] /html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-1.html (#22647)
    • FAIL [expected TIMEOUT] subtest: Check that popups from a sandboxed iframe escape the sandbox if
      allow-popups-to-escape-sandbox is used assert_equals: It came from a sandboxed iframe expected "null" but got "http://web-platform.test:8000"
  • TIMEOUT /resource-timing/test_resource_timing.https.html (#25216)
    • FAIL [expected PASS] subtest: PerformanceEntry has correct name, initiatorType, startTime, and duration (img) assert_equals: expected 8756224 but got 8756480
Stable unexpected results (1)
  • FAIL [expected PASS] /css/css-text/text-transform/text-transform-capitalize-033.html

Copy link

⚠️ Try run (#8004887916) failed.

This adds basic support for `text-transform` in a way that is more
complete than legacy layout. There are still many missing elements of
proper `text-transform` support such as:

1. Support for `full-width` and `full-size-kana`
2. Support for grapheme based uppercasing, lowercasing, and
   capitalization. These are all done per-code point right now.
3. Support for the language-specific `SpecialCasing.txt` cases for case
   mapping such as the ones for Irish and Turkish.

Co-authored-by: Rakhi Sharma <atbrakhi@igalia.com>
@mrobinson mrobinson added this pull request to the merge queue Feb 22, 2024
Merged via the queue into servo:main with commit d8b3265 Feb 22, 2024
9 checks passed
@mrobinson mrobinson deleted the text-transform branch February 22, 2024 15:14
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.

Add support for text-transform CSS property
2 participants