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

Unified Diff: chrome/test/base/testing_profile.cc

Issue 10693022: Add support for loading user cloud policy on desktop. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: removed redundant #ifdef OS_CHROMEOS guard Created 8 years, 4 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
« chrome/test/base/testing_profile.h ('K') | « chrome/test/base/testing_profile.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/test/base/testing_profile.cc
diff --git a/chrome/test/base/testing_profile.cc b/chrome/test/base/testing_profile.cc
index 388b4528ab31d4f954d8334d1a59be1f88de0860..c173ef3469b1be9fd263b33062d7b320e0e150ce 100644
--- a/chrome/test/base/testing_profile.cc
+++ b/chrome/test/base/testing_profile.cc
@@ -34,6 +34,7 @@
#include "chrome/browser/net/proxy_service_factory.h"
#include "chrome/browser/notifications/desktop_notification_service.h"
#include "chrome/browser/notifications/desktop_notification_service_factory.h"
+#include "chrome/browser/policy/user_cloud_policy_manager.h"
#include "chrome/browser/prefs/browser_prefs.h"
#include "chrome/browser/prefs/testing_pref_store.h"
#include "chrome/browser/prerender/prerender_manager.h"
@@ -159,30 +160,7 @@ TestingProfile::TestingProfile()
last_session_exited_cleanly_(true),
profile_dependency_manager_(ProfileDependencyManager::GetInstance()),
delegate_(NULL) {
- if (!temp_dir_.CreateUniqueTempDir()) {
- LOG(ERROR) << "Failed to create unique temporary directory.";
-
- // Fallback logic in case we fail to create unique temporary directory.
- FilePath system_tmp_dir;
- bool success = PathService::Get(base::DIR_TEMP, &system_tmp_dir);
-
- // We're severly screwed if we can't get the system temporary
- // directory. Die now to avoid writing to the filesystem root
- // or other bad places.
- CHECK(success);
-
- FilePath fallback_dir(system_tmp_dir.AppendASCII("TestingProfilePath"));
- file_util::Delete(fallback_dir, true);
- file_util::CreateDirectory(fallback_dir);
- if (!temp_dir_.Set(fallback_dir)) {
- // That shouldn't happen, but if it does, try to recover.
- LOG(ERROR) << "Failed to use a fallback temporary directory.";
-
- // We're screwed if this fails, see CHECK above.
- CHECK(temp_dir_.Set(system_tmp_dir));
- }
- }
-
+ CreateTempProfileDir();
profile_path_ = temp_dir_.path();
Init();
@@ -220,6 +198,69 @@ TestingProfile::TestingProfile(const FilePath& path,
}
}
+TestingProfile::TestingProfile(
+ const FilePath& path,
+ Delegate* delegate,
+ scoped_refptr<ExtensionSpecialStoragePolicy> extension_policy,
+ scoped_ptr<PrefService> prefs,
+ scoped_ptr<policy::UserCloudPolicyManager> user_cloud_policy_manager)
+ : start_time_(Time::Now()),
+ prefs_(prefs.release()),
+ testing_prefs_(NULL),
+ incognito_(false),
+ last_session_exited_cleanly_(true),
+ extension_special_storage_policy_(extension_policy),
+ user_cloud_policy_manager_(user_cloud_policy_manager.release()),
+ profile_path_(path),
+ profile_dependency_manager_(ProfileDependencyManager::GetInstance()),
+ delegate_(delegate) {
+
+ // If no profile path was supplied, create one.
+ if (profile_path_.empty()) {
+ CreateTempProfileDir();
+ profile_path_ = temp_dir_.path();
+ }
+
+ Init();
+ // If caller supplied a delegate, delay the FinishInit invocation until other
+ // tasks have run.
+ // TODO(atwilson): See if this is still required once we convert the current
+ // users of the constructor that takes a Delegate* param.
+ if (delegate_) {
+ MessageLoop::current()->PostTask(FROM_HERE,
+ base::Bind(&TestingProfile::FinishInit,
+ base::Unretained(this)));
+ } else {
+ FinishInit();
+ }
+}
+
+void TestingProfile::CreateTempProfileDir() {
+ if (!temp_dir_.CreateUniqueTempDir()) {
+ LOG(ERROR) << "Failed to create unique temporary directory.";
+
+ // Fallback logic in case we fail to create unique temporary directory.
+ FilePath system_tmp_dir;
+ bool success = PathService::Get(base::DIR_TEMP, &system_tmp_dir);
+
+ // We're severly screwed if we can't get the system temporary
+ // directory. Die now to avoid writing to the filesystem root
+ // or other bad places.
+ CHECK(success);
+
+ FilePath fallback_dir(system_tmp_dir.AppendASCII("TestingProfilePath"));
+ file_util::Delete(fallback_dir, true);
+ file_util::CreateDirectory(fallback_dir);
+ if (!temp_dir_.Set(fallback_dir)) {
+ // That shouldn't happen, but if it does, try to recover.
+ LOG(ERROR) << "Failed to use a fallback temporary directory.";
+
+ // We're screwed if this fails, see CHECK above.
+ CHECK(temp_dir_.Set(system_tmp_dir));
+ }
+ }
+}
+
void TestingProfile::Init() {
if (!file_util::PathExists(profile_path_))
file_util::CreateDirectory(profile_path_);
@@ -494,6 +535,10 @@ net::CookieMonster* TestingProfile::GetCookieMonster() {
GetCookieMonster();
}
+policy::UserCloudPolicyManager* TestingProfile::GetUserCloudPolicyManager() {
+ return user_cloud_policy_manager_.get();
+}
+
policy::PolicyService* TestingProfile::GetPolicyService() {
if (!policy_service_.get()) {
#if defined(ENABLE_CONFIGURATION_POLICY)
@@ -732,3 +777,46 @@ base::Callback<ChromeURLDataManagerBackend*(void)>
TestingProfile::GetChromeURLDataManagerBackendGetter() const {
return base::Callback<ChromeURLDataManagerBackend*(void)>();
}
+
+TestingProfile::Builder::Builder()
+ : build_called_(false),
+ delegate_(NULL) {
+}
+
+TestingProfile::Builder::~Builder() {
+}
+
+void TestingProfile::Builder::SetPath(const FilePath& path) {
+ path_ = path;
+}
+
+void TestingProfile::Builder::SetDelegate(Delegate* delegate) {
+ delegate_ = delegate;
+}
+
+void TestingProfile::Builder::SetExtensionSpecialStoragePolicy(
+ scoped_refptr<ExtensionSpecialStoragePolicy> policy) {
+ extension_policy_ = policy;
+}
+
+void TestingProfile::Builder::SetPrefService(scoped_ptr<PrefService> prefs) {
+ pref_service_ = prefs.Pass();
+}
+
+void TestingProfile::Builder::SetUserCloudPolicyManager(
+ scoped_ptr<policy::UserCloudPolicyManager> manager) {
+ user_cloud_policy_manager_ = manager.Pass();
+}
+
+scoped_ptr<TestingProfile> TestingProfile::Builder::Build() {
+ DCHECK(!build_called_);
+ build_called_ = true;
+ return scoped_ptr<TestingProfile>(new TestingProfile(
+ path_,
+ delegate_,
+ extension_policy_,
+ pref_service_.Pass(),
+ user_cloud_policy_manager_.Pass()));
+}
+
+
« chrome/test/base/testing_profile.h ('K') | « chrome/test/base/testing_profile.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698