| Index: webkit/support/simple_database_system.cc
|
| ===================================================================
|
| --- webkit/support/simple_database_system.cc (revision 109341)
|
| +++ webkit/support/simple_database_system.cc (working copy)
|
| @@ -5,6 +5,8 @@
|
| #include "webkit/support/simple_database_system.h"
|
|
|
| #include "base/auto_reset.h"
|
| +#include "base/bind.h"
|
| +#include "base/bind_helpers.h"
|
| #include "base/file_util.h"
|
| #include "base/message_loop.h"
|
| #include "base/message_loop_proxy.h"
|
| @@ -45,9 +47,10 @@
|
|
|
| SimpleDatabaseSystem::~SimpleDatabaseSystem() {
|
| base::WaitableEvent done_event(false, false);
|
| - db_thread_proxy_->PostTask(FROM_HERE,
|
| - NewRunnableMethod(this, &SimpleDatabaseSystem::ThreadCleanup,
|
| - &done_event));
|
| + db_thread_proxy_->PostTask(
|
| + FROM_HERE,
|
| + base::Bind(&SimpleDatabaseSystem::ThreadCleanup,
|
| + base::Unretained(this), &done_event));
|
| done_event.Wait();
|
| instance_ = NULL;
|
| }
|
| @@ -56,37 +59,44 @@
|
| string16 origin_identifier = database.securityOrigin().databaseIdentifier();
|
| string16 database_name = database.name();
|
| open_connections_->AddOpenConnection(origin_identifier, database_name);
|
| - db_thread_proxy_->PostTask(FROM_HERE,
|
| - NewRunnableMethod(this, &SimpleDatabaseSystem::DatabaseOpened,
|
| - origin_identifier,
|
| - database_name, database.displayName(),
|
| - database.estimatedSize()));
|
| + db_thread_proxy_->PostTask(
|
| + FROM_HERE,
|
| + base::Bind(&SimpleDatabaseSystem::DatabaseOpened,
|
| + base::Unretained(this),
|
| + origin_identifier,
|
| + database_name, database.displayName(),
|
| + database.estimatedSize()));
|
| }
|
|
|
| void SimpleDatabaseSystem::databaseModified(
|
| const WebKit::WebDatabase& database) {
|
| - db_thread_proxy_->PostTask(FROM_HERE,
|
| - NewRunnableMethod(this, &SimpleDatabaseSystem::DatabaseModified,
|
| - database.securityOrigin().databaseIdentifier(),
|
| - database.name()));
|
| + db_thread_proxy_->PostTask(
|
| + FROM_HERE,
|
| + base::Bind(&SimpleDatabaseSystem::DatabaseModified,
|
| + base::Unretained(this),
|
| + database.securityOrigin().databaseIdentifier(),
|
| + database.name()));
|
| }
|
|
|
| void SimpleDatabaseSystem::databaseClosed(const WebKit::WebDatabase& database) {
|
| string16 origin_identifier = database.securityOrigin().databaseIdentifier();
|
| string16 database_name = database.name();
|
| - db_thread_proxy_->PostTask(FROM_HERE,
|
| - NewRunnableMethod(this, &SimpleDatabaseSystem::DatabaseClosed,
|
| - origin_identifier, database_name));
|
| + db_thread_proxy_->PostTask(
|
| + FROM_HERE,
|
| + base::Bind(&SimpleDatabaseSystem::DatabaseClosed,
|
| + base::Unretained(this), origin_identifier, database_name));
|
| }
|
|
|
| base::PlatformFile SimpleDatabaseSystem::OpenFile(
|
| const string16& vfs_file_name, int desired_flags) {
|
| base::PlatformFile result = base::kInvalidPlatformFileValue;
|
| base::WaitableEvent done_event(false, false);
|
| - db_thread_proxy_->PostTask(FROM_HERE,
|
| - NewRunnableMethod(this, &SimpleDatabaseSystem::VfsOpenFile,
|
| - vfs_file_name, desired_flags,
|
| - &result, &done_event));
|
| + db_thread_proxy_->PostTask(
|
| + FROM_HERE,
|
| + base::Bind(&SimpleDatabaseSystem::VfsOpenFile,
|
| + base::Unretained(this),
|
| + vfs_file_name, desired_flags,
|
| + &result, &done_event));
|
| done_event.Wait();
|
| return result;
|
| }
|
| @@ -95,10 +105,12 @@
|
| const string16& vfs_file_name, bool sync_dir) {
|
| int result = SQLITE_OK;
|
| base::WaitableEvent done_event(false, false);
|
| - db_thread_proxy_->PostTask(FROM_HERE,
|
| - NewRunnableMethod(this, &SimpleDatabaseSystem::VfsDeleteFile,
|
| - vfs_file_name, sync_dir,
|
| - &result, &done_event));
|
| + db_thread_proxy_->PostTask(
|
| + FROM_HERE,
|
| + base::Bind(&SimpleDatabaseSystem::VfsDeleteFile,
|
| + base::Unretained(this),
|
| + vfs_file_name, sync_dir,
|
| + &result, &done_event));
|
| done_event.Wait();
|
| return result;
|
| }
|
| @@ -106,9 +118,10 @@
|
| uint32 SimpleDatabaseSystem::GetFileAttributes(const string16& vfs_file_name) {
|
| uint32 result = 0;
|
| base::WaitableEvent done_event(false, false);
|
| - db_thread_proxy_->PostTask(FROM_HERE,
|
| - NewRunnableMethod(this, &SimpleDatabaseSystem::VfsGetFileAttributes,
|
| - vfs_file_name, &result, &done_event));
|
| + db_thread_proxy_->PostTask(
|
| + FROM_HERE,
|
| + base::Bind(&SimpleDatabaseSystem::VfsGetFileAttributes,
|
| + base::Unretained(this), vfs_file_name, &result, &done_event));
|
| done_event.Wait();
|
| return result;
|
| }
|
| @@ -116,9 +129,10 @@
|
| int64 SimpleDatabaseSystem::GetFileSize(const string16& vfs_file_name) {
|
| int64 result = 0;
|
| base::WaitableEvent done_event(false, false);
|
| - db_thread_proxy_->PostTask(FROM_HERE,
|
| - NewRunnableMethod(this, &SimpleDatabaseSystem::VfsGetFileSize,
|
| - vfs_file_name, &result, &done_event));
|
| + db_thread_proxy_->PostTask(
|
| + FROM_HERE,
|
| + base::Bind(&SimpleDatabaseSystem::VfsGetFileSize,
|
| + base::Unretained(this), vfs_file_name, &result, &done_event));
|
| done_event.Wait();
|
| return result;
|
| }
|
| @@ -127,24 +141,28 @@
|
| const string16& origin_identifier) {
|
| int64 result = 0;
|
| base::WaitableEvent done_event(false, false);
|
| - db_thread_proxy_->PostTask(FROM_HERE,
|
| - NewRunnableMethod(this, &SimpleDatabaseSystem::VfsGetSpaceAvailable,
|
| - origin_identifier, &result, &done_event));
|
| + db_thread_proxy_->PostTask(
|
| + FROM_HERE,
|
| + base::Bind(&SimpleDatabaseSystem::VfsGetSpaceAvailable,
|
| + base::Unretained(this), origin_identifier,
|
| + &result, &done_event));
|
| done_event.Wait();
|
| return result;
|
| }
|
|
|
| void SimpleDatabaseSystem::ClearAllDatabases() {
|
| open_connections_->WaitForAllDatabasesToClose();
|
| - db_thread_proxy_->PostTask(FROM_HERE,
|
| - NewRunnableMethod(this, &SimpleDatabaseSystem::ResetTracker));
|
| + db_thread_proxy_->PostTask(
|
| + FROM_HERE,
|
| + base::Bind(&SimpleDatabaseSystem::ResetTracker, base::Unretained(this)));
|
| }
|
|
|
| void SimpleDatabaseSystem::SetDatabaseQuota(int64 quota) {
|
| if (!db_thread_proxy_->BelongsToCurrentThread()) {
|
| - db_thread_proxy_->PostTask(FROM_HERE,
|
| - NewRunnableMethod(this, &SimpleDatabaseSystem::SetDatabaseQuota,
|
| - quota));
|
| + db_thread_proxy_->PostTask(
|
| + FROM_HERE,
|
| + base::Bind(&SimpleDatabaseSystem::SetDatabaseQuota,
|
| + base::Unretained(this), quota));
|
| return;
|
| }
|
| quota_per_origin_ = quota;
|
|
|