| Index: content/public/browser/push_messaging_service.h | 
| diff --git a/content/public/browser/push_messaging_service.h b/content/public/browser/push_messaging_service.h | 
| index 248b76d23156743a5ce0180d86d6fef47afb9844..41cbd4d4639b6add058518fc4e11cf97714b8fe5 100644 | 
| --- a/content/public/browser/push_messaging_service.h | 
| +++ b/content/public/browser/push_messaging_service.h | 
| @@ -30,12 +30,10 @@ class CONTENT_EXPORT PushMessagingService { | 
| const std::vector<uint8_t>& auth, | 
| PushRegistrationStatus status)>; | 
| using UnregisterCallback = base::Callback<void(PushUnregistrationStatus)>; | 
| - | 
| -  using EncryptionInfoCallback = base::Callback<void( | 
| -      bool success, | 
| -      const std::vector<uint8_t>& p256dh, | 
| -      const std::vector<uint8_t>& auth)>; | 
| - | 
| +  using SubscriptionInfoCallback = | 
| +      base::Callback<void(bool is_valid, | 
| +                          const std::vector<uint8_t>& p256dh, | 
| +                          const std::vector<uint8_t>& auth)>; | 
| using StringCallback = base::Callback<void(const std::string& data, | 
| bool success, | 
| bool not_found)>; | 
| @@ -65,19 +63,24 @@ class CONTENT_EXPORT PushMessagingService { | 
| const PushSubscriptionOptions& options, | 
| const RegisterCallback& callback) = 0; | 
|  | 
| -  // Retrieves the encryption information associated with the subscription | 
| -  // associated to |origin| and |service_worker_registration_id|. |sender_id| is | 
| -  // also required since an InstanceID might have multiple tokens associated | 
| -  // with different senders, though in practice Push doesn't yet use that. | 
| -  virtual void GetEncryptionInfo(const GURL& origin, | 
| -                                 int64_t service_worker_registration_id, | 
| -                                 const std::string& sender_id, | 
| -                                 const EncryptionInfoCallback& callback) = 0; | 
| - | 
| -  // Unsubscribe the given |sender_id| from the push messaging service. The | 
| -  // subscription will be synchronously deactivated locally, and asynchronously | 
| -  // sent to the push service, with automatic retry. | 
| -  virtual void Unsubscribe(const GURL& requesting_origin, | 
| +  // Retrieves the subscription associated with |origin| and | 
| +  // |service_worker_registration_id|, validates that the provided | 
| +  // |subscription_id| matches the stored one, then passes the encryption | 
| +  // information to the callback. |sender_id| is also required since an | 
| +  // InstanceID might have multiple tokens associated with different senders, | 
| +  // though in practice Push doesn't yet use that. | 
| +  virtual void GetSubscriptionInfo( | 
| +      const GURL& origin, | 
| +      int64_t service_worker_registration_id, | 
| +      const std::string& sender_id, | 
| +      const std::string& subscription_id, | 
| +      const SubscriptionInfoCallback& callback) = 0; | 
| + | 
| +  // Unsubscribe the given |sender_id| from the push messaging service. Locally | 
| +  // deactivates the subscription, then runs |callback|, then asynchronously | 
| +  // attempts to unsubscribe with the push service. | 
| +  virtual void Unsubscribe(PushUnregistrationReason reason, | 
| +                           const GURL& requesting_origin, | 
| int64_t service_worker_registration_id, | 
| const std::string& sender_id, | 
| const UnregisterCallback& callback) = 0; | 
|  |