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

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: jkrcal@ nits. 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 IsRecentTab(offline_pages::ClientPolicyController* policy_controller,
73 const OfflinePageItem& offline_page) {
74 return policy_controller->IsShownAsRecentlyVisitedSite(
75 offline_page.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 (IsRecentTab(model->GetPolicyController(), added_page)) {
222 FetchRecentTabs();
223 }
216 } 224 }
217 225
218 void RecentTabSuggestionsProvider:: 226 void RecentTabSuggestionsProvider::
219 GetPagesMatchingQueryCallbackForFetchRecentTabs( 227 GetPagesMatchingQueryCallbackForFetchRecentTabs(
220 const std::vector<OfflinePageItem>& offline_pages) { 228 const std::vector<OfflinePageItem>& offline_pages) {
221 NotifyStatusChanged(CategoryStatus::AVAILABLE); 229 NotifyStatusChanged(CategoryStatus::AVAILABLE);
222 std::set<std::string> old_dismissed_ids = ReadDismissedIDsFromPrefs(); 230 std::set<std::string> old_dismissed_ids = ReadDismissedIDsFromPrefs();
223 std::set<std::string> new_dismissed_ids; 231 std::set<std::string> new_dismissed_ids;
224 std::vector<const OfflinePageItem*> recent_tab_items; 232 std::vector<const OfflinePageItem*> recent_tab_items;
225 for (const OfflinePageItem& item : offline_pages) { 233 for (const OfflinePageItem& item : offline_pages) {
(...skipping 111 matching lines...) Expand 10 before | Expand all | Expand 10 after
337 } 345 }
338 346
339 void RecentTabSuggestionsProvider::StoreDismissedIDsToPrefs( 347 void RecentTabSuggestionsProvider::StoreDismissedIDsToPrefs(
340 const std::set<std::string>& dismissed_ids) { 348 const std::set<std::string>& dismissed_ids) {
341 prefs::StoreDismissedIDsToPrefs(pref_service_, 349 prefs::StoreDismissedIDsToPrefs(pref_service_,
342 prefs::kDismissedRecentOfflineTabSuggestions, 350 prefs::kDismissedRecentOfflineTabSuggestions,
343 dismissed_ids); 351 dismissed_ids);
344 } 352 }
345 353
346 } // namespace ntp_snippets 354 } // 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