| Index: remoting/host/policy_hack/policy_service_watcher.cc
|
| diff --git a/remoting/host/policy_hack/policy_service_watcher.cc b/remoting/host/policy_hack/policy_service_watcher.cc
|
| deleted file mode 100644
|
| index 50744c128f3dcb1214af356ad40b6a8f7ef305e7..0000000000000000000000000000000000000000
|
| --- a/remoting/host/policy_hack/policy_service_watcher.cc
|
| +++ /dev/null
|
| @@ -1,165 +0,0 @@
|
| -// Copyright 2014 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 "remoting/host/policy_hack/policy_service_watcher.h"
|
| -
|
| -#include "base/files/file_path.h"
|
| -#include "base/values.h"
|
| -#include "components/policy/core/common/async_policy_loader.h"
|
| -#include "components/policy/core/common/async_policy_provider.h"
|
| -#include "components/policy/core/common/policy_namespace.h"
|
| -#include "components/policy/core/common/policy_service_impl.h"
|
| -#include "components/policy/core/common/schema.h"
|
| -#include "components/policy/core/common/schema_registry.h"
|
| -#include "policy/policy_constants.h"
|
| -
|
| -#if defined(OS_CHROMEOS)
|
| -#include "content/public/browser/browser_thread.h"
|
| -#elif defined(OS_WIN)
|
| -#include "components/policy/core/common/policy_loader_win.h"
|
| -#elif defined(OS_MACOSX)
|
| -#include "components/policy/core/common/policy_loader_mac.h"
|
| -#include "components/policy/core/common/preferences_mac.h"
|
| -#elif defined(OS_POSIX) && !defined(OS_ANDROID)
|
| -#include "components/policy/core/common/config_dir_policy_loader.h"
|
| -#endif
|
| -
|
| -using namespace policy;
|
| -
|
| -namespace remoting {
|
| -namespace policy_hack {
|
| -
|
| -namespace {
|
| -
|
| -PolicyNamespace GetPolicyNamespace() {
|
| - return PolicyNamespace(POLICY_DOMAIN_CHROME, std::string());
|
| -}
|
| -
|
| -} // namespace
|
| -
|
| -PolicyServiceWatcher::PolicyServiceWatcher(
|
| - const scoped_refptr<base::SingleThreadTaskRunner>&
|
| - policy_service_task_runner,
|
| - PolicyService* policy_service)
|
| - : PolicyWatcher(policy_service_task_runner) {
|
| - policy_service_ = policy_service;
|
| -}
|
| -
|
| -PolicyServiceWatcher::PolicyServiceWatcher(
|
| - const scoped_refptr<base::SingleThreadTaskRunner>&
|
| - policy_service_task_runner,
|
| - scoped_ptr<PolicyService> owned_policy_service,
|
| - scoped_ptr<ConfigurationPolicyProvider> owned_policy_provider,
|
| - scoped_ptr<SchemaRegistry> owned_schema_registry)
|
| - : PolicyWatcher(policy_service_task_runner),
|
| - owned_schema_registry_(owned_schema_registry.Pass()),
|
| - owned_policy_provider_(owned_policy_provider.Pass()),
|
| - owned_policy_service_(owned_policy_service.Pass()) {
|
| - policy_service_ = owned_policy_service_.get();
|
| -}
|
| -
|
| -PolicyServiceWatcher::~PolicyServiceWatcher() {
|
| - if (owned_policy_provider_) {
|
| - owned_policy_provider_->Shutdown();
|
| - }
|
| -}
|
| -
|
| -void PolicyServiceWatcher::OnPolicyUpdated(const PolicyNamespace& ns,
|
| - const PolicyMap& previous,
|
| - const PolicyMap& current) {
|
| - scoped_ptr<base::DictionaryValue> policy_dict(new base::DictionaryValue());
|
| - for (PolicyMap::const_iterator it = current.begin(); it != current.end();
|
| - it++) {
|
| - // TODO(lukasza): Use policy::Schema::Normalize() for schema verification.
|
| - policy_dict->Set(it->first, it->second.value->DeepCopy());
|
| - }
|
| - UpdatePolicies(policy_dict.get());
|
| -}
|
| -
|
| -void PolicyServiceWatcher::OnPolicyServiceInitialized(PolicyDomain domain) {
|
| - PolicyNamespace ns = GetPolicyNamespace();
|
| - const PolicyMap& current = policy_service_->GetPolicies(ns);
|
| - OnPolicyUpdated(ns, current, current);
|
| -}
|
| -
|
| -void PolicyServiceWatcher::StartWatchingInternal() {
|
| - // Listen for future policy changes.
|
| - policy_service_->AddObserver(POLICY_DOMAIN_CHROME, this);
|
| -
|
| - // Process current policy state.
|
| - if (policy_service_->IsInitializationComplete(POLICY_DOMAIN_CHROME)) {
|
| - OnPolicyServiceInitialized(POLICY_DOMAIN_CHROME);
|
| - }
|
| -}
|
| -
|
| -void PolicyServiceWatcher::StopWatchingInternal() {
|
| - policy_service_->RemoveObserver(POLICY_DOMAIN_CHROME, this);
|
| -}
|
| -
|
| -scoped_ptr<PolicyServiceWatcher> PolicyServiceWatcher::CreateFromPolicyLoader(
|
| - const scoped_refptr<base::SingleThreadTaskRunner>&
|
| - policy_service_task_runner,
|
| - scoped_ptr<AsyncPolicyLoader> async_policy_loader) {
|
| - // TODO(lukasza): Schema below should ideally only cover Chromoting-specific
|
| - // policies (expecting perf and maintanability improvement, but no functional
|
| - // impact).
|
| - Schema schema = Schema::Wrap(GetChromeSchemaData());
|
| -
|
| - scoped_ptr<SchemaRegistry> schema_registry(new SchemaRegistry());
|
| - schema_registry->RegisterComponent(GetPolicyNamespace(), schema);
|
| -
|
| - scoped_ptr<AsyncPolicyProvider> policy_provider(new AsyncPolicyProvider(
|
| - schema_registry.get(), async_policy_loader.Pass()));
|
| - policy_provider->Init(schema_registry.get());
|
| -
|
| - PolicyServiceImpl::Providers providers;
|
| - providers.push_back(policy_provider.get());
|
| - scoped_ptr<PolicyService> policy_service(new PolicyServiceImpl(providers));
|
| -
|
| - return make_scoped_ptr(new PolicyServiceWatcher(
|
| - policy_service_task_runner, policy_service.Pass(), policy_provider.Pass(),
|
| - schema_registry.Pass()));
|
| -}
|
| -
|
| -scoped_ptr<PolicyWatcher> PolicyWatcher::Create(
|
| - policy::PolicyService* policy_service,
|
| - const scoped_refptr<base::SingleThreadTaskRunner>& network_task_runner) {
|
| -#if defined(OS_CHROMEOS)
|
| - DCHECK(policy_service);
|
| - return make_scoped_ptr(new PolicyServiceWatcher(
|
| - content::BrowserThread::GetMessageLoopProxyForThread(
|
| - content::BrowserThread::UI),
|
| - policy_service));
|
| -#elif defined(OS_WIN)
|
| - DCHECK(!policy_service);
|
| - static const wchar_t kRegistryKey[] = L"SOFTWARE\\Policies\\Google\\Chrome";
|
| - return PolicyServiceWatcher::CreateFromPolicyLoader(
|
| - network_task_runner,
|
| - PolicyLoaderWin::Create(network_task_runner, kRegistryKey));
|
| -#elif defined(OS_MACOSX)
|
| - CFStringRef bundle_id = CFSTR("com.google.Chrome");
|
| - DCHECK(!policy_service);
|
| - return PolicyServiceWatcher::CreateFromPolicyLoader(
|
| - network_task_runner,
|
| - make_scoped_ptr(new PolicyLoaderMac(
|
| - network_task_runner,
|
| - policy::PolicyLoaderMac::GetManagedPolicyPath(bundle_id),
|
| - new MacPreferences(), bundle_id)));
|
| -#elif defined(OS_POSIX) && !defined(OS_ANDROID)
|
| - DCHECK(!policy_service);
|
| - // Always read the Chrome policies (even on Chromium) so that policy
|
| - // enforcement can't be bypassed by running Chromium.
|
| - static const base::FilePath::CharType kPolicyDir[] =
|
| - FILE_PATH_LITERAL("/etc/opt/chrome/policies");
|
| - return PolicyServiceWatcher::CreateFromPolicyLoader(
|
| - network_task_runner, make_scoped_ptr(new ConfigDirPolicyLoader(
|
| - network_task_runner, base::FilePath(kPolicyDir),
|
| - POLICY_SCOPE_MACHINE)));
|
| -#else
|
| -#error OS that is not yet supported by PolicyWatcher code.
|
| -#endif
|
| -}
|
| -
|
| -} // namespace policy_hack
|
| -} // namespace remoting
|
|
|