[SCM] WebKit Debian packaging branch, debian/experimental, updated. upstream/1.3.3-9427-gc2be6fc
dumi at chromium.org
dumi at chromium.org
Wed Dec 22 14:48:47 UTC 2010
The following commit has been merged in the debian/experimental branch:
commit 34e67881ff05b841f6b42063eb1841fdb339e3cb
Author: dumi at chromium.org <dumi at chromium.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date: Thu Oct 21 00:25:37 2010 +0000
WebCore: Add SecurityOrigin::threadsafeCopy() to the list of exported symbols.
https://bugs.webkit.org/show_bug.cgi?id=40655
Reviewed by David Levin.
* WebCore.exp.in:
WebKit/mac: Repost the DatabaseTracker notifications to the main thread, if needed.
https://bugs.webkit.org/show_bug.cgi?id=40655
Reviewed by David Levin.
* Storage/WebDatabaseTrackerClient.mm:
(DidModifyOriginData::dispatchToMainThread):
(DidModifyOriginData::DidModifyOriginData):
(DidModifyOriginData::dispatchDidModifyOriginOnMainThread):
(WebDatabaseTrackerClient::dispatchDidModifyOrigin):
(WebDatabaseTrackerClient::dispatchDidModifyDatabase):
WebKit/win: Repost the DatabaseTracker notifications to the main thread, if needed.
https://bugs.webkit.org/show_bug.cgi?id=40655
Reviewed by David Levin.
* WebDatabaseManager.cpp:
(DidModifyOriginData::dispatchToMainThread):
(DidModifyOriginData::DidModifyOriginData):
(DidModifyOriginData::dispatchDidModifyOriginOnMainThread):
(WebDatabaseManager::dispatchDidModifyOrigin):
(WebDatabaseManager::dispatchDidModifyDatabase):
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@70195 268f45cc-cd09-0410-ab3c-d52691b4dbfc
diff --git a/WebCore/ChangeLog b/WebCore/ChangeLog
index 82e8230..4542627 100644
--- a/WebCore/ChangeLog
+++ b/WebCore/ChangeLog
@@ -1,3 +1,12 @@
+2010-10-20 Dumitru Daniliuc <dumi at chromium.org>
+
+ Reviewed by David Levin.
+
+ Add SecurityOrigin::threadsafeCopy() to the list of exported symbols.
+ https://bugs.webkit.org/show_bug.cgi?id=40655
+
+ * WebCore.exp.in:
+
2010-10-20 Sheriff Bot <webkit.review.bot at gmail.com>
Unreviewed, rolling out r70165.
diff --git a/WebCore/WebCore.exp.in b/WebCore/WebCore.exp.in
index ac92256..6948d67 100644
--- a/WebCore/WebCore.exp.in
+++ b/WebCore/WebCore.exp.in
@@ -318,6 +318,7 @@ __ZN7WebCore14SVGSMILElement13isSMILElementEPNS_4NodeE
__ZN7WebCore14SchemeRegistry24registerURLSchemeAsLocalERKN3WTF6StringE
__ZN7WebCore14SchemeRegistry25registerURLSchemeAsSecureERKN3WTF6StringE
__ZN7WebCore14SchemeRegistry32registerURLSchemeAsEmptyDocumentERKN3WTF6StringE
+__ZN7WebCore14SecurityOrigin14threadsafeCopyEv
__ZN7WebCore14SecurityOrigin16createFromStringERKN3WTF6StringE
__ZN7WebCore14SecurityOrigin18setLocalLoadPolicyENS0_15LocalLoadPolicyE
__ZN7WebCore14SecurityOrigin18shouldHideReferrerERKNS_4KURLERKN3WTF6StringE
diff --git a/WebKit/mac/ChangeLog b/WebKit/mac/ChangeLog
index c931699..68eb0fd 100644
--- a/WebKit/mac/ChangeLog
+++ b/WebKit/mac/ChangeLog
@@ -1,3 +1,17 @@
+2010-10-20 Dumitru Daniliuc <dumi at chromium.org>
+
+ Reviewed by David Levin.
+
+ Repost the DatabaseTracker notifications to the main thread, if needed.
+ https://bugs.webkit.org/show_bug.cgi?id=40655
+
+ * Storage/WebDatabaseTrackerClient.mm:
+ (DidModifyOriginData::dispatchToMainThread):
+ (DidModifyOriginData::DidModifyOriginData):
+ (DidModifyOriginData::dispatchDidModifyOriginOnMainThread):
+ (WebDatabaseTrackerClient::dispatchDidModifyOrigin):
+ (WebDatabaseTrackerClient::dispatchDidModifyDatabase):
+
2010-10-20 Simon Fraser <simon.fraser at apple.com>
Reviewed by Darin Adler.
diff --git a/WebKit/mac/Storage/WebDatabaseTrackerClient.mm b/WebKit/mac/Storage/WebDatabaseTrackerClient.mm
index 89626fb..2913739 100644
--- a/WebKit/mac/Storage/WebDatabaseTrackerClient.mm
+++ b/WebKit/mac/Storage/WebDatabaseTrackerClient.mm
@@ -32,6 +32,7 @@
#import "WebDatabaseManagerPrivate.h"
#import "WebSecurityOriginInternal.h"
+#import <wtf/MainThread.h>
#import <wtf/RetainPtr.h>
#import <WebCore/SecurityOrigin.h>
@@ -50,10 +51,42 @@ WebDatabaseTrackerClient::WebDatabaseTrackerClient()
WebDatabaseTrackerClient::~WebDatabaseTrackerClient()
{
}
-
+
+class DidModifyOriginData : public Noncopyable {
+public:
+ static void dispatchToMainThread(WebDatabaseTrackerClient* client, SecurityOrigin* origin)
+ {
+ DidModifyOriginData* context = new DidModifyOriginData(client, origin->threadsafeCopy());
+ callOnMainThread(&DidModifyOriginData::dispatchDidModifyOriginOnMainThread, context);
+ }
+
+private:
+ DidModifyOriginData(WebDatabaseTrackerClient* client, PassRefPtr<SecurityOrigin> origin)
+ : client(client)
+ , origin(origin)
+ {
+ }
+
+ static void dispatchDidModifyOriginOnMainThread(void* context)
+ {
+ ASSERT(isMainThread());
+ DidModifyOriginData* info = static_cast<DidModifyOriginData*>(context);
+ info->client->dispatchDidModifyOrigin(info->origin.get());
+ delete info;
+ }
+
+ WebDatabaseTrackerClient* client;
+ RefPtr<SecurityOrigin> origin;
+};
+
void WebDatabaseTrackerClient::dispatchDidModifyOrigin(SecurityOrigin* origin)
{
- RetainPtr<WebSecurityOrigin> webSecurityOrigin(AdoptNS, [[WebSecurityOrigin alloc] _initWithWebCoreSecurityOrigin:origin]);
+ if (!isMainThread()) {
+ DidModifyOriginData::dispatchToMainThread(this, origin);
+ return;
+ }
+
+ RetainPtr<WebSecurityOrigin> webSecurityOrigin(AdoptNS, [[WebSecurityOrigin alloc] _initWithWebCoreSecurityOrigin:origin]);
[[NSNotificationCenter defaultCenter] postNotificationName:WebDatabaseDidModifyOriginNotification
object:webSecurityOrigin.get()];
@@ -61,6 +94,11 @@ void WebDatabaseTrackerClient::dispatchDidModifyOrigin(SecurityOrigin* origin)
void WebDatabaseTrackerClient::dispatchDidModifyDatabase(SecurityOrigin* origin, const String& databaseIdentifier)
{
+ if (!isMainThread()) {
+ DidModifyOriginData::dispatchToMainThread(this, origin);
+ return;
+ }
+
RetainPtr<WebSecurityOrigin> webSecurityOrigin(AdoptNS, [[WebSecurityOrigin alloc] _initWithWebCoreSecurityOrigin:origin]);
RetainPtr<NSDictionary> userInfo(AdoptNS, [[NSDictionary alloc]
initWithObjectsAndKeys:(NSString *)databaseIdentifier, WebDatabaseIdentifierKey, nil]);
diff --git a/WebKit/win/ChangeLog b/WebKit/win/ChangeLog
index 68bc934..0f4c32c 100644
--- a/WebKit/win/ChangeLog
+++ b/WebKit/win/ChangeLog
@@ -1,3 +1,17 @@
+2010-10-20 Dumitru Daniliuc <dumi at chromium.org>
+
+ Reviewed by David Levin.
+
+ Repost the DatabaseTracker notifications to the main thread, if needed.
+ https://bugs.webkit.org/show_bug.cgi?id=40655
+
+ * WebDatabaseManager.cpp:
+ (DidModifyOriginData::dispatchToMainThread):
+ (DidModifyOriginData::DidModifyOriginData):
+ (DidModifyOriginData::dispatchDidModifyOriginOnMainThread):
+ (WebDatabaseManager::dispatchDidModifyOrigin):
+ (WebDatabaseManager::dispatchDidModifyDatabase):
+
2010-10-20 Dirk Schulze <krit at webkit.org>
Reviewed by Nikolas Zimmermann.
diff --git a/WebKit/win/WebDatabaseManager.cpp b/WebKit/win/WebDatabaseManager.cpp
index 4c23d6c..bdcb549 100644
--- a/WebKit/win/WebDatabaseManager.cpp
+++ b/WebKit/win/WebDatabaseManager.cpp
@@ -38,6 +38,7 @@
#include "WebNotificationCenter.h"
#include "WebSecurityOrigin.h"
+#include <JavaScriptCore/MainThread.h>
#include <WebCore/BString.h>
#include <WebCore/COMPtr.h>
#include <WebCore/DatabaseTracker.h>
@@ -327,8 +328,40 @@ HRESULT STDMETHODCALLTYPE WebDatabaseManager::deleteDatabase(
return S_OK;
}
+class DidModifyOriginData : public Noncopyable {
+public:
+ static void dispatchToMainThread(WebDatabaseManager* databaseManager, SecurityOrigin* origin)
+ {
+ DidModifyOriginData* context = new DidModifyOriginData(databaseManager, origin->threadsafeCopy());
+ callOnMainThread(&DidModifyOriginData::dispatchDidModifyOriginOnMainThread, context);
+ }
+
+private:
+ DidModifyOriginData(WebDatabaseManager* databaseManager, PassRefPtr<SecurityOrigin> origin)
+ : databaseManager(databaseManager)
+ , origin(origin)
+ {
+ }
+
+ static void dispatchDidModifyOriginOnMainThread(void* context)
+ {
+ ASSERT(isMainThread());
+ DidModifyOriginData* info = static_cast<DidModifyOriginData*>(context);
+ info->databaseManager->dispatchDidModifyOrigin(info->origin.get());
+ delete info;
+ }
+
+ WebDatabaseManager* databaseManager;
+ RefPtr<SecurityOrigin> origin;
+};
+
void WebDatabaseManager::dispatchDidModifyOrigin(SecurityOrigin* origin)
{
+ if (!isMainThread()) {
+ DidModifyOriginData::dispatchToMainThread(this, origin);
+ return;
+ }
+
static BSTR databaseDidModifyOriginName = SysAllocString(WebDatabaseDidModifyOriginNotification);
IWebNotificationCenter* notifyCenter = WebNotificationCenter::defaultCenterInternal();
@@ -353,6 +386,11 @@ HRESULT STDMETHODCALLTYPE WebDatabaseManager::setQuota(
void WebDatabaseManager::dispatchDidModifyDatabase(SecurityOrigin* origin, const String& databaseName)
{
+ if (!isMainThread()) {
+ DidModifyOriginData::dispatchToMainThread(this, origin);
+ return;
+ }
+
static BSTR databaseDidModifyOriginName = SysAllocString(WebDatabaseDidModifyDatabaseNotification);
IWebNotificationCenter* notifyCenter = WebNotificationCenter::defaultCenterInternal();
--
WebKit Debian packaging
More information about the Pkg-webkit-commits
mailing list