Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(218)

Side by Side Diff: chrome/browser/sync/notifier/p2p_notifier.cc

Issue 7753023: [Sync] Add tests for migration triggered by notifications (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 9 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/sync/notifier/p2p_notifier.h" 5 #include "chrome/browser/sync/notifier/p2p_notifier.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 8
9 #include "base/logging.h" 9 #include "base/logging.h"
10 #include "base/message_loop_proxy.h" 10 #include "base/message_loop_proxy.h"
11 #include "base/json/json_reader.h" 11 #include "base/json/json_reader.h"
12 #include "base/json/json_writer.h" 12 #include "base/json/json_writer.h"
13 #include "base/values.h" 13 #include "base/values.h"
14 #include "chrome/browser/sync/notifier/sync_notifier_observer.h" 14 #include "chrome/browser/sync/notifier/sync_notifier_observer.h"
15 #include "chrome/browser/sync/protocol/service_constants.h" 15 #include "chrome/browser/sync/protocol/service_constants.h"
16 #include "chrome/browser/sync/syncable/model_type_payload_map.h" 16 #include "chrome/browser/sync/syncable/model_type_payload_map.h"
17 17
18 namespace sync_notifier { 18 namespace sync_notifier {
19 19
20 const char* kSyncP2PNotificationChannel = "http://www.google.com/chrome/sync";
21
20 namespace { 22 namespace {
21 23
22 const char kSyncNotificationChannel[] = "http://www.google.com/chrome/sync";
23
24 const char kNotifySelf[] = "notifySelf"; 24 const char kNotifySelf[] = "notifySelf";
25 const char kNotifyOthers[] = "notifyOthers"; 25 const char kNotifyOthers[] = "notifyOthers";
26 const char kNotifyAll[] = "notifyAll"; 26 const char kNotifyAll[] = "notifyAll";
27 27
28 const char kSenderIdKey[] = "senderId"; 28 const char kSenderIdKey[] = "senderId";
29 const char kNotificationTypeKey[] = "notificationType"; 29 const char kNotificationTypeKey[] = "notificationType";
30 const char kChangedTypesKey[] = "changedTypes"; 30 const char kChangedTypesKey[] = "changedTypes";
31 31
32 } // namespace 32 } // namespace
33 33
(...skipping 152 matching lines...) Expand 10 before | Expand all | Expand 10 after
186 // If already logged in, the new credentials will take effect on the 186 // If already logged in, the new credentials will take effect on the
187 // next reconnection. 187 // next reconnection.
188 talk_mediator_->SetAuthToken(email, token, SYNC_SERVICE_NAME); 188 talk_mediator_->SetAuthToken(email, token, SYNC_SERVICE_NAME);
189 if (!logged_in_) { 189 if (!logged_in_) {
190 if (!talk_mediator_->Login()) { 190 if (!talk_mediator_->Login()) {
191 LOG(DFATAL) << "Could not login for " << email; 191 LOG(DFATAL) << "Could not login for " << email;
192 return; 192 return;
193 } 193 }
194 194
195 notifier::Subscription subscription; 195 notifier::Subscription subscription;
196 subscription.channel = kSyncNotificationChannel; 196 subscription.channel = kSyncP2PNotificationChannel;
197 // There may be some subtle issues around case sensitivity of the 197 // There may be some subtle issues around case sensitivity of the
198 // from field, but it doesn't matter too much since this is only 198 // from field, but it doesn't matter too much since this is only
199 // used in p2p mode (which is only used in testing). 199 // used in p2p mode (which is only used in testing).
200 subscription.from = email; 200 subscription.from = email;
201 talk_mediator_->AddSubscription(subscription); 201 talk_mediator_->AddSubscription(subscription);
202 202
203 logged_in_ = true; 203 logged_in_ = true;
204 } 204 }
205 } 205 }
206 206
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
244 DCHECK(parent_message_loop_proxy_->BelongsToCurrentThread()); 244 DCHECK(parent_message_loop_proxy_->BelongsToCurrentThread());
245 VLOG(1) << "Received notification " << notification.ToString(); 245 VLOG(1) << "Received notification " << notification.ToString();
246 if (!logged_in_) { 246 if (!logged_in_) {
247 VLOG(1) << "Not logged in yet -- not emitting notification"; 247 VLOG(1) << "Not logged in yet -- not emitting notification";
248 return; 248 return;
249 } 249 }
250 if (!notifications_enabled_) { 250 if (!notifications_enabled_) {
251 VLOG(1) << "Notifications not enabled -- not emitting notification"; 251 VLOG(1) << "Notifications not enabled -- not emitting notification";
252 return; 252 return;
253 } 253 }
254 if (notification.channel != kSyncNotificationChannel) { 254 if (notification.channel != kSyncP2PNotificationChannel) {
255 LOG(WARNING) << "Notification from unexpected source " 255 LOG(WARNING) << "Notification from unexpected source "
256 << notification.channel; 256 << notification.channel;
257 } 257 }
258 P2PNotificationData notification_data; 258 P2PNotificationData notification_data;
259 if (!notification_data.FromString(notification.data)) { 259 if (!notification_data.FromString(notification.data)) {
260 LOG(WARNING) << "Could not parse notification data from " 260 LOG(WARNING) << "Could not parse notification data from "
261 << notification.data; 261 << notification.data;
262 notification_data = 262 notification_data =
263 P2PNotificationData(unique_id_, NOTIFY_ALL, enabled_types_); 263 P2PNotificationData(unique_id_, NOTIFY_ALL, enabled_types_);
264 } 264 }
(...skipping 18 matching lines...) Expand all
283 283
284 void P2PNotifier::SendNotificationDataForTest( 284 void P2PNotifier::SendNotificationDataForTest(
285 const P2PNotificationData& notification_data) { 285 const P2PNotificationData& notification_data) {
286 SendNotificationData(notification_data); 286 SendNotificationData(notification_data);
287 } 287 }
288 288
289 void P2PNotifier::SendNotificationData( 289 void P2PNotifier::SendNotificationData(
290 const P2PNotificationData& notification_data) { 290 const P2PNotificationData& notification_data) {
291 DCHECK(parent_message_loop_proxy_->BelongsToCurrentThread()); 291 DCHECK(parent_message_loop_proxy_->BelongsToCurrentThread());
292 notifier::Notification notification; 292 notifier::Notification notification;
293 notification.channel = kSyncNotificationChannel; 293 notification.channel = kSyncP2PNotificationChannel;
294 notification.data = notification_data.ToString(); 294 notification.data = notification_data.ToString();
295 VLOG(1) << "Sending XMPP notification: " << notification.ToString(); 295 VLOG(1) << "Sending XMPP notification: " << notification.ToString();
296 talk_mediator_->SendNotification(notification); 296 talk_mediator_->SendNotification(notification);
297 } 297 }
298 298
299 } // namespace sync_notifier 299 } // namespace sync_notifier
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698