| 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 "ios/chrome/browser/ui/webui/history/browsing_history_handler.h" | 5 #include "ios/chrome/browser/ui/webui/history/browsing_history_handler.h" |
| 6 | 6 |
| 7 #include <stddef.h> | 7 #include <stddef.h> |
| 8 | 8 |
| 9 #include <set> | 9 #include <set> |
| 10 | 10 |
| (...skipping 438 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 449 ios::HistoryServiceFactory::GetForBrowserState( | 449 ios::HistoryServiceFactory::GetForBrowserState( |
| 450 browser_state, ServiceAccessType::EXPLICIT_ACCESS); | 450 browser_state, ServiceAccessType::EXPLICIT_ACCESS); |
| 451 history::WebHistoryService* web_history = | 451 history::WebHistoryService* web_history = |
| 452 ios::WebHistoryServiceFactory::GetForBrowserState(browser_state); | 452 ios::WebHistoryServiceFactory::GetForBrowserState(browser_state); |
| 453 | 453 |
| 454 base::Time now = base::Time::Now(); | 454 base::Time now = base::Time::Now(); |
| 455 std::vector<history::ExpireHistoryArgs> expire_list; | 455 std::vector<history::ExpireHistoryArgs> expire_list; |
| 456 expire_list.reserve(args->GetSize()); | 456 expire_list.reserve(args->GetSize()); |
| 457 | 457 |
| 458 DCHECK(urls_to_be_deleted_.empty()); | 458 DCHECK(urls_to_be_deleted_.empty()); |
| 459 for (base::Value* arg : *args) { | 459 for (const auto& arg : *args) { |
| 460 base::DictionaryValue* deletion = NULL; | 460 base::DictionaryValue* deletion = NULL; |
| 461 base::string16 url; | 461 base::string16 url; |
| 462 base::ListValue* timestamps = NULL; | 462 base::ListValue* timestamps = NULL; |
| 463 | 463 |
| 464 // Each argument is a dictionary with properties "url" and "timestamps". | 464 // Each argument is a dictionary with properties "url" and "timestamps". |
| 465 if (!(arg->GetAsDictionary(&deletion) && deletion->GetString("url", &url) && | 465 if (!(arg->GetAsDictionary(&deletion) && deletion->GetString("url", &url) && |
| 466 deletion->GetList("timestamps", ×tamps))) { | 466 deletion->GetList("timestamps", ×tamps))) { |
| 467 NOTREACHED() << "Unable to extract arguments"; | 467 NOTREACHED() << "Unable to extract arguments"; |
| 468 return; | 468 return; |
| 469 } | 469 } |
| 470 DCHECK(timestamps->GetSize() > 0); | 470 DCHECK(timestamps->GetSize() > 0); |
| 471 | 471 |
| 472 // In order to ensure that visits will be deleted from the server and other | 472 // In order to ensure that visits will be deleted from the server and other |
| 473 // clients (even if they are offline), create a sync delete directive for | 473 // clients (even if they are offline), create a sync delete directive for |
| 474 // each visit to be deleted. | 474 // each visit to be deleted. |
| 475 sync_pb::HistoryDeleteDirectiveSpecifics delete_directive; | 475 sync_pb::HistoryDeleteDirectiveSpecifics delete_directive; |
| 476 sync_pb::GlobalIdDirective* global_id_directive = | 476 sync_pb::GlobalIdDirective* global_id_directive = |
| 477 delete_directive.mutable_global_id_directive(); | 477 delete_directive.mutable_global_id_directive(); |
| 478 | 478 |
| 479 double timestamp; | 479 double timestamp; |
| 480 history::ExpireHistoryArgs* expire_args = NULL; | 480 history::ExpireHistoryArgs* expire_args = NULL; |
| 481 for (base::Value* timestamp_value : *timestamps) { | 481 for (const auto& timestamp_value : *timestamps) { |
| 482 if (!timestamp_value->GetAsDouble(×tamp)) { | 482 if (!timestamp_value->GetAsDouble(×tamp)) { |
| 483 NOTREACHED() << "Unable to extract visit timestamp."; | 483 NOTREACHED() << "Unable to extract visit timestamp."; |
| 484 continue; | 484 continue; |
| 485 } | 485 } |
| 486 base::Time visit_time = base::Time::FromJsTime(timestamp); | 486 base::Time visit_time = base::Time::FromJsTime(timestamp); |
| 487 if (!expire_args) { | 487 if (!expire_args) { |
| 488 GURL gurl(url); | 488 GURL gurl(url); |
| 489 expire_list.resize(expire_list.size() + 1); | 489 expire_list.resize(expire_list.size() + 1); |
| 490 expire_args = &expire_list.back(); | 490 expire_args = &expire_list.back(); |
| 491 expire_args->SetTimeRangeForOneDay(visit_time); | 491 expire_args->SetTimeRangeForOneDay(visit_time); |
| (...skipping 347 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 839 | 839 |
| 840 void BrowsingHistoryHandler::OnURLsDeleted( | 840 void BrowsingHistoryHandler::OnURLsDeleted( |
| 841 history::HistoryService* history_service, | 841 history::HistoryService* history_service, |
| 842 bool all_history, | 842 bool all_history, |
| 843 bool expired, | 843 bool expired, |
| 844 const history::URLRows& deleted_rows, | 844 const history::URLRows& deleted_rows, |
| 845 const std::set<GURL>& favicon_urls) { | 845 const std::set<GURL>& favicon_urls) { |
| 846 if (all_history || DeletionsDiffer(deleted_rows, urls_to_be_deleted_)) | 846 if (all_history || DeletionsDiffer(deleted_rows, urls_to_be_deleted_)) |
| 847 web_ui()->CallJavascriptFunction("historyDeleted"); | 847 web_ui()->CallJavascriptFunction("historyDeleted"); |
| 848 } | 848 } |
| OLD | NEW |