indexed_db_context.h revision f2477e01787aa58f445919b809d89e252beef54f
1// Copyright (c) 2012 The Chromium Authors. All rights reserved. 2// Use of this source code is governed by a BSD-style license that can be 3// found in the LICENSE file. 4 5#ifndef CONTENT_PUBLIC_BROWSER_INDEXED_DB_CONTEXT_H_ 6#define CONTENT_PUBLIC_BROWSER_INDEXED_DB_CONTEXT_H_ 7 8#include <vector> 9 10#include "base/basictypes.h" 11#include "base/files/file_path.h" 12#include "base/memory/ref_counted.h" 13#include "content/common/content_export.h" 14#include "content/public/browser/indexed_db_info.h" 15 16namespace base { 17class SequencedTaskRunner; 18class TaskRunner; 19} 20 21namespace content { 22 23// Represents the per-BrowserContext IndexedDB data. 24// Call these methods only via the exposed TaskRunner. 25class IndexedDBContext : public base::RefCountedThreadSafe<IndexedDBContext> { 26 public: 27 // Only call the below methods by posting to this TaskRunner. 28 virtual base::TaskRunner* TaskRunner() const = 0; 29 30 // Methods used in response to QuotaManager requests. 31 virtual std::vector<IndexedDBInfo> GetAllOriginsInfo() = 0; 32 virtual int64 GetOriginDiskUsage(const GURL& origin_url) = 0; 33 34 // Deletes all indexed db files for the given origin. 35 virtual void DeleteForOrigin(const GURL& origin_url) = 0; 36 37 // Get the file name of the local storage file for the given origin. 38 virtual base::FilePath GetFilePathForTesting( 39 const std::string& origin_id) const = 0; 40 // Set the task runner for tests if browser main loop is not initialized. 41 virtual void SetTaskRunnerForTesting( 42 base::SequencedTaskRunner* task_runner) = 0; 43 44 protected: 45 friend class base::RefCountedThreadSafe<IndexedDBContext>; 46 virtual ~IndexedDBContext() {} 47}; 48 49} // namespace content 50 51#endif // CONTENT_PUBLIC_BROWSER_INDEXED_DB_CONTEXT_H_ 52