Chromium Code Reviews| Index: components/gcm_driver/instance_id/instance_id_impl.cc |
| diff --git a/components/gcm_driver/instance_id/instance_id_impl.cc b/components/gcm_driver/instance_id/instance_id_impl.cc |
| index b10451fe0f7e41ede15a901481317a30710b07a9..013ddbff354b17dbb939a99a5990cfd39a905bab 100644 |
| --- a/components/gcm_driver/instance_id/instance_id_impl.cc |
| +++ b/components/gcm_driver/instance_id/instance_id_impl.cc |
| @@ -134,6 +134,36 @@ void InstanceIDImpl::DoGetToken( |
| weak_ptr_factory_.GetWeakPtr(), callback)); |
| } |
| +void InstanceIDImpl::ValidateToken(const std::string& authorized_entity, |
| + const std::string& scope, |
| + const std::string& token, |
| + const ValidateTokenCallback& callback) { |
| + DCHECK(!authorized_entity.empty()); |
| + DCHECK(!scope.empty()); |
| + DCHECK(!token.empty()); |
| + |
| + if (!delayed_task_controller_.CanRunTaskWithoutDelay()) { |
| + delayed_task_controller_.AddTask(base::Bind( |
| + &InstanceIDImpl::DoValidateToken, weak_ptr_factory_.GetWeakPtr(), |
| + authorized_entity, scope, token, callback)); |
| + return; |
| + } |
| + |
| + DoValidateToken(authorized_entity, scope, token, callback); |
| +} |
| + |
| +void InstanceIDImpl::DoValidateToken(const std::string& authorized_entity, |
| + const std::string& scope, |
| + const std::string& token, |
| + const ValidateTokenCallback& callback) { |
| + if (id_.empty()) { |
| + callback.Run(false /* is_valid */); |
|
Peter Beverloo
2017/03/20 23:50:13
nit: this potentially is a synchronous return path
johnme
2017/03/30 18:36:38
The convention in this file seems to be for synchr
|
| + return; |
| + } |
| + |
| + Handler()->ValidateToken(app_id(), authorized_entity, scope, token, callback); |
| +} |
| + |
| void InstanceIDImpl::DeleteTokenImpl(const std::string& authorized_entity, |
| const std::string& scope, |
| const DeleteTokenCallback& callback) { |