Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(53)

Side by Side Diff: components/gcm_driver/gcm_driver.h

Issue 1259613002: Revert of Hook up the Push API with GCM's new ability to own encryption keys. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@gcm-encryption
Patch Set: Created 5 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « components/gcm_driver/fake_gcm_driver.cc ('k') | components/gcm_driver/gcm_driver.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 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 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef COMPONENTS_GCM_DRIVER_GCM_DRIVER_H_ 5 #ifndef COMPONENTS_GCM_DRIVER_GCM_DRIVER_H_
6 #define COMPONENTS_GCM_DRIVER_GCM_DRIVER_H_ 6 #define COMPONENTS_GCM_DRIVER_GCM_DRIVER_H_
7 7
8 #include <map> 8 #include <map>
9 #include <string> 9 #include <string>
10 #include <vector> 10 #include <vector>
11 11
12 #include "base/callback.h" 12 #include "base/callback.h"
13 #include "base/macros.h" 13 #include "base/macros.h"
14 #include "base/memory/ref_counted.h"
15 #include "base/memory/weak_ptr.h" 14 #include "base/memory/weak_ptr.h"
16 #include "base/threading/thread_checker.h" 15 #include "base/threading/thread_checker.h"
17 #include "components/gcm_driver/common/gcm_messages.h" 16 #include "components/gcm_driver/common/gcm_messages.h"
18 #include "components/gcm_driver/crypto/gcm_encryption_provider.h"
19 #include "components/gcm_driver/default_gcm_app_handler.h" 17 #include "components/gcm_driver/default_gcm_app_handler.h"
20 #include "components/gcm_driver/gcm_client.h" 18 #include "components/gcm_driver/gcm_client.h"
21 19
22 namespace base {
23 class FilePath;
24 class SequencedTaskRunner;
25 }
26
27 namespace gcm { 20 namespace gcm {
28 21
29 class GCMAppHandler; 22 class GCMAppHandler;
30 class GCMConnectionObserver; 23 class GCMConnectionObserver;
31 struct AccountMapping; 24 struct AccountMapping;
32 25
33 // Provides the InstanceID support via GCMDriver. 26 // Provides the InstanceID support via GCMDriver.
34 class InstanceIDHandler { 27 class InstanceIDHandler {
35 public: 28 public:
36 typedef base::Callback<void(const std::string& token, 29 typedef base::Callback<void(const std::string& token,
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
72 }; 65 };
73 66
74 // Bridge between GCM users in Chrome and the platform-specific implementation. 67 // Bridge between GCM users in Chrome and the platform-specific implementation.
75 class GCMDriver { 68 class GCMDriver {
76 public: 69 public:
77 typedef std::map<std::string, GCMAppHandler*> GCMAppHandlerMap; 70 typedef std::map<std::string, GCMAppHandler*> GCMAppHandlerMap;
78 typedef base::Callback<void(const std::string& registration_id, 71 typedef base::Callback<void(const std::string& registration_id,
79 GCMClient::Result result)> RegisterCallback; 72 GCMClient::Result result)> RegisterCallback;
80 typedef base::Callback<void(const std::string& message_id, 73 typedef base::Callback<void(const std::string& message_id,
81 GCMClient::Result result)> SendCallback; 74 GCMClient::Result result)> SendCallback;
82 typedef base::Callback<void(const std::string&)> GetPublicKeyCallback;
83 typedef base::Callback<void(GCMClient::Result result)> UnregisterCallback; 75 typedef base::Callback<void(GCMClient::Result result)> UnregisterCallback;
84 typedef base::Callback<void(const GCMClient::GCMStatistics& stats)> 76 typedef base::Callback<void(const GCMClient::GCMStatistics& stats)>
85 GetGCMStatisticsCallback; 77 GetGCMStatisticsCallback;
86 78
87 GCMDriver( 79 GCMDriver();
88 const base::FilePath& store_path,
89 const scoped_refptr<base::SequencedTaskRunner>& blocking_task_runner);
90 virtual ~GCMDriver(); 80 virtual ~GCMDriver();
91 81
92 // Registers |sender_ids| for an app. A registration ID will be returned by 82 // Registers |sender_ids| for an app. A registration ID will be returned by
93 // the GCM server. On Android, only a single sender ID is supported, but 83 // the GCM server. On Android, only a single sender ID is supported, but
94 // instead multiple simultaneous registrations are allowed. 84 // instead multiple simultaneous registrations are allowed.
95 // |app_id|: application ID. 85 // |app_id|: application ID.
96 // |sender_ids|: list of IDs of the servers that are allowed to send the 86 // |sender_ids|: list of IDs of the servers that are allowed to send the
97 // messages to the application. These IDs are assigned by the 87 // messages to the application. These IDs are assigned by the
98 // Google API Console. 88 // Google API Console.
99 // |callback|: to be called once the asynchronous operation is done. 89 // |callback|: to be called once the asynchronous operation is done.
(...skipping 20 matching lines...) Expand all
120 // Sends a message to a given receiver. 110 // Sends a message to a given receiver.
121 // |app_id|: application ID. 111 // |app_id|: application ID.
122 // |receiver_id|: registration ID of the receiver party. 112 // |receiver_id|: registration ID of the receiver party.
123 // |message|: message to be sent. 113 // |message|: message to be sent.
124 // |callback|: to be called once the asynchronous operation is done. 114 // |callback|: to be called once the asynchronous operation is done.
125 void Send(const std::string& app_id, 115 void Send(const std::string& app_id,
126 const std::string& receiver_id, 116 const std::string& receiver_id,
127 const OutgoingMessage& message, 117 const OutgoingMessage& message,
128 const SendCallback& callback); 118 const SendCallback& callback);
129 119
130 // Get the public encryption key associated with |app_id|. If no keys have
131 // been associated with |app_id| yet, they will be created. The |callback|
132 // will be invoked when it is available.
133 void GetPublicKey(const std::string& app_id,
134 const GetPublicKeyCallback& callback);
135
136 const GCMAppHandlerMap& app_handlers() const { return app_handlers_; } 120 const GCMAppHandlerMap& app_handlers() const { return app_handlers_; }
137 121
138 // This method must be called before destroying the GCMDriver. Once it has 122 // This method must be called before destroying the GCMDriver. Once it has
139 // been called, no other GCMDriver methods may be used. 123 // been called, no other GCMDriver methods may be used.
140 virtual void Shutdown(); 124 virtual void Shutdown();
141 125
142 // Called when the user signs in to or out of a GAIA account. 126 // Called when the user signs in to or out of a GAIA account.
143 virtual void OnSignedIn() = 0; 127 virtual void OnSignedIn() = 0;
144 virtual void OnSignedOut() = 0; 128 virtual void OnSignedOut() = 0;
145 129
(...skipping 137 matching lines...) Expand 10 before | Expand all | Expand 10 after
283 267
284 // Callback map (from app_id to callback) for Register. 268 // Callback map (from app_id to callback) for Register.
285 std::map<std::string, RegisterCallback> register_callbacks_; 269 std::map<std::string, RegisterCallback> register_callbacks_;
286 270
287 // Callback map (from app_id to callback) for Unregister. 271 // Callback map (from app_id to callback) for Unregister.
288 std::map<std::string, UnregisterCallback> unregister_callbacks_; 272 std::map<std::string, UnregisterCallback> unregister_callbacks_;
289 273
290 // Callback map (from <app_id, message_id> to callback) for Send. 274 // Callback map (from <app_id, message_id> to callback) for Send.
291 std::map<std::pair<std::string, std::string>, SendCallback> send_callbacks_; 275 std::map<std::pair<std::string, std::string>, SendCallback> send_callbacks_;
292 276
293 // The encryption provider, used for key management and decryption of
294 // encrypted, incoming messages.
295 GCMEncryptionProvider encryption_provider_;
296
297 // App handler map (from app_id to handler pointer). 277 // App handler map (from app_id to handler pointer).
298 // The handler is not owned. 278 // The handler is not owned.
299 GCMAppHandlerMap app_handlers_; 279 GCMAppHandlerMap app_handlers_;
300 280
301 // The default handler when no app handler can be found in the map. 281 // The default handler when no app handler can be found in the map.
302 DefaultGCMAppHandler default_app_handler_; 282 DefaultGCMAppHandler default_app_handler_;
303 283
304 base::WeakPtrFactory<GCMDriver> weak_ptr_factory_; 284 base::WeakPtrFactory<GCMDriver> weak_ptr_factory_;
305 285
306 DISALLOW_COPY_AND_ASSIGN(GCMDriver); 286 DISALLOW_COPY_AND_ASSIGN(GCMDriver);
307 }; 287 };
308 288
309 } // namespace gcm 289 } // namespace gcm
310 290
311 #endif // COMPONENTS_GCM_DRIVER_GCM_DRIVER_H_ 291 #endif // COMPONENTS_GCM_DRIVER_GCM_DRIVER_H_
OLDNEW
« no previous file with comments | « components/gcm_driver/fake_gcm_driver.cc ('k') | components/gcm_driver/gcm_driver.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698