OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "content/child/web_database_observer_impl.h" | 5 #include "content/child/web_database_observer_impl.h" |
6 | 6 |
7 #include "base/metrics/histogram.h" | 7 #include "base/metrics/histogram.h" |
8 #include "base/strings/string16.h" | 8 #include "base/strings/string16.h" |
9 #include "content/common/database_messages.h" | 9 #include "content/common/database_messages.h" |
10 #include "third_party/WebKit/public/platform/WebCString.h" | 10 #include "third_party/WebKit/public/platform/WebCString.h" |
(...skipping 20 matching lines...) Expand all Loading... |
31 if (websql_error == -1) | 31 if (websql_error == -1) |
32 return 0; // no error | 32 return 0; // no error |
33 | 33 |
34 // SQLExceptionCode starts at 1000 | 34 // SQLExceptionCode starts at 1000 |
35 if (websql_error >= 1000) | 35 if (websql_error >= 1000) |
36 websql_error -= 1000; | 36 websql_error -= 1000; |
37 | 37 |
38 return std::min(websql_error + 30, kResultHistogramSize - 1); | 38 return std::min(websql_error + 30, kResultHistogramSize - 1); |
39 } | 39 } |
40 | 40 |
41 #define HISTOGRAM_WEBSQL_RESULT(name, is_sync_database, \ | 41 #define UMA_HISTOGRAM_WEBSQL_RESULT(name, is_sync_database, \ |
42 callsite, websql_error, sqlite_error) \ | 42 callsite, websql_error, sqlite_error) \ |
43 do { \ | 43 do { \ |
44 DCHECK(callsite < kCallsiteHistogramSize); \ | 44 DCHECK(callsite < kCallsiteHistogramSize); \ |
45 int result = DetermineHistogramResult(websql_error, sqlite_error); \ | 45 int result = DetermineHistogramResult(websql_error, sqlite_error); \ |
46 if (is_sync_database) { \ | 46 if (is_sync_database) { \ |
47 UMA_HISTOGRAM_ENUMERATION("websql.Sync." name, \ | 47 UMA_HISTOGRAM_ENUMERATION("websql.Sync." name, \ |
48 result, kResultHistogramSize); \ | 48 result, kResultHistogramSize); \ |
49 if (result) { \ | 49 if (result) { \ |
50 UMA_HISTOGRAM_ENUMERATION("websql.Sync." name ".ErrorSite", \ | 50 UMA_HISTOGRAM_ENUMERATION("websql.Sync." name ".ErrorSite", \ |
51 callsite, kCallsiteHistogramSize); \ | 51 callsite, kCallsiteHistogramSize); \ |
52 } \ | 52 } \ |
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
97 origin_identifier.utf8(), database_name)); | 97 origin_identifier.utf8(), database_name)); |
98 open_connections_->RemoveOpenConnection(origin_identifier.utf8(), | 98 open_connections_->RemoveOpenConnection(origin_identifier.utf8(), |
99 database_name); | 99 database_name); |
100 } | 100 } |
101 | 101 |
102 void WebDatabaseObserverImpl::reportOpenDatabaseResult( | 102 void WebDatabaseObserverImpl::reportOpenDatabaseResult( |
103 const WebString& origin_identifier, | 103 const WebString& origin_identifier, |
104 const WebString& database_name, | 104 const WebString& database_name, |
105 bool is_sync_database, | 105 bool is_sync_database, |
106 int callsite, int websql_error, int sqlite_error) { | 106 int callsite, int websql_error, int sqlite_error) { |
107 HISTOGRAM_WEBSQL_RESULT("OpenResult", is_sync_database, | 107 UMA_HISTOGRAM_WEBSQL_RESULT("OpenResult", is_sync_database, callsite, |
108 callsite, websql_error, sqlite_error); | 108 websql_error, sqlite_error); |
109 HandleSqliteError(origin_identifier, database_name, sqlite_error); | 109 HandleSqliteError(origin_identifier, database_name, sqlite_error); |
110 } | 110 } |
111 | 111 |
112 void WebDatabaseObserverImpl::reportChangeVersionResult( | 112 void WebDatabaseObserverImpl::reportChangeVersionResult( |
113 const WebString& origin_identifier, | 113 const WebString& origin_identifier, |
114 const WebString& database_name, | 114 const WebString& database_name, |
115 bool is_sync_database, | 115 bool is_sync_database, |
116 int callsite, int websql_error, int sqlite_error) { | 116 int callsite, int websql_error, int sqlite_error) { |
117 HISTOGRAM_WEBSQL_RESULT("ChangeVersionResult", is_sync_database, | 117 UMA_HISTOGRAM_WEBSQL_RESULT("ChangeVersionResult", is_sync_database, callsite, |
118 callsite, websql_error, sqlite_error); | 118 websql_error, sqlite_error); |
119 HandleSqliteError(origin_identifier, database_name, sqlite_error); | 119 HandleSqliteError(origin_identifier, database_name, sqlite_error); |
120 } | 120 } |
121 | 121 |
122 void WebDatabaseObserverImpl::reportStartTransactionResult( | 122 void WebDatabaseObserverImpl::reportStartTransactionResult( |
123 const WebString& origin_identifier, | 123 const WebString& origin_identifier, |
124 const WebString& database_name, | 124 const WebString& database_name, |
125 bool is_sync_database, | 125 bool is_sync_database, |
126 int callsite, int websql_error, int sqlite_error) { | 126 int callsite, int websql_error, int sqlite_error) { |
127 HISTOGRAM_WEBSQL_RESULT("BeginResult", is_sync_database, | 127 UMA_HISTOGRAM_WEBSQL_RESULT("BeginResult", is_sync_database, callsite, |
128 callsite, websql_error, sqlite_error); | 128 websql_error, sqlite_error); |
129 HandleSqliteError(origin_identifier, database_name, sqlite_error); | 129 HandleSqliteError(origin_identifier, database_name, sqlite_error); |
130 } | 130 } |
131 | 131 |
132 void WebDatabaseObserverImpl::reportCommitTransactionResult( | 132 void WebDatabaseObserverImpl::reportCommitTransactionResult( |
133 const WebString& origin_identifier, | 133 const WebString& origin_identifier, |
134 const WebString& database_name, | 134 const WebString& database_name, |
135 bool is_sync_database, | 135 bool is_sync_database, |
136 int callsite, int websql_error, int sqlite_error) { | 136 int callsite, int websql_error, int sqlite_error) { |
137 HISTOGRAM_WEBSQL_RESULT("CommitResult", is_sync_database, | 137 UMA_HISTOGRAM_WEBSQL_RESULT("CommitResult", is_sync_database, callsite, |
138 callsite, websql_error, sqlite_error); | 138 websql_error, sqlite_error); |
139 HandleSqliteError(origin_identifier, database_name, sqlite_error); | 139 HandleSqliteError(origin_identifier, database_name, sqlite_error); |
140 } | 140 } |
141 | 141 |
142 void WebDatabaseObserverImpl::reportExecuteStatementResult( | 142 void WebDatabaseObserverImpl::reportExecuteStatementResult( |
143 const WebString& origin_identifier, | 143 const WebString& origin_identifier, |
144 const WebString& database_name, | 144 const WebString& database_name, |
145 bool is_sync_database, | 145 bool is_sync_database, |
146 int callsite, int websql_error, int sqlite_error) { | 146 int callsite, int websql_error, int sqlite_error) { |
147 HISTOGRAM_WEBSQL_RESULT("StatementResult", is_sync_database, | 147 UMA_HISTOGRAM_WEBSQL_RESULT("StatementResult", is_sync_database, callsite, |
148 callsite, websql_error, sqlite_error); | 148 websql_error, sqlite_error); |
149 HandleSqliteError(origin_identifier, database_name, sqlite_error); | 149 HandleSqliteError(origin_identifier, database_name, sqlite_error); |
150 } | 150 } |
151 | 151 |
152 void WebDatabaseObserverImpl::reportVacuumDatabaseResult( | 152 void WebDatabaseObserverImpl::reportVacuumDatabaseResult( |
153 const WebString& origin_identifier, | 153 const WebString& origin_identifier, |
154 const WebString& database_name, | 154 const WebString& database_name, |
155 bool is_sync_database, | 155 bool is_sync_database, |
156 int sqlite_error) { | 156 int sqlite_error) { |
157 int result = DetermineHistogramResult(-1, sqlite_error); | 157 int result = DetermineHistogramResult(-1, sqlite_error); |
158 if (is_sync_database) { | 158 if (is_sync_database) { |
(...skipping 19 matching lines...) Expand all Loading... |
178 // high frequency (per-sqlstatement). | 178 // high frequency (per-sqlstatement). |
179 if (error == SQLITE_CORRUPT || error == SQLITE_NOTADB) { | 179 if (error == SQLITE_CORRUPT || error == SQLITE_NOTADB) { |
180 sender_->Send(new DatabaseHostMsg_HandleSqliteError( | 180 sender_->Send(new DatabaseHostMsg_HandleSqliteError( |
181 origin_identifier.utf8(), | 181 origin_identifier.utf8(), |
182 database_name, | 182 database_name, |
183 error)); | 183 error)); |
184 } | 184 } |
185 } | 185 } |
186 | 186 |
187 } // namespace content | 187 } // namespace content |
OLD | NEW |