Title: [145336] trunk/Source/WebCore
Revision
145336
Author
[email protected]
Date
2013-03-10 18:19:10 -0700 (Sun, 10 Mar 2013)

Log Message

NetworkStorageSession leaks its CFURLStorageSessionRef
https://bugs.webkit.org/show_bug.cgi?id=111950
<rdar://problem/13384134>

Reviewed by Sam Weinig.

* platform/network/NetworkStorageSession.h:
Change the argument type of the constructor to a RetainPtr.
* platform/network/cf/NetworkStorageSessionCFNet.cpp:
(WebCore::NetworkStorageSession::NetworkStorageSession): Changed
the argument type to a RetainPtr.
(WebCore::NetworkStorageSession::switchToNewTestingSession): Added
calls to adoptCF to adopt the value returned by wkCreatePrivateStorageSession.
(WebCore::NetworkStorageSession::createPrivateBrowsingSession): Ditto.
(WebCore::NetworkStorageSession::cookieStorage): Changed to use adoptCF
instead of the RetainPtr constructor with AdoptCF since the former is
far easier to read.

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (145335 => 145336)


--- trunk/Source/WebCore/ChangeLog	2013-03-10 23:12:02 UTC (rev 145335)
+++ trunk/Source/WebCore/ChangeLog	2013-03-11 01:19:10 UTC (rev 145336)
@@ -1,3 +1,23 @@
+2013-03-10  Darin Adler  <[email protected]>
+
+        NetworkStorageSession leaks its CFURLStorageSessionRef
+        https://bugs.webkit.org/show_bug.cgi?id=111950
+        <rdar://problem/13384134>
+
+        Reviewed by Sam Weinig.
+
+        * platform/network/NetworkStorageSession.h:
+        Change the argument type of the constructor to a RetainPtr.
+        * platform/network/cf/NetworkStorageSessionCFNet.cpp:
+        (WebCore::NetworkStorageSession::NetworkStorageSession): Changed
+        the argument type to a RetainPtr.
+        (WebCore::NetworkStorageSession::switchToNewTestingSession): Added
+        calls to adoptCF to adopt the value returned by wkCreatePrivateStorageSession.
+        (WebCore::NetworkStorageSession::createPrivateBrowsingSession): Ditto.
+        (WebCore::NetworkStorageSession::cookieStorage): Changed to use adoptCF
+        instead of the RetainPtr constructor with AdoptCF since the former is
+        far easier to read.
+
 2013-03-10  Jason Anderssen  <[email protected]>
 
         Conformance Test 1.0.3 (Beta) function: bufferData undefined value failed.

Modified: trunk/Source/WebCore/platform/network/NetworkStorageSession.h (145335 => 145336)


--- trunk/Source/WebCore/platform/network/NetworkStorageSession.h	2013-03-10 23:12:02 UTC (rev 145335)
+++ trunk/Source/WebCore/platform/network/NetworkStorageSession.h	2013-03-11 01:19:10 UTC (rev 145336)
@@ -66,7 +66,7 @@
 
 private:
 #if PLATFORM(MAC) || USE(CFNETWORK)
-    NetworkStorageSession(CFURLStorageSessionRef platformSession);
+    NetworkStorageSession(RetainPtr<CFURLStorageSessionRef>);
     NetworkStorageSession();
     RetainPtr<CFURLStorageSessionRef> m_platformSession;
     bool m_isPrivate;

Modified: trunk/Source/WebCore/platform/network/cf/NetworkStorageSessionCFNet.cpp (145335 => 145336)


--- trunk/Source/WebCore/platform/network/cf/NetworkStorageSessionCFNet.cpp	2013-03-10 23:12:02 UTC (rev 145335)
+++ trunk/Source/WebCore/platform/network/cf/NetworkStorageSessionCFNet.cpp	2013-03-11 01:19:10 UTC (rev 145336)
@@ -37,7 +37,7 @@
 
 namespace WebCore {
 
-NetworkStorageSession::NetworkStorageSession(CFURLStorageSessionRef platformSession)
+NetworkStorageSession::NetworkStorageSession(RetainPtr<CFURLStorageSessionRef> platformSession)
     : m_platformSession(platformSession)
     , m_isPrivate(false)
 {
@@ -55,9 +55,9 @@
     // Set a private session for testing to avoid interfering with global cookies. This should be different from private browsing session.
     // FIXME: It looks like creating a new session with the same identifier may be just creating a reference to the same storage. See <rdar://problem/11571450> and <rdar://problem/12384380>.
 #if PLATFORM(MAC)
-    defaultNetworkStorageSession() = adoptPtr(new NetworkStorageSession(wkCreatePrivateStorageSession(CFSTR("Private WebKit Session"))));
+    defaultNetworkStorageSession() = adoptPtr(new NetworkStorageSession(adoptCF(wkCreatePrivateStorageSession(CFSTR("Private WebKit Session")))));
 #else
-    defaultNetworkStorageSession() = adoptPtr(new NetworkStorageSession(wkCreatePrivateStorageSession(CFSTR("Private WebKit Session"), defaultNetworkStorageSession()->platformSession())));
+    defaultNetworkStorageSession() = adoptPtr(new NetworkStorageSession(adoptCF(wkCreatePrivateStorageSession(CFSTR("Private WebKit Session"), defaultNetworkStorageSession()->platformSession()))));
 #endif
 }
 
@@ -93,9 +93,9 @@
     RetainPtr<CFStringRef> cfIdentifier = String(identifierBase + ".PrivateBrowsing").createCFString();
 
 #if PLATFORM(MAC)
-    OwnPtr<NetworkStorageSession> session = adoptPtr(new NetworkStorageSession(wkCreatePrivateStorageSession(cfIdentifier.get())));
+    OwnPtr<NetworkStorageSession> session = adoptPtr(new NetworkStorageSession(adoptCF(wkCreatePrivateStorageSession(cfIdentifier.get()))));
 #else
-    OwnPtr<NetworkStorageSession> session = adoptPtr(new NetworkStorageSession(wkCreatePrivateStorageSession(cfIdentifier.get(), defaultNetworkStorageSession()->platformSession())));
+    OwnPtr<NetworkStorageSession> session = adoptPtr(new NetworkStorageSession(adoptCF(wkCreatePrivateStorageSession(cfIdentifier.get(), defaultNetworkStorageSession()->platformSession()))));
 #endif
     session->m_isPrivate = true;
 
@@ -110,7 +110,7 @@
 #endif
 
     if (m_platformSession)
-        return RetainPtr<CFHTTPCookieStorageRef>(AdoptCF, wkCopyHTTPCookieStorage(m_platformSession.get()));
+        return adoptCF(wkCopyHTTPCookieStorage(m_platformSession.get()));
 
 #if USE(CFNETWORK)
     return wkGetDefaultHTTPCookieStorage();
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to