DumpRenderTree built with public iOS SDK crashes under -[WebPreferences(WebPrivate...
authordbates@webkit.org <dbates@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 5 Oct 2015 20:57:09 +0000 (20:57 +0000)
committerdbates@webkit.org <dbates@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 5 Oct 2015 20:57:09 +0000 (20:57 +0000)
commit27212dc2c69494a28cb7a30a128d9388d6e95a57
tree35edb9ca411346b03bb8018d71e266b262b05655
parentcdf8efe16583d21dcf568223429f4117539644fe
DumpRenderTree built with public iOS SDK crashes under -[WebPreferences(WebPrivate) _setCurrentNetworkLoaderSessionCookieAcceptPolicy:]
https://bugs.webkit.org/show_bug.cgi?id=149766

Reviewed by Alexey Proskuryakov.

Source/WebKit/mac:

Assert that we have a non-null pointer to a cookie storage.

* WebView/WebPreferences.mm:
(+[WebPreferences _setCurrentNetworkLoaderSessionCookieAcceptPolicy:]):

Tools:

Create network storage testing session on iOS.

Currently we do not create a network storage testing session on iOS. A network storage testing session always
has an associated cookie store. When WebKit is built without USE(CFNETWORK), NetworkStorageSession::defaultStorageSession().cookieStorage()
returns nullptr because the caller is expected to interact with NSHTTPCookieStorage instead of querying
NetworkStorageSession for the cookie store. When WebKit is built with USE(CFNETWORK) accessing
NetworkStorageSession::defaultStorageSession().cookieStorage() returns a valid cookie store (creating one if
it does not exist). Instead we should make use of NetworkStorageSession::switchToNewTestingSession() to
create a network storage testing session when building DumpRenderTree for iOS so as to ensure a consistent
testing environment regardless of whether we built with USE(CFNETWORK). This will also make the behavior of
DumpRenderTree on iOS more consistent with the behavior of DumpRenderTree on Mac.

As a side effect of this change DumpRenderTree no longer crashes in -[WebPreferences(WebPrivate) _setCurrentNetworkLoaderSessionCookieAcceptPolicy:]
when WebKit is built without USE(CFNETWORK) because NetworkStorageSession::defaultStorageSession().cookieStorage()
returns a non-null pointer to a cookie store.

* DumpRenderTree/mac/DumpRenderTree.mm:
(prepareConsistentTestingEnvironment):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@190578 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Source/WebKit/mac/ChangeLog
Source/WebKit/mac/WebView/WebPreferences.mm
Tools/ChangeLog
Tools/DumpRenderTree/mac/DumpRenderTree.mm