Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 5c4b4308307bfb7cb290246fa62e20a29d5f0c0f
      
https://github.com/WebKit/WebKit/commit/5c4b4308307bfb7cb290246fa62e20a29d5f0c0f
  Author: Richard Robinson <[email protected]>
  Date:   2026-04-27 (Mon, 27 Apr 2026)

  Changed paths:
    A Tools/TestWebKitAPI/Helpers/cocoa/JavaScriptMessages.swift
    A Tools/TestWebKitAPI/Helpers/cocoa/JavaScriptTypes.swift
    A Tools/TestWebKitAPI/Helpers/cocoa/WebPage+JavaScriptExpression.swift
    M Tools/TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj
    M Tools/TestWebKitAPI/Tests/WebKit/WebPage/AppKitGesturesTests.swift
    A Tools/TestWebKitAPI/Tests/WebKit/WebPage/JavaScriptExpressionTests.swift

  Log Message:
  -----------
  [Swift Testing] Make it easy to allow a WebPage to get and set selection, and 
to evaluate JS in general
https://bugs.webkit.org/show_bug.cgi?id=313383
rdar://175649972

Reviewed by Dan Glastonbury.

Implement a generalized way to create semi-type-safe, re-usable JS expressions 
to be evaluated
by a WebPage in TestWebKitAPI.

Use this new mechanism and implement some basic expressions to get and set 
selections.

* Tools/TestWebKitAPI/Helpers/cocoa/JavaScriptMessages.swift: Added.
(SelectionBoundingClientRect.expression):
(SelectionBoundingClientRect.encoded):
(SetSelection.expression):
(SetSelection.encoded):
(GetSelection.expression):
(GetSelection.encoded):
* Tools/TestWebKitAPI/Helpers/cocoa/JavaScriptTypes.swift: Added.
(JavaScriptSelection.encoded):
* Tools/TestWebKitAPI/Helpers/cocoa/WebPage+JavaScriptExpression.swift: Added.
(JavaScriptEncodable.encoded):
(JavaScriptExpression.expression):
* Tools/TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
* Tools/TestWebKitAPI/Tests/WebKit/WebPage/AppKitGesturesTests.swift:
(AppKitGesturesTests.clickingChangesSelection):
* Tools/TestWebKitAPI/Tests/WebKit/WebPage/JavaScriptExpressionTests.swift: 
Added.
(JavaScriptExpressionTests.setAndGetSelectionWithCollapsedPositionRoundTrip):
(JavaScriptExpressionTests.setSelectionAppliesRangeSelection):
(JavaScriptExpressionTests.getSelectionReturnsCollapsedAfterCollapsedIsSet):
(JavaScriptExpressionTests.getSelectionReturnsRangeAfterRangeIsSet):
(JavaScriptExpressionTests.setAndGetSelectionRangeRoundTrip):
(JavaScriptExpressionTests.selectionBoundingClientRectReturnsNonEmptyRectForRangeSelection):
(JavaScriptExpressionTests.selectionBoundingClientRectReturnsZeroWidthRectForCollapsedSelection):

Canonical link: https://commits.webkit.org/312070@main



To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications

Reply via email to