summaryrefslogtreecommitdiffstats
path: root/chrome/browser/sync/sessions/sync_session_context.cc
diff options
context:
space:
mode:
Diffstat (limited to 'chrome/browser/sync/sessions/sync_session_context.cc')
-rw-r--r--chrome/browser/sync/sessions/sync_session_context.cc41
1 files changed, 41 insertions, 0 deletions
diff --git a/chrome/browser/sync/sessions/sync_session_context.cc b/chrome/browser/sync/sessions/sync_session_context.cc
new file mode 100644
index 0000000..7b69568
--- /dev/null
+++ b/chrome/browser/sync/sessions/sync_session_context.cc
@@ -0,0 +1,41 @@
+// Copyright (c) 2010 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "chrome/browser/sync/sessions/sync_session_context.h"
+
+#include "chrome/browser/chrome_thread.h"
+#include "chrome/browser/sync/util/extensions_activity_monitor.h"
+#include "chrome/browser/sync/sessions/session_state.h"
+
+namespace browser_sync {
+namespace sessions {
+
+SyncSessionContext::SyncSessionContext(
+ ServerConnectionManager* connection_manager,
+ syncable::DirectoryManager* directory_manager,
+ ModelSafeWorkerRegistrar* model_safe_worker_registrar)
+ : resolver_(NULL),
+ syncer_event_channel_(NULL),
+ connection_manager_(connection_manager),
+ directory_manager_(directory_manager),
+ registrar_(model_safe_worker_registrar),
+ extensions_activity_monitor_(new ExtensionsActivityMonitor()),
+ notifications_enabled_(false) {
+}
+
+SyncSessionContext::~SyncSessionContext() {
+ // In unittests, there may be no UI thread, so the above will fail.
+ if (!ChromeThread::DeleteSoon(ChromeThread::UI, FROM_HERE,
+ extensions_activity_monitor_)) {
+ delete extensions_activity_monitor_;
+ }
+}
+
+void SyncSessionContext::set_last_snapshot(
+ const SyncSessionSnapshot& snapshot) {
+ previous_session_snapshot_.reset(new SyncSessionSnapshot(snapshot));
+}
+
+} // namespace sessions
+} // namespace browser_sync