| Index: chrome/browser/push_messaging/push_messaging_app_identifier.h
|
| diff --git a/chrome/browser/push_messaging/push_messaging_app_identifier.h b/chrome/browser/push_messaging/push_messaging_app_identifier.h
|
| index 6d64fc2be5f4066ed6b5a1ca7b493c9dc5a564db..32bfb22b601a3f1b0466fb9a81e6b8c43911e2b2 100644
|
| --- a/chrome/browser/push_messaging/push_messaging_app_identifier.h
|
| +++ b/chrome/browser/push_messaging/push_messaging_app_identifier.h
|
| @@ -10,6 +10,7 @@
|
| #include <vector>
|
|
|
| #include "base/basictypes.h"
|
| +#include "base/gtest_prod_util.h"
|
| #include "base/logging.h"
|
| #include "url/gurl.h"
|
|
|
| @@ -24,26 +25,30 @@ extern const char kPushMessagingAppIdentifierPrefix[];
|
|
|
| // Type used to identify a Service Worker registration from a Push API
|
| // perspective. These can be persisted to prefs, in a 1:1 mapping between
|
| -// app_id and pair<origin, service_worker_registration_id>.
|
| +// app_id (which includes origin) and service_worker_registration_id.
|
| +// Legacy mapped values saved by old versions of Chrome are also supported;
|
| +// these don't contain the origin in the app_id, so instead they map from
|
| +// app_id to pair<origin, service_worker_registration_id>.
|
| class PushMessagingAppIdentifier {
|
| public:
|
| // Register profile-specific prefs.
|
| static void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry);
|
|
|
| - // Generates a new app identifier with random app_id.
|
| + // Generates a new app identifier, with partially random app_id.
|
| static PushMessagingAppIdentifier Generate(
|
| const GURL& origin,
|
| int64_t service_worker_registration_id);
|
|
|
| // Looks up an app identifier by app_id. If not found, is_null() will be true.
|
| - static PushMessagingAppIdentifier Get(Profile* profile,
|
| - const std::string& app_id);
|
| + static PushMessagingAppIdentifier FindByAppId(Profile* profile,
|
| + const std::string& app_id);
|
|
|
| // Looks up an app identifier by origin & service worker registration id.
|
| // If not found, is_null() will be true.
|
| - static PushMessagingAppIdentifier Get(Profile* profile,
|
| - const GURL& origin,
|
| - int64_t service_worker_registration_id);
|
| + static PushMessagingAppIdentifier FindByServiceWorker(
|
| + Profile* profile,
|
| + const GURL& origin,
|
| + int64_t service_worker_registration_id);
|
|
|
| // Returns all the PushMessagingAppIdentifiers currently registered for the
|
| // given |profile|.
|
| @@ -58,12 +63,13 @@ class PushMessagingAppIdentifier {
|
| void DeleteFromPrefs(Profile* profile) const;
|
|
|
| // Returns true if this identifier does not represent an app (i.e. this was
|
| - // returned by a failed call to Get).
|
| + // returned by a failed Find call).
|
| bool is_null() const { return service_worker_registration_id_ < 0; }
|
|
|
| // String that should be passed to push services like GCM to identify a
|
| // particular Service Worker (so we can route incoming messages). Example:
|
| - // wp:9CC55CCE-B8F9-4092-A364-3B0F73A3AB5F
|
| + // wp:https://foo.example.com:8443/#9CC55CCE-B8F9-4092-A364-3B0F73A3AB5F
|
| + // Legacy app_ids have no origin, e.g. wp:9CC55CCE-B8F9-4092-A364-3B0F73A3AB5F
|
| const std::string& app_id() const {
|
| DCHECK(!is_null());
|
| return app_id_;
|
| @@ -81,6 +87,7 @@ class PushMessagingAppIdentifier {
|
|
|
| private:
|
| friend class PushMessagingAppIdentifierTest;
|
| + FRIEND_TEST_ALL_PREFIXES(PushMessagingAppIdentifierTest, FindLegacy);
|
|
|
| // Constructs an invalid app identifier.
|
| PushMessagingAppIdentifier();
|
|
|