1// Copyright (c) 2011 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#pragma once
8
9#include "base/basictypes.h"
10#include "base/compiler_specific.h"
11#include "base/memory/ref_counted.h"
12#include "chrome/browser/importer/importer_data_types.h"
13#include "chrome/browser/importer/importer_list.h"
14#include "chrome/browser/importer/importer_progress_observer.h"
15#include "chrome/browser/ui/webui/options/options_ui.h"
16
17class ImporterHost;
18
19// Chrome personal stuff import data overlay UI handler.
20class ImportDataHandler : public OptionsPageUIHandler,
21                          public ImporterList::Observer,
22                          public importer::ImporterProgressObserver {
23 public:
24  ImportDataHandler();
25  virtual ~ImportDataHandler();
26
27  // OptionsPageUIHandler:
28  virtual void GetLocalizedValues(DictionaryValue* localized_strings);
29  virtual void Initialize();
30
31  // WebUIMessageHandler:
32  virtual void RegisterMessages();
33
34 private:
35  void ImportData(const ListValue* args);
36
37  // ImporterList::Observer:
38  virtual void OnSourceProfilesLoaded() OVERRIDE;
39
40  // importer::ImporterProgressObserver:
41  virtual void ImportStarted() OVERRIDE;
42  virtual void ImportItemStarted(importer::ImportItem item) OVERRIDE;
43  virtual void ImportItemEnded(importer::ImportItem item) OVERRIDE;
44  virtual void ImportEnded() OVERRIDE;
45
46  scoped_refptr<ImporterList> importer_list_;
47
48  // If non-null it means importing is in progress. ImporterHost takes care
49  // of deleting itself when import is complete.
50  ImporterHost* importer_host_;  // weak
51
52  DISALLOW_COPY_AND_ASSIGN(ImportDataHandler);
53};
54
55#endif  // CHROME_BROWSER_UI_WEBUI_OPTIONS_IMPORT_DATA_HANDLER_H_
56