| Index: chrome/browser/importer/firefox3_importer.cc
|
| ===================================================================
|
| --- chrome/browser/importer/firefox3_importer.cc (revision 208948)
|
| +++ chrome/browser/importer/firefox3_importer.cc (working copy)
|
| @@ -21,7 +21,6 @@
|
| #include "chrome/browser/importer/firefox_importer_utils.h"
|
| #include "chrome/browser/importer/importer_bridge.h"
|
| #include "chrome/browser/importer/nss_decryptor.h"
|
| -#include "chrome/browser/search_engines/template_url.h"
|
| #include "chrome/common/time_format.h"
|
| #include "content/public/browser/browser_thread.h"
|
| #include "content/public/common/password_form.h"
|
| @@ -43,24 +42,6 @@
|
| TYPE_DYNAMIC_CONTAINER = 4
|
| };
|
|
|
| -// Creates a TemplateURL with the |keyword| and |url|. |title| may be empty.
|
| -// This function transfers ownership of the created TemplateURL to the caller.
|
| -TemplateURL* CreateTemplateURL(const string16& title,
|
| - const string16& keyword,
|
| - const GURL& url) {
|
| - // Skip if the keyword or url is invalid.
|
| - if (keyword.empty() || !url.is_valid())
|
| - return NULL;
|
| -
|
| - TemplateURLData data;
|
| - // We set short name by using the title if it exists.
|
| - // Otherwise, we use the shortcut.
|
| - data.short_name = title.empty() ? keyword : title;
|
| - data.SetKeyword(keyword);
|
| - data.SetURL(TemplateURLRef::DisplayURLToURLRef(UTF8ToUTF16(url.spec())));
|
| - return new TemplateURL(NULL, data);
|
| -}
|
| -
|
| // Loads the default bookmarks in the Firefox installed at |app_path|,
|
| // and stores their locations in |urls|.
|
| void LoadDefaultBookmarks(const base::FilePath& app_path,
|
| @@ -220,7 +201,7 @@
|
| GetWholeBookmarkFolder(&db, &list, i, NULL);
|
|
|
| std::vector<ImportedBookmarkEntry> bookmarks;
|
| - std::vector<TemplateURL*> template_urls;
|
| + std::vector<importer::URLKeywordInfo> url_keywords;
|
| FaviconMap favicon_map;
|
|
|
| // TODO(jcampan): http://b/issue?id=1196285 we do not support POST based
|
| @@ -308,11 +289,14 @@
|
| if (item->favicon)
|
| favicon_map[item->favicon].insert(item->url);
|
|
|
| - // This bookmark has a keyword, we import it to our TemplateURL model.
|
| - TemplateURL* t_url = CreateTemplateURL(
|
| - item->title, UTF8ToUTF16(item->keyword), item->url);
|
| - if (t_url)
|
| - template_urls.push_back(t_url);
|
| + // This bookmark has a keyword, we should import it.
|
| + if (!item->keyword.empty() && item->url.is_valid()) {
|
| + importer::URLKeywordInfo url_keyword_info;
|
| + url_keyword_info.url = item->url;
|
| + url_keyword_info.keyword.assign(UTF8ToUTF16(item->keyword));
|
| + url_keyword_info.display_name = item->title;
|
| + url_keywords.push_back(url_keyword_info);
|
| + }
|
| }
|
| }
|
|
|
| @@ -324,10 +308,9 @@
|
| bridge_->GetLocalizedString(IDS_BOOKMARK_GROUP_FROM_FIREFOX);
|
| bridge_->AddBookmarks(bookmarks, first_folder_name);
|
| }
|
| - if (!template_urls.empty() && !cancelled())
|
| - bridge_->SetKeywords(template_urls, false);
|
| - else
|
| - STLDeleteElements(&template_urls);
|
| + if (!url_keywords.empty() && !cancelled()) {
|
| + bridge_->SetKeywords(url_keywords, false);
|
| + }
|
| if (!favicon_map.empty() && !cancelled()) {
|
| std::vector<ImportedFaviconUsage> favicons;
|
| LoadFavicons(&db, favicon_map, &favicons);
|
| @@ -368,13 +351,10 @@
|
| }
|
|
|
| void Firefox3Importer::ImportSearchEngines() {
|
| - std::vector<base::FilePath> files;
|
| - GetSearchEnginesXMLFiles(&files);
|
| + std::vector<std::string> search_engine_data;
|
| + GetSearchEnginesXMLData(&search_engine_data);
|
|
|
| - std::vector<TemplateURL*> search_engines;
|
| - ParseSearchEnginesFromXMLFiles(files, &search_engines);
|
| -
|
| - bridge_->SetKeywords(search_engines, true);
|
| + bridge_->SetFirefoxSearchEnginesXMLData(search_engine_data);
|
| }
|
|
|
| void Firefox3Importer::ImportHomepage() {
|
| @@ -384,8 +364,8 @@
|
| }
|
| }
|
|
|
| -void Firefox3Importer::GetSearchEnginesXMLFiles(
|
| - std::vector<base::FilePath>* files) {
|
| +void Firefox3Importer::GetSearchEnginesXMLData(
|
| + std::vector<std::string>* search_engine_data) {
|
| base::FilePath file = source_path_.AppendASCII("search.sqlite");
|
| if (!file_util::PathExists(file))
|
| return;
|
| @@ -432,7 +412,9 @@
|
| // Looks like absolute path to the file.
|
| file = base::FilePath::FromUTF8Unsafe(engine);
|
| }
|
| - files->push_back(file);
|
| + std::string file_data;
|
| + file_util::ReadFileToString(file, &file_data);
|
| + search_engine_data->push_back(file_data);
|
| } while (s.Step() && !cancelled());
|
| }
|
|
|
| @@ -455,7 +437,9 @@
|
| base::FileEnumerator engines(app_path, false, base::FileEnumerator::FILES);
|
| for (base::FilePath engine_path = engines.Next();
|
| !engine_path.value().empty(); engine_path = engines.Next()) {
|
| - files->push_back(engine_path);
|
| + std::string file_data;
|
| + file_util::ReadFileToString(file, &file_data);
|
| + search_engine_data->push_back(file_data);
|
| }
|
| }
|
|
|
|
|