Index: content/browser/notifications/notification_database.h |
diff --git a/content/browser/notifications/notification_database.h b/content/browser/notifications/notification_database.h |
index c08dbfeba7a32615603e92a5eecd301bb743446f..2dbd13e1d38ef351be7494060ea8e72b9644898a 100644 |
--- a/content/browser/notifications/notification_database.h |
+++ b/content/browser/notifications/notification_database.h |
@@ -78,13 +78,18 @@ class CONTENT_EXPORT NotificationDatabase { |
// |create_if_missing| determines whether to create the database if necessary. |
Status Open(bool create_if_missing); |
+ // Gets the next assignable persistent notification ID. Subsequent calls to |
+ // this method will yield unique identifiers for the same database. The last |
+ // used ID will be written to the database when a notification is created. |
+ int64_t GetNextPersistentNotificationId(); |
+ |
// Reads the notification data for the notification identified by |
// |notification_id| and belonging to |origin| from the database, and stores |
- // it in |notification_database_data|. Returns the status code. |
+ // it in |*notification_data|. Returns the status code. |
Status ReadNotificationData( |
- int64_t notification_id, |
+ const std::string& notification_id, |
const GURL& origin, |
- NotificationDatabaseData* notification_database_data) const; |
+ NotificationDatabaseData* notification_data) const; |
// Reads all notification data for all origins from the database, and appends |
// the data to |notification_data_vector|. Returns the status code. |
@@ -105,28 +110,28 @@ class CONTENT_EXPORT NotificationDatabase { |
int64_t service_worker_registration_id, |
std::vector<NotificationDatabaseData>* notification_data_vector) const; |
- // Writes the |notification_database_data| for a new notification belonging to |
- // |origin| to the database, and returns the status code of the writing |
- // operation. The id of the new notification will be set in |notification_id|. |
+ // Writes the |notification_data| for a new notification belonging to |origin| |
+ // to the database, and returns the status code of the writing operation. The |
+ // notification's ID must have been set in the |notification_data|. |
Status WriteNotificationData( |
const GURL& origin, |
- const NotificationDatabaseData& notification_database_data, |
- int64_t* notification_id); |
+ const NotificationDatabaseData& notification_data); |
// Deletes all data associated with the notification identified by |
// |notification_id| belonging to |origin| from the database. Returns the |
// status code of the deletion operation. Note that it is not considered a |
// failure if the to-be-deleted notification does not exist. |
- Status DeleteNotificationData(int64_t notification_id, const GURL& origin); |
+ Status DeleteNotificationData(const std::string& notification_id, |
+ const GURL& origin); |
// Deletes all data associated with |origin| from the database, optionally |
// filtered by the |tag|, and appends the deleted notification ids to |
- // |deleted_notification_set|. Returns the status code of the deletion |
+ // |deleted_notification_ids|. Returns the status code of the deletion |
// operation. |
Status DeleteAllNotificationDataForOrigin( |
const GURL& origin, |
const std::string& tag, |
- std::set<int64_t>* deleted_notification_set); |
+ std::set<std::string>* deleted_notification_ids); |
// Deletes all data associated with the |service_worker_registration_id| |
// belonging to |origin| from the database, and appends the deleted |
@@ -135,7 +140,7 @@ class CONTENT_EXPORT NotificationDatabase { |
Status DeleteAllNotificationDataForServiceWorkerRegistration( |
const GURL& origin, |
int64_t service_worker_registration_id, |
- std::set<int64_t>* deleted_notification_set); |
+ std::set<std::string>* deleted_notification_ids); |
// Completely destroys the contents of this database. |
Status Destroy(); |
@@ -151,10 +156,10 @@ class CONTENT_EXPORT NotificationDatabase { |
STATE_DISABLED, |
}; |
- // Reads the next available notification id from the database and returns |
- // the status code of the reading operation. The value will be stored in |
- // the |next_notification_id_| member. |
- Status ReadNextNotificationId(); |
+ // Reads the next available persistent notification id from the database and |
+ // returns the status code of the reading operation. The value will be stored |
+ // in the |next_persistent_notification_id_| member. |
+ Status ReadNextPersistentNotificationId(); |
// Reads all notification data with the given constraints. |origin| may be |
// empty to read all notification data from all origins. If |origin| is |
@@ -170,12 +175,12 @@ class CONTENT_EXPORT NotificationDatabase { |
// always be set - use Destroy() when the goal is to empty the database. If |
// |service_worker_registration_id| is invalid, all notification data for the |
// |origin| will be deleted, optionally filtered by the |tag| when non-empty. |
- // All deleted notification ids will be written to |deleted_notification_set|. |
+ // All deleted notification ids will be written to |deleted_notification_ids|. |
Status DeleteAllNotificationDataInternal( |
const GURL& origin, |
const std::string& tag, |
int64_t service_worker_registration_id, |
- std::set<int64_t>* deleted_notification_set); |
+ std::set<std::string>* deleted_notification_ids); |
// Returns whether the database has been opened. |
bool IsOpen() const { return db_ != nullptr; } |
@@ -189,7 +194,8 @@ class CONTENT_EXPORT NotificationDatabase { |
base::FilePath path_; |
- int64_t next_notification_id_ = 0; |
+ int64_t next_persistent_notification_id_ = 0; |
+ int64_t written_persistent_notification_id_ = 0; |
std::unique_ptr<const leveldb::FilterPolicy> filter_policy_; |