Changeset 168909 in webkit


Ignore:
Timestamp:
May 15, 2014 2:00:07 PM (10 years ago)
Author:
ap@apple.com
Message:

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.

Location:
trunk/Source/WebCore
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r168905 r168909  
     12014-05-15  Alexey Proskuryakov  <ap@apple.com>
     2
     3        NetworkProcess crashes at ResourceHandle::continueDidReceiveResponse
     4        https://bugs.webkit.org/show_bug.cgi?id=132966
     5        <rdar://problem/16373694>
     6
     7        Reviewed by Brady Eidson.
     8
     9        Covered by many fast/files tests.
     10
     11        * platform/network/BlobResourceHandle.cpp: (WebCore::BlobResourceHandle::continueDidReceiveResponse):
     12        * platform/network/BlobResourceHandle.h:
     13        * platform/network/ResourceHandle.h:
     14        Don't call delegate's continueDidReceiveResponse when loading a blob:// URL,
     15        the delegate is null. On the Mac, we used to lazily create it, which was also wrong,
     16        but at least not observable.
     17
    1182014-05-15  Commit Queue  <commit-queue@webkit.org>
    219
  • trunk/Source/WebCore/platform/network/BlobResourceHandle.cpp

    r168391 r168909  
    203203}
    204204
     205void BlobResourceHandle::continueDidReceiveResponse()
     206{
     207    // BlobResourceHandle doesn't wait for didReceiveResponse, and it currently cannot be used for downloading.
     208}
     209
    205210void delayedStartBlobResourceHandle(void* context)
    206211{
  • trunk/Source/WebCore/platform/network/BlobResourceHandle.h

    r168391 r168909  
    4949struct BlobDataItem;
    5050
    51 class BlobResourceHandle : public FileStreamClient, public ResourceHandle  {
     51class BlobResourceHandle final : public FileStreamClient, public ResourceHandle  {
    5252public:
    5353    static PassRefPtr<BlobResourceHandle> createAsync(BlobData*, const ResourceRequest&, ResourceHandleClient*);
    5454
    5555    static void loadResourceSynchronously(BlobData*, const ResourceRequest&, ResourceError&, ResourceResponse&, Vector<char>& data);
    56 
    57     // FileStreamClient methods.
    58     virtual void didGetSize(long long) override;
    59     virtual void didOpen(bool) override;
    60     virtual void didRead(int) override;
    61 
    62     // ResourceHandle methods.
    63     virtual void cancel() override;
    6456
    6557    void start();
     
    7365    BlobResourceHandle(BlobData*, const ResourceRequest&, ResourceHandleClient*, bool async);
    7466    virtual ~BlobResourceHandle();
     67
     68    // FileStreamClient methods.
     69    virtual void didGetSize(long long) override;
     70    virtual void didOpen(bool) override;
     71    virtual void didRead(int) override;
     72
     73    // ResourceHandle methods.
     74    virtual void cancel() override;
     75    virtual void continueDidReceiveResponse() override;
    7576
    7677    void doStart();
  • trunk/Source/WebCore/platform/network/ResourceHandle.h

    r168849 r168909  
    211211
    212212    // Called in response to ResourceHandleClient::didReceiveResponseAsync().
    213     void continueDidReceiveResponse();
     213    virtual void continueDidReceiveResponse();
    214214
    215215#if USE(PROTECTION_SPACE_AUTH_CALLBACK)
Note: See TracChangeset for help on using the changeset viewer.