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

Side by Side Diff: chrome/browser/google/google_url_tracker.h

Issue 293503003: Eliminate dependence of GoogleURLTracker et al. on InfoBarService (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Response to review Created 6 years, 6 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
« no previous file with comments | « no previous file | chrome/browser/google/google_url_tracker.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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_GOOGLE_GOOGLE_URL_TRACKER_H_ 5 #ifndef CHROME_BROWSER_GOOGLE_GOOGLE_URL_TRACKER_H_
6 #define CHROME_BROWSER_GOOGLE_GOOGLE_URL_TRACKER_H_ 6 #define CHROME_BROWSER_GOOGLE_GOOGLE_URL_TRACKER_H_
7 7
8 #include <map> 8 #include <map>
9 #include <string> 9 #include <string>
10 #include <utility> 10 #include <utility>
(...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after
97 // When |profile| is NULL or a testing profile, this function does nothing. 97 // When |profile| is NULL or a testing profile, this function does nothing.
98 static void GoogleURLSearchCommitted(Profile* profile); 98 static void GoogleURLSearchCommitted(Profile* profile);
99 99
100 // No one but GoogleURLTrackerInfoBarDelegate or test code should call these. 100 // No one but GoogleURLTrackerInfoBarDelegate or test code should call these.
101 void AcceptGoogleURL(bool redo_searches); 101 void AcceptGoogleURL(bool redo_searches);
102 void CancelGoogleURL(); 102 void CancelGoogleURL();
103 const GURL& google_url() const { return google_url_; } 103 const GURL& google_url() const { return google_url_; }
104 const GURL& fetched_google_url() const { return fetched_google_url_; } 104 const GURL& fetched_google_url() const { return fetched_google_url_; }
105 105
106 // No one but GoogleURLTrackerMapEntry should call this. 106 // No one but GoogleURLTrackerMapEntry should call this.
107 void DeleteMapEntryForService(const InfoBarService* infobar_service); 107 void DeleteMapEntryForManager(
108 const infobars::InfoBarManager* infobar_manager);
108 109
109 // Called by the client after SearchCommitted() registers listeners, to 110 // Called by the client after SearchCommitted() registers listeners, to
110 // indicate that we've received the "load now pending" notification. 111 // indicate that we've received the "load now pending" notification.
111 // |nav_helper| is the GoogleURLTrackerNavigationHelper associated with this 112 // |nav_helper| is the GoogleURLTrackerNavigationHelper associated with this
112 // navigation; |infobar_service| is the InfoBarService of the associated tab; 113 // navigation; |infobar_manager| is the InfoBarManager of the associated tab;
113 // and |pending_id| is the unique ID of the newly pending NavigationEntry. 114 // and |pending_id| is the unique ID of the newly pending NavigationEntry.
114 // If there is already a visible GoogleURLTracker infobar for this tab, this 115 // If there is already a visible GoogleURLTracker infobar for this tab, this
115 // function resets its associated pending entry ID to the new ID. Otherwise 116 // function resets its associated pending entry ID to the new ID. Otherwise
116 // this function creates a map entry for the associated tab. 117 // this function creates a map entry for the associated tab.
117 virtual void OnNavigationPending( 118 virtual void OnNavigationPending(
118 scoped_ptr<GoogleURLTrackerNavigationHelper> nav_helper, 119 scoped_ptr<GoogleURLTrackerNavigationHelper> nav_helper,
119 InfoBarService* infobar_service, 120 infobars::InfoBarManager* infobar_manager,
120 int pending_id); 121 int pending_id);
121 122
122 // Called by the navigation observer once a load we're watching commits. 123 // Called by the navigation observer once a load we're watching commits.
123 // |infobar_service| is the same as for OnNavigationPending(); 124 // |infobar_manager| is the same as for OnNavigationPending();
124 // |search_url| is guaranteed to be valid. 125 // |search_url| is guaranteed to be valid.
125 virtual void OnNavigationCommitted(InfoBarService* infobar_service, 126 virtual void OnNavigationCommitted(infobars::InfoBarManager* infobar_manager,
126 const GURL& search_url); 127 const GURL& search_url);
127 128
128 // Called by the navigation observer when a tab closes. 129 // Called by the navigation observer when a tab closes.
129 virtual void OnTabClosed(GoogleURLTrackerNavigationHelper* nav_helper); 130 virtual void OnTabClosed(GoogleURLTrackerNavigationHelper* nav_helper);
130 131
131 scoped_ptr<Subscription> RegisterCallback( 132 scoped_ptr<Subscription> RegisterCallback(
132 const OnGoogleURLUpdatedCallback& cb); 133 const OnGoogleURLUpdatedCallback& cb);
133 134
134 private: 135 private:
135 friend class GoogleURLTrackerTest; 136 friend class GoogleURLTrackerTest;
136 137
137 typedef std::map<const InfoBarService*, GoogleURLTrackerMapEntry*> EntryMap; 138 typedef std::map<const infobars::InfoBarManager*, GoogleURLTrackerMapEntry*>
139 EntryMap;
138 140
139 // net::URLFetcherDelegate: 141 // net::URLFetcherDelegate:
140 virtual void OnURLFetchComplete(const net::URLFetcher* source) OVERRIDE; 142 virtual void OnURLFetchComplete(const net::URLFetcher* source) OVERRIDE;
141 143
142 // NetworkChangeNotifier::IPAddressObserver: 144 // NetworkChangeNotifier::IPAddressObserver:
143 virtual void OnIPAddressChanged() OVERRIDE; 145 virtual void OnIPAddressChanged() OVERRIDE;
144 146
145 // KeyedService: 147 // KeyedService:
146 virtual void Shutdown() OVERRIDE; 148 virtual void Shutdown() OVERRIDE;
147 149
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
179 bool must_be_listening_for_commit); 181 bool must_be_listening_for_commit);
180 182
181 void NotifyGoogleURLUpdated(GURL old_url, GURL new_url); 183 void NotifyGoogleURLUpdated(GURL old_url, GURL new_url);
182 184
183 CallbackList callback_list_; 185 CallbackList callback_list_;
184 186
185 Profile* profile_; 187 Profile* profile_;
186 188
187 scoped_ptr<GoogleURLTrackerClient> client_; 189 scoped_ptr<GoogleURLTrackerClient> client_;
188 190
189 // Creates an infobar and adds it to the provided InfoBarService. Returns the 191 // Creates an infobar and adds it to the provided InfoBarManager. Returns
190 // infobar on success or NULL on failure. The caller does not own the 192 // the infobar on success or NULL on failure. The caller does not own the
191 // returned object, the InfoBarService does. 193 // returned object, the InfoBarManager does.
192 base::Callback< 194 base::Callback<infobars::InfoBar*(infobars::InfoBarManager*,
193 infobars::InfoBar*(InfoBarService*, GoogleURLTracker*, const GURL&)> 195 GoogleURLTracker*,
194 infobar_creator_; 196 const GURL&)> infobar_creator_;
195 197
196 GURL google_url_; 198 GURL google_url_;
197 GURL fetched_google_url_; 199 GURL fetched_google_url_;
198 scoped_ptr<net::URLFetcher> fetcher_; 200 scoped_ptr<net::URLFetcher> fetcher_;
199 int fetcher_id_; 201 int fetcher_id_;
200 bool in_startup_sleep_; // True if we're in the five-second "no fetching" 202 bool in_startup_sleep_; // True if we're in the five-second "no fetching"
201 // period that begins at browser start. 203 // period that begins at browser start.
202 bool already_fetched_; // True if we've already fetched a URL once this run; 204 bool already_fetched_; // True if we've already fetched a URL once this run;
203 // we won't fetch again until after a restart. 205 // we won't fetch again until after a restart.
204 bool need_to_fetch_; // True if a consumer actually wants us to fetch an 206 bool need_to_fetch_; // True if a consumer actually wants us to fetch an
205 // updated URL. If this is never set, we won't 207 // updated URL. If this is never set, we won't
206 // bother to fetch anything. 208 // bother to fetch anything.
207 // Consumers should register a callback via 209 // Consumers should register a callback via
208 // RegisterCallback(). 210 // RegisterCallback().
209 bool need_to_prompt_; // True if the last fetched Google URL is not 211 bool need_to_prompt_; // True if the last fetched Google URL is not
210 // matched with current user's default Google URL 212 // matched with current user's default Google URL
211 // nor the last prompted Google URL. 213 // nor the last prompted Google URL.
212 bool search_committed_; // True when we're expecting a notification of a new 214 bool search_committed_; // True when we're expecting a notification of a new
213 // pending search navigation. 215 // pending search navigation.
214 EntryMap entry_map_; 216 EntryMap entry_map_;
215 base::WeakPtrFactory<GoogleURLTracker> weak_ptr_factory_; 217 base::WeakPtrFactory<GoogleURLTracker> weak_ptr_factory_;
216 218
217 DISALLOW_COPY_AND_ASSIGN(GoogleURLTracker); 219 DISALLOW_COPY_AND_ASSIGN(GoogleURLTracker);
218 }; 220 };
219 221
220 #endif // CHROME_BROWSER_GOOGLE_GOOGLE_URL_TRACKER_H_ 222 #endif // CHROME_BROWSER_GOOGLE_GOOGLE_URL_TRACKER_H_
OLDNEW
« no previous file with comments | « no previous file | chrome/browser/google/google_url_tracker.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698