Chromium Code Reviews| Index: chrome/utility/importer/firefox_importer.cc |
| diff --git a/chrome/utility/importer/firefox_importer.cc b/chrome/utility/importer/firefox_importer.cc |
| index ab7d2966ec605cc90cc5aa594bd556413dc1731a..c996e11c9529f09500f9fcc936a902b19c034403 100644 |
| --- a/chrome/utility/importer/firefox_importer.cc |
| +++ b/chrome/utility/importer/firefox_importer.cc |
| @@ -383,6 +383,9 @@ void FirefoxImporter::ImportHomepage() { |
| void FirefoxImporter::GetSearchEnginesXMLData( |
| std::vector<std::string>* search_engine_data) { |
| + // TODO(mpawlowski): This may no longer work, search engines are stored in |
| + // search.json since Firefox 3.5, not in search.sqlite. XML definitions are |
| + // still necessary. http://crbug.com/329175 |
| base::FilePath file = source_path_.AppendASCII("search.sqlite"); |
| if (!base::PathExists(file)) |
| return; |
| @@ -401,8 +404,20 @@ void FirefoxImporter::GetSearchEnginesXMLData( |
| if (!s.is_valid()) |
| return; |
| - base::FilePath app_path = app_path_.AppendASCII("searchplugins"); |
| - base::FilePath profile_path = source_path_.AppendASCII("searchplugins"); |
| + const base::FilePath searchplugins_path("searchplugins"); |
| + // Search engine definitions are XMLs stored in two directories. Default |
| + // engines are in the app directory (app_path_) and custom engines are |
| + // in the profile directory (source_path_). |
| + |
| + // Since Firefox 21, app_path_ engines are in 'browser' subdirectory: |
| + base::FilePath app_path = |
| + app_path_.AppendASCII("browser").Append(searchplugins_path); |
| + if (!base::PathExists(app_path)) |
| + // This might be an older Firefox, try old location without the 'browser' |
| + // path component: |
| + app_path = app_path_.Append(searchplugins_path); |
|
Ilya Sherman
2013/12/17 23:04:14
nit: Please add curly braces, since the body of th
|
| + |
| + base::FilePath profile_path = source_path_.Append(searchplugins_path); |
| // Firefox doesn't store a search engine in its sqlite database unless the |
| // user has added a engine. So we get search engines from sqlite db as well |