Title: [172761] branches/safari-600.1-branch/Source

Diff

Modified: branches/safari-600.1-branch/Source/WebCore/ChangeLog (172760 => 172761)


--- branches/safari-600.1-branch/Source/WebCore/ChangeLog	2014-08-19 21:28:41 UTC (rev 172760)
+++ branches/safari-600.1-branch/Source/WebCore/ChangeLog	2014-08-19 21:31:59 UTC (rev 172761)
@@ -1,5 +1,26 @@
 2014-08-19  Dana Burkart  <[email protected]>
 
+        Merge r172502
+
+    2014-08-12  Pratik Solanki  <[email protected]>
+
+            Cached file backed resources don't make it to the Web Process when NETWORK_CFDATA_ARRAY_CALLBACK is enabled
+            https://bugs.webkit.org/show_bug.cgi?id=135727
+            <rdar://problem/17947880>
+
+            Reviewed by Darin Adler.
+
+            Add SharedBuffer::existingCFData() which returns CFDataRef if it has one. Refactor
+            this code out of createCFData().
+
+            * WebCore.exp.in:
+            * platform/SharedBuffer.h:
+            * platform/mac/SharedBufferMac.mm:
+            (WebCore::SharedBuffer::existingCFData): Added.
+            (WebCore::SharedBuffer::createCFData):
+
+2014-08-19  Dana Burkart  <[email protected]>
+
         Merge r172481
 
     2014-08-11  Roger Fong  <[email protected]>

Modified: branches/safari-600.1-branch/Source/WebCore/WebCore.exp.in (172760 => 172761)


--- branches/safari-600.1-branch/Source/WebCore/WebCore.exp.in	2014-08-19 21:28:41 UTC (rev 172760)
+++ branches/safari-600.1-branch/Source/WebCore/WebCore.exp.in	2014-08-19 21:31:59 UTC (rev 172761)
@@ -242,6 +242,7 @@
 __ZN7WebCore12SharedBuffer11adoptVectorERN3WTF6VectorIcLm0ENS1_15CrashOnOverflowEEE
 __ZN7WebCore12SharedBuffer12createCFDataEv
 __ZN7WebCore12SharedBuffer12createNSDataEv
+__ZN7WebCore12SharedBuffer14existingCFDataEv
 __ZN7WebCore12SharedBuffer24createWithContentsOfFileERKN3WTF6StringE
 __ZN7WebCore12SharedBuffer6appendEPKcj
 __ZN7WebCore12SharedBuffer6appendEPS0_

Modified: branches/safari-600.1-branch/Source/WebCore/platform/SharedBuffer.h (172760 => 172761)


--- branches/safari-600.1-branch/Source/WebCore/platform/SharedBuffer.h	2014-08-19 21:28:41 UTC (rev 172760)
+++ branches/safari-600.1-branch/Source/WebCore/platform/SharedBuffer.h	2014-08-19 21:31:59 UTC (rev 172761)
@@ -74,6 +74,7 @@
 #endif
 #if USE(CF)
     RetainPtr<CFDataRef> createCFData();
+    CFDataRef existingCFData();
     static PassRefPtr<SharedBuffer> wrapCFData(CFDataRef);
 #endif
 

Modified: branches/safari-600.1-branch/Source/WebCore/platform/mac/SharedBufferMac.mm (172760 => 172761)


--- branches/safari-600.1-branch/Source/WebCore/platform/mac/SharedBufferMac.mm	2014-08-19 21:28:41 UTC (rev 172760)
+++ branches/safari-600.1-branch/Source/WebCore/platform/mac/SharedBufferMac.mm	2014-08-19 21:31:59 UTC (rev 172761)
@@ -128,16 +128,24 @@
     return adoptNS((NSData *)createCFData().leakRef());
 }
 
-RetainPtr<CFDataRef> SharedBuffer::createCFData()
+CFDataRef SharedBuffer::existingCFData()
 {
     if (m_cfData)
-        return m_cfData;
+        return m_cfData.get();
 
 #if USE(NETWORK_CFDATA_ARRAY_CALLBACK)
     if (m_dataArray.size() == 1)
-        return m_dataArray.at(0);
+        return m_dataArray.at(0).get();
 #endif
 
+    return nullptr;
+}
+
+RetainPtr<CFDataRef> SharedBuffer::createCFData()
+{
+    if (CFDataRef cfData = existingCFData())
+        return cfData;
+
 #if ENABLE(DISK_IMAGE_CACHE)
     if (isMemoryMapped())
         return adoptCF((CFDataRef)adoptNS([[WebCoreSharedBufferData alloc] initWithMemoryMappedSharedBuffer:*this]).leakRef());

Modified: branches/safari-600.1-branch/Source/WebKit2/ChangeLog (172760 => 172761)


--- branches/safari-600.1-branch/Source/WebKit2/ChangeLog	2014-08-19 21:28:41 UTC (rev 172760)
+++ branches/safari-600.1-branch/Source/WebKit2/ChangeLog	2014-08-19 21:31:59 UTC (rev 172761)
@@ -1,3 +1,24 @@
+2014-08-19  Dana Burkart  <[email protected]>
+
+        Merge r172502
+
+    2014-08-12  Pratik Solanki  <[email protected]>
+
+            Cached file backed resources don't make it to the Web Process when NETWORK_CFDATA_ARRAY_CALLBACK is enabled
+            https://bugs.webkit.org/show_bug.cgi?id=135727
+            <rdar://problem/17947880>
+
+            Reviewed by Darin Adler.
+
+            tryGetShareableHandleFromSharedBuffer() assumed that we have a file backed resource only if
+            we had a CFDataRef (platformData()) in SharedBuffer. This is wrong when we use the data
+            array callbacks since the file backed buffer could be in the data array. Instead of relying
+            on hasPlatformData(), explicitly ask the SharedBuffer to give us a CFDataRef if it has one
+            so that SharedBuffer can take care of the data array case.
+
+            * NetworkProcess/mac/NetworkResourceLoaderMac.mm:
+            (WebKit::NetworkResourceLoader::tryGetShareableHandleFromSharedBuffer):
+
 2014-08-18  Dana Burkart  <[email protected]>
 
         Merge r172680

Modified: branches/safari-600.1-branch/Source/WebKit2/NetworkProcess/mac/NetworkResourceLoaderMac.mm (172760 => 172761)


--- branches/safari-600.1-branch/Source/WebKit2/NetworkProcess/mac/NetworkResourceLoaderMac.mm	2014-08-19 21:28:41 UTC (rev 172760)
+++ branches/safari-600.1-branch/Source/WebKit2/NetworkProcess/mac/NetworkResourceLoaderMac.mm	2014-08-19 21:31:59 UTC (rev 172761)
@@ -93,14 +93,14 @@
     if (!cache)
         return;
 
-    if (!buffer->hasPlatformData())
+    CFDataRef data = ""
+    if (!data)
         return;
 
-    RetainPtr<CFDataRef> data = ""
-    if (_CFURLCacheIsResponseDataMemMapped(cache, data.get()) == kCFBooleanFalse)
+    if (_CFURLCacheIsResponseDataMemMapped(cache, data) == kCFBooleanFalse)
         return;
 
-    tryGetShareableHandleFromCFData(handle, data.get());
+    tryGetShareableHandleFromCFData(handle, data);
 }
 #endif // __MAC_OS_X_VERSION_MIN_REQUIRED >= 1090
 
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to