Index: content/common_child/web_database_observer_impl.cc |
diff --git a/content/common_child/web_database_observer_impl.cc b/content/common_child/web_database_observer_impl.cc |
deleted file mode 100644 |
index fea57b4ae232364036907b827d92ccffe993d4dc..0000000000000000000000000000000000000000 |
--- a/content/common_child/web_database_observer_impl.cc |
+++ /dev/null |
@@ -1,169 +0,0 @@ |
-// Copyright (c) 2012 The Chromium Authors. All rights reserved. |
-// Use of this source code is governed by a BSD-style license that can be |
-// found in the LICENSE file. |
- |
-#include "content/common_child/web_database_observer_impl.h" |
- |
-#include "base/metrics/histogram.h" |
-#include "base/string16.h" |
-#include "content/common/database_messages.h" |
-#include "third_party/WebKit/public/platform/WebString.h" |
-#include "third_party/WebKit/Source/WebKit/chromium/public/WebDatabase.h" |
-#include "third_party/sqlite/sqlite3.h" |
- |
-using WebKit::WebDatabase; |
- |
-namespace content { |
-namespace { |
- |
-const int kResultHistogramSize = 50; |
-const int kCallsiteHistogramSize = 10; |
- |
-int DetermineHistogramResult(int websql_error, int sqlite_error) { |
- // If we have a sqlite error, log it after trimming the extended bits. |
- // There are 26 possible values, but we leave room for some new ones. |
- if (sqlite_error) |
- return std::min(sqlite_error & 0xff, 30); |
- |
- // Otherwise, websql_error may be an SQLExceptionCode, SQLErrorCode |
- // or a DOMExceptionCode, or -1 for success. |
- if (websql_error == -1) |
- return 0; // no error |
- |
- // SQLExceptionCode starts at 1000 |
- if (websql_error >= 1000) |
- websql_error -= 1000; |
- |
- return std::min(websql_error + 30, kResultHistogramSize - 1); |
-} |
- |
-#define HISTOGRAM_WEBSQL_RESULT(name, database, callsite, \ |
- websql_error, sqlite_error) \ |
- do { \ |
- DCHECK(callsite < kCallsiteHistogramSize); \ |
- int result = DetermineHistogramResult(websql_error, sqlite_error); \ |
- if (database.isSyncDatabase()) { \ |
- UMA_HISTOGRAM_ENUMERATION("websql.Sync." name, \ |
- result, kResultHistogramSize); \ |
- if (result) { \ |
- UMA_HISTOGRAM_ENUMERATION("websql.Sync." name ".ErrorSite", \ |
- callsite, kCallsiteHistogramSize); \ |
- } \ |
- } else { \ |
- UMA_HISTOGRAM_ENUMERATION("websql.Async." name, \ |
- result, kResultHistogramSize); \ |
- if (result) { \ |
- UMA_HISTOGRAM_ENUMERATION("websql.Async." name ".ErrorSite", \ |
- callsite, kCallsiteHistogramSize); \ |
- } \ |
- } \ |
- } while (0) |
- |
-} // namespace |
- |
-WebDatabaseObserverImpl::WebDatabaseObserverImpl( |
- IPC::SyncMessageFilter* sender) |
- : sender_(sender), |
- open_connections_(new webkit_database::DatabaseConnectionsWrapper) { |
- DCHECK(sender); |
-} |
- |
-WebDatabaseObserverImpl::~WebDatabaseObserverImpl() { |
-} |
- |
-void WebDatabaseObserverImpl::databaseOpened( |
- const WebDatabase& database) { |
- string16 origin_identifier = database.securityOrigin().databaseIdentifier(); |
- string16 database_name = database.name(); |
- open_connections_->AddOpenConnection(origin_identifier, database_name); |
- sender_->Send(new DatabaseHostMsg_Opened( |
- origin_identifier, database_name, |
- database.displayName(), database.estimatedSize())); |
-} |
- |
-void WebDatabaseObserverImpl::databaseModified( |
- const WebDatabase& database) { |
- sender_->Send(new DatabaseHostMsg_Modified( |
- database.securityOrigin().databaseIdentifier(), database.name())); |
-} |
- |
-void WebDatabaseObserverImpl::databaseClosed( |
- const WebDatabase& database) { |
- string16 origin_identifier = database.securityOrigin().databaseIdentifier(); |
- string16 database_name = database.name(); |
- sender_->Send(new DatabaseHostMsg_Closed( |
- origin_identifier, database_name)); |
- open_connections_->RemoveOpenConnection(origin_identifier, database_name); |
-} |
- |
-void WebDatabaseObserverImpl::reportOpenDatabaseResult( |
- const WebDatabase& database, int callsite, int websql_error, |
- int sqlite_error) { |
- HISTOGRAM_WEBSQL_RESULT("OpenResult", database, callsite, |
- websql_error, sqlite_error); |
- HandleSqliteError(database, sqlite_error); |
-} |
- |
-void WebDatabaseObserverImpl::reportChangeVersionResult( |
- const WebDatabase& database, int callsite, int websql_error, |
- int sqlite_error) { |
- HISTOGRAM_WEBSQL_RESULT("ChangeVersionResult", database, callsite, |
- websql_error, sqlite_error); |
- HandleSqliteError(database, sqlite_error); |
-} |
- |
-void WebDatabaseObserverImpl::reportStartTransactionResult( |
- const WebDatabase& database, int callsite, int websql_error, |
- int sqlite_error) { |
- HISTOGRAM_WEBSQL_RESULT("BeginResult", database, callsite, |
- websql_error, sqlite_error); |
- HandleSqliteError(database, sqlite_error); |
-} |
- |
-void WebDatabaseObserverImpl::reportCommitTransactionResult( |
- const WebDatabase& database, int callsite, int websql_error, |
- int sqlite_error) { |
- HISTOGRAM_WEBSQL_RESULT("CommitResult", database, callsite, |
- websql_error, sqlite_error); |
- HandleSqliteError(database, sqlite_error); |
-} |
- |
-void WebDatabaseObserverImpl::reportExecuteStatementResult( |
- const WebDatabase& database, int callsite, int websql_error, |
- int sqlite_error) { |
- HISTOGRAM_WEBSQL_RESULT("StatementResult", database, callsite, |
- websql_error, sqlite_error); |
- HandleSqliteError(database, sqlite_error); |
-} |
- |
-void WebDatabaseObserverImpl::reportVacuumDatabaseResult( |
- const WebDatabase& database, int sqlite_error) { |
- int result = DetermineHistogramResult(-1, sqlite_error); |
- if (database.isSyncDatabase()) { |
- UMA_HISTOGRAM_ENUMERATION("websql.Sync.VacuumResult", |
- result, kResultHistogramSize); |
- } else { |
- UMA_HISTOGRAM_ENUMERATION("websql.Async.VacuumResult", |
- result, kResultHistogramSize); |
- } |
- HandleSqliteError(database, sqlite_error); |
-} |
- |
-void WebDatabaseObserverImpl::WaitForAllDatabasesToClose() { |
- open_connections_->WaitForAllDatabasesToClose(); |
-} |
- |
-void WebDatabaseObserverImpl::HandleSqliteError( |
- const WebDatabase& database, int error) { |
- // We filter out errors which the backend doesn't act on to avoid |
- // a unnecessary ipc traffic, this method can get called at a fairly |
- // high frequency (per-sqlstatement). |
- if (error == SQLITE_CORRUPT || error == SQLITE_NOTADB) { |
- sender_->Send(new DatabaseHostMsg_HandleSqliteError( |
- database.securityOrigin().databaseIdentifier(), |
- database.name(), |
- error)); |
- } |
-} |
- |
-} // namespace content |