Changeset 85109 in webkit


Ignore:
Timestamp:
Apr 27, 2011 3:31:48 PM (13 years ago)
Author:
psolanki@apple.com
Message:

Part of WebCore should use CFNetwork-based loader on Mac
https://bugs.webkit.org/show_bug.cgi?id=51836

Reviewed by Antti Koivisto.

Source/WebCore:

Add willCacheResponse method when using CFNetwork on Mac. Also put appropriate ifdefs around
willCacheResponse/shouldCacheResponse.

  • loader/EmptyClients.h:
  • loader/FrameLoaderClient.h:
  • loader/ResourceLoader.h:
  • loader/cf/ResourceLoaderCFNet.cpp:
  • loader/mac/ResourceLoaderMac.mm:

(WebCore::ResourceLoader::willCacheResponse):

  • platform/network/ResourceHandleClient.h:

(WebCore::ResourceHandleClient::willCacheResponse):
(WebCore::ResourceHandleClient::shouldCacheResponse):

  • platform/network/cf/ResourceHandleCFNet.cpp:

(WebCore::willCacheResponse):

Source/WebKit2:

Add PLATFORM(WIN) ifdef around shouldCacheResponse.

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
  • WebProcess/WebCoreSupport/WebFrameLoaderClient.h:
Location:
trunk/Source
Files:
11 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r85101 r85109  
     12011-04-27  Pratik Solanki  <psolanki@apple.com>
     2
     3        Reviewed by Antti Koivisto.
     4
     5        Part of WebCore should use CFNetwork-based loader on Mac
     6        https://bugs.webkit.org/show_bug.cgi?id=51836
     7
     8        Add willCacheResponse method when using CFNetwork on Mac. Also put appropriate ifdefs around
     9        willCacheResponse/shouldCacheResponse.
     10
     11        * loader/EmptyClients.h:
     12        * loader/FrameLoaderClient.h:
     13        * loader/ResourceLoader.h:
     14        * loader/cf/ResourceLoaderCFNet.cpp:
     15        * loader/mac/ResourceLoaderMac.mm:
     16        (WebCore::ResourceLoader::willCacheResponse):
     17        * platform/network/ResourceHandleClient.h:
     18        (WebCore::ResourceHandleClient::willCacheResponse):
     19        (WebCore::ResourceHandleClient::shouldCacheResponse):
     20        * platform/network/cf/ResourceHandleCFNet.cpp:
     21        (WebCore::willCacheResponse):
     22
    1232011-04-27  Ilya Tikhonovsky  <loislo@chromium.org>
    224
  • trunk/Source/WebCore/loader/EmptyClients.h

    r85036 r85109  
    396396    virtual NSCachedURLResponse* willCacheResponse(DocumentLoader*, unsigned long, NSCachedURLResponse* response) const { return response; }
    397397#endif
    398 #if USE(CFNETWORK)
     398#if PLATFORM(WIN) && USE(CFNETWORK)
     399    // FIXME: Windows should use willCacheResponse - <https://bugs.webkit.org/show_bug.cgi?id=57257>.
    399400    virtual bool shouldCacheResponse(DocumentLoader*, unsigned long, const ResourceResponse&, const unsigned char*, unsigned long long) { return true; }
    400401#endif
  • trunk/Source/WebCore/loader/FrameLoaderClient.h

    r84260 r85109  
    285285        virtual NSCachedURLResponse* willCacheResponse(DocumentLoader*, unsigned long identifier, NSCachedURLResponse*) const = 0;
    286286#endif
    287 #if USE(CFNETWORK)
     287#if PLATFORM(WIN) && USE(CFNETWORK)
     288        // FIXME: Windows should use willCacheResponse - <https://bugs.webkit.org/show_bug.cgi?id=57257>.
    288289        virtual bool shouldCacheResponse(DocumentLoader*, unsigned long identifier, const ResourceResponse&, const unsigned char* data, unsigned long long length) = 0;
    289290#endif
  • trunk/Source/WebCore/loader/ResourceLoader.h

    r84260 r85109  
    120120        virtual void willCacheResponse(ResourceHandle*, CacheStoragePolicy&);
    121121#if PLATFORM(MAC)
     122#if USE(CFNETWORK)
     123        virtual CFCachedURLResponseRef willCacheResponse(ResourceHandle*, CFCachedURLResponseRef);
     124#else
    122125        virtual NSCachedURLResponse* willCacheResponse(ResourceHandle*, NSCachedURLResponse*);
    123126#endif
    124 #if USE(CFNETWORK)
     127#endif // PLATFORM(MAC)
     128#if PLATFORM(WIN) && USE(CFNETWORK)
     129        // FIXME: Windows should use willCacheResponse - <https://bugs.webkit.org/show_bug.cgi?id=57257>.
    125130        virtual bool shouldCacheResponse(ResourceHandle*, CFCachedURLResponseRef);
    126131#endif
  • trunk/Source/WebCore/loader/cf/ResourceLoaderCFNet.cpp

    r74943 r85109  
    3434namespace WebCore {
    3535
     36#if PLATFORM(WIN)
     37
    3638bool ResourceLoader::shouldCacheResponse(ResourceHandle*, CFCachedURLResponseRef cachedResponse)
    3739{
     
    4446}
    4547
     48#endif
     49
    4650} // namespace WebCore
    4751
  • trunk/Source/WebCore/loader/mac/ResourceLoaderMac.mm

    r81710 r85109  
    3030#include "ResourceLoader.h"
    3131
    32 #if !USE(CFNETWORK)
    33 
    3432#include "FrameLoader.h"
    3533#include "FrameLoaderClient.h"
     
    4038#endif
    4139
     40#if USE(CFNETWORK)
     41@interface NSCachedURLResponse (Details)
     42-(id)_initWithCFCachedURLResponse:(CFCachedURLResponseRef)cachedResponse;
     43-(CFCachedURLResponseRef)_CFCachedURLResponse;
     44@end
     45#endif
     46
    4247namespace WebCore {
     48
     49#if USE(CFNETWORK)
     50
     51CFCachedURLResponseRef ResourceLoader::willCacheResponse(ResourceHandle*, CFCachedURLResponseRef cachedResponse)
     52{
     53    if (!m_sendResourceLoadCallbacks)
     54        return 0;
     55
     56    RetainPtr<NSCachedURLResponse> nsCachedResponse(AdoptNS, [[NSCachedURLResponse alloc] _initWithCFCachedURLResponse:cachedResponse]);
     57    return [frameLoader()->client()->willCacheResponse(documentLoader(), identifier(), nsCachedResponse.get()) _CFCachedURLResponse];
     58}
     59
     60#else
    4361
    4462NSCachedURLResponse* ResourceLoader::willCacheResponse(ResourceHandle*, NSCachedURLResponse* response)
     
    4866    return frameLoader()->client()->willCacheResponse(documentLoader(), identifier(), response);
    4967}
     68
     69#endif
    5070
    5171#if HAVE(CFNETWORK_DATA_ARRAY_CALLBACK)
     
    88108
    89109}
    90 
    91 #endif // !USE(CFNETWORK)
  • trunk/Source/WebCore/platform/network/ResourceHandleClient.h

    r84260 r85109  
    3232
    3333#if USE(CFNETWORK)
    34 #include <ConditionalMacros.h>
    3534#include <CFNetwork/CFURLCachePriv.h>
    3635#include <CFNetwork/CFURLResponsePriv.h>
     36#endif
     37
     38#if PLATFORM(WIN)
     39#include <ConditionalMacros.h>
    3740#endif
    3841
     
    9497        virtual void receivedCancellation(ResourceHandle*, const AuthenticationChallenge&) { }
    9598
    96 #if PLATFORM(MAC)       
     99#if PLATFORM(MAC)
     100#if USE(CFNETWORK)
     101        virtual CFCachedURLResponseRef willCacheResponse(ResourceHandle*, CFCachedURLResponseRef response) { return response; }
     102#else
    97103        virtual NSCachedURLResponse* willCacheResponse(ResourceHandle*, NSCachedURLResponse* response) { return response; }
    98         virtual void willStopBufferingData(ResourceHandle*, const char*, int) { }
    99104#endif
    100 #if USE(CFNETWORK)
    101         virtual bool shouldCacheResponse(ResourceHandle*, CFCachedURLResponseRef response) { return true; }
     105        virtual void willStopBufferingData(ResourceHandle*, const char*, int) { }
     106#endif // PLATFORM(MAC)
     107#if PLATFORM(WIN) && USE(CFNETWORK)
     108        virtual bool shouldCacheResponse(ResourceHandle*, CFCachedURLResponseRef) { return true; }
    102109#endif
    103110#if ENABLE(BLOB)
  • trunk/Source/WebCore/platform/network/cf/ResourceHandleCFNet.cpp

    r84260 r85109  
    252252}
    253253
    254 CFCachedURLResponseRef willCacheResponse(CFURLConnectionRef conn, CFCachedURLResponseRef cachedResponse, const void* clientInfo)
     254static CFCachedURLResponseRef willCacheResponse(CFURLConnectionRef, CFCachedURLResponseRef cachedResponse, const void* clientInfo)
    255255{
    256256    ResourceHandle* handle = static_cast<ResourceHandle*>(const_cast<void*>(clientInfo));
    257257
     258#if PLATFORM(WIN)
    258259    if (handle->client() && !handle->client()->shouldCacheResponse(handle, cachedResponse))
    259260        return 0;
     261#else
     262    CFCachedURLResponseRef newResponse = handle->client()->willCacheResponse(handle, cachedResponse);
     263    if (newResponse != cachedResponse)
     264        return newResponse;
     265#endif
    260266
    261267    CacheStoragePolicy policy = static_cast<CacheStoragePolicy>(CFCachedURLResponseGetStoragePolicy(cachedResponse));
  • trunk/Source/WebKit2/ChangeLog

    r85088 r85109  
     12011-04-27  Pratik Solanki  <psolanki@apple.com>
     2
     3        Reviewed by Antti Koivisto.
     4
     5        Part of WebCore should use CFNetwork-based loader on Mac
     6        https://bugs.webkit.org/show_bug.cgi?id=51836
     7
     8        Add PLATFORM(WIN) ifdef around shouldCacheResponse.
     9
     10        * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
     11        * WebProcess/WebCoreSupport/WebFrameLoaderClient.h:
     12
    1132011-04-27  Anders Carlsson  <andersca@apple.com>
    214
  • trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp

    r84260 r85109  
    13631363
    13641364#endif
    1365 #if USE(CFNETWORK)
     1365#if PLATFORM(WIN) && USE(CFNETWORK)
    13661366bool WebFrameLoaderClient::shouldCacheResponse(DocumentLoader*, unsigned long identifier, const ResourceResponse&, const unsigned char* data, unsigned long long length)
    13671367{
  • trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebFrameLoaderClient.h

    r84260 r85109  
    210210    virtual NSCachedURLResponse* willCacheResponse(WebCore::DocumentLoader*, unsigned long identifier, NSCachedURLResponse*) const;
    211211#endif
    212 #if USE(CFNETWORK)
     212#if PLATFORM(WIN) && USE(CFNETWORK)
     213    // FIXME: Windows should use willCacheResponse - <https://bugs.webkit.org/show_bug.cgi?id=57257>.
    213214    virtual bool shouldCacheResponse(WebCore::DocumentLoader*, unsigned long identifier, const WebCore::ResourceResponse&, const unsigned char* data, unsigned long long length);
    214215#endif
Note: See TracChangeset for help on using the changeset viewer.