| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 "sync/notifier/invalidation_notifier.h" | 5 #include "sync/notifier/invalidation_notifier.h" |
| 6 | 6 |
| 7 #include "base/bind.h" |
| 7 #include "base/logging.h" | 8 #include "base/logging.h" |
| 8 #include "base/message_loop_proxy.h" | 9 #include "base/message_loop_proxy.h" |
| 9 #include "base/metrics/histogram.h" | 10 #include "base/metrics/histogram.h" |
| 11 #include "google/cacheinvalidation/include/invalidation-client-factory.h" |
| 10 #include "jingle/notifier/listener/push_client.h" | 12 #include "jingle/notifier/listener/push_client.h" |
| 11 #include "net/url_request/url_request_context.h" | 13 #include "net/url_request/url_request_context.h" |
| 12 #include "sync/internal_api/public/base/model_type_payload_map.h" | 14 #include "sync/internal_api/public/base/model_type_payload_map.h" |
| 13 #include "sync/notifier/sync_notifier_observer.h" | 15 #include "sync/notifier/sync_notifier_observer.h" |
| 14 #include "talk/xmpp/jid.h" | 16 #include "talk/xmpp/jid.h" |
| 15 #include "talk/xmpp/xmppclientsettings.h" | 17 #include "talk/xmpp/xmppclientsettings.h" |
| 16 | 18 |
| 17 namespace syncer { | 19 namespace syncer { |
| 18 | 20 |
| 19 InvalidationNotifier::InvalidationNotifier( | 21 InvalidationNotifier::InvalidationNotifier( |
| (...skipping 10 matching lines...) Expand all Loading... |
| 30 invalidation_client_(push_client.Pass()) { | 32 invalidation_client_(push_client.Pass()) { |
| 31 } | 33 } |
| 32 | 34 |
| 33 InvalidationNotifier::~InvalidationNotifier() { | 35 InvalidationNotifier::~InvalidationNotifier() { |
| 34 DCHECK(CalledOnValidThread()); | 36 DCHECK(CalledOnValidThread()); |
| 35 } | 37 } |
| 36 | 38 |
| 37 void InvalidationNotifier::UpdateRegisteredIds(SyncNotifierObserver* handler, | 39 void InvalidationNotifier::UpdateRegisteredIds(SyncNotifierObserver* handler, |
| 38 const ObjectIdSet& ids) { | 40 const ObjectIdSet& ids) { |
| 39 DCHECK(CalledOnValidThread()); | 41 DCHECK(CalledOnValidThread()); |
| 40 invalidation_client_.RegisterIds(helper_.UpdateRegisteredIds(handler, ids)); | 42 const ObjectIdSet& all_registered_ids = |
| 43 helper_.UpdateRegisteredIds(handler, ids); |
| 44 invalidation_client_.UpdateRegisteredIds(all_registered_ids); |
| 41 } | 45 } |
| 42 | 46 |
| 43 void InvalidationNotifier::SetUniqueId(const std::string& unique_id) { | 47 void InvalidationNotifier::SetUniqueId(const std::string& unique_id) { |
| 44 DCHECK(CalledOnValidThread()); | 48 DCHECK(CalledOnValidThread()); |
| 45 invalidation_client_id_ = unique_id; | 49 invalidation_client_id_ = unique_id; |
| 46 DVLOG(1) << "Setting unique ID to " << unique_id; | 50 DVLOG(1) << "Setting unique ID to " << unique_id; |
| 47 CHECK(!invalidation_client_id_.empty()); | 51 CHECK(!invalidation_client_id_.empty()); |
| 48 } | 52 } |
| 49 | 53 |
| 50 void InvalidationNotifier::SetStateDeprecated(const std::string& state) { | 54 void InvalidationNotifier::SetStateDeprecated(const std::string& state) { |
| (...skipping 13 matching lines...) Expand all Loading... |
| 64 UMA_HISTOGRAM_BOOLEAN("InvalidationNotifier.UsefulSetState", true); | 68 UMA_HISTOGRAM_BOOLEAN("InvalidationNotifier.UsefulSetState", true); |
| 65 } else { | 69 } else { |
| 66 UMA_HISTOGRAM_BOOLEAN("InvalidationNotifier.UsefulSetState", false); | 70 UMA_HISTOGRAM_BOOLEAN("InvalidationNotifier.UsefulSetState", false); |
| 67 } | 71 } |
| 68 } | 72 } |
| 69 | 73 |
| 70 void InvalidationNotifier::UpdateCredentials( | 74 void InvalidationNotifier::UpdateCredentials( |
| 71 const std::string& email, const std::string& token) { | 75 const std::string& email, const std::string& token) { |
| 72 if (state_ == STOPPED) { | 76 if (state_ == STOPPED) { |
| 73 invalidation_client_.Start( | 77 invalidation_client_.Start( |
| 78 base::Bind(&invalidation::CreateInvalidationClient), |
| 74 invalidation_client_id_, client_info_, invalidation_state_, | 79 invalidation_client_id_, client_info_, invalidation_state_, |
| 75 initial_max_invalidation_versions_, | 80 initial_max_invalidation_versions_, |
| 76 invalidation_state_tracker_, | 81 invalidation_state_tracker_, |
| 77 this); | 82 this); |
| 78 invalidation_state_.clear(); | 83 invalidation_state_.clear(); |
| 79 state_ = STARTED; | 84 state_ = STARTED; |
| 80 } | 85 } |
| 81 invalidation_client_.UpdateCredentials(email, token); | 86 invalidation_client_.UpdateCredentials(email, token); |
| 82 } | 87 } |
| 83 | 88 |
| (...skipping 12 matching lines...) Expand all Loading... |
| 96 helper_.EmitOnNotificationsEnabled(); | 101 helper_.EmitOnNotificationsEnabled(); |
| 97 } | 102 } |
| 98 | 103 |
| 99 void InvalidationNotifier::OnNotificationsDisabled( | 104 void InvalidationNotifier::OnNotificationsDisabled( |
| 100 NotificationsDisabledReason reason) { | 105 NotificationsDisabledReason reason) { |
| 101 DCHECK(CalledOnValidThread()); | 106 DCHECK(CalledOnValidThread()); |
| 102 helper_.EmitOnNotificationsDisabled(reason); | 107 helper_.EmitOnNotificationsDisabled(reason); |
| 103 } | 108 } |
| 104 | 109 |
| 105 } // namespace syncer | 110 } // namespace syncer |
| OLD | NEW |