Skip to content

layout: Add support for caret-color#41976

Merged
mrobinson merged 1 commit intoservo:mainfrom
mrobinson:caret-color
Jan 21, 2026
Merged

layout: Add support for caret-color#41976
mrobinson merged 1 commit intoservo:mainfrom
mrobinson:caret-color

Conversation

@mrobinson
Copy link
Copy Markdown
Member

@mrobinson mrobinson commented Jan 17, 2026

layout: Add support for caret-color

This upgrades our version of stylo to one that supports
caret-color and implements support for it during display list
construction.

Depends on:

Testing: This causes about 10 WPT tests to start passing.

@mrobinson mrobinson added the T-linux-wpt Do a try run of the WPT label Jan 17, 2026
@github-actions github-actions bot removed the T-linux-wpt Do a try run of the WPT label Jan 17, 2026
@github-actions
Copy link
Copy Markdown

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

@mrobinson mrobinson force-pushed the caret-color branch 2 times, most recently from 16b0788 to 9c59222 Compare January 17, 2026 12:38
@github-actions
Copy link
Copy Markdown

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

Flaky unexpected result (40)
  • OK /FileAPI/file/send-file-form-utf-8.html
    • FAIL [expected PASS] subtest: Upload file-for-upload-in-form-.txt (x-user-defined) in UTF-8 form

      assert_greater_than: file-for-upload-in-form-.txt: multipart form data must have at least 3 lines: "" expected a number greater than 2 but got 0
      

  • OK /IndexedDB/idbfactory-open-error-properties.any.html
    • PASS [expected FAIL] subtest: Properties of error event from failed open()
  • OK /IndexedDB/idbfactory-open-error-properties.any.worker.html
    • PASS [expected FAIL] subtest: Properties of error event from failed open()
  • OK /_mozilla/webxr/create_session.https.html
    • FAIL [expected PASS] subtest: create_session

      can't access property "simulateDeviceConnection", navigator.xr.test is undefined
      

  • ERROR [expected TIMEOUT] /_mozilla/webxr/sessionavailable.https.html
  • OK /_webgl/conformance/textures/misc/texture-upload-size.html (#21770)
    • PASS [expected FAIL] subtest: WebGL test #45
    • PASS [expected FAIL] subtest: WebGL test #47
    • PASS [expected FAIL] subtest: WebGL test #49
    • PASS [expected FAIL] subtest: WebGL test #51
    • FAIL [expected PASS] subtest: WebGL test #53

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

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

      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 #57

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

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

      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 #61
    • PASS [expected FAIL] subtest: WebGL test #63
    • And 6 more unexpected results...
  • CRASH [expected OK] /_webgl/conformance2/wasm/readpixels-2gb-in-4gb-wasm-memory.html
  • FAIL [expected PASS] /css/css-backgrounds/background-size-041.html
  • OK /css/css-fonts/generic-family-keywords-003.html (#38994)
    • PASS [expected FAIL] subtest: @font-face matching for quoted and unquoted sans-serif (drawing text in a canvas)
    • PASS [expected FAIL] subtest: @font-face matching for quoted and unquoted fantasy (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(fangsong) (drawing text in a canvas)
  • CRASH [expected PASS] /css/css-overflow/scroll-marker-in-display-none-column-crash.html
  • OK /encoding-detection/pl-windows-1250-late.tentative.html
    • FAIL [expected PASS] subtest: Check detection result

      assert_equals: Expected windows-1250 expected "windows-1250" but got "UTF-8"
      

  • OK [expected ERROR] /fetch/fetch-later/quota/same-origin-iframe/accumulated-oversized-payload.https.window.html (#41705)
  • OK [expected ERROR] /focus/focus-event-after-switching-iframes.sub.html (#40368)
  • OK /html/browsers/browsing-the-web/navigating-across-documents/005.html (#27062)
    • PASS [expected FAIL] subtest: Link with onclick navigation and href navigation
  • 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-same-origin.window.html (#29049)
    • PASS [expected FAIL] subtest: Same-origin navigation started from unload handler must be ignored
  • CRASH [expected OK] /html/browsers/browsing-the-web/overlapping-navigations-and-traversals/nav-cancelation-1.html
  • CRASH [expected OK] /html/browsers/browsing-the-web/unloading-documents/unload/002.html
  • OK /html/browsers/history/the-history-interface/traverse_the_history_3.html (#21383)
    • PASS [expected FAIL] subtest: Multiple history traversals, last would be aborted
  • OK /html/browsers/windows/embedded-opener-remove-frame.html (#23867)
    • FAIL [expected PASS] subtest: opener of discarded auxiliary browsing context

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

  • 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/semantics/document-metadata/the-meta-element/pragma-directives/attr-meta-http-equiv-refresh/allow-scripts-flag-changing-1.html (#39694)
    • FAIL [expected PASS] subtest: Meta refresh is blocked by the allow-scripts sandbox flag at its creation time, not when refresh comes due

      uncaught exception: Error: assert_unreached: The iframe from which the meta came from must not refresh Reached unreachable code
      

  • TIMEOUT /html/semantics/embedded-content/media-elements/autoplay-allowed-by-feature-policy.https.sub.html (#41404)
    • PASS [expected TIMEOUT] subtest: Feature-Policy header: autoplay * allows same-origin iframes.
  • TIMEOUT [expected OK] /html/semantics/embedded-content/the-iframe-element/iframe_sandbox_navigate_other_frame_popup.sub.html (#39702)
    • TIMEOUT [expected FAIL] subtest: Sandboxed iframe can not navigate other frame's popup

      Test timed out
      

  • CRASH [expected OK] /html/semantics/forms/form-submission-0/form-submit-iframe-then-location-navigate.html (#29634)
  • OK /html/semantics/forms/form-submission-0/text-plain.window.html (#28687)
    • FAIL [expected PASS] subtest: text/plain: Basic File test (normal form)

      assert_equals: expected "basic=file-test.txt\r\n" but got ""
      

    • PASS [expected FAIL] subtest: text/plain: 0x00 in name (formdata event)
  • OK /html/semantics/scripting-1/the-script-element/execution-timing/077.html (#22139)
    • PASS [expected FAIL] subtest: adding several types of scripts through the DOM and removing some of them confuses scheduler
  • CRASH [expected OK] /html/webappapis/timers/cleartimeout-clearinterval.any.html
  • OK /navigation-timing/test-navigation-type-reload.html (#33334)
    • PASS [expected FAIL] subtest: Reload domComplete > Original domComplete
    • PASS [expected FAIL] subtest: Reload loadEventEnd > Original loadEventEnd
    • PASS [expected FAIL] subtest: Reload loadEventStart > Original loadEventStart
  • TIMEOUT /resource-timing/test_resource_timing.https.html (#25216)
    • PASS [expected FAIL] subtest: PerformanceEntry has correct name, initiatorType, startTime, and duration (xmlhttprequest)
  • CRASH [expected OK] /trusted-types/Node-multiple-arguments.html
  • CRASH [expected OK] /trusted-types/TrustedTypePolicy-CSP-no-name.html
  • 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 [expected OK] /visual-viewport/resize-event-order.html
    • TIMEOUT [expected FAIL] subtest: Popup: DOMWindow resize fired before VisualViewport.

      Test timed out
      

    • NOTRUN [expected FAIL] subtest: iframe: DOMWindow resize fired before VisualViewport.
  • CRASH [expected OK] /webaudio/the-audio-api/the-audiobuffersourcenode-interface/looped-constant-buffer.html
  • OK /webdriver/tests/classic/dismiss_alert/dismiss.py (#39098)
    • FAIL [expected PASS] subtest: test_dismiss_in_popup_window

      AssertionError: no such alert (404): No user prompt is currently active.
      

  • TIMEOUT [expected OK] /webstorage/localstorage-about-blank-3P-iframe-opens-3P-window.partitioned.html (#29053)
    • TIMEOUT [expected PASS] subtest: StorageKey: test 3P about:blank window opened from a 3P iframe

      Test timed out
      

  • ERROR [expected OK] /webxr/render_state_update.https.html (#27535)
  • ERROR [expected OK] /workers/baseurl/alpha/sharedworker-in-worker.html (#21315)
  • CRASH [expected OK] /workers/constructors/Worker/ctor-1.html
Stable unexpected results that are known to be intermittent (27)
  • TIMEOUT /FileAPI/url/url-in-tags-revoke.window.html (#19978)
    • PASS [expected TIMEOUT] subtest: Fetching a blob URL immediately before revoking it works in <script> tags.
  • OK /FileAPI/url/url-with-fetch.any.html (#21517)
    • FAIL [expected PASS] subtest: Revoke blob URL after calling fetch, fetch should succeed

      promise_test: Unhandled rejection with value: object "TypeError: Network error: Blob URL store error: InvalidFileID"
      

  • OK /IndexedDB/idbcursor-continuePrimaryKey-exceptions.any.html (#39277)
    • FAIL [expected PASS] subtest: IDBCursor continuePrimaryKey() on object store cursor

      assert_throws_dom: continuePrimaryKey() should throw if source is not an index function "function() {
              cursor.continuePrimaryKey(2, 2);
            }" threw object "TypeError: cursor.continuePrimaryKey is not a function" that is not a DOMException InvalidAccessError: property "code" is equal to undefined, expected 15
      

  • OK /IndexedDB/idbcursor-continuePrimaryKey-exceptions.any.worker.html (#39277)
    • FAIL [expected PASS] subtest: IDBCursor continuePrimaryKey() on object store cursor

      assert_throws_dom: continuePrimaryKey() should throw if source is not an index function "function() {
              cursor.continuePrimaryKey(2, 2);
            }" threw object "TypeError: cursor.continuePrimaryKey is not a function" that is not a DOMException InvalidAccessError: property "code" is equal to undefined, expected 15
      

  • OK /IndexedDB/idbobjectstore_getAll.any.html (#39276)
    • PASS [expected FAIL] subtest: Get all values with transaction.commit()
  • OK /IndexedDB/idbobjectstore_getAll.any.worker.html (#39400)
    • PASS [expected FAIL] subtest: Get all values with transaction.commit()
  • OK /IndexedDB/idbrequest-onupgradeneeded.any.html (#38895)
    • PASS [expected FAIL] subtest: transaction oncomplete ordering relative to open request onsuccess
  • OK /IndexedDB/idbrequest-onupgradeneeded.any.worker.html (#38971)
    • PASS [expected FAIL] subtest: transaction oncomplete ordering relative to open request onsuccess
  • OK /IndexedDB/key-conversion-exceptions.any.html (#39305)
    • FAIL [expected PASS] subtest: IDBCursor continue() method with throwing/invalid keys

      assert_throws_exactly: key conversion with throwing getter should rethrow function "() => {
            receiver[method](key);
          }" threw object "TypeError: receiver[method] is not a function" but we expected it to throw object "getter: throwing from getter"
      

    • FAIL [expected PASS] subtest: IDBCursor update() method with throwing/invalid keys

      assert_throws_exactly: throwing getter should rethrow during clone function "() => {
            cursor.update(value);
          }" threw object "TypeError: cursor.update is not a function" but we expected it to throw object "getter: throwing from getter"
      

  • OK /IndexedDB/key-conversion-exceptions.any.worker.html (#39284)
    • FAIL [expected PASS] subtest: IDBCursor continue() method with throwing/invalid keys

      assert_throws_exactly: key conversion with throwing getter should rethrow function "() => {
            receiver[method](key);
          }" threw object "TypeError: receiver[method] is not a function" but we expected it to throw object "getter: throwing from getter"
      

    • FAIL [expected PASS] subtest: IDBCursor update() method with throwing/invalid keys

      assert_throws_exactly: throwing getter should rethrow during clone function "() => {
            cursor.update(value);
          }" threw object "TypeError: cursor.update is not a function" but we expected it to throw object "getter: throwing from getter"
      

  • OK /_mozilla/css/offset_properties_inline.html (#40543)
    • PASS [expected FAIL] subtest: offsetTop
    • PASS [expected FAIL] subtest: offsetLeft
  • FAIL [expected PASS] /_mozilla/mozilla/sslfail.html (#10760)
  • TIMEOUT [expected OK] /_mozilla/mozilla/window_resize_event.html (#36741)
    • TIMEOUT [expected PASS] subtest: Popup onresize event fires after resizeTo

      Test timed out
      

  • TIMEOUT /content-security-policy/inheritance/location-reload.html (#38983)
    • PASS [expected FAIL] subtest: location.reload() of empty iframe.
  • TIMEOUT [expected OK] /fetch/api/redirect/redirect-keepalive.https.any.html (#32153)
    • TIMEOUT [expected PASS] subtest: [keepalive][iframe][load] mixed content redirect; setting up

      Test timed out
      

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

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

    • PASS [expected FAIL] subtest: sec-fetch-storage-access - Same site
  • OK /fetch/metadata/generated/css-font-face.sub.tentative.html (#34624)
    • PASS [expected FAIL] subtest: sec-fetch-storage-access - Not sent to non-trustworthy cross-site destination
  • TIMEOUT /html/interaction/focus/the-autofocus-attribute/supported-elements.html (#24145)
    • TIMEOUT [expected FAIL] subtest: Element with tabindex should support autofocus

      Test timed out
      

    • NOTRUN [expected PASS] subtest: Non-HTMLElement should not support autofocus
  • OK /html/semantics/embedded-content/the-iframe-element/iframe-loading-lazy-nav-location-replace.html (#32604)
    • FAIL [expected PASS] subtest: Navigating iframe loading='lazy' before it is loaded: location.replace

      uncaught exception: Error: assert_equals: expected "http://web-platform.test:8000/html/semantics/embedded-content/the-iframe-element/support/blank.htm?nav" but got "http://web-platform.test:8000/html/semantics/embedded-content/the-iframe-element/support/blank.htm?src"
      

  • OK /html/semantics/forms/form-submission-0/multipart-formdata.window.html (#28725)
    • PASS [expected FAIL] subtest: multipart/form-data: \r\n in value (formdata event)
  • 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 /preload/preload-error.sub.html (#37177)
    • PASS [expected FAIL] subtest: CORS-error (image): main
    • PASS [expected FAIL] subtest: CSP-error (image): main
    • PASS [expected FAIL] subtest: CORS-error (style): main
    • PASS [expected FAIL] subtest: CSP-error (style): main
    • PASS [expected FAIL] subtest: MIME-blocked (script): main
  • OK /resource-timing/buffer-full-add-then-clear.html (#40819)
    • PASS [expected FAIL] subtest: Test that if the buffer is cleared after entries were added to the secondary buffer, those entries make it into the primary one
  • TIMEOUT [expected OK] /resource-timing/nested-context-navigations-iframe.html (#24311)
    • TIMEOUT [expected PASS] subtest: Test that iframe navigations are not observable by the parent, even after history navigations by the parent

      Test timed out
      

    • NOTRUN [expected PASS] subtest: Test that crossorigin iframe navigations are not observable by the parent, even after history navigations by the parent
    • NOTRUN [expected PASS] subtest: Test that cross-site iframe navigations are not observable by the parent, even after history navigations by the parent
    • NOTRUN [expected PASS] subtest: Test that iframe navigations are not observable by the parent
    • NOTRUN [expected PASS] subtest: Test that crossorigin iframe navigations are not observable by the parent
    • NOTRUN [expected PASS] subtest: Test that cross-site iframe navigations are not observable by the parent
    • NOTRUN [expected PASS] subtest: Test that iframe refreshes are not observable by the parent
    • NOTRUN [expected PASS] subtest: Test that crossorigin iframe refreshes are not observable by the parent
    • NOTRUN [expected PASS] subtest: Test that cross-site iframe refreshes are not observable by the parent
  • CRASH [expected OK] /resource-timing/render-blocking-status-link.html (#41664)
  • OK /touch-events/single-tap-when-touchend-listener-use-sync-xhr.html (#41175)
    • PASS [expected FAIL] subtest: Click event should be fired when touchend opens synchronous XHR
  • 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.
Stable unexpected results (10)
  • PASS [expected FAIL] /css/css-overflow/text-overflow-ellipsis-editing-input.html
  • OK /css/css-ui/animation/caret-color-composition.html
    • PASS [expected FAIL] subtest: Compositing CSS Animations: property <caret-color> underlying [auto] from add [rgb(100, 100, 100)] to add [rgb(200, 200, 200)] at (-0.3) should be [rgb(70, 70, 70)]
    • PASS [expected FAIL] subtest: Compositing CSS Animations: property <caret-color> underlying [auto] from add [rgb(100, 100, 100)] to add [rgb(200, 200, 200)] at (0) should be [rgb(100, 100, 100)]
    • PASS [expected FAIL] subtest: Compositing CSS Animations: property <caret-color> underlying [auto] from add [rgb(100, 100, 100)] to add [rgb(200, 200, 200)] at (0.5) should be [rgb(150, 150, 150)]
    • PASS [expected FAIL] subtest: Compositing CSS Animations: property <caret-color> underlying [auto] from add [rgb(100, 100, 100)] to add [rgb(200, 200, 200)] at (1) should be [rgb(200, 200, 200)]
    • PASS [expected FAIL] subtest: Compositing CSS Animations: property <caret-color> underlying [auto] from add [rgb(100, 100, 100)] to add [rgb(200, 200, 200)] at (1.5) should be [rgb(250, 250, 250)]
  • OK /css/css-ui/animation/caret-color-interpolation.html
    • PASS [expected FAIL] subtest: CSS Transitions: property <caret-color> from neutral to [green] at (-0.3) should be [rgb(255, 255, 0)]
    • PASS [expected FAIL] subtest: CSS Transitions: property <caret-color> from neutral to [green] at (0) should be [rgb(255, 255, 0)]
    • PASS [expected FAIL] subtest: CSS Transitions: property <caret-color> from neutral to [green] at (0.3) should be [rgb(179, 217, 0)]
    • PASS [expected FAIL] subtest: CSS Transitions: property <caret-color> from neutral to [green] at (0.6) should be [rgb(102, 179, 0)]
    • PASS [expected FAIL] subtest: CSS Transitions: property <caret-color> from neutral to [green] at (1) should be [rgb(0, 128, 0)]
    • PASS [expected FAIL] subtest: CSS Transitions: property <caret-color> from neutral to [green] at (1.5) should be [rgb(0, 65, 0)]
    • PASS [expected FAIL] subtest: CSS Transitions with transition: all: property <caret-color> from neutral to [green] at (-0.3) should be [rgb(255, 255, 0)]
    • PASS [expected FAIL] subtest: CSS Transitions with transition: all: property <caret-color> from neutral to [green] at (0) should be [rgb(255, 255, 0)]
    • PASS [expected FAIL] subtest: CSS Transitions with transition: all: property <caret-color> from neutral to [green] at (0.3) should be [rgb(179, 217, 0)]
    • PASS [expected FAIL] subtest: CSS Transitions with transition: all: property <caret-color> from neutral to [green] at (0.6) should be [rgb(102, 179, 0)]
    • And 150 more unexpected results...
  • OK /css/css-ui/caret-color-009.html
    • PASS [expected FAIL] subtest: Check the resolved value of 'auto'
    • PASS [expected FAIL] subtest: Check the resolved value of 'currentcolor'
    • PASS [expected FAIL] subtest: Check the resolved value of 'initial'
  • OK /css/css-ui/caret-color-013.html
    • PASS [expected FAIL] subtest: Test default caret-color
    • PASS [expected FAIL] subtest: Test caret-color: initial
    • PASS [expected FAIL] subtest: Test caret-color: inherit
    • PASS [expected FAIL] subtest: Test caret-color: auto
    • PASS [expected FAIL] subtest: Test caret-color: currentcolor
    • PASS [expected FAIL] subtest: Test caret-color: lime
    • PASS [expected FAIL] subtest: Reset caret-color: initial
    • PASS [expected FAIL] subtest: Test caret-color: rgb(0, 100, 100)
    • PASS [expected FAIL] subtest: Test caret-color: initial (inherited)
    • PASS [expected FAIL] subtest: Test caret-color: inherit (inherited)
    • And 1 more unexpected results...
  • OK /css/css-ui/caret-color-021.html
    • PASS [expected FAIL] subtest: Default caret-color is not interpolable
  • OK /css/css-ui/inheritance.html
    • PASS [expected FAIL] subtest: Property caret-color has initial value rgb(0, 255, 0)
    • PASS [expected FAIL] subtest: Property caret-color inherits
  • OK /css/css-ui/parsing/caret-color-computed.html
    • PASS [expected FAIL] subtest: Property caret-color value 'auto'
    • PASS [expected FAIL] subtest: Property caret-color value 'currentColor'
    • PASS [expected FAIL] subtest: Property caret-color value 'red'
  • OK /css/css-ui/parsing/caret-color-valid.html
    • PASS [expected FAIL] subtest: e.style['caret-color'] = "auto" should set the property value
    • PASS [expected FAIL] subtest: e.style['caret-color'] = "rgba(10, 20, 30, 0.4)" should set the property value
  • OK /css/cssom/getComputedStyle-resolved-colors.html
    • PASS [expected FAIL] subtest: The resolved value for 'caret-color' is the used value

@github-actions
Copy link
Copy Markdown

⚠️ Try run (#21094129597) failed!

@mrobinson mrobinson force-pushed the caret-color branch 2 times, most recently from decc09e to 649fd3b Compare January 21, 2026 09:16
@mrobinson mrobinson marked this pull request as ready for review January 21, 2026 09:16
@mrobinson mrobinson requested a review from Loirooriol as a code owner January 21, 2026 09:16
@servo-highfive servo-highfive added the S-awaiting-review There is new code that needs to be reviewed. label Jan 21, 2026
@mrobinson
Copy link
Copy Markdown
Member Author

Okay. This one is ready for review and is very simple.

Cargo.toml Outdated
sea-query-rusqlite = { version = "0.8.0-rc.15" }
sec1 = "0.7"
selectors = { git = "https://github.com/servo/stylo", rev = "71737ad5c8b29c143a6c992af6222833f5d38b43" }
selectors = { git = "https://github.com/servo/stylo", branch = "caret-color" }
Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

I will remember to change these lines when landing.

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.

So we are no longer using the date branches?

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

See #42029. I was not involved with this, but I think it was done to allow building Servo more easily from other projects.

@servo-highfive servo-highfive removed the S-awaiting-review There is new code that needs to be reviewed. label Jan 21, 2026
github-merge-queue bot pushed a commit to servo/stylo that referenced this pull request Jan 21, 2026
This upgrades our version of `stylo` to one that supports
`caret-color` and implements support for it during display list
construction.

Signed-off-by: Martin Robinson <[email protected]>
@servo-highfive servo-highfive added the S-awaiting-review There is new code that needs to be reviewed. label Jan 21, 2026
@mrobinson mrobinson enabled auto-merge January 21, 2026 09:43
@mrobinson mrobinson added this pull request to the merge queue Jan 21, 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 Jan 21, 2026
Merged via the queue into servo:main with commit c5d3c6e Jan 21, 2026
32 checks passed
@mrobinson mrobinson deleted the caret-color branch January 21, 2026 10:35
@servo-highfive servo-highfive removed the S-awaiting-merge The PR is in the process of compiling and running tests on the automated CI. label Jan 21, 2026
Loirooriol pushed a commit to servo/stylo that referenced this pull request Feb 5, 2026
Loirooriol pushed a commit to servo/stylo that referenced this pull request Feb 5, 2026
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.

4 participants