| // Copyright 2013 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #include "chrome/browser/ui/webui/sync_file_system_internals/dump_database_handler.h" |
| |
| #include "chrome/browser/profiles/profile.h" |
| #include "chrome/browser/sync_file_system/sync_file_system_service.h" |
| #include "chrome/browser/sync_file_system/sync_file_system_service_factory.h" |
| #include "content/public/browser/web_ui.h" |
| #include "content/public/browser/web_ui_data_source.h" |
| |
| using sync_file_system::SyncFileSystemServiceFactory; |
| |
| namespace syncfs_internals { |
| |
| DumpDatabaseHandler::DumpDatabaseHandler(Profile* profile) |
| : profile_(profile) {} |
| DumpDatabaseHandler::~DumpDatabaseHandler() {} |
| |
| void DumpDatabaseHandler::RegisterMessages() { |
| web_ui()->RegisterMessageCallback( |
| "getDatabaseDump", |
| base::Bind(&DumpDatabaseHandler::GetDatabaseDump, |
| base::Unretained(this))); |
| } |
| |
| void DumpDatabaseHandler::GetDatabaseDump(const base::ListValue*) { |
| scoped_ptr<base::ListValue> list; |
| sync_file_system::SyncFileSystemService* sync_service = |
| SyncFileSystemServiceFactory::GetForProfile(profile_); |
| if (sync_service) { |
| sync_service->DumpDatabase( |
| base::Bind(&DumpDatabaseHandler::DidGetDatabaseDump, |
| base::Unretained(this))); |
| } |
| } |
| |
| void DumpDatabaseHandler::DidGetDatabaseDump(const base::ListValue& list) { |
| web_ui()->CallJavascriptFunction("DumpDatabase.onGetDatabaseDump", list); |
| } |
| |
| } // namespace syncfs_internals |