Index: components/ntp_snippets/sessions/foreign_sessions_suggestions_provider.cc |
diff --git a/components/ntp_snippets/sessions/foreign_sessions_suggestions_provider.cc b/components/ntp_snippets/sessions/foreign_sessions_suggestions_provider.cc |
index 0a6aaa76986e58412f2920594829d8d9c4171cbc..f27ea57badc34c71644c4638828c01b9fcabb3c7 100644 |
--- a/components/ntp_snippets/sessions/foreign_sessions_suggestions_provider.cc |
+++ b/components/ntp_snippets/sessions/foreign_sessions_suggestions_provider.cc |
@@ -125,21 +125,21 @@ CategoryInfo ForeignSessionsSuggestionsProvider::GetCategoryInfo( |
} |
void ForeignSessionsSuggestionsProvider::DismissSuggestion( |
- const std::string& suggestion_id) { |
+ const ContentSuggestion::ID& suggestion_id) { |
// TODO(skym): Right now this continuously grows, without clearing out old and |
// irrelevant entries. Could either use a timestamp and expire after a |
// threshold, or compare with current foreign tabs and remove anything that |
// isn't actively blockign a foreign_sessions tab. |
std::set<std::string> dismissed_ids = prefs::ReadDismissedIDsFromPrefs( |
*pref_service_, prefs::kDismissedForeignSessionsSuggestions); |
- dismissed_ids.insert(suggestion_id); |
+ dismissed_ids.insert(suggestion_id.within_category_id()); |
prefs::StoreDismissedIDsToPrefs(pref_service_, |
prefs::kDismissedForeignSessionsSuggestions, |
dismissed_ids); |
} |
void ForeignSessionsSuggestionsProvider::FetchSuggestionImage( |
- const std::string& suggestion_id, |
+ const ContentSuggestion::ID& suggestion_id, |
const ImageFetchedCallback& callback) { |
base::ThreadTaskRunnerHandle::Get()->PostTask( |
FROM_HERE, base::Bind(callback, gfx::Image())); |
@@ -152,7 +152,7 @@ void ForeignSessionsSuggestionsProvider::ClearHistory( |
std::set<std::string> dismissed_ids = prefs::ReadDismissedIDsFromPrefs( |
*pref_service_, prefs::kDismissedForeignSessionsSuggestions); |
for (auto iter = dismissed_ids.begin(); iter != dismissed_ids.end();) { |
- if (filter.Run(GURL(base::StringPiece(*iter)))) { |
+ if (filter.Run(GURL(*iter))) { |
iter = dismissed_ids.erase(iter); |
} else { |
++iter; |
@@ -277,13 +277,12 @@ ForeignSessionsSuggestionsProvider::GetSuggestionCandidates() { |
continue; |
const SerializedNavigationEntry& navigation = tab->navigations.back(); |
- const std::string unique_id = |
- MakeUniqueID(provided_category_, navigation.virtual_url().spec()); |
+ const std::string id = navigation.virtual_url().spec(); |
// TODO(skym): Filter out internal pages. Tabs that contain only |
// non-syncable content should never reach the local client, but |
// sometimes the most recent navigation may be internal while one |
// of the previous ones was more valid. |
- if (dismissed_ids.find(unique_id) == dismissed_ids.end() && |
+ if (dismissed_ids.find(id) == dismissed_ids.end() && |
(base::Time::Now() - tab->timestamp) < max_foreign_tab_age) { |
suggestion_candidates.push_back( |
SessionData{session, tab.get(), &navigation}); |
@@ -296,9 +295,9 @@ ForeignSessionsSuggestionsProvider::GetSuggestionCandidates() { |
ContentSuggestion ForeignSessionsSuggestionsProvider::BuildSuggestion( |
const SessionData& data) { |
- ContentSuggestion suggestion( |
- MakeUniqueID(provided_category_, data.navigation->virtual_url().spec()), |
- data.navigation->virtual_url()); |
+ ContentSuggestion suggestion(provided_category_, |
+ data.navigation->virtual_url().spec(), |
+ data.navigation->virtual_url()); |
suggestion.set_title(data.navigation->title()); |
suggestion.set_publish_date(data.tab->timestamp); |
// TODO(skym): It's unclear if this simple approach is sufficient for |