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

Unified Diff: chrome/browser/policy/browser_policy_connector.cc

Issue 12183017: Verify the signature on user cloud policy downloads. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Comment Created 7 years, 10 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/policy/browser_policy_connector.cc
diff --git a/chrome/browser/policy/browser_policy_connector.cc b/chrome/browser/policy/browser_policy_connector.cc
index 8b30543c14c0fc1b769c2721282c3e8e4c6c1892..7792d38ccdd49a129c7f3e814738f1c8270cabf2 100644
--- a/chrome/browser/policy/browser_policy_connector.cc
+++ b/chrome/browser/policy/browser_policy_connector.cc
@@ -7,7 +7,6 @@
#include "base/bind.h"
#include "base/bind_helpers.h"
#include "base/command_line.h"
-#include "base/file_path.h"
#include "base/message_loop.h"
#include "base/path_service.h"
#include "base/string_util.h"
@@ -77,6 +76,10 @@ const FilePath::CharType kPolicyDir[] = FILE_PATH_LITERAL("Device Management");
const FilePath::CharType kTokenCacheFile[] = FILE_PATH_LITERAL("Token");
// File in the above directory for storing user policy data.
const FilePath::CharType kPolicyCacheFile[] = FILE_PATH_LITERAL("Policy");
+// Path that contains the user policy keys after the user's vault is mounted.
+// This is appended to |g_root_path|.
+const FilePath::CharType kUserPolicyKeyDir[] =
+ FILE_PATH_LITERAL("var/run/user_policy");
// The following constants define delays applied before the initial policy fetch
// on startup. (So that displaying Chrome's GUI does not get delayed.)
@@ -93,6 +96,9 @@ const char kDefaultDeviceManagementServerUrl[] =
// Used in BrowserPolicyConnector::SetPolicyProviderForTesting.
ConfigurationPolicyProvider* g_testing_provider = NULL;
+// Used in BrowserPolicyConnector::SetRootPathForTesting.
+const FilePath::CharType* g_root_path = FILE_PATH_LITERAL("/");
+
} // namespace
BrowserPolicyConnector::BrowserPolicyConnector()
@@ -255,6 +261,8 @@ void BrowserPolicyConnector::InitializeUserPolicy(
const FilePath policy_dir = profile_dir.Append(kPolicyDir);
const FilePath policy_cache_file = policy_dir.Append(kPolicyCacheFile);
const FilePath token_cache_file = policy_dir.Append(kTokenCacheFile);
+ const FilePath root_path(g_root_path);
+ const FilePath policy_key_dir(root_path.Append(kUserPolicyKeyDir));
if (wait_for_policy_fetch)
device_management_service_->ScheduleInitialization(0);
@@ -269,8 +277,9 @@ void BrowserPolicyConnector::InitializeUserPolicy(
} else if (!IsNonEnterpriseUser(user_name)) {
scoped_ptr<CloudPolicyStore> store(
new UserCloudPolicyStoreChromeOS(
+ chromeos::DBusThreadManager::Get()->GetCryptohomeClient(),
chromeos::DBusThreadManager::Get()->GetSessionManagerClient(),
- user_name, token_cache_file, policy_cache_file));
+ user_name, policy_key_dir, token_cache_file, policy_cache_file));
user_cloud_policy_manager_.reset(
new UserCloudPolicyManagerChromeOS(store.Pass(),
wait_for_policy_fetch));
@@ -330,6 +339,12 @@ NetworkConfigurationUpdater*
}
#endif
+// static
+void BrowserPolicyConnector::SetRootPathForTesting(
+ const FilePath::CharType* root_path) {
+ g_root_path = root_path;
+}
+
void BrowserPolicyConnector::SetDeviceManagementServiceForTesting(
scoped_ptr<DeviceManagementService> service) {
device_management_service_ = service.Pass();

Powered by Google App Engine
This is Rietveld 408576698