// Copyright 2015 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef CONTENT_PUBLIC_BROWSER_PLATFORM_NOTIFICATION_CONTEXT_H_ #define CONTENT_PUBLIC_BROWSER_PLATFORM_NOTIFICATION_CONTEXT_H_ #include #include #include "base/callback.h" #include "base/memory/ref_counted.h" #include "content/public/browser/browser_thread.h" #include "content/public/browser/notification_database_data.h" class GURL; namespace content { // Represents the storage context for persistent Web Notifications, specific to // the storage partition owning the instance. All methods defined in this // interface may only be used on the IO thread. class PlatformNotificationContext : public base::RefCountedThreadSafe { public: using ReadResultCallback = base::Callback; using ReadAllResultCallback = base::Callback&)>; using WriteResultCallback = base::Callback; using DeleteResultCallback = base::Callback; // Reads the data associated with |notification_id| belonging to |origin| // from the database. |callback| will be invoked with the success status // and a reference to the notification database data when completed. virtual void ReadNotificationData(int64_t notification_id, const GURL& origin, const ReadResultCallback& callback) = 0; // Reads all data associated with |service_worker_registration_id| belonging // to |origin| from the database. |callback| will be invoked with the success // status and a vector with all read notification data when completed. virtual void ReadAllNotificationDataForServiceWorkerRegistration( const GURL& origin, int64_t service_worker_registration_id, const ReadAllResultCallback& callback) = 0; // Writes the data associated with a notification to a database. When this // action completed, |callback| will be invoked with the success status and // the persistent notification id when written successfully. virtual void WriteNotificationData( const GURL& origin, const NotificationDatabaseData& database_data, const WriteResultCallback& callback) = 0; // Deletes all data associated with |notification_id| belonging to |origin| // from the database. |callback| will be invoked with the success status // when the operation has completed. virtual void DeleteNotificationData(int64_t notification_id, const GURL& origin, const DeleteResultCallback& callback) = 0; protected: friend class base::DeleteHelper; friend struct BrowserThread::DeleteOnThread; virtual ~PlatformNotificationContext() {} }; } // namespace content #endif // CONTENT_PUBLIC_BROWSER_PLATFORM_NOTIFICATION_CONTEXT_H_