summaryrefslogtreecommitdiffstats
path: root/content/browser/background_sync/background_sync_manager.cc
diff options
context:
space:
mode:
authorjkarlin <jkarlin@chromium.org>2015-04-17 13:31:33 -0700
committerCommit bot <commit-bot@chromium.org>2015-04-17 20:32:27 +0000
commitf2c1c5edcb79315410aee18d17b6a193104ea2f2 (patch)
tree24f520b6d8b7579bc6b097ad6b8114fb35e9a9ff /content/browser/background_sync/background_sync_manager.cc
parentf3e19a5ac737426e91d4307055f9b38e275865d6 (diff)
downloadchromium_src-f2c1c5edcb79315410aee18d17b6a193104ea2f2.zip
chromium_src-f2c1c5edcb79315410aee18d17b6a193104ea2f2.tar.gz
chromium_src-f2c1c5edcb79315410aee18d17b6a193104ea2f2.tar.bz2
[BackgroundSyncManager] Add a network connection observer
Adds a BackgroundSyncNetworkObserver class to notify BackgroundSyncManager when the network connection has changed and to test whether a registration has met the necessary network conditions to run. BUG=477366 Review URL: https://codereview.chromium.org/1090913002 Cr-Commit-Position: refs/heads/master@{#325703}
Diffstat (limited to 'content/browser/background_sync/background_sync_manager.cc')
-rw-r--r--content/browser/background_sync/background_sync_manager.cc12
1 files changed, 12 insertions, 0 deletions
diff --git a/content/browser/background_sync/background_sync_manager.cc b/content/browser/background_sync/background_sync_manager.cc
index 4b679bc..6fb33bf 100644
--- a/content/browser/background_sync/background_sync_manager.cc
+++ b/content/browser/background_sync/background_sync_manager.cc
@@ -6,6 +6,7 @@
#include "base/barrier_closure.h"
#include "base/bind.h"
+#include "content/browser/background_sync/background_sync_network_observer.h"
#include "content/browser/service_worker/service_worker_context_wrapper.h"
#include "content/browser/service_worker/service_worker_storage.h"
#include "content/public/browser/browser_thread.h"
@@ -45,6 +46,8 @@ scoped_ptr<BackgroundSyncManager> BackgroundSyncManager::Create(
}
BackgroundSyncManager::~BackgroundSyncManager() {
+ DCHECK_CURRENTLY_ON(BrowserThread::IO);
+
service_worker_context_->RemoveObserver(this);
}
@@ -155,6 +158,10 @@ BackgroundSyncManager::BackgroundSyncManager(
disabled_(false),
weak_ptr_factory_(this) {
service_worker_context_->AddObserver(this);
+
+ network_observer_.reset(new BackgroundSyncNetworkObserver(
+ base::Bind(&BackgroundSyncManager::OnNetworkChanged,
+ weak_ptr_factory_.GetWeakPtr())));
}
void BackgroundSyncManager::Init() {
@@ -537,6 +544,11 @@ void BackgroundSyncManager::OnStorageWipedImpl(const base::Closure& callback) {
InitImpl(callback);
}
+void BackgroundSyncManager::OnNetworkChanged() {
+ // TODO(jkarlin): Run the scheduling algorithm here if initialized and not
+ // disabled.
+}
+
void BackgroundSyncManager::PendingStatusAndRegistrationCallback(
const StatusAndRegistrationCallback& callback,
ErrorType error,