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 13 using sync_file_system::SyncFileSystemServiceFactory; 14 15 namespace syncfs_internals { 16 17 DumpDatabaseHandler::DumpDatabaseHandler(Profile* profile) 18 : profile_(profile) {} 19 DumpDatabaseHandler::~DumpDatabaseHandler() {} 20 21 void DumpDatabaseHandler::RegisterMessages() { 22 web_ui()->RegisterMessageCallback( 23 "getDatabaseDump", 24 base::Bind(&DumpDatabaseHandler::GetDatabaseDump, 25 base::Unretained(this))); 26 } 27 28 void 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 39 void DumpDatabaseHandler::DidGetDatabaseDump(const base::ListValue& list) { 40 web_ui()->CallJavascriptFunction("DumpDatabase.onGetDatabaseDump", list); 41 } 42 43 } // namespace syncfs_internals 44