| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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/browser/renderer_host/database_message_filter.h" | 5 #include "content/browser/renderer_host/database_message_filter.h" |
| 6 | 6 |
| 7 #include <string> | 7 #include <string> |
| 8 | 8 |
| 9 #include "base/bind.h" | 9 #include "base/bind.h" |
| 10 #include "base/platform_file.h" | 10 #include "base/platform_file.h" |
| (...skipping 266 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 277 available = quota - usage; | 277 available = quota - usage; |
| 278 DatabaseHostMsg_GetSpaceAvailable::WriteReplyParams(reply_msg, available); | 278 DatabaseHostMsg_GetSpaceAvailable::WriteReplyParams(reply_msg, available); |
| 279 Send(reply_msg); | 279 Send(reply_msg); |
| 280 } | 280 } |
| 281 | 281 |
| 282 void DatabaseMessageFilter::OnDatabaseOpened(const string16& origin_identifier, | 282 void DatabaseMessageFilter::OnDatabaseOpened(const string16& origin_identifier, |
| 283 const string16& database_name, | 283 const string16& database_name, |
| 284 const string16& description, | 284 const string16& description, |
| 285 int64 estimated_size) { | 285 int64 estimated_size) { |
| 286 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::FILE)); | 286 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::FILE)); |
| 287 |
| 288 if (!DatabaseUtil::IsValidOriginIdentifier(origin_identifier)) { |
| 289 RecordAction(UserMetricsAction("BadMessageTerminate_DBMF")); |
| 290 BadMessageReceived(); |
| 291 return; |
| 292 } |
| 293 |
| 287 int64 database_size = 0; | 294 int64 database_size = 0; |
| 288 db_tracker_->DatabaseOpened(origin_identifier, database_name, description, | 295 db_tracker_->DatabaseOpened(origin_identifier, database_name, description, |
| 289 estimated_size, &database_size); | 296 estimated_size, &database_size); |
| 290 database_connections_.AddConnection(origin_identifier, database_name); | 297 database_connections_.AddConnection(origin_identifier, database_name); |
| 291 Send(new DatabaseMsg_UpdateSize(origin_identifier, database_name, | 298 Send(new DatabaseMsg_UpdateSize(origin_identifier, database_name, |
| 292 database_size)); | 299 database_size)); |
| 293 } | 300 } |
| 294 | 301 |
| 295 void DatabaseMessageFilter::OnDatabaseModified( | 302 void DatabaseMessageFilter::OnDatabaseModified( |
| 296 const string16& origin_identifier, | 303 const string16& origin_identifier, |
| (...skipping 21 matching lines...) Expand all Loading... |
| 318 | 325 |
| 319 database_connections_.RemoveConnection(origin_identifier, database_name); | 326 database_connections_.RemoveConnection(origin_identifier, database_name); |
| 320 db_tracker_->DatabaseClosed(origin_identifier, database_name); | 327 db_tracker_->DatabaseClosed(origin_identifier, database_name); |
| 321 } | 328 } |
| 322 | 329 |
| 323 void DatabaseMessageFilter::OnHandleSqliteError( | 330 void DatabaseMessageFilter::OnHandleSqliteError( |
| 324 const string16& origin_identifier, | 331 const string16& origin_identifier, |
| 325 const string16& database_name, | 332 const string16& database_name, |
| 326 int error) { | 333 int error) { |
| 327 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::FILE)); | 334 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::FILE)); |
| 335 if (!DatabaseUtil::IsValidOriginIdentifier(origin_identifier)) { |
| 336 RecordAction(UserMetricsAction("BadMessageTerminate_DBMF")); |
| 337 BadMessageReceived(); |
| 338 return; |
| 339 } |
| 340 |
| 328 db_tracker_->HandleSqliteError(origin_identifier, database_name, error); | 341 db_tracker_->HandleSqliteError(origin_identifier, database_name, error); |
| 329 } | 342 } |
| 330 | 343 |
| 331 void DatabaseMessageFilter::OnDatabaseSizeChanged( | 344 void DatabaseMessageFilter::OnDatabaseSizeChanged( |
| 332 const string16& origin_identifier, | 345 const string16& origin_identifier, |
| 333 const string16& database_name, | 346 const string16& database_name, |
| 334 int64 database_size) { | 347 int64 database_size) { |
| 335 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::FILE)); | 348 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::FILE)); |
| 336 if (database_connections_.IsOriginUsed(origin_identifier)) { | 349 if (database_connections_.IsOriginUsed(origin_identifier)) { |
| 337 Send(new DatabaseMsg_UpdateSize(origin_identifier, database_name, | 350 Send(new DatabaseMsg_UpdateSize(origin_identifier, database_name, |
| 338 database_size)); | 351 database_size)); |
| 339 } | 352 } |
| 340 } | 353 } |
| 341 | 354 |
| 342 void DatabaseMessageFilter::OnDatabaseScheduledForDeletion( | 355 void DatabaseMessageFilter::OnDatabaseScheduledForDeletion( |
| 343 const string16& origin_identifier, | 356 const string16& origin_identifier, |
| 344 const string16& database_name) { | 357 const string16& database_name) { |
| 345 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::FILE)); | 358 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::FILE)); |
| 346 Send(new DatabaseMsg_CloseImmediately(origin_identifier, database_name)); | 359 Send(new DatabaseMsg_CloseImmediately(origin_identifier, database_name)); |
| 347 } | 360 } |
| 348 | 361 |
| 349 } // namespace content | 362 } // namespace content |
| OLD | NEW |