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

Unified Diff: components/ntp_snippets/remote/ntp_snippets_service.cc

Issue 2379113002: Extended the ProtoDatabase to provide LoadKeys() functionality. (Closed)
Patch Set: Garbage Collect orphaned images on service start-up. Created 4 years, 2 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 side-by-side diff with in-line comments
Download patch
Index: components/ntp_snippets/remote/ntp_snippets_service.cc
diff --git a/components/ntp_snippets/remote/ntp_snippets_service.cc b/components/ntp_snippets/remote/ntp_snippets_service.cc
index 64eb84f7ad6f0f60080ad4e35302c5c8ae904df7..4acda602c6cb089bbd7c340b2b7910bd0ea41340 100644
--- a/components/ntp_snippets/remote/ntp_snippets_service.cc
+++ b/components/ntp_snippets/remote/ntp_snippets_service.cc
@@ -12,6 +12,7 @@
#include "base/files/file_path.h"
#include "base/files/file_util.h"
#include "base/location.h"
+#include "base/memory/ptr_util.h"
#include "base/metrics/histogram_macros.h"
#include "base/metrics/sparse_histogram.h"
#include "base/path_service.h"
@@ -490,6 +491,9 @@ void NTPSnippetsService::OnDatabaseLoaded(NTPSnippet::PtrVector snippets) {
DCHECK_EQ(1u, categories_.size()); // Only articles category, so far.
DCHECK(categories_.find(articles_category_) != categories_.end());
+ ClearExpiredDismissedSnippets();
+ ClearOrphanedImages(snippets);
+
// TODO(sfiera): support non-article categories in database.
CategoryContent* content = &categories_[articles_category_];
for (std::unique_ptr<NTPSnippet>& snippet : snippets) {
@@ -505,8 +509,6 @@ void NTPSnippetsService::OnDatabaseLoaded(NTPSnippet::PtrVector snippets) {
return lhs->score() > rhs->score();
});
- ClearExpiredDismissedSnippets();
- ClearOrphanedImages();
FinishInitialization();
}
@@ -591,7 +593,6 @@ void NTPSnippetsService::OnFetchFinished(
UMA_HISTOGRAM_SPARSE_SLOWLY("NewTabPage.Snippets.NumArticlesFetched",
fetched_category.snippets.size());
}
-
ReplaceSnippets(category, std::move(fetched_category.snippets));
}
}
@@ -767,8 +768,13 @@ void NTPSnippetsService::ClearExpiredDismissedSnippets() {
}
}
-void NTPSnippetsService::ClearOrphanedImages() {
- // TODO(jkrcal): Implement. crbug.com/649009
+void NTPSnippetsService::ClearOrphanedImages(
+ const NTPSnippet::PtrVector& snippets) {
+ auto alive_snippets = base::MakeUnique<std::set<std::string>>();
+ for (const auto& snippet_ptr : snippets) {
+ alive_snippets->insert(snippet_ptr->id());
+ }
+ database_->GarbageCollectImages(std::move(alive_snippets));
}
void NTPSnippetsService::NukeAllSnippets() {
« no previous file with comments | « components/ntp_snippets/remote/ntp_snippets_service.h ('k') | components/ntp_snippets/remote/ntp_snippets_service_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698