OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 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 | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "chrome/common/importer/firefox_importer_utils.h" | 5 #include "chrome/common/importer/firefox_importer_utils.h" |
6 | 6 |
7 #include <algorithm> | 7 #include <algorithm> |
8 #include <map> | 8 #include <map> |
9 #include <string> | 9 #include <string> |
10 | 10 |
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
52 std::string is_default; | 52 std::string is_default; |
53 root.GetStringASCII(profile_name + ".Default", &is_default); | 53 root.GetStringASCII(profile_name + ".Default", &is_default); |
54 return is_default == "1"; | 54 return is_default == "1"; |
55 } | 55 } |
56 | 56 |
57 } // namespace | 57 } // namespace |
58 | 58 |
59 base::FilePath GetFirefoxProfilePath() { | 59 base::FilePath GetFirefoxProfilePath() { |
60 base::FilePath ini_file = GetProfilesINI(); | 60 base::FilePath ini_file = GetProfilesINI(); |
61 std::string content; | 61 std::string content; |
62 file_util::ReadFileToString(ini_file, &content); | 62 base::ReadFileToString(ini_file, &content); |
63 base::DictionaryValueINIParser ini_parser; | 63 base::DictionaryValueINIParser ini_parser; |
64 ini_parser.Parse(content); | 64 ini_parser.Parse(content); |
65 return GetFirefoxProfilePathFromDictionary(ini_parser.root()); | 65 return GetFirefoxProfilePathFromDictionary(ini_parser.root()); |
66 } | 66 } |
67 | 67 |
68 base::FilePath GetFirefoxProfilePathFromDictionary( | 68 base::FilePath GetFirefoxProfilePathFromDictionary( |
69 const DictionaryValue& root) { | 69 const DictionaryValue& root) { |
70 std::vector<std::string> profiles; | 70 std::vector<std::string> profiles; |
71 for (int i = 0; ; ++i) { | 71 for (int i = 0; ; ++i) { |
72 std::string current_profile = base::StringPrintf("Profile%d", i); | 72 std::string current_profile = base::StringPrintf("Profile%d", i); |
(...skipping 20 matching lines...) Expand all Loading... |
93 return GetProfilePath(root, profiles.front()); | 93 return GetProfilePath(root, profiles.front()); |
94 } | 94 } |
95 | 95 |
96 bool GetFirefoxVersionAndPathFromProfile(const base::FilePath& profile_path, | 96 bool GetFirefoxVersionAndPathFromProfile(const base::FilePath& profile_path, |
97 int* version, | 97 int* version, |
98 base::FilePath* app_path) { | 98 base::FilePath* app_path) { |
99 bool ret = false; | 99 bool ret = false; |
100 base::FilePath compatibility_file = | 100 base::FilePath compatibility_file = |
101 profile_path.AppendASCII("compatibility.ini"); | 101 profile_path.AppendASCII("compatibility.ini"); |
102 std::string content; | 102 std::string content; |
103 file_util::ReadFileToString(compatibility_file, &content); | 103 base::ReadFileToString(compatibility_file, &content); |
104 ReplaceSubstringsAfterOffset(&content, 0, "\r\n", "\n"); | 104 ReplaceSubstringsAfterOffset(&content, 0, "\r\n", "\n"); |
105 std::vector<std::string> lines; | 105 std::vector<std::string> lines; |
106 base::SplitString(content, '\n', &lines); | 106 base::SplitString(content, '\n', &lines); |
107 | 107 |
108 for (size_t i = 0; i < lines.size(); ++i) { | 108 for (size_t i = 0; i < lines.size(); ++i) { |
109 const std::string& line = lines[i]; | 109 const std::string& line = lines[i]; |
110 if (line.empty() || line[0] == '#' || line[0] == ';') | 110 if (line.empty() || line[0] == '#' || line[0] == ';') |
111 continue; | 111 continue; |
112 size_t equal = line.find('='); | 112 size_t equal = line.find('='); |
113 if (equal != std::string::npos) { | 113 if (equal != std::string::npos) { |
(...skipping 11 matching lines...) Expand all Loading... |
125 } | 125 } |
126 } | 126 } |
127 } | 127 } |
128 return ret; | 128 return ret; |
129 } | 129 } |
130 | 130 |
131 bool ReadPrefFile(const base::FilePath& path, std::string* content) { | 131 bool ReadPrefFile(const base::FilePath& path, std::string* content) { |
132 if (content == NULL) | 132 if (content == NULL) |
133 return false; | 133 return false; |
134 | 134 |
135 file_util::ReadFileToString(path, content); | 135 base::ReadFileToString(path, content); |
136 | 136 |
137 if (content->empty()) { | 137 if (content->empty()) { |
138 LOG(WARNING) << "Firefox preference file " << path.value() << " is empty."; | 138 LOG(WARNING) << "Firefox preference file " << path.value() << " is empty."; |
139 return false; | 139 return false; |
140 } | 140 } |
141 | 141 |
142 return true; | 142 return true; |
143 } | 143 } |
144 | 144 |
145 std::string ReadBrowserConfigProp(const base::FilePath& app_path, | 145 std::string ReadBrowserConfigProp(const base::FilePath& app_path, |
(...skipping 106 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
252 // BuildID=20120421070307 | 252 // BuildID=20120421070307 |
253 // Copyright=Copyright (c) 1998 - 2010 mozilla.org | 253 // Copyright=Copyright (c) 1998 - 2010 mozilla.org |
254 // ID={ec8030f7-c20a-464f-9b0e-13a3a9e97384} | 254 // ID={ec8030f7-c20a-464f-9b0e-13a3a9e97384} |
255 // ......................................... | 255 // ......................................... |
256 // In this example the function returns "Iceweasel" (or a localized equivalent). | 256 // In this example the function returns "Iceweasel" (or a localized equivalent). |
257 string16 GetFirefoxImporterName(const base::FilePath& app_path) { | 257 string16 GetFirefoxImporterName(const base::FilePath& app_path) { |
258 const base::FilePath app_ini_file = app_path.AppendASCII("application.ini"); | 258 const base::FilePath app_ini_file = app_path.AppendASCII("application.ini"); |
259 std::string branding_name; | 259 std::string branding_name; |
260 if (base::PathExists(app_ini_file)) { | 260 if (base::PathExists(app_ini_file)) { |
261 std::string content; | 261 std::string content; |
262 file_util::ReadFileToString(app_ini_file, &content); | 262 base::ReadFileToString(app_ini_file, &content); |
263 std::vector<std::string> lines; | 263 std::vector<std::string> lines; |
264 base::SplitString(content, '\n', &lines); | 264 base::SplitString(content, '\n', &lines); |
265 const std::string name_attr("Name="); | 265 const std::string name_attr("Name="); |
266 bool in_app_section = false; | 266 bool in_app_section = false; |
267 for (size_t i = 0; i < lines.size(); ++i) { | 267 for (size_t i = 0; i < lines.size(); ++i) { |
268 TrimWhitespace(lines[i], TRIM_ALL, &lines[i]); | 268 TrimWhitespace(lines[i], TRIM_ALL, &lines[i]); |
269 if (lines[i] == "[App]") { | 269 if (lines[i] == "[App]") { |
270 in_app_section = true; | 270 in_app_section = true; |
271 } else if (in_app_section) { | 271 } else if (in_app_section) { |
272 if (lines[i].find(name_attr) == 0) { | 272 if (lines[i].find(name_attr) == 0) { |
273 branding_name = lines[i].substr(name_attr.size()); | 273 branding_name = lines[i].substr(name_attr.size()); |
274 break; | 274 break; |
275 } else if (lines[i].length() > 0 && lines[i][0] == '[') { | 275 } else if (lines[i].length() > 0 && lines[i][0] == '[') { |
276 // No longer in the [App] section. | 276 // No longer in the [App] section. |
277 break; | 277 break; |
278 } | 278 } |
279 } | 279 } |
280 } | 280 } |
281 } | 281 } |
282 | 282 |
283 StringToLowerASCII(&branding_name); | 283 StringToLowerASCII(&branding_name); |
284 if (branding_name.find("iceweasel") != std::string::npos) | 284 if (branding_name.find("iceweasel") != std::string::npos) |
285 return l10n_util::GetStringUTF16(IDS_IMPORT_FROM_ICEWEASEL); | 285 return l10n_util::GetStringUTF16(IDS_IMPORT_FROM_ICEWEASEL); |
286 return l10n_util::GetStringUTF16(IDS_IMPORT_FROM_FIREFOX); | 286 return l10n_util::GetStringUTF16(IDS_IMPORT_FROM_FIREFOX); |
287 } | 287 } |
OLD | NEW |