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

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

Issue 2279123002: [Sync] Initial implementation of foreign sessions suggestions provider. (Closed)
Patch Set: Adding sessions deps to BUILD.gn Created 4 years, 3 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
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/offline_page_suggestions_provide r.h" 5 #include "components/ntp_snippets/offline_pages/offline_page_suggestions_provide r.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <utility>
8 9
9 #include "base/bind.h" 10 #include "base/bind.h"
10 #include "base/guid.h" 11 #include "base/guid.h"
11 #include "base/location.h" 12 #include "base/location.h"
12 #include "base/strings/string_number_conversions.h" 13 #include "base/strings/string_number_conversions.h"
13 #include "base/strings/utf_string_conversions.h" 14 #include "base/strings/utf_string_conversions.h"
14 #include "base/threading/thread_task_runner_handle.h" 15 #include "base/threading/thread_task_runner_handle.h"
15 #include "base/values.h" 16 #include "base/values.h"
16 #include "components/ntp_snippets/pref_names.h" 17 #include "components/ntp_snippets/pref_names.h"
18 #include "components/ntp_snippets/pref_util.h"
17 #include "components/offline_pages/client_namespace_constants.h" 19 #include "components/offline_pages/client_namespace_constants.h"
18 #include "components/prefs/pref_registry_simple.h" 20 #include "components/prefs/pref_registry_simple.h"
19 #include "components/prefs/pref_service.h" 21 #include "components/prefs/pref_service.h"
20 #include "grit/components_strings.h" 22 #include "grit/components_strings.h"
21 #include "ui/base/l10n/l10n_util.h" 23 #include "ui/base/l10n/l10n_util.h"
22 #include "ui/gfx/image/image.h" 24 #include "ui/gfx/image/image.h"
23 25
24 using offline_pages::MultipleOfflinePageItemResult; 26 using offline_pages::MultipleOfflinePageItemResult;
25 using offline_pages::OfflinePageModel; 27 using offline_pages::OfflinePageModel;
26 using offline_pages::OfflinePageItem; 28 using offline_pages::OfflinePageItem;
(...skipping 336 matching lines...) Expand 10 before | Expand all | Expand 10 after
363 if (category == recent_tabs_category_) 365 if (category == recent_tabs_category_)
364 return prefs::kDismissedRecentOfflineTabSuggestions; 366 return prefs::kDismissedRecentOfflineTabSuggestions;
365 if (category == downloads_category_) 367 if (category == downloads_category_)
366 return prefs::kDismissedDownloadSuggestions; 368 return prefs::kDismissedDownloadSuggestions;
367 NOTREACHED() << "Unknown category " << category.id(); 369 NOTREACHED() << "Unknown category " << category.id();
368 return std::string(); 370 return std::string();
369 } 371 }
370 372
371 std::set<std::string> OfflinePageSuggestionsProvider::ReadDismissedIDsFromPrefs( 373 std::set<std::string> OfflinePageSuggestionsProvider::ReadDismissedIDsFromPrefs(
372 Category category) const { 374 Category category) const {
373 std::set<std::string> dismissed_ids; 375 return prefs::ReadDismissedIDsFromPrefs(*pref_service_,
374 const base::ListValue* list = 376 GetDismissedPref(category));
375 pref_service_->GetList(GetDismissedPref(category));
376 for (const std::unique_ptr<base::Value>& value : *list) {
377 std::string dismissed_id;
378 bool success = value->GetAsString(&dismissed_id);
379 DCHECK(success) << "Failed to parse dismissed offline page ID from prefs";
380 dismissed_ids.insert(dismissed_id);
381 }
382 return dismissed_ids;
383 } 377 }
384 378
385 void OfflinePageSuggestionsProvider::StoreDismissedIDsToPrefs( 379 void OfflinePageSuggestionsProvider::StoreDismissedIDsToPrefs(
386 Category category, 380 Category category,
387 const std::set<std::string>& dismissed_ids) { 381 const std::set<std::string>& dismissed_ids) {
388 base::ListValue list; 382 prefs::StoreDismissedIDsToPrefs(pref_service_, GetDismissedPref(category),
389 for (const std::string& dismissed_id : dismissed_ids) 383 dismissed_ids);
390 list.AppendString(dismissed_id);
391 pref_service_->Set(GetDismissedPref(category), list);
392 } 384 }
393 385
394 } // namespace ntp_snippets 386 } // namespace ntp_snippets
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698