1// Copyright (c) 2012 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#ifndef CHROME_BROWSER_UI_WEBUI_OPTIONS_IMPORT_DATA_HANDLER_H_ 6#define CHROME_BROWSER_UI_WEBUI_OPTIONS_IMPORT_DATA_HANDLER_H_ 7 8#include "base/basictypes.h" 9#include "base/compiler_specific.h" 10#include "base/memory/scoped_ptr.h" 11#include "chrome/browser/importer/importer_progress_observer.h" 12#include "chrome/browser/ui/webui/options/options_ui.h" 13#include "chrome/common/importer/importer_data_types.h" 14#include "ui/shell_dialogs/select_file_dialog.h" 15 16class ExternalProcessImporterHost; 17class ImporterList; 18 19namespace options { 20 21// Chrome personal stuff import data overlay UI handler. 22class ImportDataHandler : public OptionsPageUIHandler, 23 public importer::ImporterProgressObserver, 24 public ui::SelectFileDialog::Listener { 25 public: 26 ImportDataHandler(); 27 virtual ~ImportDataHandler(); 28 29 // OptionsPageUIHandler: 30 virtual void GetLocalizedValues( 31 base::DictionaryValue* localized_strings) OVERRIDE; 32 virtual void InitializeHandler() OVERRIDE; 33 virtual void InitializePage() OVERRIDE; 34 35 // content::WebUIMessageHandler: 36 virtual void RegisterMessages() OVERRIDE; 37 38 private: 39 void StartImport(const importer::SourceProfile& source_profile, 40 uint16 imported_items); 41 42 void ImportData(const base::ListValue* args); 43 44 // importer::ImporterProgressObserver: 45 virtual void ImportStarted() OVERRIDE; 46 virtual void ImportItemStarted(importer::ImportItem item) OVERRIDE; 47 virtual void ImportItemEnded(importer::ImportItem item) OVERRIDE; 48 virtual void ImportEnded() OVERRIDE; 49 50 // ui::SelectFileDialog::Listener: 51 virtual void FileSelected(const base::FilePath& path, 52 int index, 53 void* params) OVERRIDE; 54 55 // Opens a file selection dialog to choose the bookmarks HTML file. 56 void HandleChooseBookmarksFile(const base::ListValue* args); 57 58 scoped_ptr<ImporterList> importer_list_; 59 60 // If non-null it means importing is in progress. ImporterHost takes care 61 // of deleting itself when import is complete. 62 ExternalProcessImporterHost* importer_host_; // weak 63 64 bool import_did_succeed_; 65 66 scoped_refptr<ui::SelectFileDialog> select_file_dialog_; 67 68 DISALLOW_COPY_AND_ASSIGN(ImportDataHandler); 69}; 70 71} // namespace options 72 73#endif // CHROME_BROWSER_UI_WEBUI_OPTIONS_IMPORT_DATA_HANDLER_H_ 74