Changeset 90807 in webkit


Ignore:
Timestamp:
Jul 11, 2011 9:54:54 PM (13 years ago)
Author:
psolanki@apple.com
Message:

Reviewed by David Kilzer.

Add NSURLRequest wrapper in ResourceRequest when USE(CFNETWORK) is enabled
https://bugs.webkit.org/show_bug.cgi?id=63276

When USE(CFNETWORK) is enabled on Mac, keep an NSURLRequest object along with the
CFURLRequestRef so that WebKit can continue using the NSURLRequest.

No new tests because no change in functionality and option is not enabled on Mac.

  • platform/network/cf/ResourceRequest.h:

(WebCore::ResourceRequest::updateNSURLRequest):
(WebCore::ResourceRequest::ResourceRequest):

  • platform/network/cf/ResourceRequestCFNet.cpp:

(WebCore::findCFURLRequestSetContentDispositionEncodingFallbackArrayFunction):
(WebCore::findCFURLRequestCopyContentDispositionEncodingFallbackArrayFunction):
(WebCore::ResourceRequest::doUpdatePlatformRequest):
(WebCore::ResourceRequest::applyWebArchiveHackForMail):

  • platform/network/mac/ResourceRequestMac.mm:

(WebCore::ResourceRequest::nsURLRequest):
(WebCore::ResourceRequest::ResourceRequest):
(WebCore::ResourceRequest::updateNSURLRequest):

Location:
trunk/Source/WebCore
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r90800 r90807  
     12011-06-23  Pratik Solanki  <psolanki@apple.com>
     2
     3        Reviewed by David Kilzer.
     4
     5        Add NSURLRequest wrapper in ResourceRequest when USE(CFNETWORK) is enabled
     6        https://bugs.webkit.org/show_bug.cgi?id=63276
     7
     8        When USE(CFNETWORK) is enabled on Mac, keep an NSURLRequest object along with the
     9        CFURLRequestRef so that WebKit can continue using the NSURLRequest.
     10
     11        No new tests because no change in functionality and option is not enabled on Mac.
     12
     13        * platform/network/cf/ResourceRequest.h:
     14        (WebCore::ResourceRequest::updateNSURLRequest):
     15        (WebCore::ResourceRequest::ResourceRequest):
     16        * platform/network/cf/ResourceRequestCFNet.cpp:
     17        (WebCore::findCFURLRequestSetContentDispositionEncodingFallbackArrayFunction):
     18        (WebCore::findCFURLRequestCopyContentDispositionEncodingFallbackArrayFunction):
     19        (WebCore::ResourceRequest::doUpdatePlatformRequest):
     20        (WebCore::ResourceRequest::applyWebArchiveHackForMail):
     21        * platform/network/mac/ResourceRequestMac.mm:
     22        (WebCore::ResourceRequest::nsURLRequest):
     23        (WebCore::ResourceRequest::ResourceRequest):
     24        (WebCore::ResourceRequest::updateNSURLRequest):
     25
    1262011-07-11  Ryosuke Niwa  <rniwa@webkit.org>
    227
  • trunk/Source/WebCore/platform/network/cf/ResourceRequest.h

    r88398 r90807  
    3333#if USE(CFNETWORK)
    3434typedef const struct _CFURLRequest* CFURLRequestRef;
    35 #else
     35#endif
     36
    3637#ifdef __OBJC__
    3738@class NSURLRequest;
    3839#else
    3940class NSURLRequest;
    40 #endif
    4141#endif
    4242
     
    7373       
    7474#if USE(CFNETWORK)
     75#if PLATFORM(MAC)
     76        ResourceRequest(NSURLRequest *);
     77        void updateNSURLRequest();
     78#endif
     79
    7580        ResourceRequest(CFURLRequestRef cfRequest)
    7681            : ResourceRequestBase()
    77             , m_cfRequest(cfRequest) { }
     82            , m_cfRequest(cfRequest)
     83        {
     84#if PLATFORM(MAC)
     85            updateNSURLRequest();
     86#endif
     87        }
     88
    7889
    7990        CFURLRequestRef cfURLRequest() const;
    8091#else
    81         ResourceRequest(NSURLRequest* nsRequest)
     92        ResourceRequest(NSURLRequest *nsRequest)
    8293            : ResourceRequestBase()
    8394            , m_nsRequest(nsRequest) { }
    8495
     96#endif
     97
     98#if PLATFORM(MAC)
    8599        void applyWebArchiveHackForMail();
    86         NSURLRequest* nsURLRequest() const;
     100        NSURLRequest *nsURLRequest() const;
    87101#endif
    88102
     
    109123#if USE(CFNETWORK)
    110124        RetainPtr<CFURLRequestRef> m_cfRequest;
    111 #else
     125#endif
     126#if PLATFORM(MAC)
    112127        RetainPtr<NSURLRequest> m_nsRequest;
    113128#endif
  • trunk/Source/WebCore/platform/network/cf/ResourceRequestCFNet.cpp

    r86778 r90807  
    3030#include "ResourceRequest.h"
    3131
     32#if USE(CFNETWORK)
     33#include "FormDataStreamCFNet.h"
     34#include <CFNetwork/CFURLRequestPriv.h>
     35#endif
     36
    3237#if PLATFORM(MAC)
    3338#include "ResourceLoadPriority.h"
    3439#include "WebCoreSystemInterface.h"
    35 #endif
    36 
    37 #if USE(CFNETWORK)
    38 #include "FormDataStreamCFNet.h"
    39 #include <CFNetwork/CFURLRequestPriv.h>
     40#include <dlfcn.h>
     41#endif
     42
     43#if PLATFORM(WIN)
    4044#include <WebKitSystemInterface/WebKitSystemInterface.h>
    4145#endif
     
    5054typedef CFArrayRef (*CFURLRequestCopyContentDispositionEncodingFallbackArrayFunction)(CFURLRequestRef);
    5155
     56#if PLATFORM(WIN)
    5257static HMODULE findCFNetworkModule()
    5358{
     
    6873    return reinterpret_cast<CFURLRequestCopyContentDispositionEncodingFallbackArrayFunction>(GetProcAddress(findCFNetworkModule(), "_CFURLRequestCopyContentDispositionEncodingFallbackArray"));
    6974}
     75#elif PLATFORM(MAC)
     76static CFURLRequestSetContentDispositionEncodingFallbackArrayFunction findCFURLRequestSetContentDispositionEncodingFallbackArrayFunction()
     77{
     78    return reinterpret_cast<CFURLRequestSetContentDispositionEncodingFallbackArrayFunction>(dlsym(RTLD_DEFAULT, "_CFURLRequestSetContentDispositionEncodingFallbackArray"));
     79}
     80
     81static CFURLRequestCopyContentDispositionEncodingFallbackArrayFunction findCFURLRequestCopyContentDispositionEncodingFallbackArrayFunction()
     82{
     83    return reinterpret_cast<CFURLRequestCopyContentDispositionEncodingFallbackArrayFunction>(dlsym(RTLD_DEFAULT, "_CFURLRequestCopyContentDispositionEncodingFallbackArray"));
     84}
     85#endif
    7086
    7187static void setContentDispositionEncodingFallbackArray(CFMutableURLRequestRef request, CFArrayRef fallbackArray)
     
    160176
    161177    m_cfRequest.adoptCF(cfRequest);
     178#if PLATFORM(MAC)
     179    updateNSURLRequest();
     180#endif
    162181}
    163182
     
    219238#endif
    220239
     240#if PLATFORM(MAC)
     241void ResourceRequest::applyWebArchiveHackForMail()
     242{
     243    // Hack because Mail checks for this property to detect data / archive loads
     244    _CFURLRequestSetProtocolProperty(cfURLRequest(), CFSTR("WebDataRequest"), CFSTR(""));
     245}
     246#endif
     247
    221248#endif // USE(CFNETWORK)
    222249
  • trunk/Source/WebCore/platform/network/mac/ResourceRequestMac.mm

    r89300 r90807  
    2727#import "ResourceRequest.h"
    2828
    29 #if !USE(CFNETWORK)
    30 
    31 #import "WebCoreSystemInterface.h"
    32 
    3329#import "FormDataStreamMac.h"
    3430#import "ResourceRequestCFNet.h"
     
    4339+ (void)setDefaultTimeoutInterval:(NSTimeInterval)seconds;
    4440- (CFURLRequestRef)_CFURLRequest;
     41- (id)_initWithCFURLRequest:(CFURLRequestRef)request;
    4542@end
    4643
     
    5148namespace WebCore {
    5249
    53 NSURLRequest* ResourceRequest::nsURLRequest() const
     50NSURLRequest *ResourceRequest::nsURLRequest() const
    5451{
    5552    updatePlatformRequest();
     
    5754    return [[m_nsRequest.get() retain] autorelease];
    5855}
     56
     57#if USE(CFNETWORK)
     58
     59ResourceRequest::ResourceRequest(NSURLRequest *nsRequest)
     60    : ResourceRequestBase()
     61    , m_cfRequest([nsRequest _CFURLRequest])
     62    , m_nsRequest(nsRequest)
     63{
     64}
     65
     66void ResourceRequest::updateNSURLRequest()
     67{
     68    if (m_cfRequest)
     69        m_nsRequest.adoptNS([[NSURLRequest alloc] _initWithCFURLRequest:m_cfRequest.get()]);
     70}
     71
     72#else
    5973
    6074void ResourceRequest::doUpdateResourceRequest()
     
    178192#endif
    179193   
     194#endif // USE(CFNETWORK)
     195
    180196static bool initQuickLookResourceCachingQuirks()
    181197{
     
    205221} // namespace WebCore
    206222
    207 #endif // !USE(CFNETWORK)
Note: See TracChangeset for help on using the changeset viewer.