Chromium Code Reviews| Index: components/gcm_driver/gcm_driver.cc |
| diff --git a/components/gcm_driver/gcm_driver.cc b/components/gcm_driver/gcm_driver.cc |
| index 4e17801f33539a8a781a0a444656b10e2f3dd7f6..90892e588731e8054108b5bb2d0649776ecbed8b 100644 |
| --- a/components/gcm_driver/gcm_driver.cc |
| +++ b/components/gcm_driver/gcm_driver.cc |
| @@ -13,8 +13,17 @@ |
| namespace gcm { |
| +namespace { |
| + |
| +// TODO(peter): Implement an event for GCMAppHandlers that should be called |
| +// when decryption of an incoming message has failed. |
| +void DecryptionFailedCallback( |
|
jianli
2015/10/06 22:30:43
nit: this should be placed after the constant line
Peter Beverloo
2015/10/09 10:13:04
Done.
|
| + GCMEncryptionProvider::DecryptionFailure reason) {} |
| + |
| const size_t kMaxSenders = 100; |
| +} // namespace |
| + |
| InstanceIDHandler::InstanceIDHandler() { |
| } |
| @@ -258,6 +267,20 @@ void GCMDriver::ClearCallbacks() { |
| send_callbacks_.clear(); |
| } |
| +void GCMDriver::DispatchMessage(const std::string& app_id, |
| + const IncomingMessage& message) { |
| + if (!encryption_provider_.IsEncryptedMessage(message)) { |
| + GetAppHandler(app_id)->OnMessage(app_id, message); |
| + return; |
| + } |
| + |
| + encryption_provider_.DecryptMessage( |
| + app_id, message, |
| + base::Bind(&GCMDriver::DispatchMessage, |
| + weak_ptr_factory_.GetWeakPtr(), app_id), |
| + base::Bind(&DecryptionFailedCallback)); |
| +} |
| + |
| void GCMDriver::RegisterAfterUnregister( |
| const std::string& app_id, |
| const std::vector<std::string>& normalized_sender_ids, |