[webkit-changes] [WebKit/WebKit] 43b968: [macOS] Display thumbnail of selected file for <in...

Richard Robinson noreply at github.com
Mon Oct 10 10:52:50 PDT 2022


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 43b96844e7e9fc0ceb95e46f46d0b515864d3fa2
      https://github.com/WebKit/WebKit/commit/43b96844e7e9fc0ceb95e46f46d0b515864d3fa2
  Author: Richard Robinson <richard_robinson2 at apple.com>
  Date:   2022-10-10 (Mon, 10 Oct 2022)

  Changed paths:
    M Source/WebCore/SourcesCocoa.txt
    M Source/WebCore/WebCore.xcodeproj/project.pbxproj
    M Source/WebCore/platform/graphics/Icon.h
    A Source/WebCore/platform/graphics/cocoa/IconCocoa.mm
    M Source/WebCore/platform/graphics/cv/VideoFrameCV.mm
    M Source/WebCore/platform/graphics/ios/IconIOS.mm
    M Source/WebCore/platform/graphics/mac/IconMac.mm
    M Source/WebCore/rendering/RenderFileUploadControl.cpp
    M Source/WebCore/rendering/RenderThemeCocoa.h
    M Source/WebCore/rendering/RenderThemeCocoa.mm
    M Source/WebCore/rendering/RenderThemeIOS.h
    M Source/WebCore/rendering/RenderThemeIOS.mm
    M Source/WebCore/rendering/RenderThemeMac.mm
    A Source/WebKit/Shared/Cocoa/WebIconUtilities.h
    A Source/WebKit/Shared/Cocoa/WebIconUtilities.mm
    M Source/WebKit/Shared/RemoteLayerTree/RemoteLayerWithRemoteRenderingBackingStoreCollection.h
    M Source/WebKit/Shared/RemoteLayerTree/RemoteLayerWithRemoteRenderingBackingStoreCollection.mm
    R Source/WebKit/Shared/ios/WebIconUtilities.h
    R Source/WebKit/Shared/ios/WebIconUtilities.mm
    M Source/WebKit/SourcesCocoa.txt
    M Source/WebKit/UIProcess/ios/forms/WKFileUploadPanel.mm
    M Source/WebKit/WebKit.xcodeproj/project.pbxproj
    M Source/WebKit/WebProcess/WebCoreSupport/WebChromeClient.cpp
    A Source/WebKit/WebProcess/WebCoreSupport/WebChromeClientCocoa.mm
    M Source/WebKit/WebProcess/WebCoreSupport/ios/WebChromeClientIOS.mm

  Log Message:
  -----------
  [macOS] Display thumbnail of selected file for <input type=file>
https://bugs.webkit.org/show_bug.cgi?id=245993
rdar://100570349

Reviewed by Aditya Keerthi.

On iOS, we show a thumbnail of the selected file, but on macOS, we just
sure the generic file icon based on the file's extension.

This PR adopts the iOS behavior for macOS, and refactors out the thumbnail
decoration logic into `RenderThemeCocoa`. It also refactors out some of the
icon creation logic into common places for both iOS and macOS.

Adding a new file broke some unified build files so it also fixes those.

* Source/WebCore/platform/graphics/Icon.h:
(WebCore::Icon::image const):
(WebCore::Icon::nsImage const): Deleted.
* Source/WebCore/platform/graphics/mac/IconMac.mm:
(WebCore::Icon::Icon):
(WebCore::Icon::~Icon):
(WebCore::Icon::createIconForImage):
(WebCore::Icon::createIconForFiles):
(WebCore::Icon::createIconForFileExtension):
(WebCore::Icon::createIconForUTI):
(WebCore::Icon::paint):
(WebCore::squareCropRectForSize): Deleted.
(WebCore::squareImage): Deleted.
(WebCore::thumbnailSizedImageForImage): Deleted.
(WebCore::iconForImageFile): Deleted.
(WebCore::iconForVideoFile): Deleted.
(WebCore::iconForFile): Deleted.
* Source/WebCore/rendering/RenderThemeMac.mm:
(WebCore::RenderThemeMac::iconForAttachment):
* Source/WebKit/Shared/Cocoa/WebIconUtilities.h: Copied from Source/WebKit/Shared/ios/WebIconUtilities.h.
* Source/WebKit/Shared/Cocoa/WebIconUtilities.mm: Renamed from Source/WebKit/Shared/ios/WebIconUtilities.mm.
(WebKit::squareCropRectForSize):
(WebKit::squareImage):
(WebKit::thumbnailSizedImageForImage):
(WebKit::fallbackIconForFile):
(WebKit::iconForImageFile):
(WebKit::iconForVideoFile):
(WebKit::iconForFiles):
* Source/WebKit/Shared/RemoteLayerTree/RemoteLayerWithRemoteRenderingBackingStoreCollection.h:
* Source/WebKit/Shared/RemoteLayerTree/RemoteLayerWithRemoteRenderingBackingStoreCollection.mm:
(WebKit::RemoteLayerWithRemoteRenderingBackingStoreCollection::allocateBufferForBackingStore):
* Source/WebKit/SourcesCocoa.txt:
* Source/WebKit/UIProcess/ios/forms/WKFileUploadPanel.mm:
(-[_WKImageFileUploadItem displayImage]):
(-[_WKVideoFileUploadItem displayImage]):
(-[WKFileUploadPanel documentPicker:didPickDocumentsAtURLs:]):
* Source/WebKit/WebKit.xcodeproj/project.pbxproj:
* Source/WebKit/WebProcess/GPU/graphics/ImageBufferBackendHandleSharing.h:
* Source/WebKit/WebProcess/WebCoreSupport/WebChromeClient.cpp:
(WebKit::WebChromeClient::createIconForFiles): Deleted.
* Source/WebKit/WebProcess/WebCoreSupport/WebChromeClientCocoa.mm: Renamed from Source/WebKit/Shared/ios/WebIconUtilities.h.
(WebKit::WebChromeClient::createIconForFiles):
* Source/WebKit/WebProcess/WebCoreSupport/ios/WebChromeClientIOS.mm:
(WebKit::WebChromeClient::createIconForFiles): Deleted.
* Source/WebKitLegacy/mac/WebCoreSupport/WebOpenPanelResultListener.mm:

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




More information about the webkit-changes mailing list