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