Home | History | Annotate | Download | only in sync_file_system_internals
      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