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 15namespace content { 16 17// A push service-agnostic interface that the Push API uses for talking to 18// push messaging services like GCM. 19class 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