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

Unified Diff: remoting/host/policy_hack/policy_watcher.cc

Issue 886913002: Always run PolicyWatcher on UI thread in It2Me host. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 11 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: remoting/host/policy_hack/policy_watcher.cc
diff --git a/remoting/host/policy_hack/policy_watcher.cc b/remoting/host/policy_hack/policy_watcher.cc
index ff0da0e6215753a43618da8682e62042da1b2899..2d20f203b91465394d87d43816bd88a6bdb02152 100644
--- a/remoting/host/policy_hack/policy_watcher.cc
+++ b/remoting/host/policy_hack/policy_watcher.cc
@@ -278,42 +278,45 @@ scoped_ptr<PolicyWatcher> PolicyWatcher::CreateFromPolicyLoader(
scoped_ptr<PolicyWatcher> PolicyWatcher::Create(
policy::PolicyService* policy_service,
- const scoped_refptr<base::SingleThreadTaskRunner>& network_task_runner) {
+ const scoped_refptr<base::SingleThreadTaskRunner>& current_task_runner,
+ const scoped_refptr<base::SingleThreadTaskRunner>& io_task_runner) {
+ DCHECK(current_task_runner->BelongsToCurrentThread());
Łukasz Anforowicz 2015/01/30 05:35:55 It might be possible to avoid explicitly passing c
Sergey Ulanov 2015/01/30 19:33:45 base::ThreadTaskRunnerHandle::Get() is the preferr
+
#if defined(OS_CHROMEOS)
+ // On Chrome OS the PolicyService is owned by the browser.
DCHECK(policy_service);
return make_scoped_ptr(
new PolicyWatcher(content::BrowserThread::GetMessageLoopProxyForThread(
content::BrowserThread::UI),
Łukasz Anforowicz 2015/01/30 05:35:55 This call to GetMessageLoopProxyForThread should p
Sergey Ulanov 2015/01/30 19:33:45 removed current_task_runner
policy_service, nullptr, nullptr, nullptr));
-#elif defined(OS_WIN)
+#else // !defined(OS_CHROMEOS)
DCHECK(!policy_service);
- // Always read the Chrome policies (even on Chromium) so that policy
- // enforcement can't be bypassed by running Chromium.
- // Note that this comment applies to all of Win/Mac/Posix branches below.
- static const wchar_t kRegistryKey[] = L"SOFTWARE\\Policies\\Google\\Chrome";
- return PolicyWatcher::CreateFromPolicyLoader(
- network_task_runner,
- policy::PolicyLoaderWin::Create(network_task_runner, kRegistryKey));
+
+ // Create platform-specific PolicyLoader. Always read the Chrome policies
+ // (even on Chromium) so that policy enforcement can't be bypassed by running
+ // Chromium.
+ scoped_ptr<policy::AsyncPolicyLoader> policy_loader;
+#if defined(OS_WIN)
+ policy_loader = policy::PolicyLoaderWin::Create(
+ io_task_runner, L"SOFTWARE\\Policies\\Google\\Chrome");
#elif defined(OS_MACOSX)
CFStringRef bundle_id = CFSTR("com.google.Chrome");
- DCHECK(!policy_service);
- return PolicyWatcher::CreateFromPolicyLoader(
- network_task_runner,
- make_scoped_ptr(new policy::PolicyLoaderMac(
- network_task_runner,
- policy::PolicyLoaderMac::GetManagedPolicyPath(bundle_id),
- new MacPreferences(), bundle_id)));
+ policy_loader.reset(new policy::PolicyLoaderMac(
+ io_task_runner,
+ policy::PolicyLoaderMac::GetManagedPolicyPath(bundle_id),
+ new MacPreferences(), bundle_id));
#elif defined(OS_POSIX) && !defined(OS_ANDROID)
- DCHECK(!policy_service);
- static const base::FilePath::CharType kPolicyDir[] =
- FILE_PATH_LITERAL("/etc/opt/chrome/policies");
- return PolicyWatcher::CreateFromPolicyLoader(
- network_task_runner, make_scoped_ptr(new policy::ConfigDirPolicyLoader(
- network_task_runner, base::FilePath(kPolicyDir),
- policy::POLICY_SCOPE_MACHINE)));
+ policy_loader.reset(new policy::ConfigDirPolicyLoader(
+ io_task_runner,
+ base::FilePath(FILE_PATH_LITERAL("/etc/opt/chrome/policies")),
+ policy::POLICY_SCOPE_MACHINE));
#else
#error OS that is not yet supported by PolicyWatcher code.
#endif
+
+ return PolicyWatcher::CreateFromPolicyLoader(current_task_runner,
+ policy_loader.Pass());
+#endif // !(OS_CHROMEOS)
}
} // namespace policy_hack

Powered by Google App Engine
This is Rietveld 408576698