Commit 3d20aebe authored by aroben@apple.com's avatar aroben@apple.com

2011-03-15 Adam Roben <aroben@apple.com>

        Fix a leak in WebStorageTrackerClient::dispatchDidModifyOrigin

        Fixes <http://webkit.org/b/56385> SecurityOrigin leaks seen in
        WebStorageTrackerClient::dispatchDidModifyOrigin

        Reviewed by Antti Koivisto.

        * Storage/WebStorageTrackerClient.mm:
        (WebStorageTrackerClient::dispatchDidModifyOriginOnMainThread): Adopt the reference passed
        to us by dispatchDidModifyOrigin.
        (WebStorageTrackerClient::dispatchDidModifyOrigin): Added a comment and removed an
        unnecessary cast.

git-svn-id: svn://svn.chromium.org/blink/trunk@81150 bbb929c8-8fbe-4397-9dbb-9b2b20218538
parent e2b16a8f
2011-03-15 Adam Roben <aroben@apple.com>
Fix a leak in WebStorageTrackerClient::dispatchDidModifyOrigin
Fixes <http://webkit.org/b/56385> SecurityOrigin leaks seen in
WebStorageTrackerClient::dispatchDidModifyOrigin
Reviewed by Antti Koivisto.
* Storage/WebStorageTrackerClient.mm:
(WebStorageTrackerClient::dispatchDidModifyOriginOnMainThread): Adopt the reference passed
to us by dispatchDidModifyOrigin.
(WebStorageTrackerClient::dispatchDidModifyOrigin): Added a comment and removed an
unnecessary cast.
2011-03-15 Kevin Ollivier <kevino@theolliviers.com> 2011-03-15 Kevin Ollivier <kevino@theolliviers.com>
Reviewed by Darin Adler. Reviewed by Darin Adler.
......
...@@ -53,7 +53,9 @@ WebStorageTrackerClient::~WebStorageTrackerClient() ...@@ -53,7 +53,9 @@ WebStorageTrackerClient::~WebStorageTrackerClient()
void WebStorageTrackerClient::dispatchDidModifyOriginOnMainThread(void* context) void WebStorageTrackerClient::dispatchDidModifyOriginOnMainThread(void* context)
{ {
ASSERT(isMainThread()); ASSERT(isMainThread());
WebStorageTrackerClient::sharedWebStorageTrackerClient()->dispatchDidModifyOrigin(static_cast<SecurityOrigin*>(context)); // adoptRef is balanced by leakRef in dispatchDidModifyOrigin.
RefPtr<SecurityOrigin> origin = adoptRef(static_cast<SecurityOrigin*>(context));
WebStorageTrackerClient::sharedWebStorageTrackerClient()->dispatchDidModifyOrigin(origin.get());
} }
void WebStorageTrackerClient::dispatchDidModifyOrigin(PassRefPtr<SecurityOrigin> origin) void WebStorageTrackerClient::dispatchDidModifyOrigin(PassRefPtr<SecurityOrigin> origin)
...@@ -69,7 +71,8 @@ void WebStorageTrackerClient::dispatchDidModifyOrigin(const String& originIdenti ...@@ -69,7 +71,8 @@ void WebStorageTrackerClient::dispatchDidModifyOrigin(const String& originIdenti
PassRefPtr<SecurityOrigin> origin = SecurityOrigin::createFromDatabaseIdentifier(originIdentifier); PassRefPtr<SecurityOrigin> origin = SecurityOrigin::createFromDatabaseIdentifier(originIdentifier);
if (!isMainThread()) { if (!isMainThread()) {
callOnMainThread(dispatchDidModifyOriginOnMainThread, static_cast<void*>(origin.leakRef())); // leakRef is balanced by adoptRef in dispatchDidModifyOriginOnMainThread.
callOnMainThread(dispatchDidModifyOriginOnMainThread, origin.leakRef());
return; return;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment