[Webkit-unassigned] [Bug 135727] New: Cached file backed resources don't make it to the Web Process when NETWORK_CFDATA_ARRAY_CALLBACK is enabled
bugzilla-daemon at webkit.org
bugzilla-daemon at webkit.org
Thu Aug 7 15:08:46 PDT 2014
https://bugs.webkit.org/show_bug.cgi?id=135727
Summary: Cached file backed resources don't make it to the Web
Process when NETWORK_CFDATA_ARRAY_CALLBACK is enabled
Product: WebKit
Version: 528+ (Nightly build)
Platform: Unspecified
OS/Version: Unspecified
Status: NEW
Severity: Normal
Priority: P2
Component: WebKit2
AssignedTo: webkit-unassigned at lists.webkit.org
ReportedBy: psolanki at apple.com
If we have a resource that is file backed in CFNetwork, then we try to send that data over to the web process so that the web process uses file backed memory. Unfortunately, this is not working on iOS because iOS uses the data array calbacks. We have this check in NetworkResourceLoader::tryGetShareableHandleFromSharedBuffer().
if (!buffer->hasPlatformData())
return;
For data array callbacks, hasPlatformData() will return false since SharedBuffer has a data array and not a single CFDataRef. This breaks the optimization. If I comment out the above code and fall through, the code does
RetainPtr<CFDataRef> data = buffer->createCFData();
if (_CFURLCacheIsResponseDataMemMapped(cache, data.get()) == kCFBooleanFalse)
return;
createCFData() will do the right thing and the CFNetwork SPI will return true which will make our optimization work again.
The second mechanism - the disk cache notification works fine.
--
Configure bugmail: https://bugs.webkit.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.
More information about the webkit-unassigned
mailing list