indexed_db_context.h revision 2a99a7e74a7f215066514fe81d2bfa6639d9eddd
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/memory/ref_counted.h"
12#include "content/common/content_export.h"
13
14class GURL;
15
16namespace base {
17class Time;
18}
19
20namespace content {
21
22// Represents the per-BrowserContext IndexedDB data.
23// Call these methods only on the WebKit thread.
24class IndexedDBContext : public base::RefCountedThreadSafe<IndexedDBContext> {
25 public:
26  // Methods used in response to QuotaManager requests.
27  virtual std::vector<GURL> GetAllOrigins() = 0;
28  virtual int64 GetOriginDiskUsage(const GURL& origin_url) = 0;
29  virtual base::Time GetOriginLastModified(const GURL& origin_url) = 0;
30
31  // Deletes all indexed db files for the given origin.
32  virtual void DeleteForOrigin(const GURL& origin_url) = 0;
33
34  // Get the file name of the local storage file for the given origin.
35  virtual base::FilePath GetFilePathForTesting(
36      const string16& origin_id) const = 0;
37
38 protected:
39  friend class base::RefCountedThreadSafe<IndexedDBContext>;
40  virtual ~IndexedDBContext() {}
41};
42
43}  // namespace content
44
45#endif  // CONTENT_PUBLIC_BROWSER_INDEXED_DB_CONTEXT_H_
46