Title: [287053] trunk/Source/WebCore
- Revision
- 287053
- Author
- [email protected]
- Date
- 2021-12-14 15:04:49 -0800 (Tue, 14 Dec 2021)
Log Message
Make PreviewConverterProvider not modify the SharedBuffer once returned
https://bugs.webkit.org/show_bug.cgi?id=233923
rdar://problem/86149850
Reviewed by Youenn Fablet.
Covered by existing API tests.
* loader/ios/LegacyPreviewLoader.h:
* loader/ios/LegacyPreviewLoader.mm:
(WebCore::LegacyPreviewLoader::previewConverterDidStartConverting):
(WebCore::LegacyPreviewLoader::provideMainResourceForPreviewConverter):
* platform/PreviewConverter.cpp:
(WebCore::PreviewConverter::updateMainResource):
* platform/PreviewConverterProvider.h:
Modified Paths
Diff
Modified: trunk/Source/WebCore/ChangeLog (287052 => 287053)
--- trunk/Source/WebCore/ChangeLog 2021-12-14 23:00:28 UTC (rev 287052)
+++ trunk/Source/WebCore/ChangeLog 2021-12-14 23:04:49 UTC (rev 287053)
@@ -1,3 +1,21 @@
+2021-12-14 Jean-Yves Avenard <[email protected]>
+
+ Make PreviewConverterProvider not modify the SharedBuffer once returned
+ https://bugs.webkit.org/show_bug.cgi?id=233923
+ rdar://problem/86149850
+
+ Reviewed by Youenn Fablet.
+
+ Covered by existing API tests.
+
+ * loader/ios/LegacyPreviewLoader.h:
+ * loader/ios/LegacyPreviewLoader.mm:
+ (WebCore::LegacyPreviewLoader::previewConverterDidStartConverting):
+ (WebCore::LegacyPreviewLoader::provideMainResourceForPreviewConverter):
+ * platform/PreviewConverter.cpp:
+ (WebCore::PreviewConverter::updateMainResource):
+ * platform/PreviewConverterProvider.h:
+
2021-12-14 Basuke Suzuki <[email protected]>
[Playstation] Fix build break after r286908
Modified: trunk/Source/WebCore/loader/ios/LegacyPreviewLoader.h (287052 => 287053)
--- trunk/Source/WebCore/loader/ios/LegacyPreviewLoader.h 2021-12-14 23:00:28 UTC (rev 287052)
+++ trunk/Source/WebCore/loader/ios/LegacyPreviewLoader.h 2021-12-14 23:04:49 UTC (rev 287053)
@@ -65,7 +65,7 @@
void previewConverterDidFailConverting(PreviewConverter&) final;
// PreviewConverterProvider
- void provideMainResourceForPreviewConverter(PreviewConverter&, CompletionHandler<void(const FragmentedSharedBuffer*)>&&) final;
+ void provideMainResourceForPreviewConverter(PreviewConverter&, CompletionHandler<void(Ref<FragmentedSharedBuffer>&&)>&&) final;
void providePasswordForPreviewConverter(PreviewConverter&, CompletionHandler<void(const String&)>&&) final;
RefPtr<PreviewConverter> m_converter;
Modified: trunk/Source/WebCore/loader/ios/LegacyPreviewLoader.mm (287052 => 287053)
--- trunk/Source/WebCore/loader/ios/LegacyPreviewLoader.mm 2021-12-14 23:00:28 UTC (rev 287052)
+++ trunk/Source/WebCore/loader/ios/LegacyPreviewLoader.mm 2021-12-14 23:04:49 UTC (rev 287053)
@@ -109,7 +109,7 @@
return;
ASSERT(!m_hasProcessedResponse);
- m_originalData.empty();
+ m_originalData.reset();
resourceLoader->documentLoader()->setPreviewConverter(WTFMove(m_converter));
auto response { converter.previewResponse() };
@@ -224,10 +224,10 @@
m_client->didRequestPassword(WTFMove(completionHandler));
}
-void LegacyPreviewLoader::provideMainResourceForPreviewConverter(PreviewConverter& converter, CompletionHandler<void(const FragmentedSharedBuffer*)>&& completionHandler)
+void LegacyPreviewLoader::provideMainResourceForPreviewConverter(PreviewConverter& converter, CompletionHandler<void(Ref<FragmentedSharedBuffer>&&)>&& completionHandler)
{
ASSERT_UNUSED(converter, &converter == m_converter);
- completionHandler(m_originalData.get().get());
+ completionHandler(m_originalData.copy());
}
LegacyPreviewLoader::~LegacyPreviewLoader() = default;
@@ -235,7 +235,6 @@
LegacyPreviewLoader::LegacyPreviewLoader(ResourceLoader& loader, const ResourceResponse& response)
: m_converter { PreviewConverter::create(response, *this) }
, m_client { makeClient(loader, m_converter->previewFileName(), m_converter->previewUTI()) }
- , m_originalData { FragmentedSharedBuffer::create() }
, m_resourceLoader { loader }
, m_shouldDecidePolicyBeforeLoading { loader.frame()->settings().shouldDecidePolicyBeforeLoadingQuickLookPreview() }
{
Modified: trunk/Source/WebCore/platform/PreviewConverter.cpp (287052 => 287053)
--- trunk/Source/WebCore/platform/PreviewConverter.cpp 2021-12-14 23:00:28 UTC (rev 287052)
+++ trunk/Source/WebCore/platform/PreviewConverter.cpp 2021-12-14 23:04:49 UTC (rev 287053)
@@ -81,11 +81,8 @@
return;
}
- provider->provideMainResourceForPreviewConverter(*this, [this, protectedThis = Ref { *this }](auto buffer) {
- if (buffer)
- appendFromBuffer(*buffer);
- else
- didFailUpdating();
+ provider->provideMainResourceForPreviewConverter(*this, [this, protectedThis = Ref { *this }](auto&& buffer) {
+ appendFromBuffer(WTFMove(buffer));
});
}
Modified: trunk/Source/WebCore/platform/PreviewConverterProvider.h (287052 => 287053)
--- trunk/Source/WebCore/platform/PreviewConverterProvider.h 2021-12-14 23:00:28 UTC (rev 287052)
+++ trunk/Source/WebCore/platform/PreviewConverterProvider.h 2021-12-14 23:04:49 UTC (rev 287053)
@@ -32,7 +32,7 @@
struct PreviewConverterProvider : CanMakeWeakPtr<PreviewConverterProvider> {
virtual ~PreviewConverterProvider() = default;
- virtual void provideMainResourceForPreviewConverter(PreviewConverter&, CompletionHandler<void(const FragmentedSharedBuffer*)>&&) = 0;
+ virtual void provideMainResourceForPreviewConverter(PreviewConverter&, CompletionHandler<void(Ref<FragmentedSharedBuffer>&&)>&&) = 0;
virtual void providePasswordForPreviewConverter(PreviewConverter&, CompletionHandler<void(const String&)>&&) = 0;
};
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes