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

Unified Diff: chrome/browser/autocomplete/shortcuts_backend.h

Issue 200493006: Move the ShortcutsBackend from history to autocomplete so that it can fully (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 6 years, 9 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/autocomplete/shortcuts_backend.h
===================================================================
--- chrome/browser/autocomplete/shortcuts_backend.h (revision 257258)
+++ chrome/browser/autocomplete/shortcuts_backend.h (working copy)
@@ -2,8 +2,8 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-#ifndef CHROME_BROWSER_HISTORY_SHORTCUTS_BACKEND_H_
-#define CHROME_BROWSER_HISTORY_SHORTCUTS_BACKEND_H_
+#ifndef CHROME_BROWSER_AUTOCOMPLETE_SHORTCUTS_BACKEND_H_
+#define CHROME_BROWSER_AUTOCOMPLETE_SHORTCUTS_BACKEND_H_
#include <map>
#include <string>
@@ -18,6 +18,7 @@
#include "base/synchronization/lock.h"
#include "base/time/time.h"
#include "chrome/browser/autocomplete/autocomplete_match.h"
+#include "chrome/browser/history/shortcuts_database.h"
#include "components/keyed_service/content/refcounted_browser_context_keyed_service.h"
#include "content/public/browser/notification_observer.h"
#include "content/public/browser/notification_registrar.h"
@@ -26,8 +27,8 @@
class Profile;
namespace history {
-
class ShortcutsDatabase;
+}; // namespace history
// This class manages the shortcut provider backend - access to database on the
// db thread, etc.
@@ -34,56 +35,9 @@
class ShortcutsBackend : public RefcountedBrowserContextKeyedService,
public content::NotificationObserver {
public:
- // The following struct encapsulates one previously selected omnibox shortcut.
- struct Shortcut {
- // The pieces of an AutocompleteMatch that we preserve in a shortcut.
- struct MatchCore {
- explicit MatchCore(const AutocompleteMatch& match);
- MatchCore(const base::string16& fill_into_edit,
- const GURL& destination_url,
- const base::string16& contents,
- const ACMatchClassifications& contents_class,
- const base::string16& description,
- const ACMatchClassifications& description_class,
- content::PageTransition transition,
- AutocompleteMatch::Type type,
- const base::string16& keyword);
- ~MatchCore();
+ typedef std::multimap<base::string16,
+ const history::ShortcutsDatabase::Shortcut> ShortcutMap;
- AutocompleteMatch ToMatch() const;
-
- base::string16 fill_into_edit;
- GURL destination_url;
- base::string16 contents;
- // For both contents_class and description_class, we strip MATCH
- // classifications; the ShortcutsProvider will re-mark MATCH regions based
- // on the user's current typing.
- ACMatchClassifications contents_class;
- base::string16 description;
- ACMatchClassifications description_class;
- content::PageTransition transition;
- AutocompleteMatch::Type type;
- base::string16 keyword;
- };
-
- Shortcut(const std::string& id,
- const base::string16& text,
- const MatchCore& match_core,
- const base::Time& last_access_time,
- int number_of_hits);
- // Required for STL, we don't use this directly.
- Shortcut();
- ~Shortcut();
-
- std::string id; // Unique guid for the shortcut.
- base::string16 text; // The user's original input string.
- MatchCore match_core;
- base::Time last_access_time; // Last time shortcut was selected.
- int number_of_hits; // How many times shortcut was selected.
- };
-
- typedef std::multimap<base::string16, const Shortcut> ShortcutMap;
-
// |profile| is necessary for profile notifications only and can be NULL in
// unit-tests. For unit testing, set |suppress_db| to true to prevent creation
// of the database, in which case all operations are performed in memory only.
@@ -112,7 +66,7 @@
const ShortcutMap& shortcuts_map() const { return shortcuts_map_; }
// Deletes the Shortcuts with the url.
- bool DeleteShortcutsWithUrl(const GURL& shortcut_url);
+ bool DeleteShortcutsWithURL(const GURL& shortcut_url);
void AddObserver(ShortcutsBackendObserver* obs);
void RemoveObserver(ShortcutsBackendObserver* obs);
@@ -125,8 +79,7 @@
private:
friend class base::RefCountedThreadSafe<ShortcutsBackend>;
friend class ShortcutsProviderTest;
- FRIEND_TEST_ALL_PREFIXES(ShortcutsBackendTest, AddAndUpdateShortcut);
- FRIEND_TEST_ALL_PREFIXES(ShortcutsBackendTest, DeleteShortcuts);
+ friend class ShortcutsBackendTest;
enum CurrentState {
NOT_INITIALIZED, // Backend created but not initialized.
@@ -139,6 +92,9 @@
virtual ~ShortcutsBackend();
+ static history::ShortcutsDatabase::Shortcut::MatchCore MatchToMatchCore(
+ const AutocompleteMatch& match);
+
// RefcountedBrowserContextKeyedService:
virtual void ShutdownOnUIThread() OVERRIDE;
@@ -155,17 +111,18 @@
void InitCompleted();
// Adds the Shortcut to the database.
- bool AddShortcut(const Shortcut& shortcut);
+ bool AddShortcut(const history::ShortcutsDatabase::Shortcut& shortcut);
// Updates timing and selection count for the Shortcut.
- bool UpdateShortcut(const Shortcut& shortcut);
+ bool UpdateShortcut(const history::ShortcutsDatabase::Shortcut& shortcut);
- // Deletes the Shortcuts with the id.
- bool DeleteShortcutsWithIds(const std::vector<std::string>& shortcut_ids);
+ // Deletes the Shortcuts with these IDs.
+ bool DeleteShortcutsWithIDs(
+ const history::ShortcutsDatabase::ShortcutIDs& shortcut_ids);
// Deletes all shortcuts whose URLs begin with |url|. If |exact_match| is
// true, only shortcuts from exactly |url| are deleted.
- bool DeleteShortcutsWithUrl(const GURL& url, bool exact_match);
+ bool DeleteShortcutsWithURL(const GURL& url, bool exact_match);
// Deletes all of the shortcuts.
bool DeleteAllShortcuts();
@@ -172,7 +129,7 @@
CurrentState current_state_;
ObserverList<ShortcutsBackendObserver> observer_list_;
- scoped_refptr<ShortcutsDatabase> db_;
+ scoped_refptr<history::ShortcutsDatabase> db_;
// The |temp_shortcuts_map_| and |temp_guid_map_| used for temporary storage
// between InitInternal() and InitComplete() to avoid doing a potentially huge
@@ -192,6 +149,4 @@
DISALLOW_COPY_AND_ASSIGN(ShortcutsBackend);
};
-} // namespace history
-
-#endif // CHROME_BROWSER_HISTORY_SHORTCUTS_BACKEND_H_
+#endif // CHROME_BROWSER_AUTOCOMPLETE_SHORTCUTS_BACKEND_H_
« no previous file with comments | « chrome/browser/autocomplete/autocomplete_classifier_factory.cc ('k') | chrome/browser/autocomplete/shortcuts_backend.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698