[webkit-changes] [WebKit/WebKit] dae38b: [IsDeprecatedWeakRefSmartPointerException] Make We...

Rupin Mittal noreply at github.com
Wed Oct 9 03:51:22 PDT 2024


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: dae38b66a9715cd1750a2a6690fd4c955d8542d6
      https://github.com/WebKit/WebKit/commit/dae38b66a9715cd1750a2a6690fd4c955d8542d6
  Author: Rupin Mittal <rupin at apple.com>
  Date:   2024-10-09 (Wed, 09 Oct 2024)

  Changed paths:
    M Source/WebCore/html/BaseDateAndTimeInputType.cpp
    M Source/WebCore/html/BaseDateAndTimeInputType.h
    M Source/WebCore/loader/EmptyClients.cpp
    M Source/WebCore/loader/EmptyClients.h
    M Source/WebCore/page/Chrome.cpp
    M Source/WebCore/page/Chrome.h
    M Source/WebCore/page/ChromeClient.h
    M Source/WebCore/platform/DateTimeChooser.h
    M Source/WebKit/WebProcess/WebCoreSupport/WebChromeClient.cpp
    M Source/WebKit/WebProcess/WebCoreSupport/WebChromeClient.h
    M Source/WebKit/WebProcess/WebCoreSupport/WebDateTimeChooser.cpp
    M Source/WebKit/WebProcess/WebCoreSupport/WebDateTimeChooser.h
    M Source/WebKit/WebProcess/WebPage/WebPage.cpp
    M Source/WebKitLegacy/mac/WebCoreSupport/WebChromeClient.h
    M Source/WebKitLegacy/mac/WebCoreSupport/WebChromeClient.mm

  Log Message:
  -----------
  [IsDeprecatedWeakRefSmartPointerException] Make WebDateTimeChooser ref-counted
https://bugs.webkit.org/show_bug.cgi?id=281110
rdar://137563134

Reviewed by Ryosuke Niwa.

We remove IsDeprecatedWeakRefSmartPointerException by making WebDateTimeChooser
ref-counted.

WebPage holds a WeakPtr to WebDateTimeChooser and WebDateTimeChooser holds a
WeakRef to WebPage. Since WebDateTimeChooser is now ref-counted, it's possible
for it to out-live the WebPage, which would make a use of it's WeakRef m_page
member unsafe. To ensure that WebDateTimeChooser never tries to use it's WebPage
member if the WebPage has been destroyed, we change the m_page member to be a
WeakPtr instead of a WeakRef and null-check m_page before using it.

* Source/WebCore/html/BaseDateAndTimeInputType.cpp:
(WebCore::BaseDateAndTimeInputType::showPicker):
(WebCore::BaseDateAndTimeInputType::didChangeValueFromControl):
(WebCore::BaseDateAndTimeInputType::closeDateTimeChooser):
(WebCore::BaseDateAndTimeInputType::didEndChooser): Deleted.
* Source/WebCore/html/BaseDateAndTimeInputType.h:
* Source/WebCore/loader/EmptyClients.cpp:
(WebCore::EmptyChromeClient::createDateTimeChooser):
* Source/WebCore/loader/EmptyClients.h:
* Source/WebCore/page/Chrome.cpp:
(WebCore::Chrome::createDateTimeChooser):
* Source/WebCore/page/Chrome.h:
* Source/WebCore/page/ChromeClient.h:
* Source/WebCore/platform/DateTimeChooser.h:
* Source/WebKit/WebProcess/WebCoreSupport/WebChromeClient.cpp:
(WebKit::WebChromeClient::createDateTimeChooser):
* Source/WebKit/WebProcess/WebCoreSupport/WebChromeClient.h:
* Source/WebKit/WebProcess/WebCoreSupport/WebDateTimeChooser.cpp:
(WebKit::WebDateTimeChooser::endChooser):
(WebKit::WebDateTimeChooser::showChooser):
* Source/WebKit/WebProcess/WebCoreSupport/WebDateTimeChooser.h:
* Source/WebKit/WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::didChooseDate):
* Source/WebKitLegacy/mac/WebCoreSupport/WebChromeClient.h:
* Source/WebKitLegacy/mac/WebCoreSupport/WebChromeClient.mm:
(WebChromeClient::createDateTimeChooser):

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



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


More information about the webkit-changes mailing list