// 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_INDEXED_DB_CONTEXT_H_ #define CONTENT_PUBLIC_BROWSER_INDEXED_DB_CONTEXT_H_ #include #include #include #include "base/files/file_path.h" #include "base/memory/ref_counted.h" #include "content/common/content_export.h" #include "content/public/browser/indexed_db_info.h" namespace base { class SequencedTaskRunner; } namespace content { // Represents the per-BrowserContext IndexedDB data. // Call these methods only via the exposed TaskRunner. class IndexedDBContext : public base::RefCountedThreadSafe { public: // Only call the below methods by posting to this TaskRunner. virtual base::SequencedTaskRunner* TaskRunner() const = 0; // Methods used in response to QuotaManager requests. virtual std::vector GetAllOriginsInfo() = 0; virtual int64_t GetOriginDiskUsage(const GURL& origin_url) = 0; // Deletes all indexed db files for the given origin. virtual void DeleteForOrigin(const GURL& origin_url) = 0; // Copies the indexed db files from this context to another. The // indexed db directory in the destination context needs to be empty. virtual void CopyOriginData(const GURL& origin_url, IndexedDBContext* dest_context) = 0; // Get the file name of the local storage file for the given origin. virtual base::FilePath GetFilePathForTesting( const std::string& origin_id) const = 0; // Set the task runner for tests if browser main loop is not initialized. virtual void SetTaskRunnerForTesting( base::SequencedTaskRunner* task_runner) = 0; protected: friend class base::RefCountedThreadSafe; virtual ~IndexedDBContext() {} }; } // namespace content #endif // CONTENT_PUBLIC_BROWSER_INDEXED_DB_CONTEXT_H_