- add sources.
[platform/framework/web/crosswalk.git] / src / chrome / common / importer / importer_data_types.h
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 #ifndef CHROME_COMMON_IMPORTER_IMPORTER_DATA_TYPES_H_
6 #define CHROME_COMMON_IMPORTER_IMPORTER_DATA_TYPES_H_
7
8 #include <string>
9 #include <vector>
10
11 #include "base/basictypes.h"
12 #include "base/files/file_path.h"
13 #include "base/memory/ref_counted.h"
14 #include "base/strings/string16.h"
15 #include "base/time/time.h"
16 #include "chrome/common/importer/importer_type.h"
17 #include "url/gurl.h"
18
19 // Types needed for importing data from other browsers and the Google Toolbar.
20 namespace importer {
21
22 // An enumeration of the type of data that can be imported.
23 enum ImportItem {
24   NONE           = 0,
25   HISTORY        = 1 << 0,
26   FAVORITES      = 1 << 1,
27   COOKIES        = 1 << 2,  // Not supported yet.
28   PASSWORDS      = 1 << 3,
29   SEARCH_ENGINES = 1 << 4,
30   HOME_PAGE      = 1 << 5,
31   ALL            = (1 << 6) - 1  // All the bits should be 1, hence the -1.
32 };
33
34 // Information about a profile needed by an importer to do import work.
35 struct SourceProfile {
36   SourceProfile();
37   ~SourceProfile();
38
39   string16 importer_name;
40   ImporterType importer_type;
41   base::FilePath source_path;
42   base::FilePath app_path;
43   uint16 services_supported;  // Bitmask of ImportItem.
44   // The application locale. Stored because we can only access it from the UI
45   // thread on the browser process. This is only used by the Firefox importer.
46   std::string locale;
47 };
48
49 // Contains information needed for importing bookmarks/search engine urls, etc.
50 struct URLKeywordInfo {
51   GURL url;
52   string16 keyword;
53   string16 display_name;
54 };
55
56 #if defined(OS_WIN)
57 // Contains the information read from the IE7/IE8 Storage2 key in the registry.
58 struct ImporterIE7PasswordInfo {
59   // Hash of the url.
60   std::wstring url_hash;
61
62   // Encrypted data containing the username, password and some more
63   // undocumented fields.
64   std::vector<unsigned char> encrypted_data;
65
66   // When the login was imported.
67   base::Time date_created;
68 };
69 #endif
70
71 // Mapped to history::VisitSource after import in the browser.
72 enum VisitSource {
73   VISIT_SOURCE_BROWSED = 0,
74   VISIT_SOURCE_FIREFOX_IMPORTED = 1,
75   VISIT_SOURCE_IE_IMPORTED = 2,
76   VISIT_SOURCE_SAFARI_IMPORTED = 3,
77 };
78
79 }  // namespace importer
80
81 #endif  // CHROME_COMMON_IMPORTER_IMPORTER_DATA_TYPES_H_