Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(173)

Side by Side Diff: chrome/browser/ui/webui/browsing_history_handler.cc

Issue 1838333004: Add a notice about other forms of browsing history to the History WebUI. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@desktop-ui-after-rebase
Patch Set: Moved build dependencies to OS!=iOS Created 4 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 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 "chrome/browser/ui/webui/browsing_history_handler.h" 5 #include "chrome/browser/ui/webui/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 19 matching lines...) Expand all
30 #include "chrome/browser/sync/profile_sync_service_factory.h" 30 #include "chrome/browser/sync/profile_sync_service_factory.h"
31 #include "chrome/browser/ui/browser_finder.h" 31 #include "chrome/browser/ui/browser_finder.h"
32 #include "chrome/browser/ui/chrome_pages.h" 32 #include "chrome/browser/ui/chrome_pages.h"
33 #include "chrome/browser/ui/webui/favicon_source.h" 33 #include "chrome/browser/ui/webui/favicon_source.h"
34 #include "chrome/browser/ui/webui/large_icon_source.h" 34 #include "chrome/browser/ui/webui/large_icon_source.h"
35 #include "chrome/common/features.h" 35 #include "chrome/common/features.h"
36 #include "chrome/common/pref_names.h" 36 #include "chrome/common/pref_names.h"
37 #include "components/bookmarks/browser/bookmark_model.h" 37 #include "components/bookmarks/browser/bookmark_model.h"
38 #include "components/bookmarks/browser/bookmark_utils.h" 38 #include "components/bookmarks/browser/bookmark_utils.h"
39 #include "components/browser_sync/browser/profile_sync_service.h" 39 #include "components/browser_sync/browser/profile_sync_service.h"
40 #include "components/browsing_data_ui/history_notice_utils.h"
40 #include "components/favicon/core/fallback_icon_service.h" 41 #include "components/favicon/core/fallback_icon_service.h"
41 #include "components/favicon/core/fallback_url_util.h" 42 #include "components/favicon/core/fallback_url_util.h"
42 #include "components/favicon/core/large_icon_service.h" 43 #include "components/favicon/core/large_icon_service.h"
43 #include "components/history/core/browser/history_service.h" 44 #include "components/history/core/browser/history_service.h"
44 #include "components/history/core/browser/history_types.h" 45 #include "components/history/core/browser/history_types.h"
45 #include "components/history/core/browser/web_history_service.h" 46 #include "components/history/core/browser/web_history_service.h"
46 #include "components/keyed_service/core/service_access_type.h" 47 #include "components/keyed_service/core/service_access_type.h"
47 #include "components/prefs/pref_service.h" 48 #include "components/prefs/pref_service.h"
48 #include "components/query_parser/snippet.h" 49 #include "components/query_parser/snippet.h"
49 #include "components/sync_driver/device_info.h" 50 #include "components/sync_driver/device_info.h"
(...skipping 253 matching lines...) Expand 10 before | Expand all | Expand 10 after
303 304
304 bool BrowsingHistoryHandler::HistoryEntry::SortByTimeDescending( 305 bool BrowsingHistoryHandler::HistoryEntry::SortByTimeDescending(
305 const BrowsingHistoryHandler::HistoryEntry& entry1, 306 const BrowsingHistoryHandler::HistoryEntry& entry1,
306 const BrowsingHistoryHandler::HistoryEntry& entry2) { 307 const BrowsingHistoryHandler::HistoryEntry& entry2) {
307 return entry1.time > entry2.time; 308 return entry1.time > entry2.time;
308 } 309 }
309 310
310 BrowsingHistoryHandler::BrowsingHistoryHandler() 311 BrowsingHistoryHandler::BrowsingHistoryHandler()
311 : has_pending_delete_request_(false), 312 : has_pending_delete_request_(false),
312 history_service_observer_(this), 313 history_service_observer_(this),
313 weak_factory_(this) { 314 weak_factory_(this) {
Dan Beam 2016/03/31 01:05:44 your newly added booleans should also be initializ
msramek 2016/03/31 19:20:02 Done. I originally had them here, and then remove
314 } 315 }
315 316
316 BrowsingHistoryHandler::~BrowsingHistoryHandler() { 317 BrowsingHistoryHandler::~BrowsingHistoryHandler() {
317 query_task_tracker_.TryCancelAll(); 318 query_task_tracker_.TryCancelAll();
318 web_history_request_.reset(); 319 web_history_request_.reset();
319 } 320 }
320 321
321 void BrowsingHistoryHandler::RegisterMessages() { 322 void BrowsingHistoryHandler::RegisterMessages() {
322 // Create our favicon data source. 323 // Create our favicon data source.
323 Profile* profile = Profile::FromWebUI(web_ui()); 324 Profile* profile = Profile::FromWebUI(web_ui());
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after
381 const base::string16& search_text, 382 const base::string16& search_text,
382 const history::QueryOptions& options) { 383 const history::QueryOptions& options) {
383 Profile* profile = Profile::FromWebUI(web_ui()); 384 Profile* profile = Profile::FromWebUI(web_ui());
384 385
385 // Anything in-flight is invalid. 386 // Anything in-flight is invalid.
386 query_task_tracker_.TryCancelAll(); 387 query_task_tracker_.TryCancelAll();
387 web_history_request_.reset(); 388 web_history_request_.reset();
388 389
389 query_results_.clear(); 390 query_results_.clear();
390 results_info_value_.Clear(); 391 results_info_value_.Clear();
392 has_synced_results_ = false;
393 has_other_forms_of_browsing_history_ = false;
391 394
392 history::HistoryService* hs = HistoryServiceFactory::GetForProfile( 395 history::HistoryService* hs = HistoryServiceFactory::GetForProfile(
393 profile, ServiceAccessType::EXPLICIT_ACCESS); 396 profile, ServiceAccessType::EXPLICIT_ACCESS);
394 hs->QueryHistory(search_text, 397 hs->QueryHistory(search_text,
395 options, 398 options,
396 base::Bind(&BrowsingHistoryHandler::QueryComplete, 399 base::Bind(&BrowsingHistoryHandler::QueryComplete,
397 base::Unretained(this), 400 base::Unretained(this),
398 search_text, 401 search_text,
399 options), 402 options),
400 &query_task_tracker_); 403 &query_task_tracker_);
(...skipping 10 matching lines...) Expand all
411 search_text, 414 search_text,
412 options, 415 options,
413 base::Bind(&BrowsingHistoryHandler::WebHistoryQueryComplete, 416 base::Bind(&BrowsingHistoryHandler::WebHistoryQueryComplete,
414 base::Unretained(this), 417 base::Unretained(this),
415 search_text, options, 418 search_text, options,
416 base::TimeTicks::Now())); 419 base::TimeTicks::Now()));
417 // Start a timer so we know when to give up. 420 // Start a timer so we know when to give up.
418 web_history_timer_.Start( 421 web_history_timer_.Start(
419 FROM_HERE, base::TimeDelta::FromSeconds(kWebHistoryTimeoutSeconds), 422 FROM_HERE, base::TimeDelta::FromSeconds(kWebHistoryTimeoutSeconds),
420 this, &BrowsingHistoryHandler::WebHistoryTimeout); 423 this, &BrowsingHistoryHandler::WebHistoryTimeout);
424
425 // Test the existence of other forms of browsing history.
426 browsing_data_ui::ShouldShowNoticeAboutOtherFormsOfBrowsingHistory(
427 ProfileSyncServiceFactory::GetInstance()->GetForProfile(profile),
428 web_history,
429 base::Bind(
430 &BrowsingHistoryHandler::OtherFormsOfBrowsingHistoryQueryComplete,
431 weak_factory_.GetWeakPtr()));
421 } 432 }
422 } 433 }
423 434
424 void BrowsingHistoryHandler::HandleQueryHistory(const base::ListValue* args) { 435 void BrowsingHistoryHandler::HandleQueryHistory(const base::ListValue* args) {
425 history::QueryOptions options; 436 history::QueryOptions options;
426 437
427 // Parse the arguments from JavaScript. There are five required arguments: 438 // Parse the arguments from JavaScript. There are five required arguments:
428 // - the text to search for (may be empty) 439 // - the text to search for (may be empty)
429 // - the offset from which the search should start (in multiples of week or 440 // - the offset from which the search should start (in multiples of week or
430 // month, set by the next argument). 441 // month, set by the next argument).
(...skipping 252 matching lines...) Expand 10 before | Expand all | Expand 10 after
683 base::ListValue results_value; 694 base::ListValue results_value;
684 for (std::vector<BrowsingHistoryHandler::HistoryEntry>::iterator it = 695 for (std::vector<BrowsingHistoryHandler::HistoryEntry>::iterator it =
685 query_results_.begin(); it != query_results_.end(); ++it) { 696 query_results_.begin(); it != query_results_.end(); ++it) {
686 scoped_ptr<base::Value> value( 697 scoped_ptr<base::Value> value(
687 it->ToValue(bookmark_model, supervised_user_service, sync_service)); 698 it->ToValue(bookmark_model, supervised_user_service, sync_service));
688 results_value.Append(value.release()); 699 results_value.Append(value.release());
689 } 700 }
690 701
691 web_ui()->CallJavascriptFunction( 702 web_ui()->CallJavascriptFunction(
692 "historyResult", results_info_value_, results_value); 703 "historyResult", results_info_value_, results_value);
704 web_ui()->CallJavascriptFunction(
705 "showNotification",
706 base::FundamentalValue(has_synced_results_),
707 base::FundamentalValue(has_other_forms_of_browsing_history_));
693 results_info_value_.Clear(); 708 results_info_value_.Clear();
694 query_results_.clear(); 709 query_results_.clear();
695 web_history_query_results_.clear(); 710 web_history_query_results_.clear();
696 } 711 }
697 712
698 void BrowsingHistoryHandler::QueryComplete( 713 void BrowsingHistoryHandler::QueryComplete(
699 const base::string16& search_text, 714 const base::string16& search_text,
700 const history::QueryOptions& options, 715 const history::QueryOptions& options,
701 history::QueryResults* results) { 716 history::QueryResults* results) {
702 DCHECK_EQ(0U, query_results_.size()); 717 DCHECK_EQ(0U, query_results_.size());
(...skipping 119 matching lines...) Expand 10 before | Expand all | Expand 10 after
822 title, 837 title,
823 time, 838 time,
824 client_id, 839 client_id,
825 !search_text.empty(), 840 !search_text.empty(),
826 base::string16(), 841 base::string16(),
827 /* blocked_visit */ false, 842 /* blocked_visit */ false,
828 accept_languages)); 843 accept_languages));
829 } 844 }
830 } 845 }
831 } 846 }
832 results_info_value_.SetBoolean("hasSyncedResults", results_value != NULL); 847 has_synced_results_ = (results_value != NULL);
Dan Beam 2016/03/31 01:05:44 nit: nullptr
Dan Beam 2016/03/31 01:05:44 nit: remove extra parens
msramek 2016/03/31 19:20:01 Done.
msramek 2016/03/31 19:20:02 Done.
848 results_info_value_.SetBoolean("hasSyncedResults", has_synced_results_);
833 if (!query_task_tracker_.HasTrackedTasks()) 849 if (!query_task_tracker_.HasTrackedTasks())
834 ReturnResultsToFrontEnd(); 850 ReturnResultsToFrontEnd();
835 } 851 }
836 852
853 void BrowsingHistoryHandler::OtherFormsOfBrowsingHistoryQueryComplete(
854 bool foundOtherFormsOfBrowsingHistory) {
855 has_other_forms_of_browsing_history_ = foundOtherFormsOfBrowsingHistory;
856 web_ui()->CallJavascriptFunction(
857 "showNotification",
858 base::FundamentalValue(has_synced_results_),
859 base::FundamentalValue(has_other_forms_of_browsing_history_));
860 }
861
837 void BrowsingHistoryHandler::RemoveComplete() { 862 void BrowsingHistoryHandler::RemoveComplete() {
838 urls_to_be_deleted_.clear(); 863 urls_to_be_deleted_.clear();
839 864
840 // Notify the page that the deletion request is complete, but only if a web 865 // Notify the page that the deletion request is complete, but only if a web
841 // history delete request is not still pending. 866 // history delete request is not still pending.
842 if (!has_pending_delete_request_) 867 if (!has_pending_delete_request_)
843 web_ui()->CallJavascriptFunction("deleteComplete"); 868 web_ui()->CallJavascriptFunction("deleteComplete");
844 } 869 }
845 870
846 void BrowsingHistoryHandler::RemoveWebHistoryComplete(bool success) { 871 void BrowsingHistoryHandler::RemoveWebHistoryComplete(bool success) {
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after
915 940
916 void BrowsingHistoryHandler::OnURLsDeleted( 941 void BrowsingHistoryHandler::OnURLsDeleted(
917 history::HistoryService* history_service, 942 history::HistoryService* history_service,
918 bool all_history, 943 bool all_history,
919 bool expired, 944 bool expired,
920 const history::URLRows& deleted_rows, 945 const history::URLRows& deleted_rows,
921 const std::set<GURL>& favicon_urls) { 946 const std::set<GURL>& favicon_urls) {
922 if (all_history || DeletionsDiffer(deleted_rows, urls_to_be_deleted_)) 947 if (all_history || DeletionsDiffer(deleted_rows, urls_to_be_deleted_))
923 web_ui()->CallJavascriptFunction("historyDeleted"); 948 web_ui()->CallJavascriptFunction("historyDeleted");
924 } 949 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698