1 // Copyright 2014 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #ifndef CONTENT_PUBLIC_BROWSER_PUSH_MESSAGING_SERVICE_H_ 6 #define CONTENT_PUBLIC_BROWSER_PUSH_MESSAGING_SERVICE_H_ 7 8 #include <string> 9 10 #include "base/callback.h" 11 #include "content/common/content_export.h" 12 #include "content/public/common/push_messaging_status.h" 13 #include "url/gurl.h" 14 15 namespace content { 16 17 // A push service-agnostic interface that the Push API uses for talking to 18 // push messaging services like GCM. 19 class CONTENT_EXPORT PushMessagingService { 20 public: 21 typedef base::Callback<void(const GURL& /* endpoint */, 22 const std::string& /* registration_id */, 23 PushMessagingStatus /* status */)> 24 RegisterCallback; 25 26 virtual ~PushMessagingService() {} 27 virtual void Register(const GURL& origin, 28 int64 service_worker_registration_id, 29 const std::string& sender_id, 30 int renderer_id, 31 int render_frame_id, 32 bool user_gesture, 33 const RegisterCallback& callback) = 0; 34 }; 35 36 } // namespace content 37 38 #endif // CONTENT_PUBLIC_BROWSER_PUSH_MESSAGING_SERVICE_H_ 39