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

Side by Side Diff: components/ntp_tiles/most_visited_sites.h

Issue 2572533002: Add ChromeMostVisitedSitesFactory (Closed)
Patch Set: Use factory for webui Created 4 years 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 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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 COMPONENTS_NTP_TILES_MOST_VISITED_SITES_H_ 5 #ifndef COMPONENTS_NTP_TILES_MOST_VISITED_SITES_H_
6 #define COMPONENTS_NTP_TILES_MOST_VISITED_SITES_H_ 6 #define COMPONENTS_NTP_TILES_MOST_VISITED_SITES_H_
7 7
8 #include <stddef.h> 8 #include <stddef.h>
9 9
10 #include <memory> 10 #include <memory>
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
46 }; 46 };
47 47
48 class Observer { 48 class Observer {
49 public: 49 public:
50 virtual void OnBlockedSitesChanged() = 0; 50 virtual void OnBlockedSitesChanged() = 0;
51 51
52 protected: 52 protected:
53 ~Observer() {} 53 ~Observer() {}
54 }; 54 };
55 55
56 virtual ~MostVisitedSitesSupervisor() {}
57
56 // Pass non-null to set observer, or null to remove observer. 58 // Pass non-null to set observer, or null to remove observer.
57 // If setting observer, there must not yet be an observer set. 59 // If setting observer, there must not yet be an observer set.
58 // If removing observer, there must already be one to remove. 60 // If removing observer, there must already be one to remove.
59 // Does not take ownership. Observer must outlive this object. 61 // Does not take ownership. Observer must outlive this object.
60 virtual void SetObserver(Observer* new_observer) = 0; 62 virtual void SetObserver(Observer* new_observer) = 0;
61 63
62 // If true, |url| should not be shown on the NTP. 64 // If true, |url| should not be shown on the NTP.
63 virtual bool IsBlocked(const GURL& url) = 0; 65 virtual bool IsBlocked(const GURL& url) = 0;
64 66
65 // Explicitly-specified sites to show on NTP. 67 // Explicitly-specified sites to show on NTP.
66 virtual std::vector<Whitelist> whitelists() = 0; 68 virtual std::vector<Whitelist> whitelists() = 0;
67 69
68 // If true, be conservative about suggesting sites from outside sources. 70 // If true, be conservative about suggesting sites from outside sources.
69 virtual bool IsChildProfile() = 0; 71 virtual bool IsChildProfile() = 0;
70
71 protected:
72 virtual ~MostVisitedSitesSupervisor() {}
73 }; 72 };
74 73
75 // Tracks the list of most visited sites and their thumbnails. 74 // Tracks the list of most visited sites and their thumbnails.
76 class MostVisitedSites : public history::TopSitesObserver, 75 class MostVisitedSites : public history::TopSitesObserver,
77 public MostVisitedSitesSupervisor::Observer { 76 public MostVisitedSitesSupervisor::Observer {
78 public: 77 public:
79 using PopularSitesVector = std::vector<PopularSites::Site>; 78 using PopularSitesVector = std::vector<PopularSites::Site>;
80 79
81 // The observer to be notified when the list of most visited sites changes. 80 // The observer to be notified when the list of most visited sites changes.
82 class Observer { 81 class Observer {
83 public: 82 public:
84 virtual void OnMostVisitedURLsAvailable(const NTPTilesVector& tiles) = 0; 83 virtual void OnMostVisitedURLsAvailable(const NTPTilesVector& tiles) = 0;
85 virtual void OnIconMadeAvailable(const GURL& site_url) = 0; 84 virtual void OnIconMadeAvailable(const GURL& site_url) = 0;
86 85
87 protected: 86 protected:
88 virtual ~Observer() {} 87 virtual ~Observer() {}
89 }; 88 };
90 89
91 // Construct a MostVisitedSites instance. 90 // Construct a MostVisitedSites instance.
92 // 91 //
93 // |prefs| and |suggestions| are required and may not be null. |top_sites|, 92 // |prefs| and |suggestions| are required and may not be null. |top_sites|,
94 // |popular_sites|, and |supervisor| are optional and if null the associated 93 // |popular_sites|, and |supervisor| are optional and if null the associated
95 // features will be disabled. 94 // features will be disabled.
96 MostVisitedSites(PrefService* prefs, 95 MostVisitedSites(PrefService* prefs,
97 scoped_refptr<history::TopSites> top_sites, 96 scoped_refptr<history::TopSites> top_sites,
98 suggestions::SuggestionsService* suggestions, 97 suggestions::SuggestionsService* suggestions,
99 std::unique_ptr<PopularSites> popular_sites, 98 std::unique_ptr<PopularSites> popular_sites,
100 std::unique_ptr<IconCacher> icon_cacher, 99 std::unique_ptr<IconCacher> icon_cacher,
101 MostVisitedSitesSupervisor* supervisor); 100 std::unique_ptr<MostVisitedSitesSupervisor> supervisor);
102 101
103 ~MostVisitedSites() override; 102 ~MostVisitedSites() override;
104 103
105 // Sets the observer, and immediately fetches the current suggestions. 104 // Sets the observer, and immediately fetches the current suggestions.
106 // Does not take ownership of |observer|, which must outlive this object and 105 // Does not take ownership of |observer|, which must outlive this object and
107 // must not be null. 106 // must not be null.
108 void SetMostVisitedURLsObserver(Observer* observer, int num_sites); 107 void SetMostVisitedURLsObserver(Observer* observer, int num_sites);
109 108
110 // Requests an asynchronous refresh of the suggestions. Notifies the observer 109 // Requests an asynchronous refresh of the suggestions. Notifies the observer
111 // once the request completes. 110 // once the request completes.
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after
170 // history::TopSitesObserver implementation. 169 // history::TopSitesObserver implementation.
171 void TopSitesLoaded(history::TopSites* top_sites) override; 170 void TopSitesLoaded(history::TopSites* top_sites) override;
172 void TopSitesChanged(history::TopSites* top_sites, 171 void TopSitesChanged(history::TopSites* top_sites,
173 ChangeReason change_reason) override; 172 ChangeReason change_reason) override;
174 173
175 PrefService* prefs_; 174 PrefService* prefs_;
176 scoped_refptr<history::TopSites> top_sites_; 175 scoped_refptr<history::TopSites> top_sites_;
177 suggestions::SuggestionsService* suggestions_service_; 176 suggestions::SuggestionsService* suggestions_service_;
178 std::unique_ptr<PopularSites> const popular_sites_; 177 std::unique_ptr<PopularSites> const popular_sites_;
179 std::unique_ptr<IconCacher> const icon_cacher_; 178 std::unique_ptr<IconCacher> const icon_cacher_;
180 MostVisitedSitesSupervisor* supervisor_; 179 std::unique_ptr<MostVisitedSitesSupervisor> supervisor_;
181 180
182 Observer* observer_; 181 Observer* observer_;
183 182
184 // The maximum number of most visited sites to return. 183 // The maximum number of most visited sites to return.
185 int num_sites_; 184 int num_sites_;
186 185
187 std::unique_ptr< 186 std::unique_ptr<
188 suggestions::SuggestionsService::ResponseCallbackList::Subscription> 187 suggestions::SuggestionsService::ResponseCallbackList::Subscription>
189 suggestions_subscription_; 188 suggestions_subscription_;
190 189
191 ScopedObserver<history::TopSites, history::TopSitesObserver> 190 ScopedObserver<history::TopSites, history::TopSitesObserver>
192 top_sites_observer_; 191 top_sites_observer_;
193 192
194 // The main source of personal tiles - either TOP_SITES or SUGGESTIONS_SEVICE. 193 // The main source of personal tiles - either TOP_SITES or SUGGESTIONS_SEVICE.
195 NTPTileSource mv_source_; 194 NTPTileSource mv_source_;
196 195
197 NTPTilesVector current_tiles_; 196 NTPTilesVector current_tiles_;
198 197
199 // For callbacks may be run after destruction. 198 // For callbacks may be run after destruction.
200 base::WeakPtrFactory<MostVisitedSites> weak_ptr_factory_; 199 base::WeakPtrFactory<MostVisitedSites> weak_ptr_factory_;
201 200
202 DISALLOW_COPY_AND_ASSIGN(MostVisitedSites); 201 DISALLOW_COPY_AND_ASSIGN(MostVisitedSites);
203 }; 202 };
204 203
205 } // namespace ntp_tiles 204 } // namespace ntp_tiles
206 205
207 #endif // COMPONENTS_NTP_TILES_MOST_VISITED_SITES_H_ 206 #endif // COMPONENTS_NTP_TILES_MOST_VISITED_SITES_H_
OLDNEW
« no previous file with comments | « chrome/browser/ui/webui/popular_sites_internals_ui.cc ('k') | components/ntp_tiles/most_visited_sites.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698