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

Unified Diff: chrome/browser/ui/webui/history_ui.h

Issue 1462813003: Split BrowsingHistoryHandler out of history_ui.cc (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Review comments Created 5 years, 1 month 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/browser/ui/webui/browsing_history_handler_unittest.cc ('k') | chrome/browser/ui/webui/history_ui.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/ui/webui/history_ui.h
diff --git a/chrome/browser/ui/webui/history_ui.h b/chrome/browser/ui/webui/history_ui.h
index 3d5dcb226401458f2e132e2605360962c5c6c3c7..10f25546ae3549661243d208cda9dd586131cd13 100644
--- a/chrome/browser/ui/webui/history_ui.h
+++ b/chrome/browser/ui/webui/history_ui.h
@@ -5,218 +5,13 @@
#ifndef CHROME_BROWSER_UI_WEBUI_HISTORY_UI_H_
#define CHROME_BROWSER_UI_WEBUI_HISTORY_UI_H_
-#include <string>
-
-#include "base/memory/scoped_ptr.h"
-#include "base/memory/weak_ptr.h"
-#include "base/scoped_observer.h"
-#include "base/strings/string16.h"
-#include "base/task/cancelable_task_tracker.h"
-#include "base/timer/timer.h"
-#include "base/values.h"
-#include "components/history/core/browser/history_service_observer.h"
-#include "components/history/core/browser/web_history_service.h"
#include "content/public/browser/web_ui_controller.h"
-#include "content/public/browser/web_ui_message_handler.h"
#include "ui/base/layout.h"
-class ProfileSyncService;
-class SupervisedUserService;
-
-namespace bookmarks {
-class BookmarkModel;
-}
-
-namespace history {
-class HistoryService;
+namespace base {
+class RefCountedMemory;
}
-// The handler for Javascript messages related to the "history" view.
-class BrowsingHistoryHandler : public content::WebUIMessageHandler,
- public history::HistoryServiceObserver {
- public:
- // Represents a history entry to be shown to the user, representing either
- // a local or remote visit. A single entry can represent multiple visits,
- // since only the most recent visit on a particular day is shown.
- struct HistoryEntry {
- // Values indicating whether an entry represents only local visits, only
- // remote visits, or a mixture of both.
- enum EntryType {
- EMPTY_ENTRY = 0,
- LOCAL_ENTRY,
- REMOTE_ENTRY,
- COMBINED_ENTRY
- };
-
- HistoryEntry(EntryType type, const GURL& url, const base::string16& title,
- base::Time time, const std::string& client_id,
- bool is_search_result, const base::string16& snippet,
- bool blocked_visit, const std::string& accept_languages);
- HistoryEntry();
- virtual ~HistoryEntry();
-
- // Formats this entry's URL and title and adds them to |result|.
- void SetUrlAndTitle(base::DictionaryValue* result) const;
-
- // Converts the entry to a DictionaryValue to be owned by the caller.
- scoped_ptr<base::DictionaryValue> ToValue(
- bookmarks::BookmarkModel* bookmark_model,
- SupervisedUserService* supervised_user_service,
- const ProfileSyncService* sync_service) const;
-
- // Comparison function for sorting HistoryEntries from newest to oldest.
- static bool SortByTimeDescending(
- const HistoryEntry& entry1, const HistoryEntry& entry2);
-
- // The type of visits this entry represents: local, remote, or both.
- EntryType entry_type;
-
- GURL url;
- base::string16 title; // Title of the entry. May be empty.
-
- // The time of the entry. Usually this will be the time of the most recent
- // visit to |url| on a particular day as defined in the local timezone.
- base::Time time;
-
- // The sync ID of the client on which the most recent visit occurred.
- std::string client_id;
-
- // Timestamps of all local or remote visits the same URL on the same day.
- std::set<int64> all_timestamps;
-
- // If true, this entry is a search result.
- bool is_search_result;
-
- // The entry's search snippet, if this entry is a search result.
- base::string16 snippet;
-
- // Whether this entry was blocked when it was attempted.
- bool blocked_visit;
-
- // kAcceptLanguages pref value.
- std::string accept_languages;
- };
-
- BrowsingHistoryHandler();
- ~BrowsingHistoryHandler() override;
-
- // WebUIMessageHandler implementation.
- void RegisterMessages() override;
-
- // Handler for the "queryHistory" message.
- void HandleQueryHistory(const base::ListValue* args);
-
- // Handler for the "removeVisits" message.
- void HandleRemoveVisits(const base::ListValue* args);
-
- // Handler for "clearBrowsingData" message.
- void HandleClearBrowsingData(const base::ListValue* args);
-
- // Handler for "removeBookmark" message.
- void HandleRemoveBookmark(const base::ListValue* args);
-
- // Merges duplicate entries from the query results, only retaining the most
- // recent visit to a URL on a particular day. That visit contains the
- // timestamps of the other visits.
- static void MergeDuplicateResults(
- std::vector<BrowsingHistoryHandler::HistoryEntry>* results);
-
- private:
- // The range for which to return results:
- // - ALLTIME: allows access to all the results in a paginated way.
- // - WEEK: the last 7 days.
- // - MONTH: the last calendar month.
- enum Range {
- ALL_TIME = 0,
- WEEK = 1,
- MONTH = 2
- };
-
- // Core implementation of history querying.
- void QueryHistory(const base::string16& search_text,
- const history::QueryOptions& options);
-
- // Combines the query results from the local history database and the history
- // server, and sends the combined results to the front end.
- void ReturnResultsToFrontEnd();
-
- // Callback from |web_history_timer_| when a response from web history has
- // not been received in time.
- void WebHistoryTimeout();
-
- // Callback from the history system when a history query has completed.
- void QueryComplete(const base::string16& search_text,
- const history::QueryOptions& options,
- history::QueryResults* results);
-
- // Callback from the WebHistoryService when a query has completed.
- void WebHistoryQueryComplete(const base::string16& search_text,
- const history::QueryOptions& options,
- base::TimeTicks start_time,
- history::WebHistoryService::Request* request,
- const base::DictionaryValue* results_value);
-
- // Callback from the history system when visits were deleted.
- void RemoveComplete();
-
- // Callback from history server when visits were deleted.
- void RemoveWebHistoryComplete(bool success);
-
- bool ExtractIntegerValueAtIndex(
- const base::ListValue* value, int index, int* out_int);
-
- // Sets the query options for a week-wide query, |offset| weeks ago.
- void SetQueryTimeInWeeks(int offset, history::QueryOptions* options);
-
- // Sets the query options for a monthly query, |offset| months ago.
- void SetQueryTimeInMonths(int offset, history::QueryOptions* options);
-
- // kAcceptLanguages pref value.
- std::string GetAcceptLanguages() const;
-
- // history::HistoryServiceObserver:
- void OnURLsDeleted(history::HistoryService* history_service,
- bool all_history,
- bool expired,
- const history::URLRows& deleted_rows,
- const std::set<GURL>& favicon_urls) override;
-
- // Tracker for search requests to the history service.
- base::CancelableTaskTracker query_task_tracker_;
-
- // The currently-executing request for synced history results.
- // Deleting the request will cancel it.
- scoped_ptr<history::WebHistoryService::Request> web_history_request_;
-
- // True if there is a pending delete requests to the history service.
- bool has_pending_delete_request_;
-
- // Tracker for delete requests to the history service.
- base::CancelableTaskTracker delete_task_tracker_;
-
- // The list of URLs that are in the process of being deleted.
- std::set<GURL> urls_to_be_deleted_;
-
- // The info value that is returned to the front end with the query results.
- base::DictionaryValue results_info_value_;
-
- // The list of query results received from the history service.
- std::vector<HistoryEntry> query_results_;
-
- // The list of query results received from the history server.
- std::vector<HistoryEntry> web_history_query_results_;
-
- // Timer used to implement a timeout on a Web History response.
- base::OneShotTimer web_history_timer_;
-
- ScopedObserver<history::HistoryService, history::HistoryServiceObserver>
- history_service_observer_;
-
- base::WeakPtrFactory<BrowsingHistoryHandler> weak_factory_;
-
- DISALLOW_COPY_AND_ASSIGN(BrowsingHistoryHandler);
-};
-
class HistoryUI : public content::WebUIController {
public:
explicit HistoryUI(content::WebUI* web_ui);
« no previous file with comments | « chrome/browser/ui/webui/browsing_history_handler_unittest.cc ('k') | chrome/browser/ui/webui/history_ui.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698