Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 45a17f7bba614c5df5b50500bc5f16dcce1215ab
      
https://github.com/WebKit/WebKit/commit/45a17f7bba614c5df5b50500bc5f16dcce1215ab
  Author: Alex Christensen <achristen...@apple.com>
  Date:   2023-05-05 (Fri, 05 May 2023)

  Changed paths:
    M Source/WTF/wtf/PlatformHave.h
    M Source/WebCore/PAL/pal/mac/DataDetectorsSoftLink.h
    M Source/WebCore/PAL/pal/mac/DataDetectorsSoftLink.mm
    M Source/WebCore/PAL/pal/spi/mac/DataDetectorsSPI.h
    M Source/WebCore/editing/cocoa/DataDetection.h
    M Source/WebCore/editing/cocoa/DataDetection.mm
    M Source/WebKit/Platform/mac/MenuUtilities.mm
    M Source/WebKit/Shared/Cocoa/ArgumentCodersCocoa.mm
    M Source/WebKit/Shared/WebHitTestResultData.h
    M Source/WebKit/Shared/mac/WebHitTestResultPlatformData.serialization.in
    M Source/WebKit/UIProcess/API/APIHitTestResult.h
    M Source/WebKit/UIProcess/mac/WKImmediateActionController.h
    M Source/WebKit/UIProcess/mac/WKImmediateActionController.mm
    M Source/WebKit/WebProcess/InjectedBundle/API/c/WKBundlePageOverlay.cpp
    M Source/WebKit/WebProcess/WebPage/WebPageOverlay.h
    M Source/WebKitLegacy/mac/WebView/WebImmediateActionController.mm

  Log Message:
  -----------
  Enable strict deserialization of DDActionContext behind a runtime flag
https://bugs.webkit.org/show_bug.cgi?id=256279
rdar://108866400

Reviewed by David Kilzer.

WebKit gets them from 3 places:

1. We allocate them ourselves.  I replaced this with allocation of 
DDSecureActionContexts.
2. We get them from calling 
contextForView:altMode:interactionStartedHandler:interactionChangedHandler:interactionStoppedHandler:
   on an existing DDActionContext.  This will give us a DDSecureActionContexts 
once rdar://108865826 is fixed.
3. We get them from WebUIDelegatePrivate's 
_webView:actionContextForHitTestResult:range: in WebKitLegacy.
   This is inconsequential because these will never be serialized across IPC, 
and DDActionContext and DDSecureActionContext
   behave the same except for their serialization code.  I added a cast in 
WebKitLegacy to keep it compiling, but ObjC will
   just do the right thing with all selectors given to the object.  Also, 
there's only one user of this delegate callback
   and it seems to be dead code.

I verified that adopting DDSecureActionContext causes the tests that used to 
have issues deserializing a DDActionContext
to no longer have the issues.

* Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml:
* Source/WTF/wtf/PlatformHave.h:
* Source/WebCore/PAL/pal/mac/DataDetectorsSoftLink.h:
* Source/WebCore/PAL/pal/mac/DataDetectorsSoftLink.mm:
* Source/WebCore/PAL/pal/spi/mac/DataDetectorsSPI.h:
* Source/WebCore/editing/cocoa/DataDetection.h:
* Source/WebCore/editing/cocoa/DataDetection.mm:
(WebCore::detectItem):
* Source/WebKit/Platform/mac/MenuUtilities.mm:
(WebKit::menuItemForTelephoneNumber):
* Source/WebKit/Shared/Cocoa/ArgumentCodersCocoa.mm:
(IPC::haveSecureActionContext):
(IPC::shouldEnableStrictMode):
* Source/WebKit/Shared/WebHitTestResultData.h:
* Source/WebKit/Shared/mac/WebHitTestResultPlatformData.serialization.in:
* Source/WebKit/UIProcess/API/APIHitTestResult.h:
* Source/WebKit/UIProcess/mac/WKImmediateActionController.h:
* Source/WebKit/UIProcess/mac/WKImmediateActionController.mm:
(-[WKImmediateActionController _animationControllerForDataDetectedText]):
(-[WKImmediateActionController _animationControllerForDataDetectedLink]):
* Source/WebKit/WebProcess/InjectedBundle/API/c/WKBundlePageOverlay.cpp:
* Source/WebKit/WebProcess/WebPage/WebPageOverlay.h:
* Source/WebKitLegacy/mac/WebView/WebImmediateActionController.mm:
(-[WebImmediateActionController _animationControllerForDataDetectedText]):

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


_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to