[BlackBerry] Fix assertion in CookieManager::getBackingStoreCookies
authorcommit-queue@webkit.org <commit-queue@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 5 Mar 2013 21:08:29 +0000 (21:08 +0000)
committercommit-queue@webkit.org <commit-queue@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 5 Mar 2013 21:08:29 +0000 (21:08 +0000)
https://bugs.webkit.org/show_bug.cgi?id=111468

Patch by Otto Derek Cheung <otcheung@rim.com> on 2013-03-05
Reviewed by Rob Buis.
Internally reviewed by Konrad Piascik.

The assert in getBackingStoreCookies could be giving out false positives now
that we have our fixes for cookie loading in PR 286189. The cookie store could
be half loaded if the first cookie get/set call happens before the db is fully loaded.
A full webkit sync call to reload the database will cause the assert to be hit.

Safer to flush everything out and try again.

* platform/blackberry/CookieManager.cpp:
(WebCore::CookieManager::getBackingStoreCookies):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@144804 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Source/WebCore/ChangeLog
Source/WebCore/platform/blackberry/CookieManager.cpp

index 3278624..5e0977c 100644 (file)
@@ -1,3 +1,21 @@
+2013-03-05  Otto Derek Cheung  <otcheung@rim.com>
+
+        [BlackBerry] Fix assertion in CookieManager::getBackingStoreCookies
+        https://bugs.webkit.org/show_bug.cgi?id=111468
+
+        Reviewed by Rob Buis.
+        Internally reviewed by Konrad Piascik.
+
+        The assert in getBackingStoreCookies could be giving out false positives now
+        that we have our fixes for cookie loading in PR 286189. The cookie store could
+        be half loaded if the first cookie get/set call happens before the db is fully loaded.
+        A full webkit sync call to reload the database will cause the assert to be hit.
+
+        Safer to flush everything out and try again.
+
+        * platform/blackberry/CookieManager.cpp:
+        (WebCore::CookieManager::getBackingStoreCookies):
+
 2013-03-05  Tony Gentilcore  <tonyg@chromium.org>
 
         CompactHTMLToken does not need an XSSInfo pointer
index bdb65f8..0bbf277 100644 (file)
@@ -512,9 +512,9 @@ void CookieManager::getBackingStoreCookies()
     if (m_privateMode)
         return;
 
-    // This method should be called just after having created the cookieManager
-    // NEVER afterwards!
-    ASSERT(!m_count);
+    // If there exists cookies in memory, flush them out and we'll load everything from the database again
+    if (m_count)
+        removeAllCookies(DoNotRemoveFromBackingStore);
 
     Vector<ParsedCookie*> cookies;
     m_cookieBackingStore->getCookiesFromDatabase(cookies);