Chromium Code Reviews| Index: content/common/web_database_observer_impl.cc |
| =================================================================== |
| --- content/common/web_database_observer_impl.cc (revision 121034) |
| +++ content/common/web_database_observer_impl.cc (working copy) |
| @@ -7,6 +7,7 @@ |
| #include "base/metrics/histogram.h" |
| #include "base/string16.h" |
| #include "content/common/database_messages.h" |
| +#include "third_party/sqlite/sqlite3.h" |
| #include "third_party/WebKit/Source/WebKit/chromium/public/WebDatabase.h" |
| #include "third_party/WebKit/Source/WebKit/chromium/public/platform/WebString.h" |
| @@ -98,6 +99,7 @@ |
| int sqlite_error) { |
| HISTOGRAM_WEBSQL_RESULT("OpenResult", database, callsite, |
| websql_error, sqlite_error); |
| + HandleSqliteError(database, sqlite_error); |
| } |
| void WebDatabaseObserverImpl::reportChangeVersionResult( |
| @@ -105,6 +107,7 @@ |
| int sqlite_error) { |
| HISTOGRAM_WEBSQL_RESULT("ChangeVersionResult", database, callsite, |
| websql_error, sqlite_error); |
| + HandleSqliteError(database, sqlite_error); |
| } |
| void WebDatabaseObserverImpl::reportStartTransactionResult( |
| @@ -112,6 +115,7 @@ |
| int sqlite_error) { |
| HISTOGRAM_WEBSQL_RESULT("BeginResult", database, callsite, |
| websql_error, sqlite_error); |
| + HandleSqliteError(database, sqlite_error); |
| } |
| void WebDatabaseObserverImpl::reportCommitTransactionResult( |
| @@ -119,6 +123,7 @@ |
| int sqlite_error) { |
| HISTOGRAM_WEBSQL_RESULT("CommitResult", database, callsite, |
| websql_error, sqlite_error); |
| + HandleSqliteError(database, sqlite_error); |
| } |
| void WebDatabaseObserverImpl::reportExecuteStatementResult( |
| @@ -126,6 +131,7 @@ |
| int sqlite_error) { |
| HISTOGRAM_WEBSQL_RESULT("StatementResult", database, callsite, |
| websql_error, sqlite_error); |
| + HandleSqliteError(database, sqlite_error); |
| } |
| void WebDatabaseObserverImpl::reportVacuumDatabaseResult( |
| @@ -138,8 +144,19 @@ |
| 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) { |
|
Scott Hess - ex-Googler
2012/02/10 23:34:07
Do you have a histogram out there to tell the rela
michaeln
2012/02/11 00:34:20
Yes, see histograms scattered in this file.
Scott Hess - ex-Googler
2012/02/11 19:48:24
<decoding> surprisingly few SQLITE_CORRUPT cases!
|
| + if (error == SQLITE_CORRUPT || error == SQLITE_NOTADB) { |
| + sender_->Send(new DatabaseHostMsg_HandleSqliteError( |
| + database.securityOrigin().databaseIdentifier(), |
| + database.name(), |
| + error)); |
| + } |
| +} |