Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: e42b814875a017b4a27630c14cf83774d2a96359
      
https://github.com/WebKit/WebKit/commit/e42b814875a017b4a27630c14cf83774d2a96359
  Author: Ryosuke Niwa <[email protected]>
  Date:   2024-11-18 (Mon, 18 Nov 2024)

  Changed paths:
    M Source/WebCore/bindings/js/DOMWrapperWorld.h
    M Source/WebCore/html/HTMLInputElement.cpp
    M Source/WebCore/html/HTMLInputElement.h
    M Source/WebCore/html/HTMLInputElement.idl
    M Source/WebKit/CMakeLists.txt
    M Source/WebKit/DerivedSources-input.xcfilelist
    M Source/WebKit/DerivedSources.make
    M Source/WebKit/PlatformMac.cmake
    M Source/WebKit/Scripts/webkit/messages.py
    M Source/WebKit/Shared/API/Cocoa/WebKitPrivate.h
    A Source/WebKit/Shared/ContentWorldData.h
    A Source/WebKit/Shared/ContentWorldData.serialization.in
    M Source/WebKit/Shared/ContentWorldShared.h
    M Source/WebKit/Shared/UserContentControllerParameters.h
    M Source/WebKit/Shared/UserContentControllerParameters.serialization.in
    M Source/WebKit/SourcesCocoa.txt
    M Source/WebKit/UIProcess/API/APIContentWorld.cpp
    M Source/WebKit/UIProcess/API/APIContentWorld.h
    M Source/WebKit/UIProcess/API/Cocoa/WKContentWorld.mm
    A Source/WebKit/UIProcess/API/Cocoa/WKContentWorldConfiguration.mm
    M Source/WebKit/UIProcess/API/Cocoa/WKContentWorldPrivate.h
    A Source/WebKit/UIProcess/API/Cocoa/_WKContentWorldConfiguration.h
    M Source/WebKit/UIProcess/API/Cocoa/_WKWebPushSubscriptionData.mm
    M Source/WebKit/UIProcess/Cocoa/CoreTelephonyUtilities.mm
    M Source/WebKit/UIProcess/ios/PointerTouchCompatibilitySimulator.h
    M Source/WebKit/WebKit.xcodeproj/project.pbxproj
    M Source/WebKit/WebProcess/InjectedBundle/InjectedBundleScriptWorld.cpp
    M Source/WebKit/WebProcess/InjectedBundle/InjectedBundleScriptWorld.h
    M Source/WebKit/WebProcess/UserContent/WebUserContentController.cpp
    M Source/WebKit/WebProcess/UserContent/WebUserContentController.h
    M Source/WebKit/WebProcess/UserContent/WebUserContentController.messages.in
    M Source/WebKit/WebProcess/WebPage/WebPage.cpp
    M Source/WebKit/WebProcess/WebPage/WebPage.h
    M Source/WebKit/WebProcess/WebPage/WebPage.messages.in
    M Tools/TestWebKitAPI/Tests/WebKitCocoa/UserContentController.mm

  Log Message:
  -----------
  Add API to control JS features available to content scripts
https://bugs.webkit.org/show_bug.cgi?id=282591
rdar://139704339

Reviewed by Wenson Hsieh.

This PR introduces _WKContentWorldConfiguration, which controls whether content
script has the capability to autofill, access closed shadow roots, and disable
legacy behavior of element names overriding functions on document prototype.

For autofill, we expose 4 new attributes on HTMLInputElement:
 * autofillAvailable - boolean indicating whether autofill is available or not
   for users.
 * autofilled - boolean indicating whether the input element had been autofilled
   or not.
 * autofillVisibility - specifies the visibility of autofilled text. Possible
   values are "normal", "visible", and "hidden".
 * autofillButtonType - specifies the type of autofill button to display.
   Possible values are "none", "credentials", "contacts", "strong-password",
   "credit-card", and "loading".

* Source/WebCore/bindings/js/DOMWrapperWorld.h:
(WebCore::DOMWrapperWorld::setAllowAutofill):
(WebCore::DOMWrapperWorld::allowAutofill const):
* Source/WebCore/html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::autofillVisibility const):
(WebCore::HTMLInputElement::setAutofillVisibility):
* Source/WebCore/html/HTMLInputElement.h:
* Source/WebCore/html/HTMLInputElement.idl:
* Source/WebKit/CMakeLists.txt:
* Source/WebKit/DerivedSources-input.xcfilelist:
* Source/WebKit/DerivedSources.make:
* Source/WebKit/PlatformMac.cmake:
* Source/WebKit/Scripts/webkit/messages.py:
(headers_for_type):
* Source/WebKit/Shared/API/Cocoa/WebKitPrivate.h:
* Source/WebKit/Shared/ContentWorldData.h:
* Source/WebKit/Shared/ContentWorldData.serialization.in:
* Source/WebKit/Shared/ContentWorldShared.h:
* Source/WebKit/Shared/UserContentControllerParameters.h:
* Source/WebKit/Shared/UserContentControllerParameters.serialization.in:
* Source/WebKit/SourcesCocoa.txt:
* Source/WebKit/UIProcess/API/APIContentWorld.cpp:
(API::ContentWorld::ContentWorld):
(API::ContentWorld::sharedWorldWithName):
(API::ContentWorld::defaultClientWorld):
* Source/WebKit/UIProcess/API/APIContentWorld.h:
* Source/WebKit/UIProcess/API/Cocoa/WKContentWorld.mm:
(checkContentWorldOptions):
(+[WKContentWorld worldWithName:]):
(+[WKContentWorld _worldWithConfiguration:]):
* Source/WebKit/UIProcess/API/Cocoa/WKContentWorldConfiguration.mm: Added.
(-[_WKContentWorldConfiguration name]):
(-[_WKContentWorldConfiguration setName:]):
(-[_WKContentWorldConfiguration copyWithZone:]):
(+[_WKContentWorldConfiguration supportsSecureCoding]):
(-[_WKContentWorldConfiguration encodeWithCoder:]):
(-[_WKContentWorldConfiguration initWithCoder:]):
* Source/WebKit/UIProcess/API/Cocoa/WKContentWorldPrivate.h:
* Source/WebKit/UIProcess/API/Cocoa/_WKContentWorldConfiguration.h:
* Source/WebKit/UIProcess/API/Cocoa/_WKWebPushSubscriptionData.mm:
* Source/WebKit/UIProcess/Cocoa/CoreTelephonyUtilities.mm:
* Source/WebKit/UIProcess/ios/PointerTouchCompatibilitySimulator.h:
* Source/WebKit/WebKit.xcodeproj/project.pbxproj:
* Source/WebKit/WebProcess/InjectedBundle/InjectedBundleScriptWorld.cpp:
(WebKit::InjectedBundleScriptWorld::setAllowAutofill):
* Source/WebKit/WebProcess/InjectedBundle/InjectedBundleScriptWorld.h:
* Source/WebKit/WebProcess/UserContent/WebUserContentController.cpp:
(WebKit::WebUserContentController::addContentWorld):
(WebKit::WebUserContentController::addContentWorlds):
* Source/WebKit/WebProcess/UserContent/WebUserContentController.h:
* Source/WebKit/WebProcess/UserContent/WebUserContentController.messages.in:
* Source/WebKit/WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::runJavaScriptInFrameInScriptWorld):
* Source/WebKit/WebProcess/WebPage/WebPage.h:
* Source/WebKit/WebProcess/WebPage/WebPage.messages.in:
* Tools/TestWebKitAPI/Tests/WebKitCocoa/UserContentController.mm:
(TEST(WKUserContentController, AllowAutofill)):
(TEST(WKUserContentController, AllowAccessToClosedShadowRoots)):
(TEST(WKUserContentController, DisableLegacyBuiltinOverrides)):

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



To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to