diff options
author | n.bansal@samsung.com <n.bansal@samsung.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-08-19 08:22:14 +0000 |
---|---|---|
committer | n.bansal@samsung.com <n.bansal@samsung.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-08-19 08:23:28 +0000 |
commit | 38c13c86f7d43452ca2e956200186c935ded850e (patch) | |
tree | b05dd5406e90218a4bdfa9e458e17f99b7e672a5 /chrome/utility | |
parent | 8a1bc407ff749e5250c6387e7b6cf6d033b52b02 (diff) | |
download | chromium_src-38c13c86f7d43452ca2e956200186c935ded850e.zip chromium_src-38c13c86f7d43452ca2e956200186c935ded850e.tar.gz chromium_src-38c13c86f7d43452ca2e956200186c935ded850e.tar.bz2 |
This patch parses search-metadata.json that is used to store
keywords for search engines in Firefox.
GetSearchEnginesXMLDataFromJSON() is modified to parse search-metadata.json
also and include keyword information in xml string.
BUG=52344
Review URL: https://codereview.chromium.org/426653002
Cr-Commit-Position: refs/heads/master@{#290518}
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@290518 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/utility')
-rw-r--r-- | chrome/utility/importer/firefox_importer.cc | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/chrome/utility/importer/firefox_importer.cc b/chrome/utility/importer/firefox_importer.cc index 8b216bdc..1711d14 100644 --- a/chrome/utility/importer/firefox_importer.cc +++ b/chrome/utility/importer/firefox_importer.cc @@ -480,6 +480,18 @@ void FirefoxImporter::GetSearchEnginesXMLData( void FirefoxImporter::GetSearchEnginesXMLDataFromJSON( std::vector<std::string>* search_engine_data) { + // search-metadata.json contains keywords for search engines. This + // file exists only if the user has set keywords for search engines. + base::FilePath search_metadata_json_file = + source_path_.AppendASCII("search-metadata.json"); + JSONFileValueSerializer metadata_serializer(search_metadata_json_file); + scoped_ptr<base::Value> metadata_root( + metadata_serializer.Deserialize(NULL, NULL)); + const base::DictionaryValue* search_metadata_root = NULL; + if (metadata_root) + metadata_root->GetAsDictionary(&search_metadata_root); + + // search.json contains information about search engines to import. base::FilePath search_json_file = source_path_.AppendASCII("search.json"); if (!base::PathExists(search_json_file)) return; @@ -556,6 +568,22 @@ void FirefoxImporter::GetSearchEnginesXMLDataFromJSON( std::string file_data; base::ReadFileToString(xml_file, &file_data); + + // If a keyword is mentioned for this search engine, then add + // it to the XML string as an <Alias> element and use this updated + // string. + const base::DictionaryValue* search_xml_path = NULL; + if (search_metadata_root && search_metadata_root->HasKey(file_path) && + search_metadata_root->GetDictionaryWithoutPathExpansion( + file_path, &search_xml_path)) { + std::string alias; + search_xml_path->GetString("alias", &alias); + + // Add <Alias> element as the last child element. + size_t end_of_parent = file_data.find("</SearchPlugin>"); + if (end_of_parent != std::string::npos && !alias.empty()) + file_data.insert(end_of_parent, "<Alias>" + alias + "</Alias> \n"); + } search_engine_data->push_back(file_data); } } |