Title: [97546] trunk/Source
- Revision
- 97546
- Author
- [email protected]
- Date
- 2011-10-15 00:16:21 -0700 (Sat, 15 Oct 2011)
Log Message
[Chromium] Some WebSQLDatabase in worker bug fixes.
https://bugs.webkit.org/show_bug.cgi?id=70071
- Test for a NULL webView WebWorkerClientImpl.
- Avoid altering Database instance lifetimes during WorkerThread::stop().
Source/WebCore:
Existing tests coverage applies.
Reviewed by David Levin.
* storage/chromium/DatabaseTrackerChromium.cpp:
(WebCore::DatabaseTracker::interruptAllDatabasesForContext):
Source/WebKit/chromium:
Reviewed by David Levin.
* src/WebWorkerClientImpl.cpp:
(WebKit::WebWorkerClientImpl::allowFileSystem):
(WebKit::WebWorkerClientImpl::allowDatabase):
Modified Paths
Diff
Modified: trunk/Source/WebCore/ChangeLog (97545 => 97546)
--- trunk/Source/WebCore/ChangeLog 2011-10-15 07:08:39 UTC (rev 97545)
+++ trunk/Source/WebCore/ChangeLog 2011-10-15 07:16:21 UTC (rev 97546)
@@ -1,3 +1,18 @@
+2011-10-15 Michael Nordman <[email protected]>
+
+ [Chromium] Some WebSQLDatabase in worker bug fixes.
+ https://bugs.webkit.org/show_bug.cgi?id=70071
+
+ - Test for a NULL webView WebWorkerClientImpl.
+ - Avoid altering Database instance lifetimes during WorkerThread::stop().
+
+ Existing tests coverage applies.
+
+ Reviewed by David Levin.
+
+ * storage/chromium/DatabaseTrackerChromium.cpp:
+ (WebCore::DatabaseTracker::interruptAllDatabasesForContext):
+
2011-10-14 Adam Barth <[email protected]>
Update expected results.
Modified: trunk/Source/WebCore/storage/chromium/DatabaseTrackerChromium.cpp (97545 => 97546)
--- trunk/Source/WebCore/storage/chromium/DatabaseTrackerChromium.cpp 2011-10-15 07:08:39 UTC (rev 97545)
+++ trunk/Source/WebCore/storage/chromium/DatabaseTrackerChromium.cpp 2011-10-15 07:16:21 UTC (rev 97546)
@@ -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: trunk/Source/WebKit/chromium/ChangeLog (97545 => 97546)
--- trunk/Source/WebKit/chromium/ChangeLog 2011-10-15 07:08:39 UTC (rev 97545)
+++ trunk/Source/WebKit/chromium/ChangeLog 2011-10-15 07:16:21 UTC (rev 97546)
@@ -1,3 +1,17 @@
+2011-10-15 Michael Nordman <[email protected]>
+
+ [Chromium] Some WebSQLDatabase in worker bug fixes.
+ https://bugs.webkit.org/show_bug.cgi?id=70071
+
+ - Test for a NULL webView WebWorkerClientImpl.
+ - Avoid altering Database instance lifetimes during WorkerThread::stop().
+
+ Reviewed by David Levin.
+
+ * src/WebWorkerClientImpl.cpp:
+ (WebKit::WebWorkerClientImpl::allowFileSystem):
+ (WebKit::WebWorkerClientImpl::allowDatabase):
+
2011-10-14 Darin Adler <[email protected]>
Try to fix Chromium build.
Modified: trunk/Source/WebKit/chromium/src/WebWorkerClientImpl.cpp (97545 => 97546)
--- trunk/Source/WebKit/chromium/src/WebWorkerClientImpl.cpp 2011-10-15 07:08:39 UTC (rev 97545)
+++ trunk/Source/WebKit/chromium/src/WebWorkerClientImpl.cpp 2011-10-15 07:16:21 UTC (rev 97546)
@@ -193,6 +193,8 @@
bool WebWorkerClientImpl::allowFileSystem()
{
WebKit::WebViewImpl* webView = m_webFrame->viewImpl();
+ if (!webView)
+ return false;
return !webView->permissionClient() || webView->permissionClient()->allowFileSystem(m_webFrame);
}
@@ -204,8 +206,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
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes