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

Unified Diff: components/browsing_data/conditional_cache_deletion_helper.cc

Issue 2127403002: Make browsing_data component a layered component (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Removed output_name from components/browsing_data/content/BUILD.gn Created 4 years, 5 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/browsing_data/conditional_cache_deletion_helper.cc
diff --git a/components/browsing_data/conditional_cache_deletion_helper.cc b/components/browsing_data/conditional_cache_deletion_helper.cc
deleted file mode 100644
index 3d1e0f9b8658c94d829d099f4aedd7d62955fe9f..0000000000000000000000000000000000000000
--- a/components/browsing_data/conditional_cache_deletion_helper.cc
+++ /dev/null
@@ -1,96 +0,0 @@
-// Copyright 2016 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "components/browsing_data/conditional_cache_deletion_helper.h"
-
-#include "base/callback.h"
-#include "base/location.h"
-#include "base/single_thread_task_runner.h"
-#include "base/threading/thread_task_runner_handle.h"
-#include "content/public/browser/browser_thread.h"
-
-namespace {
-
-bool EntryPredicateFromURLsAndTime(
- const base::Callback<bool(const GURL&)>& url_predicate,
- const base::Time& begin_time,
- const base::Time& end_time,
- const disk_cache::Entry* entry) {
- return (entry->GetLastModified() >= begin_time &&
- entry->GetLastModified() < end_time &&
- url_predicate.Run(GURL(entry->GetKey())));
-}
-
-} // namespace
-
-namespace browsing_data {
-
-ConditionalCacheDeletionHelper::ConditionalCacheDeletionHelper(
- disk_cache::Backend* cache,
- const base::Callback<bool(const disk_cache::Entry*)>& condition)
- : cache_(cache),
- condition_(condition),
- current_entry_(nullptr),
- previous_entry_(nullptr) {
- DCHECK_CURRENTLY_ON(content::BrowserThread::IO);
-}
-
-// static
-base::Callback<bool(const disk_cache::Entry*)>
-ConditionalCacheDeletionHelper::CreateURLAndTimeCondition(
- const base::Callback<bool(const GURL&)>& url_predicate,
- const base::Time& begin_time,
- const base::Time& end_time) {
- return base::Bind(
- &EntryPredicateFromURLsAndTime,
- url_predicate,
- begin_time.is_null() ? base::Time() : begin_time,
- end_time.is_null() ? base::Time::Max() : end_time);
-}
-
-int ConditionalCacheDeletionHelper::DeleteAndDestroySelfWhenFinished(
- const net::CompletionCallback& completion_callback) {
- DCHECK_CURRENTLY_ON(content::BrowserThread::IO);
-
- completion_callback_ = completion_callback;
- iterator_ = cache_->CreateIterator();
-
- IterateOverEntries(net::OK);
- return net::ERR_IO_PENDING;
-}
-
-ConditionalCacheDeletionHelper::~ConditionalCacheDeletionHelper() {
-}
-
-void ConditionalCacheDeletionHelper::IterateOverEntries(int error) {
- while (error != net::ERR_IO_PENDING) {
- // If the entry obtained in the previous iteration matches the condition,
- // mark it for deletion. The iterator is already one step forward, so it
- // won't be invalidated. Always close the previous entry so it does not
- // leak.
- if (previous_entry_) {
- if (condition_.Run(previous_entry_))
- previous_entry_->Doom();
- previous_entry_->Close();
- }
-
- if (error == net::ERR_FAILED) {
- // The iteration finished successfuly or we can no longer iterate
- // (e.g. the cache was destroyed). We cannot distinguish between the two,
- // but we know that there is nothing more that we can do, so we return OK.
- base::MessageLoop::current()->task_runner()->PostTask(
- FROM_HERE, base::Bind(completion_callback_, net::OK));
- base::ThreadTaskRunnerHandle::Get()->DeleteSoon(FROM_HERE, this);
- return;
- }
-
- previous_entry_ = current_entry_;
- error = iterator_->OpenNextEntry(
- &current_entry_,
- base::Bind(&ConditionalCacheDeletionHelper::IterateOverEntries,
- base::Unretained(this)));
- }
-}
-
-} // namespace browsing_data
« no previous file with comments | « components/browsing_data/conditional_cache_deletion_helper.h ('k') | components/browsing_data/content/BUILD.gn » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698