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

Side by Side Diff: components/ntp_snippets/offline_pages/recent_tab_suggestions_provider.cc

Issue 2595873002: [NTP::RecentTabs] Do not fetch all pages when not a recent tab is added. (Closed)
Patch Set: Created 3 years, 12 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
« no previous file with comments | « no previous file | components/ntp_snippets/offline_pages/recent_tab_suggestions_provider_unittest.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 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 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 #include "components/ntp_snippets/offline_pages/recent_tab_suggestions_provider. h" 5 #include "components/ntp_snippets/offline_pages/recent_tab_suggestions_provider. h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <utility> 8 #include <utility>
9 9
10 #include "base/bind.h" 10 #include "base/bind.h"
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
62 }; 62 };
63 63
64 std::unique_ptr<OfflinePageModelQuery> BuildRecentTabsQuery( 64 std::unique_ptr<OfflinePageModelQuery> BuildRecentTabsQuery(
65 offline_pages::OfflinePageModel* model) { 65 offline_pages::OfflinePageModel* model) {
66 OfflinePageModelQueryBuilder builder; 66 OfflinePageModelQueryBuilder builder;
67 builder.RequireShownAsRecentlyVisitedSite( 67 builder.RequireShownAsRecentlyVisitedSite(
68 OfflinePageModelQuery::Requirement::INCLUDE_MATCHING); 68 OfflinePageModelQuery::Requirement::INCLUDE_MATCHING);
69 return builder.Build(model->GetPolicyController()); 69 return builder.Build(model->GetPolicyController());
70 } 70 }
71 71
72 bool IsClientIdForOfflinePageRecentTab(
jkrcal 2016/12/21 12:08:29 nit: hard to parse (with the standard coding conve
vitaliii 2016/12/21 13:39:07 Done. IsRecentTab with OfflinePageItem as the sec
73 offline_pages::ClientPolicyController* policy_controller,
74 const offline_pages::ClientId& client_id) {
75 return policy_controller->IsShownAsRecentlyVisitedSite(client_id.name_space);
76 }
77
72 } // namespace 78 } // namespace
73 79
74 RecentTabSuggestionsProvider::RecentTabSuggestionsProvider( 80 RecentTabSuggestionsProvider::RecentTabSuggestionsProvider(
75 ContentSuggestionsProvider::Observer* observer, 81 ContentSuggestionsProvider::Observer* observer,
76 offline_pages::OfflinePageModel* offline_page_model, 82 offline_pages::OfflinePageModel* offline_page_model,
77 PrefService* pref_service) 83 PrefService* pref_service)
78 : ContentSuggestionsProvider(observer), 84 : ContentSuggestionsProvider(observer),
79 category_status_(CategoryStatus::AVAILABLE_LOADING), 85 category_status_(CategoryStatus::AVAILABLE_LOADING),
80 provided_category_( 86 provided_category_(
81 Category::FromKnownCategory(KnownCategories::RECENT_TABS)), 87 Category::FromKnownCategory(KnownCategories::RECENT_TABS)),
(...skipping 123 matching lines...) Expand 10 before | Expand all | Expand 10 after
205 callback.Run(std::move(suggestions)); 211 callback.Run(std::move(suggestions));
206 } 212 }
207 213
208 void RecentTabSuggestionsProvider::OfflinePageModelLoaded( 214 void RecentTabSuggestionsProvider::OfflinePageModelLoaded(
209 offline_pages::OfflinePageModel* model) {} 215 offline_pages::OfflinePageModel* model) {}
210 216
211 void RecentTabSuggestionsProvider::OfflinePageAdded( 217 void RecentTabSuggestionsProvider::OfflinePageAdded(
212 offline_pages::OfflinePageModel* model, 218 offline_pages::OfflinePageModel* model,
213 const offline_pages::OfflinePageItem& added_page) { 219 const offline_pages::OfflinePageItem& added_page) {
214 DCHECK_EQ(offline_page_model_, model); 220 DCHECK_EQ(offline_page_model_, model);
215 FetchRecentTabs(); 221 if (IsClientIdForOfflinePageRecentTab(model->GetPolicyController(),
jkrcal 2016/12/21 12:08:29 nit: If easy to set up, can you add a unit-test
vitaliii 2016/12/21 13:39:07 Done.
222 added_page.client_id)) {
223 FetchRecentTabs();
224 }
216 } 225 }
217 226
218 void RecentTabSuggestionsProvider:: 227 void RecentTabSuggestionsProvider::
219 GetPagesMatchingQueryCallbackForFetchRecentTabs( 228 GetPagesMatchingQueryCallbackForFetchRecentTabs(
220 const std::vector<OfflinePageItem>& offline_pages) { 229 const std::vector<OfflinePageItem>& offline_pages) {
221 NotifyStatusChanged(CategoryStatus::AVAILABLE); 230 NotifyStatusChanged(CategoryStatus::AVAILABLE);
222 std::set<std::string> old_dismissed_ids = ReadDismissedIDsFromPrefs(); 231 std::set<std::string> old_dismissed_ids = ReadDismissedIDsFromPrefs();
223 std::set<std::string> new_dismissed_ids; 232 std::set<std::string> new_dismissed_ids;
224 std::vector<const OfflinePageItem*> recent_tab_items; 233 std::vector<const OfflinePageItem*> recent_tab_items;
225 for (const OfflinePageItem& item : offline_pages) { 234 for (const OfflinePageItem& item : offline_pages) {
(...skipping 111 matching lines...) Expand 10 before | Expand all | Expand 10 after
337 } 346 }
338 347
339 void RecentTabSuggestionsProvider::StoreDismissedIDsToPrefs( 348 void RecentTabSuggestionsProvider::StoreDismissedIDsToPrefs(
340 const std::set<std::string>& dismissed_ids) { 349 const std::set<std::string>& dismissed_ids) {
341 prefs::StoreDismissedIDsToPrefs(pref_service_, 350 prefs::StoreDismissedIDsToPrefs(pref_service_,
342 prefs::kDismissedRecentOfflineTabSuggestions, 351 prefs::kDismissedRecentOfflineTabSuggestions,
343 dismissed_ids); 352 dismissed_ids);
344 } 353 }
345 354
346 } // namespace ntp_snippets 355 } // namespace ntp_snippets
OLDNEW
« no previous file with comments | « no previous file | components/ntp_snippets/offline_pages/recent_tab_suggestions_provider_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698