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

Unified Diff: components/offline_pages/offline_page_model.cc

Issue 1928393003: Using separate directories based on LifetimeType. Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 8 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/offline_pages/offline_page_model.cc
diff --git a/components/offline_pages/offline_page_model.cc b/components/offline_pages/offline_page_model.cc
index 66d8c9ecb2d6bfecdc790dbfe7bc213b1ab983ba..7e46efd172ad74b5d017fed648ae1dcf4ce555e2 100644
--- a/components/offline_pages/offline_page_model.cc
+++ b/components/offline_pages/offline_page_model.cc
@@ -17,12 +17,14 @@
#include "base/strings/string_number_conversions.h"
#include "base/thread_task_runner_handle.h"
#include "base/time/time.h"
+#include "components/offline_pages/client_policy_controller.h"
#include "components/offline_pages/offline_page_item.h"
#include "components/offline_pages/proto/offline_pages.pb.h"
#include "url/gurl.h"
using ArchiverResult = offline_pages::OfflinePageArchiver::ArchiverResult;
using SavePageResult = offline_pages::OfflinePageModel::SavePageResult;
+using ArchiveDirs = offline_pages::OfflinePageModel::ArchiveDirs;
namespace offline_pages {
@@ -95,8 +97,10 @@ void FindPagesMissingArchiveFile(
}
}
-void EnsureArchivesDirCreated(const base::FilePath& archives_dir) {
- CHECK(base::CreateDirectory(archives_dir));
+void EnsureArchivesDirCreated(const ArchiveDirs& archive_dirs) {
+ for (const auto& iter : archive_dirs) {
+ CHECK(base::CreateDirectory(iter.second));
+ }
}
} // namespace
@@ -108,15 +112,15 @@ bool OfflinePageModel::CanSavePage(const GURL& url) {
OfflinePageModel::OfflinePageModel(
std::unique_ptr<OfflinePageMetadataStore> store,
- const base::FilePath& archives_dir,
+ const ArchiveDirs& archive_dirs,
const scoped_refptr<base::SequencedTaskRunner>& task_runner)
: store_(std::move(store)),
- archives_dir_(archives_dir),
+ archive_dirs_(archive_dirs),
is_loaded_(false),
task_runner_(task_runner),
weak_ptr_factory_(this) {
task_runner_->PostTaskAndReply(
- FROM_HERE, base::Bind(EnsureArchivesDirCreated, archives_dir_),
+ FROM_HERE, base::Bind(EnsureArchivesDirCreated, archive_dirs_),
base::Bind(&OfflinePageModel::OnEnsureArchivesDirCreatedDone,
weak_ptr_factory_.GetWeakPtr()));
}
@@ -150,7 +154,7 @@ void OfflinePageModel::SavePage(const GURL& url,
int64_t offline_id = GenerateOfflineId();
archiver->CreateArchive(
- archives_dir_,
+ GetArchivePath(client_id),
offline_id,
base::Bind(&OfflinePageModel::OnCreateArchiveDone,
weak_ptr_factory_.GetWeakPtr(), url, offline_id,
@@ -715,6 +719,13 @@ int64_t OfflinePageModel::GenerateOfflineId() {
return base::RandGenerator(std::numeric_limits<int64_t>::max()) + 1;
}
+const base::FilePath& OfflinePageModel::GetArchivePath(
+ const ClientId& client_id) {
+ OfflinePageClientPolicy policy =
+ ClientPolicyController::GetInstance().GetPolicy(client_id.name_space);
+ return archive_dirs_.at(policy.lifetime_policy.type);
+}
+
void OfflinePageModel::RunWhenLoaded(const base::Closure& task) {
if (!is_loaded_) {
delayed_tasks_.push_back(task);
« no previous file with comments | « components/offline_pages/offline_page_model.h ('k') | components/offline_pages/offline_page_model_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698