1c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)// Copyright (c) 2013 The Chromium Authors. All rights reserved. 2c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 3c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)// found in the LICENSE file. 4c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 5c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#ifndef CONTENT_BROWSER_INDEXED_DB_INDEXED_DB_INTERNALS_UI_H_ 6c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#define CONTENT_BROWSER_INDEXED_DB_INDEXED_DB_INTERNALS_UI_H_ 7c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 8c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#include <vector> 9c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 10c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#include "base/memory/ref_counted.h" 11c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#include "base/memory/scoped_ptr.h" 125d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#include "content/public/browser/download_interrupt_reasons.h" 13c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#include "content/public/browser/indexed_db_context.h" 14c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#include "content/public/browser/web_ui_controller.h" 15c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 16868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)namespace base { 17868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)class ListValue; 18868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)} 19c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 20c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)namespace content { 21c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 22c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)class DownloadItem; 23c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)class IndexedDBContextImpl; 24c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)class StoragePartition; 25c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 26c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)// The implementation for the chrome://indexeddb-internals page. 27c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)class IndexedDBInternalsUI : public WebUIController { 28c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) public: 29c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) explicit IndexedDBInternalsUI(WebUI* web_ui); 30c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) virtual ~IndexedDBInternalsUI(); 31c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 32c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) private: 33c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) void GetAllOrigins(const base::ListValue* args); 34ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch void GetAllOriginsOnIndexedDBThread(scoped_refptr<IndexedDBContext> context, 35ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch const base::FilePath& context_path); 36ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch void OnOriginsReady(scoped_ptr<base::ListValue> origins, 37c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) const base::FilePath& path); 38c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 39ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch void AddContextFromStoragePartition(StoragePartition* partition); 40c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 41c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) void DownloadOriginData(const base::ListValue* args); 42eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch void DownloadOriginDataOnIndexedDBThread( 43c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) const base::FilePath& partition_path, 44c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) const scoped_refptr<IndexedDBContextImpl> context, 45c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) const GURL& origin_url); 46c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) void OnDownloadDataReady(const base::FilePath& partition_path, 47c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) const GURL& origin_url, 48c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) const base::FilePath temp_path, 49ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch const base::FilePath zip_path, 50ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch size_t connection_count); 51c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) void OnDownloadStarted(const base::FilePath& partition_path, 52c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) const GURL& origin_url, 53c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) const base::FilePath& temp_path, 54ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch size_t connection_count, 555d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) DownloadItem* item, 565d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) DownloadInterruptReason interrupt_reason); 57c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 58ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch void ForceCloseOrigin(const base::ListValue* args); 59ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch void ForceCloseOriginOnIndexedDBThread( 60ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch const base::FilePath& partition_path, 61ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch const scoped_refptr<IndexedDBContextImpl> context, 62ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch const GURL& origin_url); 63ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch void OnForcedClose(const base::FilePath& partition_path, 64ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch const GURL& origin_url, 65ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch size_t connection_count); 66ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch bool GetOriginContext(const base::FilePath& path, 67ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch const GURL& origin_url, 68ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch scoped_refptr<IndexedDBContextImpl>* context); 69ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch bool GetOriginData(const base::ListValue* args, 70ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch base::FilePath* path, 71ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch GURL* origin_url, 72ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch scoped_refptr<IndexedDBContextImpl>* context); 73ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch 74c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) DISALLOW_COPY_AND_ASSIGN(IndexedDBInternalsUI); 75c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)}; 76c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 77c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)} // namespace content 78c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 79c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#endif // CONTENT_BROWSER_INDEXED_DB_INDEXED_DB_INTERNALS_UI_H_ 80