[webkit-changes] [WebKit/WebKit] a7330e: Port ControlPart related controls to the new IPC s...

Gavin noreply at github.com
Thu Nov 9 06:47:45 PST 2023


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: a7330e04e7107c53fc208a5cf3b7a79e7f80a7b2
      https://github.com/WebKit/WebKit/commit/a7330e04e7107c53fc208a5cf3b7a79e7f80a7b2
  Author: Gavin Phillips <gavin.p at apple.com>
  Date:   2023-11-09 (Thu, 09 Nov 2023)

  Changed paths:
    M Source/WebCore/Headers.cmake
    M Source/WebCore/Sources.txt
    M Source/WebCore/WebCore.xcodeproj/project.pbxproj
    M Source/WebCore/accessibility/AccessibilityRenderObject.cpp
    M Source/WebCore/css/CSSPrimitiveValueMappings.h
    M Source/WebCore/platform/graphics/cocoa/controls/ApplePayButtonCocoa.h
    M Source/WebCore/platform/graphics/cocoa/controls/ApplePayButtonCocoa.mm
    M Source/WebCore/platform/graphics/cocoa/controls/ControlFactoryCocoa.h
    M Source/WebCore/platform/graphics/cocoa/controls/ControlFactoryCocoa.mm
    A Source/WebCore/platform/graphics/controls/ApplePayButtonAppearance.cpp
    A Source/WebCore/platform/graphics/controls/ApplePayButtonAppearance.h
    R Source/WebCore/platform/graphics/controls/ApplePayButtonPart.cpp
    R Source/WebCore/platform/graphics/controls/ApplePayButtonPart.h
    A Source/WebCore/platform/graphics/controls/ButtonAppearance.h
    R Source/WebCore/platform/graphics/controls/ButtonPart.h
    A Source/WebCore/platform/graphics/controls/ColorWellAppearance.h
    R Source/WebCore/platform/graphics/controls/ColorWellPart.h
    A Source/WebCore/platform/graphics/controls/ControlAppearance.h
    M Source/WebCore/platform/graphics/controls/ControlFactory.h
    M Source/WebCore/platform/graphics/controls/ControlPart.cpp
    M Source/WebCore/platform/graphics/controls/ControlPart.h
    A Source/WebCore/platform/graphics/controls/ImageControlsButtonAppearance.h
    R Source/WebCore/platform/graphics/controls/ImageControlsButtonPart.h
    A Source/WebCore/platform/graphics/controls/InnerSpinButtonAppearance.h
    R Source/WebCore/platform/graphics/controls/InnerSpinButtonPart.h
    A Source/WebCore/platform/graphics/controls/MenuListAppearance.h
    A Source/WebCore/platform/graphics/controls/MenuListButtonAppearance.h
    R Source/WebCore/platform/graphics/controls/MenuListButtonPart.h
    R Source/WebCore/platform/graphics/controls/MenuListPart.h
    A Source/WebCore/platform/graphics/controls/MeterAppearance.cpp
    A Source/WebCore/platform/graphics/controls/MeterAppearance.h
    R Source/WebCore/platform/graphics/controls/MeterPart.cpp
    R Source/WebCore/platform/graphics/controls/MeterPart.h
    M Source/WebCore/platform/graphics/controls/PlatformControl.h
    A Source/WebCore/platform/graphics/controls/ProgressBarAppearance.cpp
    A Source/WebCore/platform/graphics/controls/ProgressBarAppearance.h
    R Source/WebCore/platform/graphics/controls/ProgressBarPart.cpp
    R Source/WebCore/platform/graphics/controls/ProgressBarPart.h
    A Source/WebCore/platform/graphics/controls/SearchFieldAppearance.h
    A Source/WebCore/platform/graphics/controls/SearchFieldCancelButtonAppearance.h
    R Source/WebCore/platform/graphics/controls/SearchFieldCancelButtonPart.h
    R Source/WebCore/platform/graphics/controls/SearchFieldPart.h
    A Source/WebCore/platform/graphics/controls/SearchFieldResultsAppearance.h
    R Source/WebCore/platform/graphics/controls/SearchFieldResultsPart.h
    A Source/WebCore/platform/graphics/controls/SliderThumbAppearance.h
    R Source/WebCore/platform/graphics/controls/SliderThumbPart.h
    A Source/WebCore/platform/graphics/controls/SliderTrackAppearance.cpp
    A Source/WebCore/platform/graphics/controls/SliderTrackAppearance.h
    R Source/WebCore/platform/graphics/controls/SliderTrackPart.cpp
    R Source/WebCore/platform/graphics/controls/SliderTrackPart.h
    A Source/WebCore/platform/graphics/controls/SwitchThumbAppearance.h
    R Source/WebCore/platform/graphics/controls/SwitchThumbPart.h
    A Source/WebCore/platform/graphics/controls/SwitchTrackAppearance.h
    R Source/WebCore/platform/graphics/controls/SwitchTrackPart.h
    A Source/WebCore/platform/graphics/controls/TextAreaAppearance.h
    R Source/WebCore/platform/graphics/controls/TextAreaPart.h
    A Source/WebCore/platform/graphics/controls/TextFieldAppearance.h
    R Source/WebCore/platform/graphics/controls/TextFieldPart.h
    A Source/WebCore/platform/graphics/controls/ToggleButtonAppearance.h
    R Source/WebCore/platform/graphics/controls/ToggleButtonPart.h
    M Source/WebCore/platform/graphics/ios/controls/ControlFactoryIOS.h
    M Source/WebCore/platform/graphics/ios/controls/ControlFactoryIOS.mm
    M Source/WebCore/platform/graphics/mac/controls/ButtonMac.h
    M Source/WebCore/platform/graphics/mac/controls/ButtonMac.mm
    M Source/WebCore/platform/graphics/mac/controls/ColorWellMac.h
    M Source/WebCore/platform/graphics/mac/controls/ColorWellMac.mm
    M Source/WebCore/platform/graphics/mac/controls/ControlFactoryMac.h
    M Source/WebCore/platform/graphics/mac/controls/ControlFactoryMac.mm
    M Source/WebCore/platform/graphics/mac/controls/ImageControlsButtonMac.h
    M Source/WebCore/platform/graphics/mac/controls/ImageControlsButtonMac.mm
    M Source/WebCore/platform/graphics/mac/controls/InnerSpinButtonMac.h
    M Source/WebCore/platform/graphics/mac/controls/InnerSpinButtonMac.mm
    M Source/WebCore/platform/graphics/mac/controls/MenuListButtonMac.h
    M Source/WebCore/platform/graphics/mac/controls/MenuListButtonMac.mm
    M Source/WebCore/platform/graphics/mac/controls/MenuListMac.h
    M Source/WebCore/platform/graphics/mac/controls/MenuListMac.mm
    M Source/WebCore/platform/graphics/mac/controls/MeterMac.h
    M Source/WebCore/platform/graphics/mac/controls/MeterMac.mm
    M Source/WebCore/platform/graphics/mac/controls/ProgressBarMac.h
    M Source/WebCore/platform/graphics/mac/controls/ProgressBarMac.mm
    M Source/WebCore/platform/graphics/mac/controls/SearchFieldCancelButtonMac.h
    M Source/WebCore/platform/graphics/mac/controls/SearchFieldCancelButtonMac.mm
    M Source/WebCore/platform/graphics/mac/controls/SearchFieldMac.h
    M Source/WebCore/platform/graphics/mac/controls/SearchFieldMac.mm
    M Source/WebCore/platform/graphics/mac/controls/SearchFieldResultsMac.h
    M Source/WebCore/platform/graphics/mac/controls/SearchFieldResultsMac.mm
    M Source/WebCore/platform/graphics/mac/controls/SliderThumbMac.h
    M Source/WebCore/platform/graphics/mac/controls/SliderThumbMac.mm
    M Source/WebCore/platform/graphics/mac/controls/SliderTrackMac.h
    M Source/WebCore/platform/graphics/mac/controls/SliderTrackMac.mm
    M Source/WebCore/platform/graphics/mac/controls/SwitchThumbMac.h
    M Source/WebCore/platform/graphics/mac/controls/SwitchThumbMac.mm
    M Source/WebCore/platform/graphics/mac/controls/SwitchTrackMac.h
    M Source/WebCore/platform/graphics/mac/controls/SwitchTrackMac.mm
    M Source/WebCore/platform/graphics/mac/controls/TextAreaMac.h
    M Source/WebCore/platform/graphics/mac/controls/TextAreaMac.mm
    M Source/WebCore/platform/graphics/mac/controls/TextFieldMac.h
    M Source/WebCore/platform/graphics/mac/controls/TextFieldMac.mm
    M Source/WebCore/platform/graphics/mac/controls/ToggleButtonMac.h
    M Source/WebCore/platform/graphics/mac/controls/ToggleButtonMac.mm
    M Source/WebCore/rendering/RenderMenuList.cpp
    M Source/WebCore/rendering/RenderTheme.cpp
    M Source/WebCore/rendering/RenderTheme.h
    M Source/WebCore/rendering/RenderThemeCocoa.mm
    M Source/WebCore/rendering/RenderThemeIOS.h
    M Source/WebCore/rendering/RenderThemeIOS.mm
    M Source/WebCore/rendering/RenderThemeMac.h
    M Source/WebCore/rendering/RenderThemeMac.mm
    M Source/WebCore/rendering/style/RenderStyleInlines.h
    M Source/WebKit/Shared/WebCoreArgumentCoders.cpp
    M Source/WebKit/Shared/WebCoreArgumentCoders.h
    M Source/WebKit/Shared/WebCoreArgumentCoders.serialization.in

  Log Message:
  -----------
  Port ControlPart related controls to the new IPC serialization format
https://bugs.webkit.org/show_bug.cgi?id=261819
rdar://115781032

Reviewed by Aditya Keerthi and Said Abou-Hallawa.

This change ports ControlPart and it's related appearances to the new IPC
serialization format. In order to do this, we've had to extract the
ControlPartAppearance out of the ControlPart class itself. ControlPart now
acts as a wrapper around the the ControlPartAppearance, the ControlFactory,
and the PlatformControl. It's the responsibility of the ControlPartAppearance
to perform appearance specific operations on behald of the ControlPart. This
includes instantiating the appearance specific PlatformControl.

This change also adds the all of the new ControlPartAppearance to the
.serialization.in files, allowing them to be serialized within a
ControlPart. This includes:
    - ApplePayButtonAppearance,
    - ButtonAppearance,
    - ColorWellAppearance,
    - DefaultButtonAppearance,
    - ImageControlsButtonAppearance,
    - InnerSpinButtonAppearance,
    - MenuListButtonAppearance,
    - MenuListAppearance,
    - MeterAppearance,
    - ProgressBarAppearance,
    - PushButtonAppearance,
    - SearchFieldCancelButtonAppearance,
    - SearchFieldAppearance,
    - SearchFieldResultsButtonAppearance,
    - SearchFieldResultsDecorationAppearance,
    - SliderThumbHorizontalAppearance,
    - SliderThumbVerticalAppearance,
    - SliderTrackHorizontalAppearance,
    - SliderTrackVerticalAppearance,
    - SquareButtonAppearance,
    - ListBoxAppearance,
    - TextAreaAppearance,
    - TextFieldAppearance,
    - CheckboxAppearance,
    - RadioAppearance

* Source/WebCore/platform/graphics/cocoa/controls/ApplePayButtonCocoa.h:
* Source/WebCore/platform/graphics/cocoa/controls/ApplePayButtonCocoa.mm:
(WebCore::ApplePayButtonCocoa::ApplePayButtonCocoa):
(WebCore::ApplePayButtonCocoa::draw):
* Source/WebCore/platform/graphics/cocoa/controls/ControlFactoryCocoa.h:
* Source/WebCore/platform/graphics/cocoa/controls/ControlFactoryCocoa.mm:
(WebCore::ControlFactoryCocoa::createPlatformApplePayButton):
* Source/WebCore/platform/graphics/controls/ApplePayButtonPart.cpp:
(WebCore::ApplePayButtonPart::ApplePayButtonPart):
(WebCore::ApplePayButtonPart::createPlatformControl):
(WebCore::ApplePayButtonPart::create): Deleted.
* Source/WebCore/platform/graphics/controls/ApplePayButtonPart.h:
* Source/WebCore/platform/graphics/controls/ButtonPart.h:
(WebCore::ButtonPart::createPlatformControl):
* Source/WebCore/platform/graphics/controls/ColorWellPart.h:
* Source/WebCore/platform/graphics/controls/ControlFactory.h:
* Source/WebCore/platform/graphics/controls/ControlPart.cpp:
(WebCore::ControlPart::create):
(WebCore::ControlPart::ControlPart):
(WebCore::ControlPart::createPlatformControl):
(WebCore::ControlPart::style const):
(WebCore::ControlPart::type const):
* Source/WebCore/platform/graphics/controls/ControlPart.h:
(WebCore::ControlPart::type const): Deleted.
* Source/WebCore/platform/graphics/controls/ImageControlsButtonPart.h:
* Source/WebCore/platform/graphics/controls/InnerSpinButtonPart.h:
* Source/WebCore/platform/graphics/controls/MenuListButtonPart.h:
* Source/WebCore/platform/graphics/controls/MenuListPart.h:
* Source/WebCore/platform/graphics/controls/MeterPart.cpp:
(WebCore::MeterPart::MeterPart):
(WebCore::MeterPart::createPlatformControl):
(WebCore::MeterPart::create): Deleted.
* Source/WebCore/platform/graphics/controls/MeterPart.h:
* Source/WebCore/platform/graphics/controls/PlatformControl.h:
(WebCore::PlatformControl::owningPart const):
* Source/WebCore/platform/graphics/controls/ProgressBarPart.cpp:
(WebCore::ProgressBarPart::ProgressBarPart):
(WebCore::ProgressBarPart::createPlatformControl):
(WebCore::ProgressBarPart::create): Deleted.
* Source/WebCore/platform/graphics/controls/ProgressBarPart.h:
(WebCore::ProgressBarPart::position const): Deleted.
(WebCore::ProgressBarPart::setPosition): Deleted.
(WebCore::ProgressBarPart::animationStartTime const): Deleted.
(WebCore::ProgressBarPart::setAnimationStartTime): Deleted.
* Source/WebCore/platform/graphics/controls/SearchFieldCancelButtonPart.h:
* Source/WebCore/platform/graphics/controls/SearchFieldPart.h:
* Source/WebCore/platform/graphics/controls/SearchFieldResultsPart.h:
(WebCore::SearchFieldResultsPart::createPlatformControl):
* Source/WebCore/platform/graphics/controls/SliderThumbPart.h:
(WebCore::SliderThumbPart::createPlatformControl):
* Source/WebCore/platform/graphics/controls/SliderTrackPart.cpp:
(WebCore::SliderTrackHorizontalPart::SliderTrackHorizontalPart):
(WebCore::SliderTrackVerticalPart::SliderTrackVerticalPart):
(WebCore::SliderTrackPart::SliderTrackPart):
(WebCore::SliderTrackHorizontalPart::drawTicks const):
(WebCore::SliderTrackVerticalPart::drawTicks const):
(WebCore::SliderTrackPart::createPlatformControl):
(WebCore::SliderTrackPart::create): Deleted.
(WebCore::SliderTrackPart::drawTicks const): Deleted.
* Source/WebCore/platform/graphics/controls/SliderTrackPart.h:
(isType): Deleted.
* Source/WebCore/platform/graphics/controls/TextAreaPart.h:
(WebCore::TextAreaPart::createPlatformControl):
* Source/WebCore/platform/graphics/controls/TextFieldPart.h:
* Source/WebCore/platform/graphics/controls/ToggleButtonPart.h:
(WebCore::ToggleButtonPart::createPlatformControl):
* Source/WebCore/platform/graphics/ios/controls/ControlFactoryIOS.h:
* Source/WebCore/platform/graphics/ios/controls/ControlFactoryIOS.mm:
(WebCore::ControlFactoryIOS::createPlatformButton):
(WebCore::ControlFactoryIOS::createPlatformColorWell):
(WebCore::ControlFactoryIOS::createPlatformInnerSpinButton):
(WebCore::ControlFactoryIOS::createPlatformMenuList):
(WebCore::ControlFactoryIOS::createPlatformMenuListButton):
(WebCore::ControlFactoryIOS::createPlatformMeter):
(WebCore::ControlFactoryIOS::createPlatformProgressBar):
(WebCore::ControlFactoryIOS::createPlatformSearchField):
(WebCore::ControlFactoryIOS::createPlatformSearchFieldCancelButton):
(WebCore::ControlFactoryIOS::createPlatformSearchFieldResults):
(WebCore::ControlFactoryIOS::createPlatformSliderThumb):
(WebCore::ControlFactoryIOS::createPlatformSliderTrack):
(WebCore::ControlFactoryIOS::createPlatformTextArea):
(WebCore::ControlFactoryIOS::createPlatformTextField):
(WebCore::ControlFactoryIOS::createPlatformToggleButton):
* Source/WebCore/platform/graphics/mac/controls/ButtonMac.h:
* Source/WebCore/platform/graphics/mac/controls/ButtonMac.mm:
(WebCore::ButtonMac::ButtonMac):
* Source/WebCore/platform/graphics/mac/controls/ColorWellMac.h:
* Source/WebCore/platform/graphics/mac/controls/ColorWellMac.mm:
(WebCore::ColorWellMac::ColorWellMac):
* Source/WebCore/platform/graphics/mac/controls/ControlFactoryMac.h:
* Source/WebCore/platform/graphics/mac/controls/ControlFactoryMac.mm:
(WebCore::ControlFactoryMac::createPlatformButton):
(WebCore::ControlFactoryMac::createPlatformColorWell):
(WebCore::ControlFactoryMac::createPlatformImageControlsButton):
(WebCore::ControlFactoryMac::createPlatformInnerSpinButton):
(WebCore::ControlFactoryMac::createPlatformMenuList):
(WebCore::ControlFactoryMac::createPlatformMenuListButton):
(WebCore::ControlFactoryMac::createPlatformMeter):
(WebCore::ControlFactoryMac::createPlatformProgressBar):
(WebCore::ControlFactoryMac::createPlatformSearchField):
(WebCore::ControlFactoryMac::createPlatformSearchFieldCancelButton):
(WebCore::ControlFactoryMac::createPlatformSearchFieldResults):
(WebCore::ControlFactoryMac::createPlatformSliderThumb):
(WebCore::ControlFactoryMac::createPlatformSliderTrack):
(WebCore::ControlFactoryMac::createPlatformTextArea):
(WebCore::ControlFactoryMac::createPlatformTextField):
(WebCore::ControlFactoryMac::createPlatformToggleButton):
* Source/WebCore/platform/graphics/mac/controls/ImageControlsButtonMac.h:
* Source/WebCore/platform/graphics/mac/controls/ImageControlsButtonMac.mm:
(WebCore::ImageControlsButtonMac::ImageControlsButtonMac):
* Source/WebCore/platform/graphics/mac/controls/InnerSpinButtonMac.h:
* Source/WebCore/platform/graphics/mac/controls/InnerSpinButtonMac.mm:
(WebCore::InnerSpinButtonMac::InnerSpinButtonMac):
* Source/WebCore/platform/graphics/mac/controls/MenuListButtonMac.h:
* Source/WebCore/platform/graphics/mac/controls/MenuListButtonMac.mm:
(WebCore::MenuListButtonMac::MenuListButtonMac):
* Source/WebCore/platform/graphics/mac/controls/MenuListMac.h:
* Source/WebCore/platform/graphics/mac/controls/MenuListMac.mm:
(WebCore::MenuListMac::MenuListMac):
* Source/WebCore/platform/graphics/mac/controls/MeterMac.h:
* Source/WebCore/platform/graphics/mac/controls/MeterMac.mm:
(WebCore::MeterMac::MeterMac):
(WebCore::MeterMac::updateCellStates):
* Source/WebCore/platform/graphics/mac/controls/ProgressBarMac.h:
* Source/WebCore/platform/graphics/mac/controls/ProgressBarMac.mm:
(WebCore::ProgressBarMac::ProgressBarMac):
(WebCore::ProgressBarMac::draw):
* Source/WebCore/platform/graphics/mac/controls/SearchFieldCancelButtonMac.h:
* Source/WebCore/platform/graphics/mac/controls/SearchFieldCancelButtonMac.mm:
(WebCore::SearchFieldCancelButtonMac::SearchFieldCancelButtonMac):
* Source/WebCore/platform/graphics/mac/controls/SearchFieldMac.h:
* Source/WebCore/platform/graphics/mac/controls/SearchFieldMac.mm:
(WebCore::SearchFieldMac::SearchFieldMac):
* Source/WebCore/platform/graphics/mac/controls/SearchFieldResultsMac.h:
* Source/WebCore/platform/graphics/mac/controls/SearchFieldResultsMac.mm:
(WebCore::SearchFieldResultsMac::SearchFieldResultsMac):
* Source/WebCore/platform/graphics/mac/controls/SliderThumbMac.h:
* Source/WebCore/platform/graphics/mac/controls/SliderThumbMac.mm:
(WebCore::SliderThumbMac::SliderThumbMac):
* Source/WebCore/platform/graphics/mac/controls/SliderTrackMac.h:
* Source/WebCore/platform/graphics/mac/controls/SliderTrackMac.mm:
(WebCore::SliderTrackMac::SliderTrackMac):
(WebCore::SliderTrackMac::rectForBounds const):
(WebCore::SliderTrackMac::draw):
* Source/WebCore/platform/graphics/mac/controls/TextAreaMac.h:
* Source/WebCore/platform/graphics/mac/controls/TextAreaMac.mm:
(WebCore::TextAreaMac::TextAreaMac):
* Source/WebCore/platform/graphics/mac/controls/TextFieldMac.h:
* Source/WebCore/platform/graphics/mac/controls/TextFieldMac.mm:
(WebCore::TextFieldMac::TextFieldMac):
* Source/WebCore/platform/graphics/mac/controls/ToggleButtonMac.h:
* Source/WebCore/platform/graphics/mac/controls/ToggleButtonMac.mm:
(WebCore::ToggleButtonMac::ToggleButtonMac):
* Source/WebCore/rendering/RenderTheme.cpp:
(WebCore::RenderTheme::createControlPart const):
(WebCore::RenderTheme::updateControlPartForRenderer const):
* Source/WebKit/Shared/WebCoreArgumentCoders.cpp:
(IPC::ArgumentCoder<ControlPart>::encode): Deleted.
(IPC::ArgumentCoder<ControlPart>::decode): Deleted.
* Source/WebKit/Shared/WebCoreArgumentCoders.h:
* Source/WebKit/Shared/WebCoreArgumentCoders.serialization.in:

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




More information about the webkit-changes mailing list