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