Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 9d8de91ee2cbfa9731b1b8171818b193c254daf7
      
https://github.com/WebKit/WebKit/commit/9d8de91ee2cbfa9731b1b8171818b193c254daf7
  Author: Sihui Liu <[email protected]>
  Date:   2025-01-24 (Fri, 24 Jan 2025)

  Changed paths:
    M Source/WTF/wtf/CrossThreadCopier.h
    M Source/WTF/wtf/MediaTime.cpp
    M Source/WTF/wtf/MediaTime.h
    M Source/WebCore/Modules/cookie-store/CookieChangeSubscription.h
    M 
Source/WebCore/Modules/webtransport/WebTransportBidirectionalStreamConstructionParameters.h
    M Source/WebCore/contentextensions/ContentExtensionsBackend.h
    M Source/WebCore/fileapi/URLKeepingBlobAlive.h
    M Source/WebCore/platform/ContentType.h
    M Source/WebCore/platform/graphics/VideoPlaybackQualityMetrics.h
    M Source/WebCore/platform/mediastream/PhotoCapabilities.h
    M Source/WebCore/platform/mediastream/PhotoSettings.h
    M Source/WebCore/platform/network/OrganizationStorageAccessPromptQuirk.h
    M Source/WebKit/NetworkProcess/storage/CacheStorageRecord.cpp
    M Source/WebKit/NetworkProcess/storage/CacheStorageRecord.h
    M Source/WebKit/Shared/RTCNetwork.cpp
    M Source/WebKit/Shared/RTCNetwork.h
    M Source/WebKit/UIProcess/Cocoa/ExtensionCapabilityGranter.mm

  Log Message:
  -----------
  CacheStorageRecordInformation is not isolated copied when passed across 
threads
https://bugs.webkit.org/show_bug.cgi?id=286393
rdar://108372325

Reviewed by Chris Dumez.

CacheStorageRecordInformation only has isolatedCopy function for rvalue 
reference, but in
CacheStorageDiskStore::readRecordsInternal(), isolatedCopy() is not invoked on 
rvalue reference. In this case,
CrossThreadCopier will fall back to use copy constructor, and 
CacheStorageRecordInformation is not properly copied. To
fix it, add CacheStorageRecordInformation::isolatedCopy() for lvalue reference 
and make sure CrossThreadCopier will
invoke that.

Also, to make the code more robust, now types involved in crossThreadCopy() are 
required to provide isolatedCopy()
function -- CrossThreadCopier will no longer use default copy constructor. This 
helps catch a few issues where objects
are not properly copied due to missing isolatedCopy function.

* Source/WTF/wtf/CrossThreadCopier.h:
* Source/WTF/wtf/MediaTime.cpp:
(WTF::MediaTime::isolatedCopy const):
* Source/WTF/wtf/MediaTime.h:
* Source/WebCore/Modules/cookie-store/CookieChangeSubscription.h:
(WebCore::CookieChangeSubscription::isolatedCopy const):
(WebCore::CookieChangeSubscription::isolatedCopy):
* 
Source/WebCore/Modules/webtransport/WebTransportBidirectionalStreamConstructionParameters.h:
(WebCore::WebTransportBidirectionalStreamConstructionParameters::isolatedCopy):
* Source/WebCore/contentextensions/ContentExtensionsBackend.h:
(WebCore::ContentExtensions::ContentExtensionsBackend::isolatedCopy):
(WebCore::ContentExtensions::ContentExtensionsBackend::ContentExtensionsBackend):
* Source/WebCore/fileapi/URLKeepingBlobAlive.h:
* Source/WebCore/platform/ContentType.h:
(WebCore::ContentType::isolatedCopy const):
(WebCore::ContentType::isolatedCopy):
* Source/WebCore/platform/graphics/VideoPlaybackQualityMetrics.h:
(WebCore::VideoPlaybackQualityMetrics::isolatedCopy const):
* Source/WebCore/platform/mediastream/PhotoCapabilities.h:
(WebCore::PhotoCapabilities::isolatedCopy const):
* Source/WebCore/platform/mediastream/PhotoSettings.h:
(WebCore::PhotoSettings::isolatedCopy const):
* Source/WebCore/platform/network/OrganizationStorageAccessPromptQuirk.h:
(WebCore::OrganizationStorageAccessPromptQuirk::isolatedCopy const):
(WebCore::OrganizationStorageAccessPromptQuirk::isolatedCopy):
* Source/WebKit/NetworkProcess/storage/CacheStorageRecord.cpp:
(WebKit::CacheStorageRecordInformation::isolatedCopy):
(WebKit::CacheStorageRecordInformation::isolatedCopy const):
* Source/WebKit/NetworkProcess/storage/CacheStorageRecord.h:
* Source/WebKit/Shared/RTCNetwork.cpp:
(WebKit::RTCNetwork::isolatedCopy const):
* Source/WebKit/Shared/RTCNetwork.h:
(WebKit::RTC::Network::IPAddress::isolatedCopy const):
(WebKit::RTC::Network::InterfaceAddress::isolatedCopy const):
* Source/WebKit/UIProcess/Cocoa/ExtensionCapabilityGranter.mm:
(WebKit::PlatformExtensionCapabilityGrants::isolatedCopy const):

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



To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to