Title: [97636] branches/chromium/874/Source
Revision
97636
Author
infe...@chromium.org
Date
2011-10-17 12:09:42 -0700 (Mon, 17 Oct 2011)

Log Message

Merge 97546 - [Chromium] Some WebSQLDatabase in worker bug fixes.

BUG=71551
Review URL: http://codereview.chromium.org/8317017

Modified Paths

Diff

Modified: branches/chromium/874/Source/WebCore/storage/chromium/DatabaseTrackerChromium.cpp (97635 => 97636)


--- branches/chromium/874/Source/WebCore/storage/chromium/DatabaseTrackerChromium.cpp	2011-10-17 18:20:38 UTC (rev 97635)
+++ branches/chromium/874/Source/WebCore/storage/chromium/DatabaseTrackerChromium.cpp	2011-10-17 19:09:42 UTC (rev 97636)
@@ -189,31 +189,24 @@
 
 void DatabaseTracker::interruptAllDatabasesForContext(const ScriptExecutionContext* context)
 {
-    Vector<RefPtr<AbstractDatabase> > openDatabases;
-    {
-        MutexLocker openDatabaseMapLock(m_openDatabaseMapGuard);
+    MutexLocker openDatabaseMapLock(m_openDatabaseMapGuard);
 
-        if (!m_openDatabaseMap)
-            return;
+    if (!m_openDatabaseMap)
+        return;
 
-        DatabaseNameMap* nameMap = m_openDatabaseMap->get(context->securityOrigin()->databaseIdentifier());
-        if (!nameMap)
-            return;
+    DatabaseNameMap* nameMap = m_openDatabaseMap->get(context->securityOrigin()->databaseIdentifier());
+    if (!nameMap)
+        return;
 
-        DatabaseNameMap::const_iterator dbNameMapEndIt = nameMap->end();
-        for (DatabaseNameMap::const_iterator dbNameMapIt = nameMap->begin(); dbNameMapIt != dbNameMapEndIt; ++dbNameMapIt) {
-            DatabaseSet* databaseSet = dbNameMapIt->second;
-            DatabaseSet::const_iterator dbSetEndIt = databaseSet->end();
-            for (DatabaseSet::const_iterator dbSetIt = databaseSet->begin(); dbSetIt != dbSetEndIt; ++dbSetIt) {
-                if ((*dbSetIt)->scriptExecutionContext() == context)
-                    openDatabases.append(*dbSetIt);
-            }
+    DatabaseNameMap::const_iterator dbNameMapEndIt = nameMap->end();
+    for (DatabaseNameMap::const_iterator dbNameMapIt = nameMap->begin(); dbNameMapIt != dbNameMapEndIt; ++dbNameMapIt) {
+        DatabaseSet* databaseSet = dbNameMapIt->second;
+        DatabaseSet::const_iterator end = databaseSet->end();
+        for (DatabaseSet::const_iterator it = databaseSet->begin(); it != end; ++it) {
+            if ((*it)->scriptExecutionContext() == context)
+                (*it)->interrupt();
         }
     }
-
-    Vector<RefPtr<AbstractDatabase> >::const_iterator openDatabasesEndIt = openDatabases.end();
-    for (Vector<RefPtr<AbstractDatabase> >::const_iterator openDatabasesIt = openDatabases.begin(); openDatabasesIt != openDatabasesEndIt; ++openDatabasesIt)
-        (*openDatabasesIt)->interrupt();
 }
 
 }

Modified: branches/chromium/874/Source/WebKit/chromium/src/WebWorkerClientImpl.cpp (97635 => 97636)


--- branches/chromium/874/Source/WebKit/chromium/src/WebWorkerClientImpl.cpp	2011-10-17 18:20:38 UTC (rev 97635)
+++ branches/chromium/874/Source/WebKit/chromium/src/WebWorkerClientImpl.cpp	2011-10-17 19:09:42 UTC (rev 97636)
@@ -188,6 +188,8 @@
 bool WebWorkerClientImpl::allowFileSystem() 
 {
     WebKit::WebViewImpl* webView = m_webFrame->viewImpl();
+    if (!webView)
+        return false;
     return !webView->permissionClient() || webView->permissionClient()->allowFileSystem(m_webFrame);
 }
 
@@ -199,8 +201,10 @@
 
 bool WebWorkerClientImpl::allowDatabase(WebFrame*, const WebString& name, const WebString& displayName, unsigned long estimatedSize) 
 {
-     WebKit::WebViewImpl* webView = m_webFrame->viewImpl();
-     return !webView->permissionClient() || webView->permissionClient()->allowDatabase(m_webFrame, name, displayName, estimatedSize);
+    WebKit::WebViewImpl* webView = m_webFrame->viewImpl();
+    if (!webView)
+        return false;
+    return !webView->permissionClient() || webView->permissionClient()->allowDatabase(m_webFrame, name, displayName, estimatedSize);
 }
  
 void WebWorkerClientImpl::dispatchDevToolsMessage(const WebString& message)
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to