Index: components/copresence/handlers/gcm_handler_impl.cc |
diff --git a/components/copresence/handlers/gcm_handler_impl.cc b/components/copresence/handlers/gcm_handler_impl.cc |
index ccf720310f4d544d6279aa05fa2b42b6d5080a2d..5b50e2fa1ccbc8a0d9ef0a21b28be0f2a891eed7 100644 |
--- a/components/copresence/handlers/gcm_handler_impl.cc |
+++ b/components/copresence/handlers/gcm_handler_impl.cc |
@@ -43,9 +43,11 @@ const char GCMHandlerImpl::kGcmMessageKey[] = "PUSH_MESSAGE"; |
// Public functions. |
GCMHandlerImpl::GCMHandlerImpl(gcm::GCMDriver* gcm_driver, |
- DirectiveHandler* directive_handler) |
+ DirectiveHandler* directive_handler, |
+ const MessagesCallback& new_messages_callback) |
: driver_(gcm_driver), |
directive_handler_(directive_handler), |
+ new_messages_callback_(new_messages_callback), |
registration_callback_(base::Bind(&GCMHandlerImpl::RegistrationComplete, |
base::Unretained(this))) { |
DCHECK(driver_); |
@@ -105,12 +107,13 @@ void GCMHandlerImpl::OnMessage(const std::string& app_id, |
DVLOG(3) << "Processing " << push_message.report().directive_size() |
<< " directive(s) from GCM message"; |
- for (const Directive& directive : push_message.report().directive()) |
+ for (const Directive& directive : push_message.report().directive()) { |
+ // TODO(ckehoe): Use a callback here so GCMHandler |
+ // is decoupled from DirectiveHandler. |
directive_handler_->AddDirective(directive); |
+ } |
- int message_count = push_message.report().subscribed_message_size(); |
- LOG_IF(WARNING, message_count > 0) |
- << "Discarding " << message_count << " copresence messages sent via GCM"; |
+ new_messages_callback_.Run(push_message.report().subscribed_message()); |
} |
void GCMHandlerImpl::OnMessagesDeleted(const std::string& app_id) { |