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

Unified Diff: chrome/browser/chromeos/policy/device_cloud_policy_manager_chromeos.cc

Issue 2441653003: Enable fetching of admin policies for login screen apps (Closed)
Patch Set: Rebase Created 4 years, 1 month 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/chromeos/policy/device_cloud_policy_manager_chromeos.cc
diff --git a/chrome/browser/chromeos/policy/device_cloud_policy_manager_chromeos.cc b/chrome/browser/chromeos/policy/device_cloud_policy_manager_chromeos.cc
index 4831378049084363157956bf9fa7eef6d577b9d8..72c38fae4c71176a715dfe312f45ffbd44ecad81 100644
--- a/chrome/browser/chromeos/policy/device_cloud_policy_manager_chromeos.cc
+++ b/chrome/browser/chromeos/policy/device_cloud_policy_manager_chromeos.cc
@@ -12,10 +12,13 @@
#include "base/bind_helpers.h"
#include "base/callback.h"
#include "base/command_line.h"
+#include "base/files/file_path.h"
#include "base/logging.h"
#include "base/macros.h"
#include "base/memory/ptr_util.h"
+#include "base/path_service.h"
#include "base/strings/string_number_conversions.h"
+#include "base/sys_info.h"
#include "base/time/time.h"
#include "chrome/browser/browser_process.h"
#include "chrome/browser/chromeos/attestation/attestation_policy_observer.h"
@@ -31,17 +34,20 @@
#include "chrome/browser/chromeos/settings/install_attributes.h"
#include "chrome/common/pref_names.h"
#include "chromeos/chromeos_constants.h"
+#include "chromeos/chromeos_paths.h"
#include "chromeos/chromeos_switches.h"
#include "chromeos/system/statistics_provider.h"
#include "components/policy/core/common/cloud/cloud_policy_core.h"
#include "components/policy/core/common/cloud/cloud_policy_service.h"
#include "components/policy/core/common/cloud/cloud_policy_store.h"
#include "components/policy/core/common/remote_commands/remote_commands_factory.h"
+#include "components/policy/core/common/schema_registry.h"
#include "components/policy/proto/device_management_backend.pb.h"
#include "components/prefs/pref_registry_simple.h"
#include "components/prefs/pref_service.h"
#include "content/public/browser/browser_thread.h"
#include "crypto/sha2.h"
+#include "net/url_request/url_request_context_getter.h"
#include "url/gurl.h"
using content::BrowserThread;
@@ -189,6 +195,7 @@ void DeviceCloudPolicyManagerChromeOS::Shutdown() {
heartbeat_scheduler_.reset();
state_keys_update_subscription_.reset();
CloudPolicyManager::Shutdown();
+ signin_profile_forwarding_schema_registry_.reset();
}
// static
@@ -236,8 +243,21 @@ void DeviceCloudPolicyManagerChromeOS::StartConnection(
if (ForcedReEnrollmentEnabled())
client_to_connect->SetStateKeysToUpload(state_keys_broker_->state_keys());
+ if (is_component_policy_enabled_) {
+ base::FilePath component_policy_cache_dir;
+ CHECK(PathService::Get(chromeos::DIR_SIGNIN_PROFILE_COMPONENT_POLICY,
+ &component_policy_cache_dir));
+ CHECK(signin_profile_forwarding_schema_registry_);
+ CreateComponentCloudPolicyService(
+ dm_protocol::kChromeSigninExtensionPolicyType,
+ component_policy_cache_dir, g_browser_process->system_request_context(),
+ client_to_connect.get(),
+ signin_profile_forwarding_schema_registry_.get());
+ }
+
core()->Connect(std::move(client_to_connect));
core()->StartRefreshScheduler();
+ core()->RefreshSoon();
core()->StartRemoteCommandsService(std::unique_ptr<RemoteCommandsFactory>(
new DeviceCommandsFactoryChromeOS()));
core()->TrackRefreshDelayPref(local_state_,
@@ -283,6 +303,13 @@ void DeviceCloudPolicyManagerChromeOS::Disconnect() {
NotifyDisconnected();
}
+void DeviceCloudPolicyManagerChromeOS::SetSigninProfileSchemaRegistry(
+ SchemaRegistry* schema_registry) {
+ DCHECK(!signin_profile_forwarding_schema_registry_);
+ signin_profile_forwarding_schema_registry_.reset(
+ new ForwardingSchemaRegistry(schema_registry));
+}
+
void DeviceCloudPolicyManagerChromeOS::OnStateKeysUpdated() {
if (client() && ForcedReEnrollmentEnabled())
client()->SetStateKeysToUpload(state_keys_broker_->state_keys());

Powered by Google App Engine
This is Rietveld 408576698