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

Side by Side Diff: chrome/browser/history/history.h

Issue 9316109: Move Ownership of IMUI to HistoryService. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Qualify globally scoped friend classes. Created 8 years, 10 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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 #ifndef CHROME_BROWSER_HISTORY_HISTORY_H_ 5 #ifndef CHROME_BROWSER_HISTORY_HISTORY_H_
6 #define CHROME_BROWSER_HISTORY_HISTORY_H_ 6 #define CHROME_BROWSER_HISTORY_HISTORY_H_
7 #pragma once 7 #pragma once
8 8
9 #include <set> 9 #include <set>
10 #include <vector> 10 #include <vector>
(...skipping 25 matching lines...) Expand all
36 class Profile; 36 class Profile;
37 37
38 namespace base { 38 namespace base {
39 class Thread; 39 class Thread;
40 class Time; 40 class Time;
41 } 41 }
42 42
43 namespace history { 43 namespace history {
44 class InMemoryHistoryBackend; 44 class InMemoryHistoryBackend;
45 class InMemoryURLIndex; 45 class InMemoryURLIndex;
46 class InMemoryURLIndexTest;
46 class HistoryAddPageArgs; 47 class HistoryAddPageArgs;
47 class HistoryBackend; 48 class HistoryBackend;
48 class HistoryDatabase; 49 class HistoryDatabase;
49 struct HistoryDetails; 50 struct HistoryDetails;
50 class HistoryQueryTest; 51 class HistoryQueryTest;
51 class URLDatabase; 52 class URLDatabase;
52 } // namespace history 53 } // namespace history
53 54
54 55
55 // HistoryDBTask can be used to process arbitrary work on the history backend 56 // HistoryDBTask can be used to process arbitrary work on the history backend
56 // thread. HistoryDBTask is scheduled using HistoryService::ScheduleDBTask. 57 // thread. HistoryDBTask is scheduled using HistoryService::ScheduleDBTask.
57 // When HistoryBackend processes the task it invokes RunOnDBThread. Once the 58 // When HistoryBackend processes the task it invokes RunOnDBThread. Once the
58 // task completes and has not been canceled, DoneRunOnMainThread is invoked back 59 // task completes and has not been canceled, DoneRunOnMainThread is invoked back
59 // on the main thread. 60 // on the main thread.
60 class HistoryDBTask : public base::RefCountedThreadSafe<HistoryDBTask> { 61 class HistoryDBTask : public base::RefCountedThreadSafe<HistoryDBTask> {
61 public: 62 public:
62 // Invoked on the database thread. The return value indicates whether the 63 // Invoked on the database thread. The return value indicates whether the
63 // task is done. A return value of true signals the task is done and 64 // task is done. A return value of true signals the task is done and
64 // RunOnDBThread should NOT be invoked again. A return value of false 65 // RunOnDBThread should NOT be invoked again. A return value of false
65 // indicates the task is not done, and should be run again after other 66 // indicates the task is not done, and should be run again after other
66 // tasks are given a chance to be processed. 67 // tasks are given a chance to be processed.
67 virtual bool RunOnDBThread(history::HistoryBackend* backend, 68 virtual bool RunOnDBThread(history::HistoryBackend* backend,
68 history::HistoryDatabase* db) = 0; 69 history::HistoryDatabase* db) = 0;
69 70
70 // Invoked on the main thread once RunOnDBThread has returned false. This is 71 // Invoked on the main thread once RunOnDBThread has returned true. This is
71 // only invoked if the request was not canceled and returned true from 72 // only invoked if the request was not canceled and returned true from
72 // RunOnDBThread. 73 // RunOnDBThread.
73 virtual void DoneRunOnMainThread() = 0; 74 virtual void DoneRunOnMainThread() = 0;
74 75
75 protected: 76 protected:
76 friend class base::RefCountedThreadSafe<HistoryDBTask>; 77 friend class base::RefCountedThreadSafe<HistoryDBTask>;
77 78
78 virtual ~HistoryDBTask() {} 79 virtual ~HistoryDBTask() {}
79 }; 80 };
80 81
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
136 137
137 // Triggers the backend to load if it hasn't already, and then returns the 138 // Triggers the backend to load if it hasn't already, and then returns the
138 // in-memory URL database. The returned pointer MAY BE NULL if the in-memory 139 // in-memory URL database. The returned pointer MAY BE NULL if the in-memory
139 // database has not been loaded yet. This pointer is owned by the history 140 // database has not been loaded yet. This pointer is owned by the history
140 // system. Callers should not store or cache this value. 141 // system. Callers should not store or cache this value.
141 // 142 //
142 // TODO(brettw) this should return the InMemoryHistoryBackend. 143 // TODO(brettw) this should return the InMemoryHistoryBackend.
143 history::URLDatabase* InMemoryDatabase(); 144 history::URLDatabase* InMemoryDatabase();
144 145
145 // Return the quick history index. 146 // Return the quick history index.
146 history::InMemoryURLIndex* InMemoryIndex(); 147 history::InMemoryURLIndex* InMemoryIndex() const {
148 return in_memory_url_index_.get();
149 }
147 150
148 // Navigation ---------------------------------------------------------------- 151 // Navigation ----------------------------------------------------------------
149 152
150 // Adds the given canonical URL to history with the current time as the visit 153 // Adds the given canonical URL to history with the current time as the visit
151 // time. Referrer may be the empty string. 154 // time. Referrer may be the empty string.
152 // 155 //
153 // The supplied render process host is used to scope the given page ID. Page 156 // The supplied render process host is used to scope the given page ID. Page
154 // IDs are only unique inside a given render process, so we need that to 157 // IDs are only unique inside a given render process, so we need that to
155 // differentiate them. This pointer should not be dereferenced by the history 158 // differentiate them. This pointer should not be dereferenced by the history
156 // system. Since render view host pointers may be reused (if one gets deleted 159 // system. Since render view host pointers may be reused (if one gets deleted
(...skipping 426 matching lines...) Expand 10 before | Expand all | Expand 10 after
583 private: 586 private:
584 class BackendDelegate; 587 class BackendDelegate;
585 friend class base::RefCountedThreadSafe<HistoryService>; 588 friend class base::RefCountedThreadSafe<HistoryService>;
586 friend class BackendDelegate; 589 friend class BackendDelegate;
587 friend class FaviconService; 590 friend class FaviconService;
588 friend class history::HistoryBackend; 591 friend class history::HistoryBackend;
589 friend class history::HistoryQueryTest; 592 friend class history::HistoryQueryTest;
590 friend class HistoryOperation; 593 friend class HistoryOperation;
591 friend class HistoryURLProvider; 594 friend class HistoryURLProvider;
592 friend class HistoryURLProviderTest; 595 friend class HistoryURLProviderTest;
596 friend class history::InMemoryURLIndexTest;
593 template<typename Info, typename Callback> friend class DownloadRequest; 597 template<typename Info, typename Callback> friend class DownloadRequest;
594 friend class PageUsageRequest; 598 friend class PageUsageRequest;
595 friend class RedirectRequest; 599 friend class RedirectRequest;
596 friend class TestingProfile; 600 friend class TestingProfile;
597 601
598 // Implementation of content::NotificationObserver. 602 // Implementation of content::NotificationObserver.
599 virtual void Observe(int type, 603 virtual void Observe(int type,
600 const content::NotificationSource& source, 604 const content::NotificationSource& source,
601 const content::NotificationDetails& details) OVERRIDE; 605 const content::NotificationDetails& details) OVERRIDE;
602 606
(...skipping 255 matching lines...) Expand 10 before | Expand all | Expand 10 after
858 int current_backend_id_; 862 int current_backend_id_;
859 863
860 // Cached values from Init(), used whenever we need to reload the backend. 864 // Cached values from Init(), used whenever we need to reload the backend.
861 FilePath history_dir_; 865 FilePath history_dir_;
862 BookmarkService* bookmark_service_; 866 BookmarkService* bookmark_service_;
863 bool no_db_; 867 bool no_db_;
864 868
865 // True if needs top site migration. 869 // True if needs top site migration.
866 bool needs_top_sites_migration_; 870 bool needs_top_sites_migration_;
867 871
872 // The index used for quick history lookups.
873 scoped_ptr<history::InMemoryURLIndex> in_memory_url_index_;
874
868 DISALLOW_COPY_AND_ASSIGN(HistoryService); 875 DISALLOW_COPY_AND_ASSIGN(HistoryService);
869 }; 876 };
870 877
871 #endif // CHROME_BROWSER_HISTORY_HISTORY_H_ 878 #endif // CHROME_BROWSER_HISTORY_HISTORY_H_
OLDNEW
« no previous file with comments | « chrome/browser/autocomplete/history_quick_provider_unittest.cc ('k') | chrome/browser/history/history.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698