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

Unified Diff: chrome/browser/push_messaging/push_messaging_app_identifier.h

Issue 1131303002: Cleanup PushMessagingAppIdentifier (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@app_identifier
Patch Set: Undo accidental test change Created 5 years, 7 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | chrome/browser/push_messaging/push_messaging_app_identifier.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 11567ea2318d25bab2bbfd71fc7007787b0ab1d1..6d64fc2be5f4066ed6b5a1ca7b493c9dc5a564db 100644
--- a/chrome/browser/push_messaging/push_messaging_app_identifier.h
+++ b/chrome/browser/push_messaging/push_messaging_app_identifier.h
@@ -5,10 +5,12 @@
#ifndef CHROME_BROWSER_PUSH_MESSAGING_PUSH_MESSAGING_APP_IDENTIFIER_H_
#define CHROME_BROWSER_PUSH_MESSAGING_PUSH_MESSAGING_APP_IDENTIFIER_H_
+#include <stdint.h>
#include <string>
#include <vector>
#include "base/basictypes.h"
+#include "base/logging.h"
#include "url/gurl.h"
class Profile;
@@ -20,9 +22,9 @@ class PrefRegistrySyncable;
// The prefix used for all push messaging application ids.
extern const char kPushMessagingAppIdentifierPrefix[];
-// Type used to identify a web app from a Push API perspective.
-// These can be persisted to disk, in a 1:1 mapping between app_id and
-// pair<origin, service_worker_registration_id>.
+// 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>.
class PushMessagingAppIdentifier {
public:
// Register profile-specific prefs.
@@ -31,17 +33,17 @@ class PushMessagingAppIdentifier {
// Generates a new app identifier with random app_id.
static PushMessagingAppIdentifier Generate(
const GURL& origin,
- int64 service_worker_registration_id);
+ int64_t service_worker_registration_id);
- // Looks up an app identifier by app_id. Will be invalid if not found.
+ // 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);
// Looks up an app identifier by origin & service worker registration id.
- // Will be invalid if not found.
+ // If not found, is_null() will be true.
static PushMessagingAppIdentifier Get(Profile* profile,
const GURL& origin,
- int64 service_worker_registration_id);
+ int64_t service_worker_registration_id);
// Returns all the PushMessagingAppIdentifiers currently registered for the
// given |profile|.
@@ -49,17 +51,31 @@ class PushMessagingAppIdentifier {
~PushMessagingAppIdentifier();
- // Persist this app identifier to disk.
- void PersistToDisk(Profile* profile) const;
+ // Persist this app identifier to prefs.
+ void PersistToPrefs(Profile* profile) const;
- // Delete this app identifier from disk.
- void DeleteFromDisk(Profile* profile) const; // TODO: Does const make sense?
+ // Delete this app identifier from prefs.
+ void DeleteFromPrefs(Profile* profile) const;
- bool IsValid() const;
+ // Returns true if this identifier does not represent an app (i.e. this was
+ // returned by a failed call to Get).
+ bool is_null() const { return service_worker_registration_id_ < 0; }
- const std::string& app_id() const { return app_id_; }
- const GURL& origin() const { return origin_; }
- int64 service_worker_registration_id() const {
+ // 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
+ const std::string& app_id() const {
+ DCHECK(!is_null());
+ return app_id_;
+ }
+
+ const GURL& origin() const {
+ DCHECK(!is_null());
+ return origin_;
+ }
+
+ int64_t service_worker_registration_id() const {
+ DCHECK(!is_null());
return service_worker_registration_id_;
}
@@ -71,11 +87,14 @@ class PushMessagingAppIdentifier {
// Constructs a valid app identifier.
PushMessagingAppIdentifier(const std::string& app_id,
const GURL& origin,
- int64 service_worker_registration_id);
+ int64_t service_worker_registration_id);
+
+ // Validates that all the fields contain valid values.
+ void DCheckValid() const;
std::string app_id_;
GURL origin_;
- int64 service_worker_registration_id_;
+ int64_t service_worker_registration_id_;
};
#endif // CHROME_BROWSER_PUSH_MESSAGING_PUSH_MESSAGING_APP_IDENTIFIER_H_
« no previous file with comments | « no previous file | chrome/browser/push_messaging/push_messaging_app_identifier.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698