1// Copyright 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#include "chrome/browser/ui/webui/sync_file_system_internals/dump_database_handler.h" 6 7#include "chrome/browser/profiles/profile.h" 8#include "chrome/browser/sync_file_system/sync_file_system_service.h" 9#include "chrome/browser/sync_file_system/sync_file_system_service_factory.h" 10#include "content/public/browser/web_ui.h" 11#include "content/public/browser/web_ui_data_source.h" 12 13using sync_file_system::SyncFileSystemServiceFactory; 14 15namespace syncfs_internals { 16 17DumpDatabaseHandler::DumpDatabaseHandler(Profile* profile) 18 : profile_(profile) {} 19DumpDatabaseHandler::~DumpDatabaseHandler() {} 20 21void DumpDatabaseHandler::RegisterMessages() { 22 web_ui()->RegisterMessageCallback( 23 "getDatabaseDump", 24 base::Bind(&DumpDatabaseHandler::GetDatabaseDump, 25 base::Unretained(this))); 26} 27 28void DumpDatabaseHandler::GetDatabaseDump(const base::ListValue*) { 29 scoped_ptr<base::ListValue> list; 30 sync_file_system::SyncFileSystemService* sync_service = 31 SyncFileSystemServiceFactory::GetForProfile(profile_); 32 if (sync_service) { 33 sync_service->DumpDatabase( 34 base::Bind(&DumpDatabaseHandler::DidGetDatabaseDump, 35 base::Unretained(this))); 36 } 37} 38 39void DumpDatabaseHandler::DidGetDatabaseDump(const base::ListValue& list) { 40 web_ui()->CallJavascriptFunction("DumpDatabase.onGetDatabaseDump", list); 41} 42 43} // namespace syncfs_internals 44