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

Unified Diff: chrome/browser/profile_resetter/automatic_profile_resetter_mementos.cc

Issue 533183002: Revert "Eliminate all code related to the AutomaticProfileResetter." (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase. Created 6 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/profile_resetter/automatic_profile_resetter_mementos.cc
diff --git a/chrome/browser/profile_resetter/automatic_profile_resetter_mementos.cc b/chrome/browser/profile_resetter/automatic_profile_resetter_mementos.cc
new file mode 100644
index 0000000000000000000000000000000000000000..a76b98b1a252a998e9c5fb22f54831283ded6c4f
--- /dev/null
+++ b/chrome/browser/profile_resetter/automatic_profile_resetter_mementos.cc
@@ -0,0 +1,129 @@
+// Copyright 2013 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 "chrome/browser/profile_resetter/automatic_profile_resetter_mementos.h"
+
+#include "base/bind.h"
+#include "base/bind_helpers.h"
+#include "base/file_util.h"
+#include "base/files/file_path.h"
+#include "base/logging.h"
+#include "base/prefs/pref_service.h"
+#include "base/prefs/scoped_user_pref_update.h"
+#include "base/values.h"
+#include "chrome/browser/browser_process.h"
+#include "chrome/browser/profiles/profile.h"
+#include "chrome/common/chrome_constants.h"
+#include "chrome/common/pref_names.h"
+#include "content/public/browser/browser_thread.h"
+
+using base::DictionaryValue;
+
+
+// AutomaticProfileResetter::PreferenceHostedPromptMemento -------------------
+
+PreferenceHostedPromptMemento::PreferenceHostedPromptMemento(Profile* profile)
+ : profile_(profile) {}
+
+PreferenceHostedPromptMemento::~PreferenceHostedPromptMemento() {}
+
+std::string PreferenceHostedPromptMemento::ReadValue() const {
+ PrefService* prefs = profile_->GetPrefs();
+ DCHECK(prefs);
+ return prefs->GetString(prefs::kProfileResetPromptMementoInProfilePrefs);
+}
+
+void PreferenceHostedPromptMemento::StoreValue(const std::string& value) {
+ PrefService* prefs = profile_->GetPrefs();
+ DCHECK(prefs);
+ prefs->SetString(prefs::kProfileResetPromptMementoInProfilePrefs, value);
+}
+
+
+// AutomaticProfileResetter::LocalStateHostedPromptMemento -------------------
+
+LocalStateHostedPromptMemento::LocalStateHostedPromptMemento(Profile* profile)
+ : profile_(profile) {}
+
+LocalStateHostedPromptMemento::~LocalStateHostedPromptMemento() {}
+
+std::string LocalStateHostedPromptMemento::ReadValue() const {
+ PrefService* local_state = g_browser_process->local_state();
+ DCHECK(local_state);
+
+ const base::DictionaryValue* prompt_shown_dict = local_state->GetDictionary(
+ prefs::kProfileResetPromptMementosInLocalState);
+ std::string profile_key = GetProfileKey();
+ if (!prompt_shown_dict || profile_key.empty()) {
+ NOTREACHED();
+ return std::string();
+ }
+ std::string value;
+ return prompt_shown_dict->GetStringWithoutPathExpansion(profile_key, &value) ?
+ value : std::string();
+}
+
+void LocalStateHostedPromptMemento::StoreValue(const std::string& value) {
+ PrefService* local_state = g_browser_process->local_state();
+ DCHECK(local_state);
+
+ DictionaryPrefUpdate prompt_shown_dict_update(
+ local_state, prefs::kProfileResetPromptMementosInLocalState);
+ std::string profile_key = GetProfileKey();
+ if (profile_key.empty()) {
+ NOTREACHED();
+ return;
+ }
+ prompt_shown_dict_update.Get()->SetStringWithoutPathExpansion(profile_key,
+ value);
+}
+
+std::string LocalStateHostedPromptMemento::GetProfileKey() const {
+ return profile_->GetPath().BaseName().MaybeAsASCII();
+}
+
+
+// AutomaticProfileResetter::FileHostedPromptMemento -------------------------
+
+FileHostedPromptMemento::FileHostedPromptMemento(Profile* profile)
+ : profile_(profile) {}
+
+FileHostedPromptMemento::~FileHostedPromptMemento() {}
+
+void FileHostedPromptMemento::ReadValue(
+ const ReadValueCallback& callback) const {
+ base::FilePath path = GetMementoFilePath();
+ content::BrowserThread::PostTaskAndReplyWithResult(
+ content::BrowserThread::FILE,
+ FROM_HERE,
+ base::Bind(&ReadValueOnFileThread, path),
+ callback);
+}
+
+void FileHostedPromptMemento::StoreValue(const std::string& value) {
+ base::FilePath path = GetMementoFilePath();
+ content::BrowserThread::PostTask(
+ content::BrowserThread::FILE,
+ FROM_HERE,
+ base::Bind(&StoreValueOnFileThread, path, value));
+}
+
+std::string FileHostedPromptMemento::ReadValueOnFileThread(
+ const base::FilePath& memento_file_path) {
+ std::string value;
+ base::ReadFileToString(memento_file_path, &value);
+ return value;
+}
+
+void FileHostedPromptMemento::StoreValueOnFileThread(
+ const base::FilePath& memento_file_path,
+ const std::string& value) {
+ int retval =
+ base::WriteFile(memento_file_path, value.c_str(), value.size());
+ DCHECK_EQ(retval, (int)value.size());
+}
+
+base::FilePath FileHostedPromptMemento::GetMementoFilePath() const {
+ return profile_->GetPath().Append(chrome::kResetPromptMementoFilename);
+}

Powered by Google App Engine
This is Rietveld 408576698