Skip to content

Script: Enable SVG presentation attributes with updated stylo dependency - #45405

Merged
Loirooriol merged 8 commits into
servo:mainfrom
mu-mostafa98:svg-presentationall-attributes
Jul 11, 2026
Merged

Loirooriol merged 8 commits into
servo:mainfrom
mu-mostafa98:svg-presentationall-attributes

Conversation

@mu-mostafa98

Copy link
Copy Markdown
Contributor
  • Add presentation attribute mappings for svg properties.
  • Point stylo to PR which enables SVG CSS properties
    for Servo.

@TimvdLippe TimvdLippe added the T-linux-wpt Do a try run of the WPT label Jun 5, 2026
@github-actions github-actions Bot removed the T-linux-wpt Do a try run of the WPT label Jun 5, 2026
@github-actions

github-actions Bot commented Jun 5, 2026

Copy link
Copy Markdown

🔨 Triggering try run (#26994757902) for Linux (WPT)

@github-actions

github-actions Bot commented Jun 5, 2026

Copy link
Copy Markdown

Test results for linux-wpt from try job (#26994757902):

Flaky unexpected result (48)
  • OK /_webgl/conformance/textures/misc/texture-upload-size.html (#21770)
    • FAIL [expected PASS] subtest: WebGL test #45

      assert_true: Texture was smaller than the expected size 2x2 expected true got false
      

    • FAIL [expected PASS] subtest: WebGL test #47

      assert_true: getError expected: INVALID_VALUE. Was NO_ERROR : when calling texSubImage2D with the same texture upload with offset 1, 1 expected true got false
      

    • FAIL [expected PASS] subtest: WebGL test #49

      assert_true: Texture was smaller than the expected size 2x2 expected true got false
      

    • FAIL [expected PASS] subtest: WebGL test #51

      assert_true: getError expected: INVALID_VALUE. Was NO_ERROR : when calling texSubImage2D with the same texture upload with offset 1, 1 expected true got false
      

    • PASS [expected FAIL] subtest: WebGL test #53
    • PASS [expected FAIL] subtest: WebGL test #55
    • PASS [expected FAIL] subtest: WebGL test #57
    • PASS [expected FAIL] subtest: WebGL test #59
    • FAIL [expected PASS] subtest: WebGL test #61

      assert_true: Texture was smaller than the expected size 2x2 expected true got false
      

    • FAIL [expected PASS] subtest: WebGL test #63

      assert_true: getError expected: INVALID_VALUE. Was NO_ERROR : when calling texSubImage2D with the same texture upload with offset 1, 1 expected true got false
      

    • And 18 more unexpected results...
  • CRASH [expected OK] /content-security-policy/meta/sandbox-iframe.html (#43478)
  • OK /cookies/partitioned-cookies/partitioned-cookies-samesite-attribute.https.html (#45255)
    • FAIL [expected PASS] subtest: In embedded cross-site contexts, partitioned cookies can only be set with explicit SameSite=None

      assert_equals: expected 0 but got 3
      

  • FAIL [expected PASS] /css/css-backgrounds/background-size-042.html
  • OK /css/css-cascade/layer-cssom-order-reverse.html (#36094)
    • FAIL [expected PASS] subtest: Delete layer invalidates @font-face

      assert_equals: expected "220px" but got "133px"
      

  • OK /css/css-fonts/generic-family-keywords-003.html (#38994)
    • PASS [expected FAIL] subtest: @font-face matching for quoted and unquoted monospace (drawing text in a canvas)
    • PASS [expected FAIL] subtest: @font-face matching for quoted and unquoted system-ui (drawing text in a canvas)
    • PASS [expected FAIL] subtest: @font-face matching for quoted and unquoted generic(kai) (drawing text in a canvas)
    • PASS [expected FAIL] subtest: @font-face matching for quoted and unquoted generic(khmer-mul) (drawing text in a canvas)
    • PASS [expected FAIL] subtest: @font-face matching for quoted and unquoted generic(nastaliq) (drawing text in a canvas)
    • PASS [expected FAIL] subtest: @font-face matching for quoted and unquoted ui-monospace (drawing text in a canvas)
  • OK /dom/nodes/moveBefore/iframe-document-preserve.window.html (#43152)
    • FAIL [expected PASS] subtest: moveBefore(): cross-origin iframe is preserved: remove self

      assert_equals: iframe does not fire a second load event expected 1 but got 0
      

  • OK /fetch/metadata/generated/css-font-face.https.sub.tentative.html
    • PASS [expected FAIL] subtest: sec-fetch-mode
    • FAIL [expected PASS] subtest: sec-fetch-dest

      promise_test: Unhandled rejection with value: object "Error: Failed to query for recorded headers."
      

    • PASS [expected FAIL] subtest: sec-fetch-user
  • CRASH [expected OK] /html/anonymous-iframe/worker-cookies.tentative.https.window.html?worker=dedicated_worker
  • CRASH [expected OK] /html/browsers/windows/browsing-context-names/choose-_parent-004.html
  • OK /html/semantics/forms/form-submission-0/jsurl-form-submit.tentative.html (#36489)
    • PASS [expected FAIL] subtest: Verifies that form submissions scheduled inside javascript: urls take precedence over the javascript: url's return value.
  • CRASH [expected ERROR] /html/semantics/forms/the-select-element/customizable-select/select-appearance-button-after-span.html
  • OK /html/webappapis/user-prompts/print-during-unload.html (#35944)
    • FAIL [expected PASS] subtest: print() during unload

      assert_array_equals: expected property 1 to be "destination" but got "error: window.print is not a function" (expected array ["start", "destination"] got ["start", "error: window.print is not a function"])
      

  • OK /navigation-timing/test-navigation-type-reload.html (#33334)
    • PASS [expected FAIL] subtest: Reload domComplete > Original domComplete
    • PASS [expected FAIL] subtest: Reload domContentLoadedEventEnd > Original domContentLoadedEventEnd
    • PASS [expected FAIL] subtest: Reload domContentLoadedEventStart > Original domContentLoadedEventStart
    • PASS [expected FAIL] subtest: Reload domInteractive > Original domInteractive
    • PASS [expected FAIL] subtest: Reload fetchStart > Original fetchStart
    • PASS [expected FAIL] subtest: Reload loadEventEnd > Original loadEventEnd
    • PASS [expected FAIL] subtest: Reload loadEventStart > Original loadEventStart
  • PASS [expected FAIL] /png/apng/fcTL-dispose-none.html (#41817)
  • OK /resource-timing/buffer-full-add-then-clear.html (#40819)
    • FAIL [expected PASS] subtest: Test that if the buffer is cleared after entries were added to the secondary buffer, those entries make it into the primary one

      assert_equals: Number of entries does not match the expected value. expected 3 but got 0
      

  • OK [expected TIMEOUT] /trusted-types/trusted-types-navigation.html?01-05 (#38975)
    • PASS [expected TIMEOUT] subtest: Navigate a window via anchor with javascript:-urls in report-only mode.
    • PASS [expected NOTRUN] subtest: Navigate a window via anchor with javascript:-urls w/ default policy in report-only mode.
    • PASS [expected NOTRUN] subtest: Navigate a frame via anchor with javascript:-urls in enforcing mode.
  • TIMEOUT /trusted-types/trusted-types-navigation.html?06-10 (#37920)
    • TIMEOUT [expected FAIL] subtest: Navigate a frame via anchor with javascript:-urls in report-only mode.

      Test timed out
      

    • NOTRUN [expected TIMEOUT] subtest: Navigate a frame via anchor with javascript:-urls w/ default policy in report-only mode.
  • TIMEOUT /trusted-types/trusted-types-navigation.html?31-35 (#38034)
    • TIMEOUT [expected PASS] subtest: Navigate a frame via form-submission with javascript:-urls in report-only mode.

      Test timed out
      

    • NOTRUN [expected TIMEOUT] subtest: Navigate a frame via form-submission with javascript:-urls w/ default policy in report-only mode.
  • OK /visual-viewport/resize-event-order.html (#41981)
    • PASS [expected FAIL] subtest: Popup: DOMWindow resize fired before VisualViewport.
  • TIMEOUT [expected OK] /webstorage/localstorage-about-blank-3P-iframe-opens-3P-window.partitioned.html (#29053)
    • TIMEOUT [expected FAIL] subtest: StorageKey: test 3P about:blank window opened from a 3P iframe

      Test timed out
      

  • CRASH [expected OK] /workers/SharedWorker-exception-propagation.html
  • CRASH [expected ERROR] /workers/Worker-base64.any.sharedworker.html
  • CRASH [expected OK] /workers/Worker-timeout-increasing-order.html
  • CRASH [expected OK] /workers/WorkerGlobalScope_requestAnimationFrame.worker.html
  • CRASH [expected OK] /workers/WorkerLocation_search_fragment.htm
  • CRASH [expected OK] /workers/constructors/SharedWorker/Infinity-arguments.html
  • CRASH [expected OK] /workers/constructors/SharedWorker/dummy-shared-worker.html
  • CRASH [expected OK] /workers/constructors/SharedWorker/null-arguments.html
  • CRASH [expected OK] /workers/constructors/SharedWorker/same-origin.html
  • CRASH [expected OK] /workers/constructors/SharedWorker/unresolvable-url.html
  • CRASH [expected OK] /workers/constructors/Worker/same-origin.html
  • CRASH [expected OK] /workers/constructors/Worker/terminate.html
  • CRASH [expected TIMEOUT] /workers/data-url-shared.html
  • CRASH [expected OK] /workers/examples/fetch_tests_from_worker.html
  • CRASH [expected OK] /workers/examples/general.worker.html
  • CRASH [expected ERROR] /workers/examples/onconnect.any.sharedworker.html
  • CRASH [expected OK] /workers/interfaces/DedicatedWorkerGlobalScope/postMessage/event-ports-dedicated.html
  • CRASH [expected OK] /workers/interfaces/SharedWorkerGlobalScope/onconnect.html
  • CRASH [expected OK] /workers/interfaces/WorkerGlobalScope/location/worker-separate-file.html
  • CRASH [expected ERROR] /workers/interfaces/WorkerGlobalScope/self.any.serviceworker.html
  • CRASH [expected OK] /workers/interfaces/WorkerUtils/navigator/002.html
  • CRASH [expected OK] /workers/modules/dedicated-worker-import-data-url-cross-origin.html
  • CRASH [expected OK] /workers/modules/shared-worker-import-failure.html
  • CRASH [expected OK] /workers/same-site-cookies/first-party.none.tentative.https.window.html
  • CRASH [expected OK] /workers/same-site-cookies/third-party.default.tentative.sub.https.window.html
  • CRASH [expected OK] /xhr/access-control-basic-allow-preflight-cache-timeout.any.html
  • CRASH [expected OK] /xhr/access-control-basic-post-with-non-cors-safelisted-content-type.htm
Stable unexpected results that are known to be intermittent (16)
  • OK /beacon/beacon-basic.https.window.html (#41723)
    • FAIL [expected PASS] subtest: Payload size restriction should be accumulated: type = blob

      assert_false: expected false got true
      

  • TIMEOUT /fetch/metadata/generated/css-images.sub.tentative.html (#29047)
    • TIMEOUT [expected PASS] subtest: background-image sec-fetch-storage-access - Not sent to non-trustworthy same-site destination

      Test timed out
      

  • 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)
    • PASS [expected FAIL] subtest: Cross-origin navigation started from unload handler must be ignored
  • TIMEOUT [expected OK] /html/browsers/browsing-the-web/navigating-across-documents/replace-before-load/form-submit.html (#44028)
  • OK /html/browsers/history/the-history-interface/traverse_the_history_4.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])
      

  • CRASH [expected TIMEOUT] /html/browsers/history/the-location-interface/location_replace_session_history.html (#41896)
  • OK /html/semantics/scripting-1/the-script-element/module/dynamic-import/blob-url.any.html (#33948)
    • PASS [expected FAIL] subtest: Different blob URLs pointing to the same blob resolve to different modules
    • FAIL [expected PASS] subtest: Revoking a blob URL immediately after calling import will not fail

      promise_test: Unhandled rejection with value: object "TypeError: Module fetching failed"
      

  • OK /html/semantics/scripting-1/the-script-element/module/dynamic-import/blob-url.any.worker-module.html (#43510)
    • PASS [expected FAIL] subtest: Different blob URLs pointing to the same blob resolve to different modules
    • FAIL [expected PASS] subtest: Revoking a blob URL immediately after calling import will not fail

      promise_test: Unhandled rejection with value: object "TypeError: Module fetching failed"
      

  • OK /html/semantics/scripting-1/the-script-element/module/dynamic-import/blob-url.any.worker.html (#33909)
    • PASS [expected FAIL] subtest: Different blob URLs pointing to the same blob resolve to different modules
  • OK /html/user-activation/navigation-state-reset-sameorigin.html (#45151)
    • FAIL [expected PASS] subtest: Post-navigation state reset.

      assert_true: child-two sticky user activation state after loaded expected true got false
      

  • CRASH [expected OK] /resource-timing/render-blocking-status-link.html (#41664)
  • OK /resource-timing/test_resource_timing.html (#25720)
    • PASS [expected FAIL] subtest: PerformanceEntry has correct name, initiatorType, startTime, and duration (script)
  • OK /resource-timing/test_resource_timing.https.html (#25216)
    • FAIL [expected PASS] subtest: PerformanceEntry has correct name, initiatorType, startTime, and duration (xmlhttprequest)

      assert_equals: expected 47.379999999999995 but got 47.37
      

  • TIMEOUT [expected OK] /trusted-types/trusted-types-navigation.html?16-20 (#44835)
    • TIMEOUT [expected PASS] subtest: Navigate a frame via area with javascript:-urls w/ default policy in enforcing mode.

      Test timed out
      

    • NOTRUN [expected PASS] subtest: Navigate a frame via area with javascript:-urls in report-only mode.
    • NOTRUN [expected PASS] subtest: Navigate a frame via area with javascript:-urls w/ default policy in report-only mode.
  • TIMEOUT /trusted-types/trusted-types-navigation.html?26-30 (#38807)
    • PASS [expected TIMEOUT] subtest: Navigate a window via form-submission with javascript:-urls in report-only mode.
    • PASS [expected NOTRUN] subtest: Navigate a window via form-submission with javascript:-urls w/ default policy in report-only mode.
    • PASS [expected NOTRUN] subtest: Navigate a frame via form-submission with javascript:-urls in enforcing mode.
    • TIMEOUT [expected NOTRUN] subtest: Navigate a frame via form-submission with javascript:-urls w/ default policy in enforcing mode.

      Test timed out
      

Stable unexpected results (81)
  • OK /_mozilla/css/css-property-listing.html
    • FAIL [expected PASS] subtest: Web-exposed CSS longhands

      assert_array_equals: lengths differ, expected array […, "text-wrap-mode", "top", "transform", "transform-origin", "transform-style", "transition-behavior", "transition-delay", "transition-duration", "transition-property", "transition-timing-function", "translate", "unicode-bidi", "visibility", "white-space-collapse", "width", "will-change", "word-break", "word-spacing", "z-index", "-webkit-text-security"] length 217, got […, "transform-origin", "transform-style", "transition-behavior", "transition-delay", "transition-duration", "transition-property", "transition-timing-function", "translate", "unicode-bidi", "vector-effect", "visibility", "white-space-collapse", "width", "will-change", "word-break", "word-spacing", "x", "y", "z-index", "-webkit-text-security"] length 263
      

    • FAIL [expected PASS] subtest: Web-exposed CSS shorthands

      assert_object_equals: property "115" expected "image-rendering" got "dominant-baseline"
      

    • FAIL [expected PASS] subtest: Web-exposed CSS aliases

      assert_object_equals: unexpected property "-webkit-mask-clip"
      

  • OK [expected ERROR] /css/css-conditional/container-queries/container-units-svglength.html
    • FAIL [expected NOTRUN] subtest: CSS Container Queries Test: container-relative units in SVGLength

      rootSVGElement.pauseAnimations is not a function
      

  • OK /css/css-fonts/generic-family-keywords-001.html
    • PASS [expected FAIL] subtest: @font-face matching for quoted and unquoted generic(fangsong)
  • OK /css/css-inline/animation/dominant-baseline-no-interpolation.html
    • PASS [expected FAIL] subtest: CSS Transitions with transition-behavior:allow-discrete: property <dominant-baseline> from [initial] to [middle] at (-0.3) should be [initial]
    • PASS [expected FAIL] subtest: CSS Transitions with transition-behavior:allow-discrete: property <dominant-baseline> from [initial] to [middle] at (0) should be [initial]
    • PASS [expected FAIL] subtest: CSS Transitions with transition-behavior:allow-discrete: property <dominant-baseline> from [initial] to [middle] at (0.3) should be [initial]
    • PASS [expected FAIL] subtest: CSS Transitions with transition-behavior:allow-discrete: property <dominant-baseline> from [initial] to [middle] at (0.5) should be [middle]
    • PASS [expected FAIL] subtest: CSS Transitions with transition-behavior:allow-discrete: property <dominant-baseline> from [initial] to [middle] at (0.6) should be [middle]
    • PASS [expected FAIL] subtest: CSS Transitions with transition-behavior:allow-discrete: property <dominant-baseline> from [initial] to [middle] at (1) should be [middle]
    • PASS [expected FAIL] subtest: CSS Transitions with transition-behavior:allow-discrete: property <dominant-baseline> from [initial] to [middle] at (1.5) should be [middle]
    • PASS [expected FAIL] subtest: CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property <dominant-baseline> from [initial] to [middle] at (-0.3) should be [initial]
    • PASS [expected FAIL] subtest: CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property <dominant-baseline> from [initial] to [middle] at (0) should be [initial]
    • PASS [expected FAIL] subtest: CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property <dominant-baseline> from [initial] to [middle] at (0.3) should be [initial]
    • And 25 more unexpected results...
  • OK /css/css-inline/inheritance.html
    • PASS [expected FAIL] subtest: Property dominant-baseline has initial value auto
    • PASS [expected FAIL] subtest: Property dominant-baseline inherits
  • OK /css/css-inline/parsing/dominant-baseline-computed.html
    • PASS [expected FAIL] subtest: Property dominant-baseline value 'auto'
    • PASS [expected FAIL] subtest: Property dominant-baseline value 'text-bottom'
    • PASS [expected FAIL] subtest: Property dominant-baseline value 'alphabetic'
    • PASS [expected FAIL] subtest: Property dominant-baseline value 'ideographic'
    • PASS [expected FAIL] subtest: Property dominant-baseline value 'middle'
    • PASS [expected FAIL] subtest: Property dominant-baseline value 'central'
    • PASS [expected FAIL] subtest: Property dominant-baseline value 'mathematical'
    • PASS [expected FAIL] subtest: Property dominant-baseline value 'hanging'
    • PASS [expected FAIL] subtest: Property dominant-baseline value 'text-top'
  • OK /css/css-inline/parsing/dominant-baseline-valid.html
    • PASS [expected FAIL] subtest: e.style['dominant-baseline'] = "auto" should set the property value
    • PASS [expected FAIL] subtest: e.style['dominant-baseline'] = "text-bottom" should set the property value
    • PASS [expected FAIL] subtest: e.style['dominant-baseline'] = "alphabetic" should set the property value
    • PASS [expected FAIL] subtest: e.style['dominant-baseline'] = "ideographic" should set the property value
    • PASS [expected FAIL] subtest: e.style['dominant-baseline'] = "middle" should set the property value
    • PASS [expected FAIL] subtest: e.style['dominant-baseline'] = "central" should set the property value
    • PASS [expected FAIL] subtest: e.style['dominant-baseline'] = "mathematical" should set the property value
    • PASS [expected FAIL] subtest: e.style['dominant-baseline'] = "hanging" should set the property value
    • PASS [expected FAIL] subtest: e.style['dominant-baseline'] = "text-top" should set the property value
  • FAIL [expected TIMEOUT] /css/css-masking/clip-path/clip-path-descendant-text-mutated-001.html
  • PASS [expected TIMEOUT] /css/css-masking/clip-path/clip-path-transform-mutated-002.html
  • OK /css/css-overflow/inheritance.html
    • PASS [expected FAIL] subtest: Property text-overflow has initial value clip
    • PASS [expected FAIL] subtest: Property text-overflow does not inherit
  • OK /css/css-overflow/parsing/text-overflow-computed.html
    • PASS [expected FAIL] subtest: Property text-overflow value 'clip'
    • PASS [expected FAIL] subtest: Property text-overflow value 'ellipsis'
    • PASS [expected FAIL] subtest: Property text-overflow value '""'
    • PASS [expected FAIL] subtest: Property text-overflow value '"-"'
    • PASS [expected FAIL] subtest: Property text-overflow value '"marker string"'
  • OK /css/css-overflow/parsing/text-overflow-valid.html
    • PASS [expected FAIL] subtest: e.style['text-overflow'] = "clip" should set the property value
    • PASS [expected FAIL] subtest: e.style['text-overflow'] = "ellipsis" should set the property value
    • PASS [expected FAIL] subtest: e.style['text-overflow'] = "\"\"" should set the property value
    • PASS [expected FAIL] subtest: e.style['text-overflow'] = "\"-\"" should set the property value
    • PASS [expected FAIL] subtest: e.style['text-overflow'] = "\"marker string\"" should set the property value
  • OK /css/css-ui/parsing/text-overflow-computed.html
    • PASS [expected FAIL] subtest: Property text-overflow value 'clip'
    • PASS [expected FAIL] subtest: Property text-overflow value 'ellipsis'
  • OK /css/css-ui/parsing/text-overflow-valid.html
    • PASS [expected FAIL] subtest: e.style['text-overflow'] = "clip" should set the property value
    • PASS [expected FAIL] subtest: e.style['text-overflow'] = "ellipsis" should set the property value
  • OK /css/css-variables/variable-presentation-attribute.html
    • PASS [expected FAIL] subtest: Testing 'clip-rule'.
    • PASS [expected FAIL] subtest: Testing 'dominant-baseline'.
    • PASS [expected FAIL] subtest: Testing 'fill-opacity'.
    • PASS [expected FAIL] subtest: Testing 'fill-rule'.
    • PASS [expected FAIL] subtest: Testing 'flood-opacity'.
    • PASS [expected FAIL] subtest: Testing 'stop-opacity'.
    • PASS [expected FAIL] subtest: Testing 'stroke-dasharray'.
    • PASS [expected FAIL] subtest: Testing 'stroke-dashoffset'.
    • PASS [expected FAIL] subtest: Testing 'stroke-linecap'.
    • PASS [expected FAIL] subtest: Testing 'stroke-linejoin'.
    • And 4 more unexpected results...
  • PASS [expected FAIL] /css/css-will-change/will-change-stacking-context-mask-1.html
  • PASS [expected FAIL] /css/css-will-change/will-change-stacking-context-mask-image-1.html
  • OK /css/fill-stroke/animation/fill-interpolation.html
    • PASS [expected FAIL] subtest: CSS Transitions: property <fill> from neutral to [green] at (-0.3) should be [rgb(255, 255, 0)]
    • PASS [expected FAIL] subtest: CSS Transitions: property <fill> from neutral to [green] at (0) should be [rgb(255, 255, 0)]
    • PASS [expected FAIL] subtest: CSS Transitions: property <fill> from neutral to [green] at (0.3) should be [rgb(179, 217, 0)]
    • PASS [expected FAIL] subtest: CSS Transitions: property <fill> from neutral to [green] at (0.6) should be [rgb(102, 179, 0)]
    • PASS [expected FAIL] subtest: CSS Transitions: property <fill> from neutral to [green] at (1) should be [rgb(0, 128, 0)]
    • PASS [expected FAIL] subtest: CSS Transitions: property <fill> from neutral to [green] at (1.5) should be [rgb(0, 65, 0)]
    • PASS [expected FAIL] subtest: CSS Transitions with transition: all: property <fill> from neutral to [green] at (-0.3) should be [rgb(255, 255, 0)]
    • PASS [expected FAIL] subtest: CSS Transitions with transition: all: property <fill> from neutral to [green] at (0) should be [rgb(255, 255, 0)]
    • PASS [expected FAIL] subtest: CSS Transitions with transition: all: property <fill> from neutral to [green] at (0.3) should be [rgb(179, 217, 0)]
    • PASS [expected FAIL] subtest: CSS Transitions with transition: all: property <fill> from neutral to [green] at (0.6) should be [rgb(102, 179, 0)]
    • And 80 more unexpected results...
  • OK /css/filter-effects/animation/color-interpolation-filters-no-interpolation.html
    • PASS [expected FAIL] subtest: CSS Transitions with transition-behavior:allow-discrete: property <color-interpolation-filters> from [initial] to [auto] at (-0.3) should be [initial]
    • PASS [expected FAIL] subtest: CSS Transitions with transition-behavior:allow-discrete: property <color-interpolation-filters> from [initial] to [auto] at (0) should be [initial]
    • PASS [expected FAIL] subtest: CSS Transitions with transition-behavior:allow-discrete: property <color-interpolation-filters> from [initial] to [auto] at (0.3) should be [initial]
    • PASS [expected FAIL] subtest: CSS Transitions with transition-behavior:allow-discrete: property <color-interpolation-filters> from [initial] to [auto] at (0.5) should be [auto]
    • PASS [expected FAIL] subtest: CSS Transitions with transition-behavior:allow-discrete: property <color-interpolation-filters> from [initial] to [auto] at (0.6) should be [auto]
    • PASS [expected FAIL] subtest: CSS Transitions with transition-behavior:allow-discrete: property <color-interpolation-filters> from [initial] to [auto] at (1) should be [auto]
    • PASS [expected FAIL] subtest: CSS Transitions with transition-behavior:allow-discrete: property <color-interpolation-filters> from [initial] to [auto] at (1.5) should be [auto]
    • PASS [expected FAIL] subtest: CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property <color-interpolation-filters> from [initial] to [auto] at (-0.3) should be [initial]
    • PASS [expected FAIL] subtest: CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property <color-interpolation-filters> from [initial] to [auto] at (0) should be [initial]
    • PASS [expected FAIL] subtest: CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property <color-interpolation-filters> from [initial] to [auto] at (0.3) should be [initial]
    • And 25 more unexpected results...
  • PASS [expected TIMEOUT] /css/filter-effects/feimage-circular-reference-foreign-object-crash.html
  • PASS [expected TIMEOUT] /css/filter-effects/feimage-reference-foreign-object-crash.html
  • OK /css/filter-effects/inheritance.html
    • PASS [expected FAIL] subtest: Property color-interpolation-filters has initial value linearrgb
    • PASS [expected FAIL] subtest: Property color-interpolation-filters inherits
    • PASS [expected FAIL] subtest: Property flood-color has initial value rgb(0, 0, 0)
    • PASS [expected FAIL] subtest: Property flood-color does not inherit
    • PASS [expected FAIL] subtest: Property flood-opacity has initial value 1
    • PASS [expected FAIL] subtest: Property flood-opacity does not inherit
    • PASS [expected FAIL] subtest: Property lighting-color has initial value rgb(255, 255, 255)
    • PASS [expected FAIL] subtest: Property lighting-color does not inherit
  • OK /css/filter-effects/parsing/color-interpolation-filters-computed.html
    • PASS [expected FAIL] subtest: Property color-interpolation-filters value 'auto'
    • PASS [expected FAIL] subtest: Property color-interpolation-filters value 'srgb'
    • PASS [expected FAIL] subtest: Property color-interpolation-filters value 'linearrgb'
  • OK /css/filter-effects/parsing/color-interpolation-filters-parsing-valid.html
    • PASS [expected FAIL] subtest: e.style['color-interpolation-filters'] = "auto" should set the property value
    • PASS [expected FAIL] subtest: e.style['color-interpolation-filters'] = "sRGB" should set the property value
    • PASS [expected FAIL] subtest: e.style['color-interpolation-filters'] = "linearRGB" should set the property value
    • PASS [expected FAIL] subtest: e.style['color-interpolation-filters'] = "LiNeArRgB" should set the property value
  • OK /css/filter-effects/parsing/flood-color-computed.html
    • PASS [expected FAIL] subtest: Property flood-color value 'currentcolor'
    • PASS [expected FAIL] subtest: Property flood-color value 'red'
    • PASS [expected FAIL] subtest: Property flood-color value '#00FF00'
    • PASS [expected FAIL] subtest: Property flood-color value 'rgb(0, 0, 255)'
    • PASS [expected FAIL] subtest: Property flood-color value 'rgb(100%, 100%, 0%)'
    • PASS [expected FAIL] subtest: Property flood-color value 'hsl(120, 100%, 50%)'
    • PASS [expected FAIL] subtest: Property flood-color value 'teal'
    • PASS [expected FAIL] subtest: Property flood-color value 'transparent'
  • OK /css/filter-effects/parsing/flood-color-valid.html
    • PASS [expected FAIL] subtest: e.style['flood-color'] = "currentcolor" should set the property value
    • PASS [expected FAIL] subtest: e.style['flood-color'] = "red" should set the property value
    • PASS [expected FAIL] subtest: e.style['flood-color'] = "#00FF00" should set the property value
    • PASS [expected FAIL] subtest: e.style['flood-color'] = "rgb(0, 0, 255)" should set the property value
    • PASS [expected FAIL] subtest: e.style['flood-color'] = "rgb(100%, 100%, 0%)" should set the property value
    • PASS [expected FAIL] subtest: e.style['flood-color'] = "hsl(120, 100%, 50%)" should set the property value
    • PASS [expected FAIL] subtest: e.style['flood-color'] = "teal" should set the property value
    • PASS [expected FAIL] subtest: e.style['flood-color'] = "transparent" should set the property value
  • OK /css/filter-effects/parsing/lighting-color-computed.html
    • PASS [expected FAIL] subtest: Property lighting-color value 'rgb(1, 2, 3)'
  • OK /css/filter-effects/parsing/lighting-color-parsing-valid.html
    • PASS [expected FAIL] subtest: e.style['lighting-color'] = "rgb(1,2,3)" should set the property value
    • PASS [expected FAIL] subtest: e.style['lighting-color'] = "#102030" should set the property value
    • PASS [expected FAIL] subtest: e.style['lighting-color'] = "rgba(1, 2, 3, 0.5)" should set the property value
    • PASS [expected FAIL] subtest: e.style['lighting-color'] = "currentColor" should set the property value
    • PASS [expected FAIL] subtest: e.style['lighting-color'] = "currentcolor" should set the property value
  • OK /html/semantics/the-button-element/command-and-commandfor/button-event-dispatch.html
    • PASS [expected FAIL] subtest: setting command attribute to -foo (no dash) did not dispatch an event with an svg target
    • PASS [expected FAIL] subtest: setting command attribute to -foo- (no dash) did not dispatch an event with an svg target
    • PASS [expected FAIL] subtest: setting command attribute to foo-bar (no dash) did not dispatch an event with an svg target
    • PASS [expected FAIL] subtest: setting command attribute to -foo bar (no dash) did not dispatch an event with an svg target
    • PASS [expected FAIL] subtest: setting command attribute to —-emdash (no dash) did not dispatch an event with an svg target
    • PASS [expected FAIL] subtest: setting command attribute to hidedocument (no dash) did not dispatch an event with an svg target
    • PASS [expected FAIL] subtest: setting command to show-modal did not dispatch an event for svg element
    • PASS [expected FAIL] subtest: setting command to close did not dispatch an event for svg element
    • PASS [expected FAIL] subtest: setting command to request-close did not dispatch an event for svg element
    • PASS [expected FAIL] subtest: setting command to show-popover did not dispatch an event for svg element
    • And 2 more unexpected results...
  • OK /intersection-observer/svg-intersection-with-fractional-bounds-2.html
    • PASS [expected FAIL] subtest: IntersectionObserver observing an SVG <rect> with fractional bounds element
    • FAIL [expected PASS] subtest: Initial Observation

      assert_approx_equals: entries[0].boundingClientRect.right expected 0.004 +/- 0.0001 but got 0
      

    • FAIL [expected PASS] subtest: Changing target y position to -2 (-0.002 in root coordinates)

      assert_equals: entries.length expected 2 but got 1
      

    • FAIL [expected PASS] subtest: Changing target y position to -1 (-0.001 in root coordinates)

      assert_equals: entries.length expected 3 but got 1
      

    • FAIL [expected PASS] subtest: Changing target y position to -4 (-0.004 in root coordinates)

      assert_equals: entries.length expected 4 but got 1
      

    • FAIL [expected PASS] subtest: Changing target y position to 0

      assert_equals: entries.length expected 5 but got 1
      

  • OK /intersection-observer/svg-viewbox.html
    • PASS [expected FAIL] subtest: IntersectionObserver observing an SVG <rect> element with changing 'transform'
    • FAIL [expected PASS] subtest: First rAF.

      assert_approx_equals: entries[0].rootBounds.right expected 10 +/- 0 but got 0
      

    • FAIL [expected PASS] subtest: change target's y property to -64)

      assert_equals: entries.length expected 2 but got 1
      

  • OK /intersection-observer/v2/simple-occlusion-svg-foreign-object.html
    • PASS [expected FAIL] subtest: First rAF.
    • FAIL [expected PASS] subtest: svg.style.marginTop = '-10px'

      assert_equals: entries.length expected 2 but got 1
      

    • FAIL [expected PASS] subtest: occluder.style.opacity = 0

      assert_equals: entries.length expected 3 but got 1
      

  • OK [expected ERROR] /pointerevents/pointerevent_touch-action-svg-none-test_touch.html
    • FAIL [expected NOTRUN] subtest: touch-action attribute test in SVG

      assert_true: scroll received while shouldn't expected true got false
      

  • OK /quirks/unitless-length/excluded-properties-002.html
    • PASS [expected FAIL] subtest: Property mask does not support quirky length
  • OK /svg/animations/short-simple-duration-and-fractional-repeatcount.html
    • PASS [expected FAIL] subtest: Short simple duration and fractional repeatCount does not hang
  • OK /svg/animations/spaces-at-end-of-path-data.html
    • FAIL [expected PASS] subtest: Allow trailing empty entry in value list

      assert_not_equals: got disallowed value "none"
      

  • OK [expected ERROR] /svg/animations/svginteger-animation-1.html
    • FAIL [expected PASS] subtest: Test animation of SVGInteger.

      rootSVGElement.pauseAnimations is not a function
      

  • OK [expected ERROR] /svg/animations/svginteger-animation-2.html
    • FAIL [expected PASS] subtest: Test animation of SVGInteger.

      rootSVGElement.pauseAnimations is not a function
      

  • OK /svg/geometry/animations/cx-composition.html
    • PASS [expected FAIL] subtest: Compositing CSS Animations: property <cx> underlying [50px] from add [100px] to replace [200px] at (1) should be [200px]
  • OK /svg/geometry/animations/cy-composition.html
    • PASS [expected FAIL] subtest: Compositing CSS Animations: property <cy> underlying [50px] from add [100px] to replace [200px] at (1) should be [200px]
  • OK /svg/geometry/animations/r-composition.html
    • PASS [expected FAIL] subtest: Compositing CSS Animations: property <r> underlying [50px] from add [100px] to replace [200px] at (1) should be [200px]
  • OK /svg/geometry/animations/rx-composition.html
    • PASS [expected FAIL] subtest: Compositing CSS Animations: property <rx> underlying [50px] from add [100px] to replace [200px] at (1) should be [200px]
  • OK /svg/geometry/animations/ry-composition.html
    • PASS [expected FAIL] subtest: Compositing CSS Animations: property <ry> underlying [50px] from add [100px] to replace [200px] at (1) should be [200px]
  • OK /svg/geometry/animations/x-composition.html
    • PASS [expected FAIL] subtest: Compositing CSS Animations: property <x> underlying [50px] from add [100px] to replace [200px] at (1) should be [200px]
  • OK /svg/geometry/animations/y-composition.html
    • PASS [expected FAIL] subtest: Compositing CSS Animations: property <y> underlying [50px] from add [100px] to replace [200px] at (1) should be [200px]
  • OK /svg/painting/animations/stroke-dasharray-composition.html
    • PASS [expected FAIL] subtest: Compositing CSS Animations: property <stroke-dasharray> underlying [5 5] from add [0 5] to add [10 15] at (-0.6) should be [ 0 0]
    • PASS [expected FAIL] subtest: Compositing CSS Animations: property <stroke-dasharray> underlying [5 5] from add [0 5] to add [10 15] at (-0.4) should be [ 0 1]
    • PASS [expected FAIL] subtest: Compositing CSS Animations: property <stroke-dasharray> underlying [5 5] from add [0 5] to add [10 15] at (-0.2) should be [ 0 3]
    • PASS [expected FAIL] subtest: Compositing CSS Animations: property <stroke-dasharray> underlying [5 5] from add [0 5] to add [10 15] at (0) should be [ 0 5]
    • PASS [expected FAIL] subtest: Compositing CSS Animations: property <stroke-dasharray> underlying [5 5] from add [0 5] to add [10 15] at (0.2) should be [ 2 7]
    • PASS [expected FAIL] subtest: Compositing CSS Animations: property <stroke-dasharray> underlying [5 5] from add [0 5] to add [10 15] at (0.4) should be [ 4 9]
    • PASS [expected FAIL] subtest: Compositing CSS Animations: property <stroke-dasharray> underlying [5 5] from add [0 5] to add [10 15] at (0.6) should be [ 6 11]
    • PASS [expected FAIL] subtest: Compositing CSS Animations: property <stroke-dasharray> underlying [5 5] from add [0 5] to add [10 15] at (0.8) should be [ 8 13]
    • PASS [expected FAIL] subtest: Compositing CSS Animations: property <stroke-dasharray> underlying [5 5] from add [0 5] to add [10 15] at (1) should be [10 15]
    • PASS [expected FAIL] subtest: Compositing CSS Animations: property <stroke-dasharray> underlying [5 5] from add [0 5] to add [10 15] at (1.2) should be [12 17]
    • And 58 more unexpected results...
  • OK /svg/painting/animations/stroke-dashoffset-composition.html
    • PASS [expected FAIL] subtest: Compositing CSS Animations: property <stroke-dashoffset> underlying [50px] from add [100px] to replace [200px] at (1) should be [200px]
  • OK /svg/painting/animations/stroke-width-composition.html
    • PASS [expected FAIL] subtest: Compositing CSS Animations: property <stroke-width> underlying [50px] from add [100px] to replace [200px] at (1) should be [200px]
  • OK /svg/painting/color-interpolation-animation.html
    • PASS [expected FAIL] subtest: CSS Transitions with transition-behavior:allow-discrete: property <color-interpolation> from [initial] to [auto] at (-0.3) should be [initial]
    • PASS [expected FAIL] subtest: CSS Transitions with transition-behavior:allow-discrete: property <color-interpolation> from [initial] to [auto] at (0) should be [initial]
    • PASS [expected FAIL] subtest: CSS Transitions with transition-behavior:allow-discrete: property <color-interpolation> from [initial] to [auto] at (0.3) should be [initial]
    • PASS [expected FAIL] subtest: CSS Transitions with transition-behavior:allow-discrete: property <color-interpolation> from [initial] to [auto] at (0.5) should be [auto]
    • PASS [expected FAIL] subtest: CSS Transitions with transition-behavior:allow-discrete: property <color-interpolation> from [initial] to [auto] at (0.6) should be [auto]
    • PASS [expected FAIL] subtest: CSS Transitions with transition-behavior:allow-discrete: property <color-interpolation> from [initial] to [auto] at (1) should be [auto]
    • PASS [expected FAIL] subtest: CSS Transitions with transition-behavior:allow-discrete: property <color-interpolation> from [initial] to [auto] at (1.5) should be [auto]
    • PASS [expected FAIL] subtest: CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property <color-interpolation> from [initial] to [auto] at (-0.3) should be [initial]
    • PASS [expected FAIL] subtest: CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property <color-interpolation> from [initial] to [auto] at (0) should be [initial]
    • PASS [expected FAIL] subtest: CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property <color-interpolation> from [initial] to [auto] at (0.3) should be [initial]
    • And 25 more unexpected results...
  • OK /svg/painting/fill-rule-no-interpolation.html
    • PASS [expected FAIL] subtest: CSS Transitions with transition-behavior:allow-discrete: property <fill-rule> from [initial] to [evenodd] at (-0.3) should be [initial]
    • PASS [expected FAIL] subtest: CSS Transitions with transition-behavior:allow-discrete: property <fill-rule> from [initial] to [evenodd] at (0) should be [initial]
    • PASS [expected FAIL] subtest: CSS Transitions with transition-behavior:allow-discrete: property <fill-rule> from [initial] to [evenodd] at (0.3) should be [initial]
    • PASS [expected FAIL] subtest: CSS Transitions with transition-behavior:allow-discrete: property <fill-rule> from [initial] to [evenodd] at (0.5) should be [evenodd]
    • PASS [expected FAIL] subtest: CSS Transitions with transition-behavior:allow-discrete: property <fill-rule> from [initial] to [evenodd] at (0.6) should be [evenodd]
    • PASS [expected FAIL] subtest: CSS Transitions with transition-behavior:allow-discrete: property <fill-rule> from [initial] to [evenodd] at (1) should be [evenodd]
    • PASS [expected FAIL] subtest: CSS Transitions with transition-behavior:allow-discrete: property <fill-rule> from [initial] to [evenodd] at (1.5) should be [evenodd]
    • PASS [expected FAIL] subtest: CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property <fill-rule> from [initial] to [evenodd] at (-0.3) should be [initial]
    • PASS [expected FAIL] subtest: CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property <fill-rule> from [initial] to [evenodd] at (0) should be [initial]
    • PASS [expected FAIL] subtest: CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property <fill-rule> from [initial] to [evenodd] at (0.3) should be [initial]
    • And 25 more unexpected results...
  • FAIL [expected TIMEOUT] /svg/painting/svg-child-will-change-transform-invalidation.html
  • OK /svg/pservers/reftests/percent-encoded-fragment-refs.html
    • PASS [expected FAIL] subtest: clip-path: url(#%6d%79%20%63%6c%69%70) resolves to clipPath id="my clip"
    • PASS [expected FAIL] subtest: mask: url(#%6d%31) resolves to mask id="m1"
  • OK /svg/pservers/scripted/svg-fill-currentcolor-visited-getcomputedstyle.html
    • PASS [expected FAIL] subtest: Property fill value 'currentColor' should not leak :visited for SVG fill with currentColor
  • OK /svg/render/foreignObject-in-non-rendered-getComputedStyle.html
    • PASS [expected FAIL] subtest: Test that we don't generated boxes for foreignObject in non-rendered SVG.
  • OK /svg/struct/use-getComputedStyle.html
    • PASS [expected FAIL] subtest: Test that we map use element positioning to style.
  • OK /svg/styling/css-selectors-case-sensitivity.html
    • PASS [expected FAIL] subtest: Normalization of viewBox on html and svg elements in html documents.
    • PASS [expected FAIL] subtest: Normalization of foreignObject html and svg elements in html documents.
    • PASS [expected FAIL] subtest: Camel-cased viewBox on svg in html document matches sensitively.
    • PASS [expected FAIL] subtest: Normalized camel-cased viewBox on svg in html document matches case-sensitively.
    • PASS [expected FAIL] subtest: Camel-cased svg foreignObject in html document matches sensitively.
    • PASS [expected FAIL] subtest: Normalized camel-cased svg foreignObject in html document matches case-sensitively.
  • OK /svg/styling/presentation-attributes-irrelevant.html
    • PASS [expected FAIL] subtest: alignment-baseline presentation attribute supported on an irrelevant element
    • PASS [expected FAIL] subtest: baseline-shift presentation attribute supported on an irrelevant element
    • PASS [expected FAIL] subtest: clip-path presentation attribute supported on an irrelevant element
    • PASS [expected FAIL] subtest: color presentation attribute supported on an irrelevant element
    • PASS [expected FAIL] subtest: cursor presentation attribute supported on an irrelevant element
    • PASS [expected FAIL] subtest: direction presentation attribute supported on an irrelevant element
    • PASS [expected FAIL] subtest: display presentation attribute supported on an irrelevant element
    • PASS [expected FAIL] subtest: font-family presentation attribute supported on an irrelevant element
    • PASS [expected FAIL] subtest: font-size presentation attribute supported on an irrelevant element
    • PASS [expected FAIL] subtest: font-stretch presentation attribute supported on an irrelevant element
    • And 11 more unexpected results...
  • OK /svg/styling/presentation-attributes-relevant.html
    • PASS [expected FAIL] subtest: alignment-baseline presentation attribute supported on a relevant element
    • PASS [expected FAIL] subtest: baseline-shift presentation attribute supported on a relevant element
    • PASS [expected FAIL] subtest: clip-path presentation attribute supported on a relevant element
    • PASS [expected FAIL] subtest: color presentation attribute supported on a relevant element
    • PASS [expected FAIL] subtest: cursor presentation attribute supported on a relevant element
    • PASS [expected FAIL] subtest: direction presentation attribute supported on a relevant element
    • PASS [expected FAIL] subtest: display presentation attribute supported on a relevant element
    • PASS [expected FAIL] subtest: font-family presentation attribute supported on a relevant element
    • PASS [expected FAIL] subtest: font-size presentation attribute supported on a relevant element
    • PASS [expected FAIL] subtest: font-stretch presentation attribute supported on a relevant element
    • And 13 more unexpected results...
  • OK /svg/styling/presentation-attributes-special-cases.html
    • FAIL [expected PASS] subtest: cx and cy presentation attributes not supported on other elements

      assert_false: Presentation attribute cx="1" should not be supported on g element expected false got true
      

    • FAIL [expected PASS] subtest: x, y, width, and height presentation attributes not supported on other elements

      assert_false: Presentation attribute x="1" should not be supported on g element expected false got true
      

    • FAIL [expected PASS] subtest: r presentation attribute not supported on other elements

      assert_false: Presentation attribute r="1" should not be supported on g element expected false got true
      

    • FAIL [expected PASS] subtest: rx and ry presentation attributes not supported on other elements

      assert_false: Presentation attribute rx="1" should not be supported on g element expected false got true
      

    • FAIL [expected PASS] subtest: d presentation attribute not supported on other elements

      assert_false: Presentation attribute d="M0,0 L1,1" should not be supported on g element expected false got true
      

    • FAIL [expected PASS] subtest: fill presentation attribute not supported on animate

      assert_false: Presentation attribute fill="blue" should not be supported on animate element expected false got true
      

    • FAIL [expected PASS] subtest: fill presentation attribute not supported on animateMotion

      assert_false: Presentation attribute fill="blue" should not be supported on animateMotion element expected false got true
      

    • FAIL [expected PASS] subtest: fill presentation attribute not supported on animateTransform

      assert_false: Presentation attribute fill="blue" should not be supported on animateTransform element expected false got true
      

    • FAIL [expected PASS] subtest: fill presentation attribute not supported on set

      assert_false: Presentation attribute fill="blue" should not be supported on set element expected false got true
      

    • PASS [expected FAIL] subtest: transform presentation attribute not supported on pattern or gradient elements
    • And 2 more unexpected results...
  • OK /svg/styling/presentation-attributes-unknown.html
    • PASS [expected FAIL] subtest: alignment-baseline presentation attribute supported on an unknown SVG element
    • PASS [expected FAIL] subtest: baseline-shift presentation attribute supported on an unknown SVG element
    • PASS [expected FAIL] subtest: clip-path presentation attribute supported on an unknown SVG element
    • PASS [expected FAIL] subtest: color presentation attribute supported on an unknown SVG element
    • PASS [expected FAIL] subtest: cursor presentation attribute supported on an unknown SVG element
    • PASS [expected FAIL] subtest: direction presentation attribute supported on an unknown SVG element
    • PASS [expected FAIL] subtest: display presentation attribute supported on an unknown SVG element
    • PASS [expected FAIL] subtest: font-family presentation attribute supported on an unknown SVG element
    • PASS [expected FAIL] subtest: font-size presentation attribute supported on an unknown SVG element
    • PASS [expected FAIL] subtest: font-stretch presentation attribute supported on an unknown SVG element
    • And 11 more unexpected results...
  • PASS [expected FAIL] /svg/styling/svg-filter-render-cross-origin-frame-in-cross-origin-frame.tentative.sub.https.html
  • PASS [expected FAIL] /svg/styling/svg-filter-render-cross-origin-frame-in-same-origin-frame.tentative.https.html
  • PASS [expected FAIL] /svg/styling/svg-filter-render-cross-origin-frame.tentative.sub.https.html
  • PASS [expected FAIL] /svg/styling/svg-filter-render-cross-origin-navigation-in-srcdoc-frame.tentative.sub.https.html
  • PASS [expected FAIL] /svg/styling/svg-filter-render-same-origin-frame-in-cross-origin-frame.tentative.sub.https.html
  • PASS [expected FAIL] /svg/styling/svg-filter-render-same-origin-frame-reload-as-sandbox.tentative.https.html
  • PASS [expected FAIL] /svg/styling/svg-filter-render-sandbox-frame.tentative.https.html
  • PASS [expected FAIL] /svg/styling/svg-filter-render-web-plugin.tentative.https.html
  • FAIL [expected TIMEOUT] /svg/styling/use-element-attr-selector-transition.tentative.html
  • FAIL [expected TIMEOUT] /svg/styling/use-element-attr-selector.html
  • FAIL [expected TIMEOUT] /svg/styling/use-element-class-selector-transition.tentative.html
  • FAIL [expected TIMEOUT] /svg/styling/use-element-class-selector.html
  • FAIL [expected TIMEOUT] /svg/styling/use-element-id-selector-transition.tentative.html
  • FAIL [expected TIMEOUT] /svg/styling/use-element-id-selector.html
  • FAIL [expected TIMEOUT] /svg/styling/use-element-transitions-dom-mutation.tentative.html
  • PASS [expected TIMEOUT] /svg/styling/use-element-transitions.tentative.html
  • ERROR /trusted-types/script-enforcement-003.html
    • PASS [expected FAIL] subtest: Script source set via Element.textContent drops trustworthiness.
    • PASS [expected FAIL] subtest: Script source set via Node.textContent drops trustworthiness.
    • PASS [expected FAIL] subtest: Script source set via TrustedHTML sink Element.innerHTML drops trustworthiness.
    • PASS [expected FAIL] subtest: Script source set via TrustedHTML sink Element.outerHTML drops trustworthiness.
    • PASS [expected FAIL] subtest: Script source set via TrustedHTML sink Element.setHTMLUnsafe() drops trustworthiness.
  • OK /trusted-types/script-enforcement-004.html
    • PASS [expected FAIL] subtest: Verify when the default policy is called for script set source via Node.textContent.
    • PASS [expected FAIL] subtest: Default policy's calls when setting source via Range.insertNode().
  • OK /trusted-types/script-enforcement-013.html
    • PASS [expected FAIL] subtest: SVG script is untrusted even if source was set before TrustedTypes got enabled.
  • OK /trusted-types/script-enforcement-015.html
    • PASS [expected FAIL] subtest: SVG script is untrusted even if meta tag for require-trusted-types-for is removed.
  • OK /trusted-types/script-enforcement-017.html
    • PASS [expected FAIL] subtest: SVG script with type=module is untrusted even if source was set before TrustedTypes got enabled.

@github-actions

github-actions Bot commented Jun 5, 2026

Copy link
Copy Markdown

⚠️ Try run (#26994757902) failed!

@TimvdLippe

Copy link
Copy Markdown
Contributor

You can run ./mach update-wpt https://github.com/servo/servo/actions/runs/26994757902 to update the test expectations

@mu-mostafa98
mu-mostafa98 force-pushed the svg-presentationall-attributes branch 3 times, most recently from d88a679 to 86d93c3 Compare June 6, 2026 03:35
@TimvdLippe

Copy link
Copy Markdown
Contributor

Test results look good. Are your PRs ready for review? If so, please unmark them as draft so folks can take a look. Thanks a lot for tackling these!

@mu-mostafa98
mu-mostafa98 force-pushed the svg-presentationall-attributes branch 2 times, most recently from 1556c57 to e7526f0 Compare June 8, 2026 02:42
Comment thread components/script/dom/document/document.rs Outdated
Comment thread components/script/dom/element/element.rs Outdated
Comment on lines +1383 to +1384
if let Ok(decl) = parser.parse_entirely(|p| {
style::properties::longhands::$css_property::parse_declared(&parser_context, p)

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Can we make this little Rusty aka Rust Style

Suggested change
if let Ok(decl) = parser.parse_entirely(|p| {
style::properties::longhands::$css_property::parse_declared(&parser_context, p)
parser.parse_entirely(|p| {
style::properties::longhands::$css_property::parse_declared(&parser_context, p)
}).map(|decl| push(decl)).ok();

Same for below.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Done

@shubhamg13 shubhamg13 left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Cheers. A lot of WPT Passing

@mu-mostafa98 mu-mostafa98 changed the title Enable SVG presentation attributes with updated stylo dependency Script: Enable SVG presentation attributes with updated stylo dependency Jun 8, 2026
Comment thread components/script/dom/element/element.rs Outdated
@@ -0,0 +1,3 @@
[spaces-at-end-of-path-data.html]
[Allow trailing empty entry in value list]
expected: FAIL

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

We can allow some new FAIL cases when the amount of PASS is out number.
It's good to explain when the PR is finalized.

@mu-mostafa98
mu-mostafa98 force-pushed the svg-presentationall-attributes branch 2 times, most recently from 3e0ff78 to 3c945f2 Compare June 9, 2026 04:24
@mu-mostafa98
mu-mostafa98 force-pushed the svg-presentationall-attributes branch 2 times, most recently from 497ec27 to 9d701bb Compare June 9, 2026 07:59
Comment thread components/script/dom/window.rs Outdated
Comment thread components/script/dom/element/element.rs Outdated
Comment thread components/script/dom/element/element.rs Outdated
Comment thread components/script/dom/element/element.rs Outdated
Comment thread components/script/dom/element/element.rs Outdated
attr_to_css_decl!("stroke-miterlimit" => stroke_miterlimit);
attr_to_css_decl!("stroke-opacity" => stroke_opacity);

if *name == *local_name!("circle") {

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

It seems wrong to directly look at the local name. Eventually we should inspect the runtime type. However, that's currently not possible without introducing SVGXXXElement types and adding parser support.

Let's remove them from this PR and add them in the next PR where we add the new DOM types for the basic shapes.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

done

Comment on lines 1377 to 1387
macro_rules! attr_to_css_decl {
($attr_name:tt => $css_property:ident) => {
if let Some(val) = self.get_attr_val_for_layout(&ns!(), &local_name!($attr_name)) {
let mut input = ParserInput::new(val);
let mut parser = Parser::new(&mut input);
parser.parse_entirely(|p| {
style::properties::longhands::$css_property::parse_declared(&parser_context, p)
}).map(|decl| push(decl)).ok();
}
};
}

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

I think we should avoid the usage of a macro here and in addition do not use abbreviations for variable names: https://book.servo.org/contributing/style-guide.html

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Done

  • Replaced the macro with the SVGElement::parse_svg_attribute helper function
  • Expanded abbreviated variable names (val → value, p → parse_input, decl → declaration)

@mu-mostafa98
mu-mostafa98 force-pushed the svg-presentationall-attributes branch 3 times, most recently from 50a5ed0 to 5f34a3e Compare June 9, 2026 14:52
@jdm
jdm dismissed mrobinson’s stale review July 10, 2026 10:48

Addressed.

@mu-mostafa98
mu-mostafa98 force-pushed the svg-presentationall-attributes branch from 04cd4be to 7c77faf Compare July 10, 2026 12:02
simonwuelker pushed a commit to simonwuelker/stylo that referenced this pull request Jul 10, 2026
Removes `engine = "gecko"` from 11 SVG-specific CSS properties to be
enabled for servo:

- **Fill (3):** `fill`, `fill-opacity`, `fill-rule`
- **Stroke (8):** `stroke`, `stroke-width`, `stroke-linecap`,
`stroke-linejoin`, `stroke-dasharray`, `stroke-dashoffset`,
`stroke-miterlimit`, `stroke-opacity`

Also updates the `ComputedValues` size test (224 → 232) for the new
fields.

Servo [PR](servo/servo#45405)

---------

Signed-off-by: Mohamed Mostafa [email protected]
Co-authored-by: Mohamed Mostafa <[email protected]>
@mu-mostafa98
mu-mostafa98 force-pushed the svg-presentationall-attributes branch from 7c77faf to 022b9a4 Compare July 10, 2026 13:48
@jdm
jdm enabled auto-merge July 10, 2026 13:56
@jdm

jdm commented Jul 10, 2026

Copy link
Copy Markdown
Member

Bleach, pressed the wrong button and triggered the branch update.

auto-merge was automatically disabled July 10, 2026 14:01

Head branch was pushed to by a user without write access

@mu-mostafa98
mu-mostafa98 force-pushed the svg-presentationall-attributes branch from 4e3f83d to 1ce76cb Compare July 10, 2026 14:01
@mu-mostafa98

Copy link
Copy Markdown
Contributor Author

Bleach, pressed the wrong button and triggered the branch update.

The PR now uses the latest stylo

@jdm
jdm added this pull request to the merge queue Jul 10, 2026
@servo-highfive servo-highfive added the S-awaiting-merge The PR is in the process of compiling and running tests on the automated CI. label Jul 10, 2026
@github-merge-queue
github-merge-queue Bot removed this pull request from the merge queue due to a conflict with the base branch Jul 10, 2026
@servo-highfive servo-highfive added S-needs-rebase There are merge conflict errors. and removed S-awaiting-merge The PR is in the process of compiling and running tests on the automated CI. labels Jul 10, 2026
Mohamed Mostafa and others added 8 commits July 11, 2026 02:15
Co-authored-by: Josh Matthews <[email protected]>
Signed-off-by: Mohamed Mostafa <[email protected]>
Co-authored-by: Josh Matthews <[email protected]>
Signed-off-by: Mohamed Mostafa <[email protected]>
Signed-off-by: Mohamed Mostafa <[email protected]>
Signed-off-by: Mohamed Mostafa <[email protected]>
Signed-off-by: Mohamed Mostafa <[email protected]>
Signed-off-by: Mohamed Mostafa <[email protected]>
@Loirooriol
Loirooriol force-pushed the svg-presentationall-attributes branch from 1ce76cb to e416a5e Compare July 11, 2026 00:17
@servo-highfive servo-highfive removed the S-needs-rebase There are merge conflict errors. label Jul 11, 2026
@Loirooriol

Copy link
Copy Markdown
Contributor

Rebased after #45492

@Loirooriol
Loirooriol enabled auto-merge July 11, 2026 00:18
@Loirooriol
Loirooriol added this pull request to the merge queue Jul 11, 2026
@servo-highfive servo-highfive added the S-awaiting-merge The PR is in the process of compiling and running tests on the automated CI. label Jul 11, 2026
Merged via the queue into servo:main with commit 65292aa Jul 11, 2026
31 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

S-awaiting-review There is new code that needs to be reviewed.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

10 participants