Title: [224954] trunk/Source/WebCore
Revision
224954
Author
commit-qu...@webkit.org
Date
2017-11-16 18:29:04 -0800 (Thu, 16 Nov 2017)

Log Message

FetchLoader should unregister its blob URL
https://bugs.webkit.org/show_bug.cgi?id=179768

Patch by Youenn Fablet <you...@apple.com> on 2017-11-16
Reviewed by Alex Christensen.

No observable change.

Keep the blob URL used for reading and unregister it in destructor.

* Modules/fetch/FetchLoader.cpp:
(WebCore::FetchLoader::~FetchLoader):
(WebCore::FetchLoader::start):
* Modules/fetch/FetchLoader.h:

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (224953 => 224954)


--- trunk/Source/WebCore/ChangeLog	2017-11-17 02:24:53 UTC (rev 224953)
+++ trunk/Source/WebCore/ChangeLog	2017-11-17 02:29:04 UTC (rev 224954)
@@ -1,3 +1,19 @@
+2017-11-16  Youenn Fablet  <you...@apple.com>
+
+        FetchLoader should unregister its blob URL
+        https://bugs.webkit.org/show_bug.cgi?id=179768
+
+        Reviewed by Alex Christensen.
+
+        No observable change.
+
+        Keep the blob URL used for reading and unregister it in destructor.
+
+        * Modules/fetch/FetchLoader.cpp:
+        (WebCore::FetchLoader::~FetchLoader):
+        (WebCore::FetchLoader::start):
+        * Modules/fetch/FetchLoader.h:
+
 2017-11-16  Nan Wang  <n_w...@apple.com>
 
         AX: AOM: Implement string type properties

Modified: trunk/Source/WebCore/Modules/fetch/FetchLoader.cpp (224953 => 224954)


--- trunk/Source/WebCore/Modules/fetch/FetchLoader.cpp	2017-11-17 02:24:53 UTC (rev 224953)
+++ trunk/Source/WebCore/Modules/fetch/FetchLoader.cpp	2017-11-17 02:29:04 UTC (rev 224954)
@@ -45,17 +45,23 @@
 
 namespace WebCore {
 
+FetchLoader::~FetchLoader()
+{
+    if (!m_urlForReading.isEmpty())
+        ThreadableBlobRegistry::unregisterBlobURL(m_urlForReading);
+}
+
 void FetchLoader::start(ScriptExecutionContext& context, const Blob& blob)
 {
-    auto urlForReading = BlobURL::createPublicURL(context.securityOrigin());
-    if (urlForReading.isEmpty()) {
+    m_urlForReading = BlobURL::createPublicURL(context.securityOrigin());
+    if (m_urlForReading.isEmpty()) {
         m_client.didFail({ errorDomainWebKitInternal, 0, URL(), ASCIILiteral("Could not create URL for Blob") });
         return;
     }
 
-    ThreadableBlobRegistry::registerBlobURL(context.securityOrigin(), urlForReading, blob.url());
+    ThreadableBlobRegistry::registerBlobURL(context.securityOrigin(), m_urlForReading, blob.url());
 
-    ResourceRequest request(urlForReading);
+    ResourceRequest request(m_urlForReading);
     request.setInitiatorIdentifier(context.resourceRequestIdentifier());
     request.setHTTPMethod("GET");
 

Modified: trunk/Source/WebCore/Modules/fetch/FetchLoader.h (224953 => 224954)


--- trunk/Source/WebCore/Modules/fetch/FetchLoader.h	2017-11-17 02:24:53 UTC (rev 224953)
+++ trunk/Source/WebCore/Modules/fetch/FetchLoader.h	2017-11-17 02:29:04 UTC (rev 224954)
@@ -42,6 +42,7 @@
 class FetchLoader final : public ThreadableLoaderClient {
 public:
     FetchLoader(FetchLoaderClient&, FetchBodyConsumer*);
+    ~FetchLoader();
 
     RefPtr<SharedBuffer> startStreaming();
 
@@ -63,6 +64,7 @@
     RefPtr<ThreadableLoader> m_loader;
     FetchBodyConsumer* m_consumer;
     bool m_isStarted { false };
+    URL m_urlForReading;
 };
 
 } // namespace WebCore
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to