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

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

Issue 6091002: Refactor the windows policy provider to use AsynchronousPolicyProvider. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: fix windows tests Created 10 years 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
« no previous file with comments | « chrome/browser/policy/file_based_policy_loader.h ('k') | chrome/chrome_browser.gypi » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/policy/file_based_policy_loader.cc
diff --git a/chrome/browser/policy/file_based_policy_loader.cc b/chrome/browser/policy/file_based_policy_loader.cc
index 5d49f989edae0b54c32855cdeed63cb1ae195b21..4da6192e3e2886b45e7ef1d3c670ed1e6f730f9c 100644
--- a/chrome/browser/policy/file_based_policy_loader.cc
+++ b/chrome/browser/policy/file_based_policy_loader.cc
@@ -21,13 +21,14 @@ namespace policy {
FileBasedPolicyLoader::FileBasedPolicyLoader(
FileBasedPolicyProvider::ProviderDelegate* provider_delegate)
- : AsynchronousPolicyLoader(provider_delegate),
+ : AsynchronousPolicyLoader(provider_delegate,
+ kReloadIntervalMinutes),
config_file_path_(provider_delegate->config_file_path()),
- reload_task_(NULL),
- reload_interval_(base::TimeDelta::FromMinutes(kReloadIntervalMinutes)),
settle_interval_(base::TimeDelta::FromSeconds(kSettleIntervalSeconds)) {
}
+FileBasedPolicyLoader::~FileBasedPolicyLoader() {}
+
class FileBasedPolicyWatcherDelegate : public FilePathWatcher::Delegate {
public:
explicit FileBasedPolicyWatcherDelegate(
@@ -49,27 +50,6 @@ class FileBasedPolicyWatcherDelegate : public FilePathWatcher::Delegate {
DISALLOW_COPY_AND_ASSIGN(FileBasedPolicyWatcherDelegate);
};
-void FileBasedPolicyLoader::Init() {
- AsynchronousPolicyLoader::Init();
-
- // Initialization can happen early when the file thread is not yet available,
- // but the watcher's initialization must be done on the file thread. Posting
- // to a to the file directly before the file thread is initialized will cause
- // the task to be forgotten. Instead, post a task to the ui thread to delay
- // the remainder of initialization until threading is fully initialized.
- BrowserThread::PostTask(
- BrowserThread::UI, FROM_HERE,
- NewRunnableMethod(this,
- &FileBasedPolicyLoader::InitAfterFileThreadAvailable));
-}
-
-void FileBasedPolicyLoader::Stop() {
- AsynchronousPolicyLoader::Stop();
- BrowserThread::PostTask(
- BrowserThread::FILE, FROM_HERE,
- NewRunnableMethod(this, &FileBasedPolicyLoader::StopOnFileThread));
-}
-
void FileBasedPolicyLoader::OnFilePathChanged(
const FilePath& path) {
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::FILE));
@@ -81,8 +61,6 @@ void FileBasedPolicyLoader::OnError() {
<< " failed.";
}
-FileBasedPolicyLoader::~FileBasedPolicyLoader() {}
-
void FileBasedPolicyLoader::Reload() {
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::FILE));
@@ -111,14 +89,6 @@ void FileBasedPolicyLoader::Reload() {
ScheduleFallbackReloadTask();
}
-void FileBasedPolicyLoader::InitAfterFileThreadAvailable() {
- if (provider()) {
- BrowserThread::PostTask(
- BrowserThread::FILE, FROM_HERE,
- NewRunnableMethod(this, &FileBasedPolicyLoader::InitOnFileThread));
- }
-}
-
void FileBasedPolicyLoader::InitOnFileThread() {
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::FILE));
watcher_.reset(new FilePathWatcher);
@@ -138,40 +108,7 @@ void FileBasedPolicyLoader::InitOnFileThread() {
void FileBasedPolicyLoader::StopOnFileThread() {
watcher_.reset();
- if (reload_task_) {
- reload_task_->Cancel();
- reload_task_ = NULL;
- }
-}
-
-void FileBasedPolicyLoader::ScheduleReloadTask(
- const base::TimeDelta& delay) {
- DCHECK(BrowserThread::CurrentlyOn(BrowserThread::FILE));
-
- if (reload_task_)
- reload_task_->Cancel();
-
- reload_task_ =
- NewRunnableMethod(this, &FileBasedPolicyLoader::ReloadFromTask);
- BrowserThread::PostDelayedTask(BrowserThread::FILE, FROM_HERE, reload_task_,
- delay.InMilliseconds());
-}
-
-void FileBasedPolicyLoader::ScheduleFallbackReloadTask() {
- // As a safeguard in case that the load delegate failed to timely notice a
- // change in policy, schedule a reload task that'll make us recheck after a
- // reasonable interval.
- ScheduleReloadTask(reload_interval_);
-}
-
-void FileBasedPolicyLoader::ReloadFromTask() {
- DCHECK(BrowserThread::CurrentlyOn(BrowserThread::FILE));
-
- // Drop the reference to the reload task, since the task might be the only
- // referer that keeps us alive, so we should not Cancel() it.
- reload_task_ = NULL;
-
- Reload();
+ AsynchronousPolicyLoader::StopOnFileThread();
}
bool FileBasedPolicyLoader::IsSafeToReloadPolicy(
« no previous file with comments | « chrome/browser/policy/file_based_policy_loader.h ('k') | chrome/chrome_browser.gypi » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698