Changeset 167793 in webkit


Ignore:
Timestamp:
Apr 25, 2014 12:19:31 AM (10 years ago)
Author:
akling@apple.com
Message:

[iOS WebKit2] Enable optimization to mmap downloaded resources once they become file-backed.
<https://webkit.org/b/132171>
<rdar://problem/16720733>

Source/WebCore:
Add a missing export for the USE(CFNETWORK) + WebKit2 combo.

Reviewed by Antti Koivisto.

  • WebCore.exp.in:

Source/WebKit2:
Implement a CFNetwork-based version of NetworkResourceLoader::willCacheResponseAsync()
and activate the DiskCacheMonitor code path. This means that once resources go into
file system cache, we get notified and mmap them from disk, saving heaps of memory.

Reviewed by Antti Koivisto.

  • NetworkProcess/NetworkResourceLoader.h:
  • NetworkProcess/mac/DiskCacheMonitor.mm:
  • NetworkProcess/mac/NetworkResourceLoaderMac.mm:

(WebKit::NetworkResourceLoader::willCacheResponseAsync):

Location:
trunk/Source
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r167790 r167793  
     12014-04-24  Andreas Kling  <akling@apple.com>
     2
     3        [iOS WebKit2] Enable optimization to mmap downloaded resources once they become file-backed.
     4        <https://webkit.org/b/132171>
     5        <rdar://problem/16720733>
     6
     7        Add a missing export for the USE(CFNETWORK) + WebKit2 combo.
     8
     9        Reviewed by Antti Koivisto.
     10
     11        * WebCore.exp.in:
     12
    1132014-04-24  Darin Adler  <darin@apple.com>
    214
  • trunk/Source/WebCore/WebCore.exp.in

    r167786 r167793  
    28712871#if !USE(CFNETWORK)
    28722872__ZN7WebCore14ResourceHandle25continueWillCacheResponseEP19NSCachedURLResponse
     2873#else
     2874__ZN7WebCore14ResourceHandle25continueWillCacheResponseEPK20_CFCachedURLResponse
    28732875#endif
    28742876
  • trunk/Source/WebKit2/ChangeLog

    r167792 r167793  
     12014-04-24  Andreas Kling  <akling@apple.com>
     2
     3        [iOS WebKit2] Enable optimization to mmap downloaded resources once they become file-backed.
     4        <https://webkit.org/b/132171>
     5        <rdar://problem/16720733>
     6
     7        Implement a CFNetwork-based version of NetworkResourceLoader::willCacheResponseAsync()
     8        and activate the DiskCacheMonitor code path. This means that once resources go into
     9        file system cache, we get notified and mmap them from disk, saving heaps of memory.
     10
     11        Reviewed by Antti Koivisto.
     12
     13        * NetworkProcess/NetworkResourceLoader.h:
     14        * NetworkProcess/mac/DiskCacheMonitor.mm:
     15        * NetworkProcess/mac/NetworkResourceLoaderMac.mm:
     16        (WebKit::NetworkResourceLoader::willCacheResponseAsync):
     17
    1182014-04-24  Andreas Kling  <akling@apple.com>
    219
  • trunk/Source/WebKit2/NetworkProcess/NetworkResourceLoader.h

    r167635 r167793  
    112112#if PLATFORM(COCOA)
    113113    static size_t fileBackedResourceMinimumSize();
    114 #if !PLATFORM(IOS)
     114
     115#if USE(CFNETWORK)
     116    virtual void willCacheResponseAsync(WebCore::ResourceHandle*, CFCachedURLResponseRef) override;
     117#else
    115118    virtual void willCacheResponseAsync(WebCore::ResourceHandle*, NSCachedURLResponse *) override;
    116119#endif
    117 #endif // PLATFORM(MAC)
     120#endif
    118121
    119122    // Message handlers.
  • trunk/Source/WebKit2/NetworkProcess/mac/DiskCacheMonitor.mm

    r165117 r167793  
    3838#endif
    3939
    40 #if !PLATFORM(IOS) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 1090
     40#if (PLATFORM(IOS) && __IPHONE_OS_VERSION_MIN_REQUIRED >= 80000) || (PLATFORM(MAC) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 1090)
    4141
    4242typedef void (^CFCachedURLResponseCallBackBlock)(CFCachedURLResponseRef);
     
    108108} // namespace WebKit
    109109
    110 #endif // !PLATFORM(IOS) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 1090
     110#endif
  • trunk/Source/WebKit2/NetworkProcess/mac/NetworkResourceLoaderMac.mm

    r159724 r167793  
    104104}
    105105
     106#if USE(CFNETWORK)
     107void NetworkResourceLoader::willCacheResponseAsync(ResourceHandle* handle, CFCachedURLResponseRef cfResponse)
     108{
     109    ASSERT_UNUSED(handle, handle == m_handle);
     110
     111    if (m_bytesReceived >= fileBackedResourceMinimumSize())
     112        DiskCacheMonitor::monitorFileBackingStoreCreation(cfResponse, this);
     113
     114    m_handle->continueWillCacheResponse(cfResponse);
     115}
     116#endif
     117
    106118#if !PLATFORM(IOS)
    107119void NetworkResourceLoader::willCacheResponseAsync(ResourceHandle* handle, NSCachedURLResponse *nsResponse)
Note: See TracChangeset for help on using the changeset viewer.