// Copyright (c) 2012 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_DOM_STORAGE_CONTEXT_H_ #define CONTENT_PUBLIC_BROWSER_DOM_STORAGE_CONTEXT_H_ #include <string> #include <vector> #include "base/callback.h" class GURL; namespace content { class BrowserContext; struct LocalStorageUsageInfo; class SessionStorageNamespace; struct SessionStorageUsageInfo; // Represents the per-BrowserContext Local Storage data. class DOMStorageContext { public: typedef base::Callback< void(const std::vector<LocalStorageUsageInfo>&)> GetLocalStorageUsageCallback; typedef base::Callback< void(const std::vector<SessionStorageUsageInfo>&)> GetSessionStorageUsageCallback; // Returns a collection of origins using local storage to the given callback. virtual void GetLocalStorageUsage( const GetLocalStorageUsageCallback& callback) = 0; // Returns a collection of origins using session storage to the given // callback. virtual void GetSessionStorageUsage( const GetSessionStorageUsageCallback& callback) = 0; // Deletes the local storage data for the given origin. virtual void DeleteLocalStorage(const GURL& origin) = 0; // Deletes the session storage data identified by |usage_info|. virtual void DeleteSessionStorage( const SessionStorageUsageInfo& usage_info) = 0; // If this is called, sessionStorage data will be stored on disk, and can be // restored after a browser restart (with RecreateSessionStorage). This // function must be called right after DOMStorageContextWrapper is created, // and before it's used. virtual void SetSaveSessionStorageOnDisk() = 0; // Creates a SessionStorageNamespace with the given |persistent_id|. Used // after tabs are restored by session restore. When created, the // SessionStorageNamespace with the correct |persistent_id| will be // associated with the persisted sessionStorage data. virtual scoped_refptr<SessionStorageNamespace> RecreateSessionStorage( const std::string& persistent_id) = 0; // Starts deleting sessionStorages which don't have an associated // SessionStorageNamespace alive. Called when SessionStorageNamespaces have // been created after a session restore, or a session restore won't happen. virtual void StartScavengingUnusedSessionStorage() = 0; protected: virtual ~DOMStorageContext() {} }; } // namespace content #endif // CONTENT_PUBLIC_BROWSER_DOM_STORAGE_CONTEXT_H_