Title: [169055] branches/safari-538.34.5-branch/Source/WebCore

Diff

Modified: branches/safari-538.34.5-branch/Source/WebCore/ChangeLog (169054 => 169055)


--- branches/safari-538.34.5-branch/Source/WebCore/ChangeLog	2014-05-19 19:10:46 UTC (rev 169054)
+++ branches/safari-538.34.5-branch/Source/WebCore/ChangeLog	2014-05-19 19:54:48 UTC (rev 169055)
@@ -1,3 +1,24 @@
+2014-05-19  Lucas Forschler  <[email protected]>
+
+        Merge r168909
+
+    2014-05-15  Alexey Proskuryakov  <[email protected]>
+
+            NetworkProcess crashes at ResourceHandle::continueDidReceiveResponse
+            https://bugs.webkit.org/show_bug.cgi?id=132966
+            <rdar://problem/16373694>
+
+            Reviewed by Brady Eidson.
+
+            Covered by many fast/files tests.
+
+            * platform/network/BlobResourceHandle.cpp: (WebCore::BlobResourceHandle::continueDidReceiveResponse):
+            * platform/network/BlobResourceHandle.h:
+            * platform/network/ResourceHandle.h:
+            Don't call delegate's continueDidReceiveResponse when loading a blob:// URL,
+            the delegate is null. On the Mac, we used to lazily create it, which was also wrong,
+            but at least not observable.
+
 2014-05-16  Lucas Forschler  <[email protected]>
 
         Merge r168886

Modified: branches/safari-538.34.5-branch/Source/WebCore/platform/network/BlobResourceHandle.cpp (169054 => 169055)


--- branches/safari-538.34.5-branch/Source/WebCore/platform/network/BlobResourceHandle.cpp	2014-05-19 19:10:46 UTC (rev 169054)
+++ branches/safari-538.34.5-branch/Source/WebCore/platform/network/BlobResourceHandle.cpp	2014-05-19 19:54:48 UTC (rev 169055)
@@ -202,6 +202,11 @@
     ResourceHandle::cancel();
 }
 
+void BlobResourceHandle::continueDidReceiveResponse()
+{
+    // BlobResourceHandle doesn't wait for didReceiveResponse, and it currently cannot be used for downloading.
+}
+
 void delayedStartBlobResourceHandle(void* context)
 {
     RefPtr<BlobResourceHandle> handle = adoptRef(static_cast<BlobResourceHandle*>(context));

Modified: branches/safari-538.34.5-branch/Source/WebCore/platform/network/BlobResourceHandle.h (169054 => 169055)


--- branches/safari-538.34.5-branch/Source/WebCore/platform/network/BlobResourceHandle.h	2014-05-19 19:10:46 UTC (rev 169054)
+++ branches/safari-538.34.5-branch/Source/WebCore/platform/network/BlobResourceHandle.h	2014-05-19 19:54:48 UTC (rev 169055)
@@ -48,20 +48,12 @@
 class ResourceRequest;
 struct BlobDataItem;
 
-class BlobResourceHandle : public FileStreamClient, public ResourceHandle  {
+class BlobResourceHandle final : public FileStreamClient, public ResourceHandle  {
 public:
     static PassRefPtr<BlobResourceHandle> createAsync(BlobData*, const ResourceRequest&, ResourceHandleClient*);
 
     static void loadResourceSynchronously(BlobData*, const ResourceRequest&, ResourceError&, ResourceResponse&, Vector<char>& data);
 
-    // FileStreamClient methods.
-    virtual void didGetSize(long long) override;
-    virtual void didOpen(bool) override;
-    virtual void didRead(int) override;
-
-    // ResourceHandle methods.
-    virtual void cancel() override;
-
     void start();
     int readSync(char*, int);
 
@@ -73,6 +65,15 @@
     BlobResourceHandle(BlobData*, const ResourceRequest&, ResourceHandleClient*, bool async);
     virtual ~BlobResourceHandle();
 
+    // FileStreamClient methods.
+    virtual void didGetSize(long long) override;
+    virtual void didOpen(bool) override;
+    virtual void didRead(int) override;
+
+    // ResourceHandle methods.
+    virtual void cancel() override;
+    virtual void continueDidReceiveResponse() override;
+
     void doStart();
     void getSizeForNext();
     void seek();

Modified: branches/safari-538.34.5-branch/Source/WebCore/platform/network/ResourceHandle.h (169054 => 169055)


--- branches/safari-538.34.5-branch/Source/WebCore/platform/network/ResourceHandle.h	2014-05-19 19:10:46 UTC (rev 169054)
+++ branches/safari-538.34.5-branch/Source/WebCore/platform/network/ResourceHandle.h	2014-05-19 19:54:48 UTC (rev 169055)
@@ -207,7 +207,7 @@
     void continueWillSendRequest(const ResourceRequest&);
 
     // Called in response to ResourceHandleClient::didReceiveResponseAsync().
-    void continueDidReceiveResponse();
+    virtual void continueDidReceiveResponse();
 
 #if USE(PROTECTION_SPACE_AUTH_CALLBACK)
     // Called in response to ResourceHandleClient::canAuthenticateAgainstProtectionSpaceAsync().
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to