Index: chrome/browser/sync/engine/net/server_connection_manager.cc |
diff --git a/chrome/browser/sync/engine/net/server_connection_manager.cc b/chrome/browser/sync/engine/net/server_connection_manager.cc |
index 7f53a29dd8a23564ff4803d22f8d936bdf2e73a7..4598588729386e3ee2b5c2766387cf6c7864c37d 100644 |
--- a/chrome/browser/sync/engine/net/server_connection_manager.cc |
+++ b/chrome/browser/sync/engine/net/server_connection_manager.cc |
@@ -10,6 +10,7 @@ |
#include <string> |
#include <vector> |
+#include "base/command_line.h" |
#include "build/build_config.h" |
#include "chrome/browser/sync/engine/net/url_translator.h" |
#include "chrome/browser/sync/engine/syncapi.h" |
@@ -17,6 +18,7 @@ |
#include "chrome/browser/sync/engine/syncproto.h" |
#include "chrome/browser/sync/protocol/sync.pb.h" |
#include "chrome/browser/sync/syncable/directory_manager.h" |
+#include "chrome/common/chrome_switches.h" |
#include "chrome/common/net/http_return.h" |
#include "googleurl/src/gurl.h" |
@@ -144,6 +146,7 @@ ServerConnectionManager::ServerConnectionManager( |
get_time_path_(kSyncServerGetTimePath), |
error_count_(0), |
channel_(new Channel(shutdown_event)), |
+ listeners_(new ObserverListThreadSafe<ServerConnectionEventListener>()), |
server_status_(HttpResponse::NONE), |
server_reachable_(false), |
reset_count_(0), |
@@ -155,10 +158,16 @@ ServerConnectionManager::~ServerConnectionManager() { |
} |
void ServerConnectionManager::NotifyStatusChanged() { |
- ServerConnectionEvent event = { ServerConnectionEvent::STATUS_CHANGED, |
- server_status_, |
- server_reachable_ }; |
- channel_->NotifyListeners(event); |
+ if (CommandLine::ForCurrentProcess()->HasSwitch( |
+ switches::kNewSyncerThread)) { |
+ listeners_->Notify(&ServerConnectionEventListener::OnServerConnectionEvent, |
+ ServerConnectionEvent2(server_status_, server_reachable_)); |
+ } else { |
+ ServerConnectionEvent event = { ServerConnectionEvent::STATUS_CHANGED, |
+ server_status_, |
+ server_reachable_ }; |
+ channel_->NotifyListeners(event); |
+ } |
} |
bool ServerConnectionManager::PostBufferWithCachedAuth( |
@@ -329,6 +338,16 @@ std::string ServerConnectionManager::GetServerHost() const { |
return gurl.host(); |
} |
+void ServerConnectionManager::AddListener( |
+ ServerConnectionEventListener* listener) { |
+ listeners_->AddObserver(listener); |
+} |
+ |
+void ServerConnectionManager::RemoveListener( |
+ ServerConnectionEventListener* listener) { |
+ listeners_->RemoveObserver(listener); |
+} |
+ |
ServerConnectionManager::Post* ServerConnectionManager::MakePost() { |
return NULL; // For testing. |
} |