push_messaging_service.h revision 5f1c94371a64b3196d4be9466099bb892df9b88e
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