1ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen// Copyright (c) 2011 The Chromium Authors. All rights reserved. 2731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick// Use of this source code is governed by a BSD-style license that can be 3731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick// found in the LICENSE file. 4731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick 5731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick#include "chrome/browser/sync/sessions/sync_session_context.h" 6731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick 7731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick#include "chrome/browser/sync/util/extensions_activity_monitor.h" 8731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick#include "chrome/browser/sync/sessions/session_state.h" 9dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen#include "content/browser/browser_thread.h" 10731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick 11731df977c0511bca2206b5f333555b1205ff1f43Iain Merricknamespace browser_sync { 12731df977c0511bca2206b5f333555b1205ff1f43Iain Merricknamespace sessions { 13731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick 14731df977c0511bca2206b5f333555b1205ff1f43Iain MerrickSyncSessionContext::SyncSessionContext( 15731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick ServerConnectionManager* connection_manager, 16731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick syncable::DirectoryManager* directory_manager, 17731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick ModelSafeWorkerRegistrar* model_safe_worker_registrar, 18731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick const std::vector<SyncEngineEventListener*>& listeners) 19731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick : resolver_(NULL), 20731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick connection_manager_(connection_manager), 21731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick directory_manager_(directory_manager), 22731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick registrar_(model_safe_worker_registrar), 23731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick extensions_activity_monitor_(new ExtensionsActivityMonitor()), 2472a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen notifications_enabled_(false), 2572a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen max_commit_batch_size_(kDefaultMaxCommitBatchSize) { 26731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick std::vector<SyncEngineEventListener*>::const_iterator it; 27731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick for (it = listeners.begin(); it != listeners.end(); ++it) 28731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick listeners_.AddObserver(*it); 29731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick} 30731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick 31731df977c0511bca2206b5f333555b1205ff1f43Iain MerrickSyncSessionContext::~SyncSessionContext() { 32731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick // In unittests, there may be no UI thread, so the above will fail. 33731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick if (!BrowserThread::DeleteSoon(BrowserThread::UI, FROM_HERE, 34731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick extensions_activity_monitor_)) { 35731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick delete extensions_activity_monitor_; 36731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick } 37731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick} 38731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick 39731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick} // namespace sessions 40731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick} // namespace browser_sync 41