[webkit-changes] [WebKit/WebKit] b6af44: REGRESSION(258644 at main): The <select> control look...

Said Abou-Hallawa noreply at github.com
Tue Jan 24 18:10:54 PST 2023


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: b6af447cab8cbceedc894aaf219b4ce25d6724b8
      https://github.com/WebKit/WebKit/commit/b6af447cab8cbceedc894aaf219b4ce25d6724b8
  Author: Said Abou-Hallawa <said at apple.com>
  Date:   2023-01-24 (Tue, 24 Jan 2023)

  Changed paths:
    M Source/WebCore/platform/graphics/GraphicsContext.cpp
    M Source/WebCore/platform/graphics/GraphicsContext.h
    M Source/WebCore/platform/graphics/controls/ControlPart.cpp
    M Source/WebCore/platform/graphics/controls/ControlPart.h
    M Source/WebCore/platform/graphics/controls/PlatformControl.h
    M Source/WebCore/platform/graphics/displaylists/DisplayListItems.cpp
    M Source/WebCore/platform/graphics/displaylists/DisplayListItems.h
    M Source/WebCore/platform/graphics/displaylists/DisplayListRecorder.cpp
    M Source/WebCore/platform/graphics/displaylists/DisplayListRecorder.h
    M Source/WebCore/platform/graphics/displaylists/DisplayListRecorderImpl.cpp
    M Source/WebCore/platform/graphics/displaylists/DisplayListRecorderImpl.h
    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/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/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/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/RenderTheme.cpp
    M Source/WebKit/GPUProcess/graphics/RemoteDisplayListRecorder.cpp
    M Source/WebKit/GPUProcess/graphics/RemoteDisplayListRecorder.h
    M Source/WebKit/GPUProcess/graphics/RemoteDisplayListRecorder.messages.in
    M Source/WebKit/WebProcess/GPU/graphics/RemoteDisplayListRecorderProxy.cpp
    M Source/WebKit/WebProcess/GPU/graphics/RemoteDisplayListRecorderProxy.h

  Log Message:
  -----------
  REGRESSION(258644 at main): The <select> control looks dark when zooming in
https://bugs.webkit.org/show_bug.cgi?id=250798
rdar://104196022

Reviewed by Simon Fraser.

Calling getRoundedBorderFor() was dropped in 258644 at main when refactoring the
MenuListButton drawing to go through GraphicsContext. This caused the left and
right border gradients to be not clipped. And this made the background of the
control part to be filled with the border gradient which is dark gray.

Because we do not have access to the RenderStyle in platform/graphics, we have to
calculate getRoundedBorderFor() the control part rect in RenderTheme::paint() and
pass it all the way to GraphicsContext and to DisplayList::Recorder.

* Source/WebCore/platform/graphics/GraphicsContext.cpp:
(WebCore::GraphicsContext::drawControlPart):
* Source/WebCore/platform/graphics/GraphicsContext.h:
* Source/WebCore/platform/graphics/controls/ControlPart.cpp:
(WebCore::ControlPart::draw const):
* Source/WebCore/platform/graphics/controls/ControlPart.h:
* Source/WebCore/platform/graphics/controls/PlatformControl.h:
(WebCore::PlatformControl::draw):
* Source/WebCore/platform/graphics/displaylists/DisplayListItems.cpp:
(WebCore::DisplayList::DrawControlPart::DrawControlPart):
(WebCore::DisplayList::DrawControlPart::apply):
(WebCore::DisplayList::dumpItem):
* Source/WebCore/platform/graphics/displaylists/DisplayListItems.h:
(WebCore::DisplayList::DrawControlPart::borderRect const):
(WebCore::DisplayList::DrawControlPart::rect const): Deleted.
* Source/WebCore/platform/graphics/displaylists/DisplayListRecorder.cpp:
(WebCore::DisplayList::Recorder::drawControlPart):
* Source/WebCore/platform/graphics/displaylists/DisplayListRecorder.h:
* Source/WebCore/platform/graphics/displaylists/DisplayListRecorderImpl.cpp:
(WebCore::DisplayList::RecorderImpl::recordDrawControlPart):
* Source/WebCore/platform/graphics/displaylists/DisplayListRecorderImpl.h:
* Source/WebCore/platform/graphics/mac/controls/ButtonMac.h:
* Source/WebCore/platform/graphics/mac/controls/ButtonMac.mm:
(WebCore::ButtonMac::draw):
* Source/WebCore/platform/graphics/mac/controls/ColorWellMac.h:
* Source/WebCore/platform/graphics/mac/controls/ColorWellMac.mm:
(WebCore::ColorWellMac::draw):
* Source/WebCore/platform/graphics/mac/controls/ImageControlsButtonMac.h:
* Source/WebCore/platform/graphics/mac/controls/ImageControlsButtonMac.mm:
(WebCore::ImageControlsButtonMac::draw):
* Source/WebCore/platform/graphics/mac/controls/InnerSpinButtonMac.h:
* Source/WebCore/platform/graphics/mac/controls/InnerSpinButtonMac.mm:
(WebCore::InnerSpinButtonMac::draw):
* Source/WebCore/platform/graphics/mac/controls/MenuListButtonMac.h:
* Source/WebCore/platform/graphics/mac/controls/MenuListButtonMac.mm:
(WebCore::drawMenuListBackground):
(WebCore::MenuListButtonMac::draw):
* Source/WebCore/platform/graphics/mac/controls/MenuListMac.h:
* Source/WebCore/platform/graphics/mac/controls/MenuListMac.mm:
(WebCore::MenuListMac::draw):
* Source/WebCore/platform/graphics/mac/controls/MeterMac.h:
* Source/WebCore/platform/graphics/mac/controls/MeterMac.mm:
(WebCore::MeterMac::draw):
* Source/WebCore/platform/graphics/mac/controls/ProgressBarMac.h:
* Source/WebCore/platform/graphics/mac/controls/ProgressBarMac.mm:
(WebCore::ProgressBarMac::draw):
* Source/WebCore/platform/graphics/mac/controls/SearchFieldCancelButtonMac.h:
* Source/WebCore/platform/graphics/mac/controls/SearchFieldCancelButtonMac.mm:
(WebCore::SearchFieldCancelButtonMac::draw):
* Source/WebCore/platform/graphics/mac/controls/SearchFieldMac.h:
* Source/WebCore/platform/graphics/mac/controls/SearchFieldMac.mm:
(WebCore::SearchFieldMac::draw):
* Source/WebCore/platform/graphics/mac/controls/SliderThumbMac.h:
* Source/WebCore/platform/graphics/mac/controls/SliderThumbMac.mm:
(WebCore::SliderThumbMac::draw):
* Source/WebCore/platform/graphics/mac/controls/SliderTrackMac.h:
* Source/WebCore/platform/graphics/mac/controls/SliderTrackMac.mm:
(WebCore::SliderTrackMac::draw):
* Source/WebCore/platform/graphics/mac/controls/TextAreaMac.h:
* Source/WebCore/platform/graphics/mac/controls/TextAreaMac.mm:
(WebCore::TextAreaMac::draw):
* Source/WebCore/platform/graphics/mac/controls/TextFieldMac.h:
* Source/WebCore/platform/graphics/mac/controls/TextFieldMac.mm:
(WebCore::TextFieldMac::draw):
* Source/WebCore/platform/graphics/mac/controls/ToggleButtonMac.h:
* Source/WebCore/platform/graphics/mac/controls/ToggleButtonMac.mm:
(WebCore::ToggleButtonMac::draw):
* Source/WebCore/rendering/RenderTheme.cpp:
(WebCore::RenderTheme::paint):
* Source/WebKit/GPUProcess/graphics/RemoteDisplayListRecorder.cpp:
(WebKit::RemoteDisplayListRecorder::drawControlPart):
* Source/WebKit/GPUProcess/graphics/RemoteDisplayListRecorder.h:
* Source/WebKit/GPUProcess/graphics/RemoteDisplayListRecorder.messages.in:
* Source/WebKit/WebProcess/GPU/graphics/RemoteDisplayListRecorderProxy.cpp:
(WebKit::RemoteDisplayListRecorderProxy::recordDrawControlPart):
* Source/WebKit/WebProcess/GPU/graphics/RemoteDisplayListRecorderProxy.h:

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




More information about the webkit-changes mailing list