Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 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 "components/offline_pages/background/request_queue_store_sql.h" | 5 #include "components/offline_pages/background/request_queue_store_sql.h" |
| 6 | 6 |
| 7 #include "base/bind.h" | 7 #include "base/bind.h" |
| 8 #include "base/files/file_path.h" | 8 #include "base/files/file_path.h" |
| 9 #include "base/files/file_util.h" | 9 #include "base/files/file_util.h" |
| 10 #include "base/location.h" | 10 #include "base/location.h" |
| (...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 54 if (!CreateRequestQueueTable(db)) | 54 if (!CreateRequestQueueTable(db)) |
| 55 return false; | 55 return false; |
| 56 | 56 |
| 57 // TODO(fgorski): Add indices here. | 57 // TODO(fgorski): Add indices here. |
| 58 return true; | 58 return true; |
| 59 } | 59 } |
| 60 | 60 |
| 61 // Create a save page request from a SQL result. Expects complete rows with | 61 // Create a save page request from a SQL result. Expects complete rows with |
| 62 // all columns present. Columns are in order they are defined in select query | 62 // all columns present. Columns are in order they are defined in select query |
| 63 // in |RequestQueueStore::RequestSync| method. | 63 // in |RequestQueueStore::RequestSync| method. |
| 64 SavePageRequest MakeSavePageRequest(const sql::Statement& statement) { | 64 std::unique_ptr<SavePageRequest> MakeSavePageRequest( |
| 65 const sql::Statement& statement) { | |
| 65 const int64_t id = statement.ColumnInt64(0); | 66 const int64_t id = statement.ColumnInt64(0); |
| 66 const base::Time creation_time = | 67 const base::Time creation_time = |
| 67 base::Time::FromInternalValue(statement.ColumnInt64(1)); | 68 base::Time::FromInternalValue(statement.ColumnInt64(1)); |
| 68 const base::Time activation_time = | 69 const base::Time activation_time = |
| 69 base::Time::FromInternalValue(statement.ColumnInt64(2)); | 70 base::Time::FromInternalValue(statement.ColumnInt64(2)); |
| 70 const base::Time last_attempt_time = | 71 const base::Time last_attempt_time = |
| 71 base::Time::FromInternalValue(statement.ColumnInt64(3)); | 72 base::Time::FromInternalValue(statement.ColumnInt64(3)); |
| 72 const int64_t started_attempt_count = statement.ColumnInt64(4); | 73 const int64_t started_attempt_count = statement.ColumnInt64(4); |
| 73 const int64_t completed_attempt_count = statement.ColumnInt64(5); | 74 const int64_t completed_attempt_count = statement.ColumnInt64(5); |
| 74 const SavePageRequest::RequestState state = | 75 const SavePageRequest::RequestState state = |
| 75 static_cast<SavePageRequest::RequestState>(statement.ColumnInt64(6)); | 76 static_cast<SavePageRequest::RequestState>(statement.ColumnInt64(6)); |
| 76 const GURL url(statement.ColumnString(7)); | 77 const GURL url(statement.ColumnString(7)); |
| 77 const ClientId client_id(statement.ColumnString(8), | 78 const ClientId client_id(statement.ColumnString(8), |
| 78 statement.ColumnString(9)); | 79 statement.ColumnString(9)); |
| 79 | 80 |
| 80 DVLOG(2) << "making save page request - id " << id << " url " << url | 81 DVLOG(2) << "making save page request - id " << id << " url " << url |
| 81 << " client_id " << client_id.name_space << "-" << client_id.id | 82 << " client_id " << client_id.name_space << "-" << client_id.id |
| 82 << " creation time " << creation_time << " user requested " | 83 << " creation time " << creation_time << " user requested " |
| 83 << kUserRequested; | 84 << kUserRequested; |
| 84 | 85 |
| 85 SavePageRequest request(id, url, client_id, creation_time, activation_time, | 86 std::unique_ptr<SavePageRequest> request(new SavePageRequest( |
| 86 kUserRequested); | 87 id, url, client_id, creation_time, activation_time, kUserRequested)); |
| 87 request.set_last_attempt_time(last_attempt_time); | 88 request->set_last_attempt_time(last_attempt_time); |
| 88 request.set_started_attempt_count(started_attempt_count); | 89 request->set_started_attempt_count(started_attempt_count); |
| 89 request.set_completed_attempt_count(completed_attempt_count); | 90 request->set_completed_attempt_count(completed_attempt_count); |
| 90 request.set_request_state(state); | 91 request->set_request_state(state); |
| 91 return request; | 92 return request; |
| 92 } | 93 } |
| 93 | 94 |
| 94 // Get a request for a specific id. | 95 // Get a request for a specific id. |
| 95 SavePageRequest GetOneRequest(sql::Connection* db, const int64_t request_id) { | 96 std::unique_ptr<SavePageRequest> GetOneRequest(sql::Connection* db, |
| 97 const int64_t request_id) { | |
| 96 const char kSql[] = | 98 const char kSql[] = |
| 97 "SELECT request_id, creation_time, activation_time," | 99 "SELECT request_id, creation_time, activation_time," |
| 98 " last_attempt_time, started_attempt_count, completed_attempt_count," | 100 " last_attempt_time, started_attempt_count, completed_attempt_count," |
| 99 " state, url, client_namespace, client_id" | 101 " state, url, client_namespace, client_id" |
| 100 " FROM " REQUEST_QUEUE_TABLE_NAME " WHERE request_id=?"; | 102 " FROM " REQUEST_QUEUE_TABLE_NAME " WHERE request_id=?"; |
| 101 | 103 |
| 102 sql::Statement statement(db->GetCachedStatement(SQL_FROM_HERE, kSql)); | 104 sql::Statement statement(db->GetCachedStatement(SQL_FROM_HERE, kSql)); |
| 103 statement.BindInt64(0, request_id); | 105 statement.BindInt64(0, request_id); |
| 104 | 106 |
| 105 statement.Run(); | 107 statement.Run(); |
| (...skipping 27 matching lines...) Expand all Loading... | |
| 133 const SavePageRequest::RequestState new_state) { | 135 const SavePageRequest::RequestState new_state) { |
| 134 const char kSql[] = "UPDATE " REQUEST_QUEUE_TABLE_NAME | 136 const char kSql[] = "UPDATE " REQUEST_QUEUE_TABLE_NAME |
| 135 " SET state=?" | 137 " SET state=?" |
| 136 " WHERE request_id=?"; | 138 " WHERE request_id=?"; |
| 137 sql::Statement statement(db->GetCachedStatement(SQL_FROM_HERE, kSql)); | 139 sql::Statement statement(db->GetCachedStatement(SQL_FROM_HERE, kSql)); |
| 138 statement.BindInt64(0, static_cast<int64_t>(new_state)); | 140 statement.BindInt64(0, static_cast<int64_t>(new_state)); |
| 139 statement.BindInt64(1, request_id); | 141 statement.BindInt64(1, request_id); |
| 140 return statement.Run(); | 142 return statement.Run(); |
| 141 } | 143 } |
| 142 | 144 |
| 143 bool DeleteRequestsByIds(sql::Connection* db, | 145 // Helper function to delete requests corresponding to passed in requestIds, |
| 144 const std::vector<int64_t>& request_ids, | 146 // and fill an outparam with the removed requests. |
| 145 RequestQueue::UpdateMultipleRequestResults& results, | 147 bool DeleteRequestsByIds( |
| 146 std::vector<SavePageRequest>& requests) { | 148 sql::Connection* db, |
| 149 const std::vector<int64_t>& request_ids, | |
| 150 RequestQueue::UpdateMultipleRequestResults& results, | |
| 151 std::vector<std::unique_ptr<SavePageRequest>>& requests) { | |
| 147 // If you create a transaction but don't Commit() it is automatically | 152 // If you create a transaction but don't Commit() it is automatically |
| 148 // rolled back by its destructor when it falls out of scope. | 153 // rolled back by its destructor when it falls out of scope. |
| 149 sql::Transaction transaction(db); | 154 sql::Transaction transaction(db); |
| 150 if (!transaction.Begin()) { | 155 if (!transaction.Begin()) { |
| 151 BuildFailedResultList(request_ids, results); | 156 BuildFailedResultList(request_ids, results); |
| 152 return false; | 157 return false; |
| 153 } | 158 } |
| 154 | 159 |
| 155 // Read the request before we delete it, and if the delete worked, put it on | 160 // Read the request before we delete it, and if the delete worked, put it on |
| 156 // the queue of requests that got deleted. | 161 // the queue of requests that got deleted. |
| 157 for (int64_t request_id : request_ids) { | 162 for (int64_t request_id : request_ids) { |
| 158 SavePageRequest request = GetOneRequest(db, request_id); | 163 std::unique_ptr<SavePageRequest> request = GetOneRequest(db, request_id); |
| 159 RequestQueue::UpdateRequestResult result = | 164 RequestQueue::UpdateRequestResult result = |
| 160 DeleteRequestById(db, request_id); | 165 DeleteRequestById(db, request_id); |
| 161 results.push_back(std::make_pair(request_id, result)); | 166 results.push_back(std::make_pair(request_id, result)); |
| 162 if (result == RequestQueue::UpdateRequestResult::SUCCESS) | 167 if (result == RequestQueue::UpdateRequestResult::SUCCESS) |
| 163 requests.push_back(request); | 168 requests.push_back(std::move(request)); |
| 164 } | 169 } |
| 165 | 170 |
| 166 if (!transaction.Commit()) { | 171 if (!transaction.Commit()) { |
| 167 requests.clear(); | 172 requests.clear(); |
| 168 BuildFailedResultList(request_ids, results); | 173 BuildFailedResultList(request_ids, results); |
| 169 return false; | 174 return false; |
| 170 } | 175 } |
| 171 | 176 |
| 172 return true; | 177 return true; |
| 173 } | 178 } |
| 174 | 179 |
| 175 bool ChangeRequestsState(sql::Connection* db, | 180 bool ChangeRequestsState( |
| 176 const std::vector<int64_t>& request_ids, | 181 sql::Connection* db, |
| 177 SavePageRequest::RequestState new_state, | 182 const std::vector<int64_t>& request_ids, |
| 178 RequestQueue::UpdateMultipleRequestResults& results, | 183 SavePageRequest::RequestState new_state, |
| 179 std::vector<SavePageRequest>& requests) { | 184 RequestQueue::UpdateMultipleRequestResults& results, |
| 185 std::vector<std::unique_ptr<SavePageRequest>>& requests) { | |
| 180 // If you create a transaction but don't Commit() it is automatically | 186 // If you create a transaction but don't Commit() it is automatically |
| 181 // rolled back by its destructor when it falls out of scope. | 187 // rolled back by its destructor when it falls out of scope. |
| 182 sql::Transaction transaction(db); | 188 sql::Transaction transaction(db); |
| 183 if (!transaction.Begin()) { | 189 if (!transaction.Begin()) { |
| 184 BuildFailedResultList(request_ids, results); | 190 BuildFailedResultList(request_ids, results); |
| 185 return false; | 191 return false; |
| 186 } | 192 } |
| 187 | 193 |
| 188 // Update a request, then get it, and put the item we got on the output list. | 194 // Update a request, then get it, and put the item we got on the output list. |
| 189 for (const auto& request_id : request_ids) { | 195 for (const auto& request_id : request_ids) { |
| (...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 287 scoped_refptr<base::SingleThreadTaskRunner> runner, | 293 scoped_refptr<base::SingleThreadTaskRunner> runner, |
| 288 const GetRequestsCallback& callback) { | 294 const GetRequestsCallback& callback) { |
| 289 const char kSql[] = | 295 const char kSql[] = |
| 290 "SELECT request_id, creation_time, activation_time," | 296 "SELECT request_id, creation_time, activation_time," |
| 291 " last_attempt_time, started_attempt_count, completed_attempt_count," | 297 " last_attempt_time, started_attempt_count, completed_attempt_count," |
| 292 " state, url, client_namespace, client_id" | 298 " state, url, client_namespace, client_id" |
| 293 " FROM " REQUEST_QUEUE_TABLE_NAME; | 299 " FROM " REQUEST_QUEUE_TABLE_NAME; |
| 294 | 300 |
| 295 sql::Statement statement(db->GetCachedStatement(SQL_FROM_HERE, kSql)); | 301 sql::Statement statement(db->GetCachedStatement(SQL_FROM_HERE, kSql)); |
| 296 | 302 |
| 297 std::vector<SavePageRequest> result; | 303 std::vector<std::unique_ptr<SavePageRequest>> requests; |
| 298 while (statement.Step()) | 304 while (statement.Step()) |
| 299 result.push_back(MakeSavePageRequest(statement)); | 305 requests.push_back(MakeSavePageRequest(statement)); |
| 300 | 306 |
| 301 runner->PostTask(FROM_HERE, | 307 runner->PostTask(FROM_HERE, base::Bind(callback, statement.Succeeded(), |
| 302 base::Bind(callback, statement.Succeeded(), result)); | 308 base::Passed(std::move(requests)))); |
| 303 } | 309 } |
| 304 | 310 |
| 305 // static | 311 // static |
| 306 void RequestQueueStoreSQL::AddOrUpdateRequestSync( | 312 void RequestQueueStoreSQL::AddOrUpdateRequestSync( |
| 307 sql::Connection* db, | 313 sql::Connection* db, |
| 308 scoped_refptr<base::SingleThreadTaskRunner> runner, | 314 scoped_refptr<base::SingleThreadTaskRunner> runner, |
| 309 const SavePageRequest& request, | 315 const SavePageRequest& request, |
| 310 const UpdateCallback& callback) { | 316 const UpdateCallback& callback) { |
| 311 // TODO(fgorski): add UMA metrics here. | 317 // TODO(fgorski): add UMA metrics here. |
| 312 RequestQueueStore::UpdateStatus status = InsertOrReplace(db, request); | 318 RequestQueueStore::UpdateStatus status = InsertOrReplace(db, request); |
| 313 runner->PostTask(FROM_HERE, base::Bind(callback, status)); | 319 runner->PostTask(FROM_HERE, base::Bind(callback, status)); |
| 314 } | 320 } |
| 315 | 321 |
| 316 // static | 322 // static |
| 317 void RequestQueueStoreSQL::RemoveRequestsSync( | 323 void RequestQueueStoreSQL::RemoveRequestsSync( |
| 318 sql::Connection* db, | 324 sql::Connection* db, |
| 319 scoped_refptr<base::SingleThreadTaskRunner> runner, | 325 scoped_refptr<base::SingleThreadTaskRunner> runner, |
| 320 const std::vector<int64_t>& request_ids, | 326 const std::vector<int64_t>& request_ids, |
| 321 const RemoveCallback& callback) { | 327 const RemoveCallback& callback) { |
| 322 RequestQueue::UpdateMultipleRequestResults results; | 328 RequestQueue::UpdateMultipleRequestResults results; |
| 323 std::vector<SavePageRequest> requests; | 329 std::vector<std::unique_ptr<SavePageRequest>> requests; |
| 324 // TODO(fgorski): add UMA metrics here. | 330 // TODO(fgorski): add UMA metrics here. |
| 325 DeleteRequestsByIds(db, request_ids, results, requests); | 331 DeleteRequestsByIds(db, request_ids, results, requests); |
| 326 runner->PostTask(FROM_HERE, base::Bind(callback, results, requests)); | 332 runner->PostTask(FROM_HERE, base::Bind(callback, results, |
| 333 base::Passed(std::move(requests)))); | |
| 327 } | 334 } |
| 328 | 335 |
| 329 // static | 336 // static |
| 330 void RequestQueueStoreSQL::ChangeRequestsStateSync( | 337 void RequestQueueStoreSQL::ChangeRequestsStateSync( |
| 331 sql::Connection* db, | 338 sql::Connection* db, |
| 332 scoped_refptr<base::SingleThreadTaskRunner> runner, | 339 scoped_refptr<base::SingleThreadTaskRunner> runner, |
| 333 const std::vector<int64_t>& request_ids, | 340 const std::vector<int64_t>& request_ids, |
| 334 const SavePageRequest::RequestState new_state, | 341 const SavePageRequest::RequestState new_state, |
| 335 const UpdateMultipleRequestsCallback& callback) { | 342 const UpdateMultipleRequestsCallback& callback) { |
| 336 RequestQueue::UpdateMultipleRequestResults results; | 343 RequestQueue::UpdateMultipleRequestResults results; |
| 337 std::vector<SavePageRequest> requests; | 344 std::vector<std::unique_ptr<SavePageRequest>> requests; |
| 338 // TODO(fgorski): add UMA metrics here. | 345 // TODO(fgorski): add UMA metrics here. |
| 339 offline_pages::ChangeRequestsState(db, request_ids, new_state, results, | 346 offline_pages::ChangeRequestsState(db, request_ids, new_state, results, |
| 340 requests); | 347 requests); |
| 341 runner->PostTask(FROM_HERE, base::Bind(callback, results, requests)); | 348 runner->PostTask(FROM_HERE, base::Bind(callback, results, |
| 349 base::Passed(std::move(requests)))); | |
| 342 } | 350 } |
| 343 | 351 |
| 344 // static | 352 // static |
| 345 void RequestQueueStoreSQL::ResetSync( | 353 void RequestQueueStoreSQL::ResetSync( |
| 346 sql::Connection* db, | 354 sql::Connection* db, |
| 347 const base::FilePath& db_file_path, | 355 const base::FilePath& db_file_path, |
| 348 scoped_refptr<base::SingleThreadTaskRunner> runner, | 356 scoped_refptr<base::SingleThreadTaskRunner> runner, |
| 349 const ResetCallback& callback) { | 357 const ResetCallback& callback) { |
| 350 // This method deletes the content of the whole store and reinitializes it. | 358 // This method deletes the content of the whole store and reinitializes it. |
| 351 bool success = db->Raze(); | 359 bool success = db->Raze(); |
| (...skipping 10 matching lines...) Expand all Loading... | |
| 362 // to preserve the async style behavior to prevent bugs. | 370 // to preserve the async style behavior to prevent bugs. |
| 363 base::ThreadTaskRunnerHandle::Get()->PostTask(FROM_HERE, | 371 base::ThreadTaskRunnerHandle::Get()->PostTask(FROM_HERE, |
| 364 base::Bind(callback)); | 372 base::Bind(callback)); |
| 365 return false; | 373 return false; |
| 366 } | 374 } |
| 367 return true; | 375 return true; |
| 368 } | 376 } |
| 369 | 377 |
| 370 void RequestQueueStoreSQL::GetRequests(const GetRequestsCallback& callback) { | 378 void RequestQueueStoreSQL::GetRequests(const GetRequestsCallback& callback) { |
| 371 DCHECK(db_.get()); | 379 DCHECK(db_.get()); |
| 372 if (!CheckDb(base::Bind(callback, false, std::vector<SavePageRequest>()))) | 380 std::vector<std::unique_ptr<SavePageRequest>> requests; |
| 381 if (!CheckDb(base::Bind(callback, false, base::Passed(std::move(requests))))) | |
| 373 return; | 382 return; |
| 374 | 383 |
| 375 background_task_runner_->PostTask( | 384 background_task_runner_->PostTask( |
| 376 FROM_HERE, base::Bind(&RequestQueueStoreSQL::GetRequestsSync, db_.get(), | 385 FROM_HERE, base::Bind(&RequestQueueStoreSQL::GetRequestsSync, db_.get(), |
| 377 base::ThreadTaskRunnerHandle::Get(), callback)); | 386 base::ThreadTaskRunnerHandle::Get(), callback)); |
| 378 } | 387 } |
| 379 | 388 |
| 380 void RequestQueueStoreSQL::AddOrUpdateRequest(const SavePageRequest& request, | 389 void RequestQueueStoreSQL::AddOrUpdateRequest(const SavePageRequest& request, |
| 381 const UpdateCallback& callback) { | 390 const UpdateCallback& callback) { |
| 382 DCHECK(db_.get()); | 391 DCHECK(db_.get()); |
| 383 if (!CheckDb(base::Bind(callback, UpdateStatus::FAILED))) | 392 if (!CheckDb(base::Bind(callback, UpdateStatus::FAILED))) |
| 384 return; | 393 return; |
| 385 | 394 |
| 386 background_task_runner_->PostTask( | 395 background_task_runner_->PostTask( |
| 387 FROM_HERE, | 396 FROM_HERE, |
| 388 base::Bind(&RequestQueueStoreSQL::AddOrUpdateRequestSync, db_.get(), | 397 base::Bind(&RequestQueueStoreSQL::AddOrUpdateRequestSync, db_.get(), |
| 389 base::ThreadTaskRunnerHandle::Get(), request, callback)); | 398 base::ThreadTaskRunnerHandle::Get(), request, callback)); |
| 390 } | 399 } |
| 391 | 400 |
| 392 // RemoveRequestsByRequestId to be more parallell with RemoveRequestsByClientId. | 401 // RemoveRequestsByRequestId to be more parallell with RemoveRequestsByClientId. |
| 393 void RequestQueueStoreSQL::RemoveRequests( | 402 void RequestQueueStoreSQL::RemoveRequests( |
| 394 const std::vector<int64_t>& request_ids, | 403 const std::vector<int64_t>& request_ids, |
| 395 const RemoveCallback& callback) { | 404 const RemoveCallback& callback) { |
| 396 // Set up a failed set of results in case we fail the DB check. | 405 // Set up a failed set of results in case we fail the DB check. |
| 397 RequestQueue::UpdateMultipleRequestResults results; | 406 RequestQueue::UpdateMultipleRequestResults results; |
| 398 std::vector<SavePageRequest> requests; | |
| 399 for (int64_t request_id : request_ids) | 407 for (int64_t request_id : request_ids) |
| 400 results.push_back(std::make_pair( | 408 results.push_back(std::make_pair( |
| 401 request_id, RequestQueue::UpdateRequestResult::STORE_FAILURE)); | 409 request_id, RequestQueue::UpdateRequestResult::STORE_FAILURE)); |
| 402 | 410 |
| 403 if (!CheckDb(base::Bind(callback, results, requests))) | 411 if (!CheckDb(base::Bind( |
| 412 callback, results, | |
| 413 base::Passed(std::vector<std::unique_ptr<SavePageRequest>>())))) | |
|
fgorski
2016/08/31 23:27:23
nit: because some of conditions are growing, you s
Pete Williamson
2016/09/06 22:01:55
Done.
| |
| 404 return; | 414 return; |
| 405 | 415 |
| 406 background_task_runner_->PostTask( | 416 background_task_runner_->PostTask( |
| 407 FROM_HERE, | 417 FROM_HERE, |
| 408 base::Bind(&RequestQueueStoreSQL::RemoveRequestsSync, db_.get(), | 418 base::Bind(&RequestQueueStoreSQL::RemoveRequestsSync, db_.get(), |
| 409 base::ThreadTaskRunnerHandle::Get(), request_ids, callback)); | 419 base::ThreadTaskRunnerHandle::Get(), request_ids, callback)); |
| 410 } | 420 } |
| 411 | 421 |
| 412 void RequestQueueStoreSQL::ChangeRequestsState( | 422 void RequestQueueStoreSQL::ChangeRequestsState( |
| 413 const std::vector<int64_t>& request_ids, | 423 const std::vector<int64_t>& request_ids, |
| 414 const SavePageRequest::RequestState new_state, | 424 const SavePageRequest::RequestState new_state, |
| 415 const UpdateMultipleRequestsCallback& callback) { | 425 const UpdateMultipleRequestsCallback& callback) { |
| 416 RequestQueue::UpdateMultipleRequestResults results; | 426 RequestQueue::UpdateMultipleRequestResults results; |
| 417 std::vector<SavePageRequest> requests; | 427 std::vector<std::unique_ptr<SavePageRequest>> requests; |
| 418 if (!CheckDb(base::Bind(callback, results, requests))) | 428 if (!CheckDb( |
| 429 base::Bind(callback, results, base::Passed(std::move(requests))))) | |
| 419 return; | 430 return; |
| 420 | 431 |
| 421 background_task_runner_->PostTask( | 432 background_task_runner_->PostTask( |
| 422 FROM_HERE, base::Bind(&RequestQueueStoreSQL::ChangeRequestsStateSync, | 433 FROM_HERE, base::Bind(&RequestQueueStoreSQL::ChangeRequestsStateSync, |
| 423 db_.get(), base::ThreadTaskRunnerHandle::Get(), | 434 db_.get(), base::ThreadTaskRunnerHandle::Get(), |
| 424 request_ids, new_state, callback)); | 435 request_ids, new_state, callback)); |
| 425 } | 436 } |
| 426 | 437 |
| 427 void RequestQueueStoreSQL::Reset(const ResetCallback& callback) { | 438 void RequestQueueStoreSQL::Reset(const ResetCallback& callback) { |
| 428 DCHECK(db_.get()); | 439 DCHECK(db_.get()); |
| (...skipping 28 matching lines...) Expand all Loading... | |
| 457 } | 468 } |
| 458 | 469 |
| 459 void RequestQueueStoreSQL::OnResetDone(const ResetCallback& callback, | 470 void RequestQueueStoreSQL::OnResetDone(const ResetCallback& callback, |
| 460 bool success) { | 471 bool success) { |
| 461 // Complete connection initialization post reset. | 472 // Complete connection initialization post reset. |
| 462 OnOpenConnectionDone(success); | 473 OnOpenConnectionDone(success); |
| 463 callback.Run(success); | 474 callback.Run(success); |
| 464 } | 475 } |
| 465 | 476 |
| 466 } // namespace offline_pages | 477 } // namespace offline_pages |
| OLD | NEW |