- add sources.
[platform/framework/web/crosswalk.git] / src / content / browser / indexed_db / indexed_db_internals_ui.h
1 // Copyright (c) 2013 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_BROWSER_INDEXED_DB_INDEXED_DB_INTERNALS_UI_H_
6 #define CONTENT_BROWSER_INDEXED_DB_INDEXED_DB_INTERNALS_UI_H_
7
8 #include <vector>
9
10 #include "base/memory/ref_counted.h"
11 #include "base/memory/scoped_ptr.h"
12 #include "content/public/browser/indexed_db_context.h"
13 #include "content/public/browser/web_ui_controller.h"
14 #include "net/base/net_errors.h"
15
16 namespace base {
17 class ListValue;
18 }
19
20 namespace content {
21
22 class DownloadItem;
23 class IndexedDBContextImpl;
24 class StoragePartition;
25
26 // The implementation for the chrome://indexeddb-internals page.
27 class IndexedDBInternalsUI : public WebUIController {
28  public:
29   explicit IndexedDBInternalsUI(WebUI* web_ui);
30   virtual ~IndexedDBInternalsUI();
31
32  private:
33   void GetAllOrigins(const base::ListValue* args);
34   void GetAllOriginsOnIndexedDBThread(scoped_refptr<IndexedDBContext> context,
35                                       const base::FilePath& context_path);
36   void OnOriginsReady(scoped_ptr<base::ListValue> origins,
37                       const base::FilePath& path);
38
39   void AddContextFromStoragePartition(StoragePartition* partition);
40
41   void DownloadOriginData(const base::ListValue* args);
42   void DownloadOriginDataOnIndexedDBThread(
43       const base::FilePath& partition_path,
44       const scoped_refptr<IndexedDBContextImpl> context,
45       const GURL& origin_url);
46   void OnDownloadDataReady(const base::FilePath& partition_path,
47                            const GURL& origin_url,
48                            const base::FilePath temp_path,
49                            const base::FilePath zip_path,
50                            size_t connection_count);
51   void OnDownloadStarted(const base::FilePath& partition_path,
52                          const GURL& origin_url,
53                          const base::FilePath& temp_path,
54                          size_t connection_count,
55                          content::DownloadItem* item,
56                          net::Error error);
57
58   void ForceCloseOrigin(const base::ListValue* args);
59   void ForceCloseOriginOnIndexedDBThread(
60       const base::FilePath& partition_path,
61       const scoped_refptr<IndexedDBContextImpl> context,
62       const GURL& origin_url);
63   void OnForcedClose(const base::FilePath& partition_path,
64                      const GURL& origin_url,
65                      size_t connection_count);
66   bool GetOriginContext(const base::FilePath& path,
67                         const GURL& origin_url,
68                         scoped_refptr<IndexedDBContextImpl>* context);
69   bool GetOriginData(const base::ListValue* args,
70                      base::FilePath* path,
71                      GURL* origin_url,
72                      scoped_refptr<IndexedDBContextImpl>* context);
73
74   DISALLOW_COPY_AND_ASSIGN(IndexedDBInternalsUI);
75 };
76
77 }  // namespace content
78
79 #endif  // CONTENT_BROWSER_INDEXED_DB_INDEXED_DB_INTERNALS_UI_H_