Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 1b848875a5b856c34f13693f9054e9b1de753e58
      
https://github.com/WebKit/WebKit/commit/1b848875a5b856c34f13693f9054e9b1de753e58
  Author: Kiet Ho <[email protected]>
  Date:   2026-09-14 (Mon, 14 Sep 2026)

  Changed paths:
    M Source/WebKit/UIProcess/API/gtk/PageClientImpl.cpp
    M Source/WebKit/UIProcess/API/gtk/PageClientImpl.h
    M Source/WebKit/UIProcess/API/gtk/WebKitColorChooser.cpp
    M Source/WebKit/UIProcess/API/gtk/WebKitColorChooser.h
    M Source/WebKit/UIProcess/API/wpe/PageClientImpl.cpp
    M Source/WebKit/UIProcess/API/wpe/PageClientImpl.h
    M Source/WebKit/UIProcess/PageClient.h
    M Source/WebKit/UIProcess/WebPageProxy.cpp
    M Source/WebKit/UIProcess/gtk/WebColorPickerGtk.cpp
    M Source/WebKit/UIProcess/gtk/WebColorPickerGtk.h
    M Source/WebKit/UIProcess/ios/PageClientImplIOS.h
    M Source/WebKit/UIProcess/mac/PageClientImplMac.h
    M Source/WebKit/UIProcess/mac/PageClientImplMac.mm
    M Source/WebKit/UIProcess/mac/WebColorPickerMac.h
    M Source/WebKit/UIProcess/mac/WebColorPickerMac.mm
    M Source/WebKit/UIProcess/playstation/PageClientImpl.h
    M Source/WebKit/UIProcess/win/PageClientImpl.h

  Log Message:
  -----------
  Don't pass the color picker rectangle when creating a color picker
rdar://187137230
https://bugs.webkit.org/show_bug.cgi?id=323896

Reviewed by Abrar Rahman Protyasha, Adrian Perez de Castro, and Tim Nguyen.

The rectangle to display the color picker is passed in two places:
1. When creating a color picker in PageClient::createColorPicker
2. When the color picker is shown in WebColorPicker::showColorPicker
   (this was added in 309512@main)

It's useless to pass it twice, as the color picker will always be placed in
the rectangle passed to showColorPicker. So this patch changes createColorPicker
to not take the rectangle.

On Mac, WebColorPickerMac initially creates a color picker window in rect (1),
then move it to rect (2) for display. Since (1) is no longer available, the 
color
picker window will be created in NSZeroRect frame, then it'll be moved to rect 
(2)
for display.

On GTK, WebKitColorChooser stores the rect in the constructor but only
uses it in showColorPicker, so we simply don't store it in the constructor.
On WPE, WebKitColorChooser constructor doesn't take a rect, so no changes here.

Refactoring, tested by existing test suite.

* Source/WebKit/UIProcess/API/gtk/PageClientImpl.cpp:
(WebKit::PageClientImpl::createColorPicker):
* Source/WebKit/UIProcess/API/gtk/PageClientImpl.h:
* Source/WebKit/UIProcess/API/gtk/WebKitColorChooser.cpp:
(WebKit::WebKitColorChooser::create):
(WebKit::WebKitColorChooser::WebKitColorChooser):
(WebKit::WebKitColorChooser::showColorPicker):
* Source/WebKit/UIProcess/API/gtk/WebKitColorChooser.h:
* Source/WebKit/UIProcess/API/wpe/PageClientImpl.cpp:
(WebKit::PageClientImpl::createColorPicker):
* Source/WebKit/UIProcess/API/wpe/PageClientImpl.h:
* Source/WebKit/UIProcess/PageClient.h:
* Source/WebKit/UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::showColorPicker):
* Source/WebKit/UIProcess/gtk/WebColorPickerGtk.cpp:
(WebKit::WebColorPickerGtk::create):
(WebKit::WebColorPickerGtk::WebColorPickerGtk):
* Source/WebKit/UIProcess/gtk/WebColorPickerGtk.h:
* Source/WebKit/UIProcess/ios/PageClientImplIOS.h:
* Source/WebKit/UIProcess/mac/PageClientImplMac.h:
* Source/WebKit/UIProcess/mac/PageClientImplMac.mm:
(WebKit::PageClientImpl::createColorPicker):
* Source/WebKit/UIProcess/mac/WebColorPickerMac.h:
* Source/WebKit/UIProcess/mac/WebColorPickerMac.mm:
(WebKit::WebColorPickerMac::create):
(WebKit::WebColorPickerMac::WebColorPickerMac):
(-[WKColorPopoverMac initInView:]):
(-[WKColorPopoverMac initWithFrame:inView:]): Deleted.
(-[WKColorPopoverMac initWithView:]):
* Source/WebKit/UIProcess/playstation/PageClientImpl.h:
* Source/WebKit/UIProcess/win/PageClientImpl.h:

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



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

Reply via email to