Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(586)

Unified Diff: storage/browser/database/database_tracker.cc

Issue 442383002: Move storage-related files from webkit/ to new top-level directory storage/ (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: . Created 6 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « storage/browser/database/database_tracker.h ('k') | storage/browser/database/database_util.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: storage/browser/database/database_tracker.cc
diff --git a/webkit/browser/database/database_tracker.cc b/storage/browser/database/database_tracker.cc
similarity index 85%
rename from webkit/browser/database/database_tracker.cc
rename to storage/browser/database/database_tracker.cc
index ab1f6fd2806cd78607c89c435fac92cb26d56712..8d72e227d8c2efa053b760c5c06ba2a36b201e9f 100644
--- a/webkit/browser/database/database_tracker.cc
+++ b/storage/browser/database/database_tracker.cc
@@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-#include "webkit/browser/database/database_tracker.h"
+#include "storage/browser/database/database_tracker.h"
#include <algorithm>
#include <vector>
@@ -20,12 +20,12 @@
#include "sql/meta_table.h"
#include "sql/transaction.h"
#include "third_party/sqlite/sqlite3.h"
-#include "webkit/browser/database/database_quota_client.h"
-#include "webkit/browser/database/database_util.h"
-#include "webkit/browser/database/databases_table.h"
-#include "webkit/browser/quota/quota_manager_proxy.h"
-#include "webkit/browser/quota/special_storage_policy.h"
-#include "webkit/common/database/database_identifier.h"
+#include "storage/browser/database/database_quota_client.h"
+#include "storage/browser/database/database_util.h"
+#include "storage/browser/database/databases_table.h"
+#include "storage/browser/quota/quota_manager_proxy.h"
+#include "storage/browser/quota/special_storage_policy.h"
+#include "storage/common/database/database_identifier.h"
namespace webkit_database {
@@ -43,20 +43,23 @@ const base::FilePath::CharType kTemporaryDirectoryPrefix[] =
const base::FilePath::CharType kTemporaryDirectoryPattern[] =
FILE_PATH_LITERAL("DeleteMe*");
-OriginInfo::OriginInfo()
- : total_size_(0) {}
+OriginInfo::OriginInfo() : total_size_(0) {
+}
OriginInfo::OriginInfo(const OriginInfo& origin_info)
: origin_identifier_(origin_info.origin_identifier_),
total_size_(origin_info.total_size_),
- database_info_(origin_info.database_info_) {}
+ database_info_(origin_info.database_info_) {
+}
-OriginInfo::~OriginInfo() {}
+OriginInfo::~OriginInfo() {
+}
void OriginInfo::GetAllDatabaseNames(
std::vector<base::string16>* databases) const {
for (DatabaseInfoMap::const_iterator it = database_info_.begin();
- it != database_info_.end(); it++) {
+ it != database_info_.end();
+ it++) {
databases->push_back(it->first);
}
}
@@ -77,7 +80,8 @@ base::string16 OriginInfo::GetDatabaseDescription(
}
OriginInfo::OriginInfo(const std::string& origin_identifier, int64 total_size)
- : origin_identifier_(origin_identifier), total_size_(total_size) {}
+ : origin_identifier_(origin_identifier), total_size_(total_size) {
+}
DatabaseTracker::DatabaseTracker(
const base::FilePath& profile_path,
@@ -125,17 +129,15 @@ void DatabaseTracker::DatabaseOpened(const std::string& origin_identifier,
webkit_database::GetOriginFromIdentifier(origin_identifier),
quota::kStorageTypeTemporary);
- InsertOrUpdateDatabaseDetails(origin_identifier, database_name,
- database_description, estimated_size);
+ InsertOrUpdateDatabaseDetails(
+ origin_identifier, database_name, database_description, estimated_size);
if (database_connections_.AddConnection(origin_identifier, database_name)) {
- *database_size = SeedOpenDatabaseInfo(origin_identifier,
- database_name,
- database_description);
+ *database_size = SeedOpenDatabaseInfo(
+ origin_identifier, database_name, database_description);
return;
}
- *database_size = UpdateOpenDatabaseInfoAndNotify(origin_identifier,
- database_name,
- &database_description);
+ *database_size = UpdateOpenDatabaseInfoAndNotify(
+ origin_identifier, database_name, &database_description);
}
void DatabaseTracker::DatabaseModified(const std::string& origin_identifier,
@@ -165,10 +167,9 @@ void DatabaseTracker::DatabaseClosed(const std::string& origin_identifier,
DeleteDatabaseIfNeeded(origin_identifier, database_name);
}
-void DatabaseTracker::HandleSqliteError(
- const std::string& origin_identifier,
- const base::string16& database_name,
- int error) {
+void DatabaseTracker::HandleSqliteError(const std::string& origin_identifier,
+ const base::string16& database_name,
+ int error) {
// We only handle errors that indicate corruption and we
// do so with a heavy hand, we delete it. Any renderers/workers
// with this database open will receive a message to close it
@@ -178,8 +179,7 @@ void DatabaseTracker::HandleSqliteError(
// Note: the client-side filters out all but these two errors as
// a small optimization, see WebDatabaseObserverImpl::HandleSqliteError.
if (error == SQLITE_CORRUPT || error == SQLITE_NOTADB) {
- DeleteDatabase(origin_identifier, database_name,
- net::CompletionCallback());
+ DeleteDatabase(origin_identifier, database_name, net::CompletionCallback());
}
}
@@ -198,13 +198,17 @@ void DatabaseTracker::CloseDatabases(const DatabaseConnections& connections) {
std::vector<std::pair<std::string, base::string16> > open_dbs;
connections.ListConnections(&open_dbs);
for (std::vector<std::pair<std::string, base::string16> >::iterator it =
- open_dbs.begin(); it != open_dbs.end(); ++it)
+ open_dbs.begin();
+ it != open_dbs.end();
+ ++it)
UpdateOpenDatabaseSizeAndNotify(it->first, it->second);
std::vector<std::pair<std::string, base::string16> > closed_dbs;
database_connections_.RemoveConnections(connections, &closed_dbs);
for (std::vector<std::pair<std::string, base::string16> >::iterator it =
- closed_dbs.begin(); it != closed_dbs.end(); ++it) {
+ closed_dbs.begin();
+ it != closed_dbs.end();
+ ++it) {
DeleteDatabaseIfNeeded(it->first, it->second);
}
}
@@ -294,8 +298,8 @@ base::FilePath DatabaseTracker::GetFullDBFilePath(
return base::FilePath();
return db_dir_.Append(base::FilePath::FromUTF16Unsafe(
- GetOriginDirectory(origin_identifier))).AppendASCII(
- base::Int64ToString(id));
+ GetOriginDirectory(origin_identifier)))
+ .AppendASCII(base::Int64ToString(id));
}
bool DatabaseTracker::GetOriginInfo(const std::string& origin_identifier,
@@ -317,8 +321,7 @@ bool DatabaseTracker::GetAllOriginIdentifiers(
return databases_table_->GetAllOriginIdentifiers(origin_identifiers);
}
-bool DatabaseTracker::GetAllOriginsInfo(
- std::vector<OriginInfo>* origins_info) {
+bool DatabaseTracker::GetAllOriginsInfo(std::vector<OriginInfo>* origins_info) {
DCHECK(origins_info);
DCHECK(origins_info->empty());
@@ -327,7 +330,8 @@ bool DatabaseTracker::GetAllOriginsInfo(
return false;
for (std::vector<std::string>::const_iterator it = origins.begin();
- it != origins.end(); it++) {
+ it != origins.end();
+ it++) {
CachedOriginInfo* origin_info = GetCachedOriginInfo(*it);
if (!origin_info) {
// Restore 'origins_info' to its initial state.
@@ -372,7 +376,8 @@ bool DatabaseTracker::DeleteClosedDatabase(
std::vector<DatabaseDetails> details;
if (databases_table_->GetAllDatabaseDetailsForOriginIdentifier(
- origin_identifier, &details) && details.empty()) {
+ origin_identifier, &details) &&
+ details.empty()) {
// Try to delete the origin in case this was the last database.
DeleteOrigin(origin_identifier, false);
}
@@ -402,20 +407,17 @@ bool DatabaseTracker::DeleteOrigin(const std::string& origin_identifier,
// as we can't delete the origin directory on windows if it contains opened
// files.
base::FilePath new_origin_dir;
- base::CreateTemporaryDirInDir(db_dir_,
- kTemporaryDirectoryPrefix,
- &new_origin_dir);
+ base::CreateTemporaryDirInDir(
+ db_dir_, kTemporaryDirectoryPrefix, &new_origin_dir);
base::FileEnumerator databases(
- origin_dir,
- false,
- base::FileEnumerator::FILES);
+ origin_dir, false, base::FileEnumerator::FILES);
for (base::FilePath database = databases.Next(); !database.empty();
database = databases.Next()) {
base::FilePath new_file = new_origin_dir.Append(database.BaseName());
base::Move(database, new_file);
}
base::DeleteFile(origin_dir, true);
- base::DeleteFile(new_origin_dir, true); // might fail on windows.
+ base::DeleteFile(new_origin_dir, true); // might fail on windows.
databases_table_->DeleteOriginIdentifier(origin_identifier);
@@ -450,11 +452,10 @@ bool DatabaseTracker::LazyInit() {
// If there are left-over directories from failed deletion attempts, clean
// them up.
if (base::DirectoryExists(db_dir_)) {
- base::FileEnumerator directories(
- db_dir_,
- false,
- base::FileEnumerator::DIRECTORIES,
- kTemporaryDirectoryPattern);
+ base::FileEnumerator directories(db_dir_,
+ false,
+ base::FileEnumerator::DIRECTORIES,
+ kTemporaryDirectoryPattern);
for (base::FilePath directory = directories.Next(); !directory.empty();
directory = directories.Next()) {
base::DeleteFile(directory, true);
@@ -479,12 +480,11 @@ bool DatabaseTracker::LazyInit() {
databases_table_.reset(new DatabasesTable(db_.get()));
meta_table_.reset(new sql::MetaTable());
- is_initialized_ =
- base::CreateDirectory(db_dir_) &&
- (db_->is_open() ||
- (is_incognito_ ? db_->OpenInMemory() :
- db_->Open(kTrackerDatabaseFullPath))) &&
- UpgradeToCurrentVersion();
+ is_initialized_ = base::CreateDirectory(db_dir_) &&
+ (db_->is_open() ||
+ (is_incognito_ ? db_->OpenInMemory()
+ : db_->Open(kTrackerDatabaseFullPath))) &&
+ UpgradeToCurrentVersion();
if (!is_initialized_) {
databases_table_.reset(NULL);
meta_table_.reset(NULL);
@@ -534,7 +534,8 @@ void DatabaseTracker::ClearAllCachedOriginInfo() {
}
DatabaseTracker::CachedOriginInfo* DatabaseTracker::MaybeGetCachedOriginInfo(
- const std::string& origin_identifier, bool create_if_needed) {
+ const std::string& origin_identifier,
+ bool create_if_needed) {
if (!LazyInit())
return NULL;
@@ -552,10 +553,11 @@ DatabaseTracker::CachedOriginInfo* DatabaseTracker::MaybeGetCachedOriginInfo(
CachedOriginInfo& origin_info = origins_info_map_[origin_identifier];
origin_info.SetOriginIdentifier(origin_identifier);
for (std::vector<DatabaseDetails>::const_iterator it = details.begin();
- it != details.end(); it++) {
+ it != details.end();
+ it++) {
int64 db_file_size;
- if (database_connections_.IsDatabaseOpened(
- origin_identifier, it->database_name)) {
+ if (database_connections_.IsDatabaseOpened(origin_identifier,
+ it->database_name)) {
db_file_size = database_connections_.GetOpenDatabaseSize(
origin_identifier, it->database_name);
} else {
@@ -571,20 +573,20 @@ DatabaseTracker::CachedOriginInfo* DatabaseTracker::MaybeGetCachedOriginInfo(
int64 DatabaseTracker::GetDBFileSize(const std::string& origin_identifier,
const base::string16& database_name) {
- base::FilePath db_file_name = GetFullDBFilePath(origin_identifier,
- database_name);
+ base::FilePath db_file_name =
+ GetFullDBFilePath(origin_identifier, database_name);
int64 db_file_size = 0;
if (!base::GetFileSize(db_file_name, &db_file_size))
db_file_size = 0;
return db_file_size;
}
-int64 DatabaseTracker::SeedOpenDatabaseInfo(
- const std::string& origin_id, const base::string16& name,
- const base::string16& description) {
+int64 DatabaseTracker::SeedOpenDatabaseInfo(const std::string& origin_id,
+ const base::string16& name,
+ const base::string16& description) {
DCHECK(database_connections_.IsDatabaseOpened(origin_id, name));
int64 size = GetDBFileSize(origin_id, name);
- database_connections_.SetOpenDatabaseSize(origin_id, name, size);
+ database_connections_.SetOpenDatabaseSize(origin_id, name, size);
CachedOriginInfo* info = MaybeGetCachedOriginInfo(origin_id, false);
if (info) {
info->SetDatabaseSize(name, size);
@@ -594,7 +596,8 @@ int64 DatabaseTracker::SeedOpenDatabaseInfo(
}
int64 DatabaseTracker::UpdateOpenDatabaseInfoAndNotify(
- const std::string& origin_id, const base::string16& name,
+ const std::string& origin_id,
+ const base::string16& name,
const base::string16* opt_description) {
DCHECK(database_connections_.IsDatabaseOpened(origin_id, name));
int64 new_size = GetDBFileSize(origin_id, name);
@@ -612,8 +615,8 @@ int64 DatabaseTracker::UpdateOpenDatabaseInfoAndNotify(
webkit_database::GetOriginFromIdentifier(origin_id),
quota::kStorageTypeTemporary,
new_size - old_size);
- FOR_EACH_OBSERVER(Observer, observers_, OnDatabaseSizeChanged(
- origin_id, name, new_size));
+ FOR_EACH_OBSERVER(
+ Observer, observers_, OnDatabaseSizeChanged(origin_id, name, new_size));
}
return new_size;
}
@@ -621,11 +624,13 @@ int64 DatabaseTracker::UpdateOpenDatabaseInfoAndNotify(
void DatabaseTracker::ScheduleDatabaseForDeletion(
const std::string& origin_identifier,
const base::string16& database_name) {
- DCHECK(database_connections_.IsDatabaseOpened(origin_identifier,
- database_name));
+ DCHECK(
+ database_connections_.IsDatabaseOpened(origin_identifier, database_name));
dbs_to_be_deleted_[origin_identifier].insert(database_name);
- FOR_EACH_OBSERVER(Observer, observers_, OnDatabaseScheduledForDeletion(
- origin_identifier, database_name));
+ FOR_EACH_OBSERVER(
+ Observer,
+ observers_,
+ OnDatabaseScheduledForDeletion(origin_identifier, database_name));
}
void DatabaseTracker::ScheduleDatabasesForDeletion(
@@ -636,9 +641,11 @@ void DatabaseTracker::ScheduleDatabasesForDeletion(
if (!callback.is_null())
deletion_callbacks_.push_back(std::make_pair(callback, databases));
for (DatabaseSet::const_iterator ori = databases.begin();
- ori != databases.end(); ++ori) {
+ ori != databases.end();
+ ++ori) {
for (std::set<base::string16>::const_iterator db = ori->second.begin();
- db != ori->second.end(); ++db)
+ db != ori->second.end();
+ ++db)
ScheduleDatabaseForDeletion(ori->first, *db);
}
}
@@ -677,7 +684,8 @@ int DatabaseTracker::DeleteDataModifiedSince(
int rv = net::OK;
for (std::vector<std::string>::const_iterator ori =
origins_identifiers.begin();
- ori != origins_identifiers.end(); ++ori) {
+ ori != origins_identifiers.end();
+ ++ori) {
if (special_storage_policy_.get() &&
special_storage_policy_->IsStorageProtected(
webkit_database::GetOriginFromIdentifier(*ori))) {
@@ -685,11 +693,12 @@ int DatabaseTracker::DeleteDataModifiedSince(
}
std::vector<DatabaseDetails> details;
- if (!databases_table_->
- GetAllDatabaseDetailsForOriginIdentifier(*ori, &details))
+ if (!databases_table_->GetAllDatabaseDetailsForOriginIdentifier(*ori,
+ &details))
rv = net::ERR_FAILED;
for (std::vector<DatabaseDetails>::const_iterator db = details.begin();
- db != details.end(); ++db) {
+ db != details.end();
+ ++db) {
base::FilePath db_file = GetFullDBFilePath(*ori, db->database_name);
base::File::Info file_info;
base::GetFileInfo(db_file, &file_info);
@@ -715,18 +724,20 @@ int DatabaseTracker::DeleteDataModifiedSince(
}
int DatabaseTracker::DeleteDataForOrigin(
- const std::string& origin, const net::CompletionCallback& callback) {
+ const std::string& origin,
+ const net::CompletionCallback& callback) {
if (!LazyInit())
return net::ERR_FAILED;
DatabaseSet to_be_deleted;
std::vector<DatabaseDetails> details;
- if (!databases_table_->
- GetAllDatabaseDetailsForOriginIdentifier(origin, &details))
+ if (!databases_table_->GetAllDatabaseDetailsForOriginIdentifier(origin,
+ &details))
return net::ERR_FAILED;
for (std::vector<DatabaseDetails>::const_iterator db = details.begin();
- db != details.end(); ++db) {
+ db != details.end();
+ ++db) {
// Check if the database is opened by any renderer.
if (database_connections_.IsDatabaseOpened(origin, db->database_name))
to_be_deleted[origin].insert(db->database_name);
@@ -789,7 +800,8 @@ void DatabaseTracker::DeleteIncognitoDBDirectory() {
is_initialized_ = false;
for (FileHandlesMap::iterator it = incognito_file_handles_.begin();
- it != incognito_file_handles_.end(); it++) {
+ it != incognito_file_handles_.end();
+ it++) {
delete it->second;
}
@@ -814,9 +826,9 @@ void DatabaseTracker::ClearSessionOnlyOrigins() {
std::vector<std::string> origin_identifiers;
GetAllOriginIdentifiers(&origin_identifiers);
- for (std::vector<std::string>::iterator origin =
- origin_identifiers.begin();
- origin != origin_identifiers.end(); ++origin) {
+ for (std::vector<std::string>::iterator origin = origin_identifiers.begin();
+ origin != origin_identifiers.end();
+ ++origin) {
GURL origin_url = webkit_database::GetOriginFromIdentifier(*origin);
if (!special_storage_policy_->IsStorageSessionOnly(origin_url))
continue;
@@ -828,18 +840,17 @@ void DatabaseTracker::ClearSessionOnlyOrigins() {
origin_info.GetAllDatabaseNames(&databases);
for (std::vector<base::string16>::iterator database = databases.begin();
- database != databases.end(); ++database) {
- base::File file(GetFullDBFilePath(*origin, *database),
- base::File::FLAG_OPEN_ALWAYS |
- base::File::FLAG_SHARE_DELETE |
- base::File::FLAG_DELETE_ON_CLOSE |
- base::File::FLAG_READ);
+ database != databases.end();
+ ++database) {
+ base::File file(
+ GetFullDBFilePath(*origin, *database),
+ base::File::FLAG_OPEN_ALWAYS | base::File::FLAG_SHARE_DELETE |
+ base::File::FLAG_DELETE_ON_CLOSE | base::File::FLAG_READ);
}
DeleteOrigin(*origin, true);
}
}
-
void DatabaseTracker::Shutdown() {
DCHECK(db_tracker_thread_.get());
DCHECK(db_tracker_thread_->BelongsToCurrentThread());
« no previous file with comments | « storage/browser/database/database_tracker.h ('k') | storage/browser/database/database_util.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698