Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(890)

Unified Diff: components/search_engines/util.cc

Issue 2479113002: Make extensions DSE persistent in browser prefs (Closed)
Patch Set: Created 4 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: components/search_engines/util.cc
diff --git a/components/search_engines/util.cc b/components/search_engines/util.cc
index e6ec9c72e57d2b0310b6c0dfaf27baa2af1eb64a..ff8a7cfedfdce840033614de0aa134793346557f 100644
--- a/components/search_engines/util.cc
+++ b/components/search_engines/util.cc
@@ -15,6 +15,7 @@
#include "base/logging.h"
#include "base/memory/ptr_util.h"
+#include "base/strings/string_number_conversions.h"
#include "base/time/time.h"
#include "components/prefs/pref_service.h"
#include "components/search_engines/template_url.h"
@@ -376,3 +377,159 @@ TemplateURLService::OwnedTemplateURLVector::iterator FindTemplateURL(
return ptr.get() == url;
});
}
+
+std::unique_ptr<TemplateURLData> TemplateUrlDataFromDictionary(
+ const base::DictionaryValue& dict) {
+ std::unique_ptr<TemplateURLData> result(base::MakeUnique<TemplateURLData>());
+
+ std::string search_url;
+ base::string16 keyword;
+ dict.GetString(DefaultSearchManager::kURL, &search_url);
+ dict.GetString(DefaultSearchManager::kKeyword, &keyword);
+
+ result->SetKeyword(keyword);
+ result->SetURL(search_url);
+
+ std::string id;
+ dict.GetString(DefaultSearchManager::kID, &id);
+ base::StringToInt64(id, &result->id);
+ base::string16 short_name;
+ dict.GetString(DefaultSearchManager::kShortName, &short_name);
+ result->SetShortName(short_name);
+ dict.GetInteger(DefaultSearchManager::kPrepopulateID,
+ &result->prepopulate_id);
+ dict.GetString(DefaultSearchManager::kSyncGUID,
+ &result->sync_guid);
+ dict.GetString(DefaultSearchManager::kSuggestionsURL,
+ &result->suggestions_url);
+ dict.GetString(DefaultSearchManager::kInstantURL,
+ &result->instant_url);
+ dict.GetString(DefaultSearchManager::kImageURL, &result->image_url);
+ dict.GetString(DefaultSearchManager::kNewTabURL, &result->new_tab_url);
+
+ std::string favicon_url;
+ std::string originating_url;
+ dict.GetString(DefaultSearchManager::kFaviconURL, &favicon_url);
+ dict.GetString(DefaultSearchManager::kOriginatingURL, &originating_url);
+ result->favicon_url = GURL(favicon_url);
+ result->originating_url = GURL(originating_url);
+
+ dict.GetString(DefaultSearchManager::kSearchURLPostParams,
+ &result->search_url_post_params);
+ dict.GetString(DefaultSearchManager::kSuggestionsURLPostParams,
+ &result->suggestions_url_post_params);
+ dict.GetString(DefaultSearchManager::kInstantURLPostParams,
+ &result->instant_url_post_params);
+ dict.GetString(DefaultSearchManager::kImageURLPostParams,
+ &result->image_url_post_params);
+ dict.GetBoolean(DefaultSearchManager::kSafeForAutoReplace,
+ &result->safe_for_autoreplace);
+
+ std::string date_created_str;
+ std::string last_modified_str;
+ dict.GetString(DefaultSearchManager::kDateCreated, &date_created_str);
+ dict.GetString(DefaultSearchManager::kLastModified, &last_modified_str);
+
+ int64_t date_created = 0;
+ if (base::StringToInt64(date_created_str, &date_created)) {
+ result->date_created = base::Time::FromInternalValue(date_created);
+ }
+
+ int64_t last_modified = 0;
+ if (base::StringToInt64(date_created_str, &last_modified)) {
+ result->last_modified = base::Time::FromInternalValue(last_modified);
+ }
+
+ dict.GetInteger(DefaultSearchManager::kUsageCount, &result->usage_count);
+
+ const base::ListValue* alternate_urls = NULL;
+ if (dict.GetList(DefaultSearchManager::kAlternateURLs, &alternate_urls)) {
+ for (const auto& it : *alternate_urls) {
+ std::string alternate_url;
+ if (it->GetAsString(&alternate_url))
+ result->alternate_urls.push_back(alternate_url);
+ }
+ }
+
+ const base::ListValue* encodings = NULL;
+ if (dict.GetList(DefaultSearchManager::kInputEncodings, &encodings)) {
+ for (const auto& it : *encodings) {
+ std::string encoding;
+ if (it->GetAsString(&encoding))
+ result->input_encodings.push_back(encoding);
+ }
+ }
+
+ dict.GetString(DefaultSearchManager::kSearchTermsReplacementKey,
+ &result->search_terms_replacement_key);
+ dict.GetBoolean(DefaultSearchManager::kCreatedByPolicy,
+ &result->created_by_policy);
+
+ result->show_in_default_list = true;
+ return result;
+}
+
+std::unique_ptr<base::DictionaryValue> TemplateUrlDataToDictionary(
+ const TemplateURLData& data) {
+ std::unique_ptr<base::DictionaryValue> url_dict(
+ base::MakeUnique<base::DictionaryValue>());
+
+ url_dict->SetString(DefaultSearchManager::kID, base::Int64ToString(data.id));
+ url_dict->SetString(DefaultSearchManager::kShortName, data.short_name());
+ url_dict->SetString(DefaultSearchManager::kKeyword, data.keyword());
+ url_dict->SetInteger(DefaultSearchManager::kPrepopulateID,
+ data.prepopulate_id);
+ url_dict->SetString(DefaultSearchManager::kSyncGUID, data.sync_guid);
+
+ url_dict->SetString(DefaultSearchManager::kURL, data.url());
+ url_dict->SetString(DefaultSearchManager::kSuggestionsURL,
+ data.suggestions_url);
+ url_dict->SetString(DefaultSearchManager::kInstantURL, data.instant_url);
+ url_dict->SetString(DefaultSearchManager::kImageURL, data.image_url);
+ url_dict->SetString(DefaultSearchManager::kNewTabURL, data.new_tab_url);
+ url_dict->SetString(DefaultSearchManager::kFaviconURL,
+ data.favicon_url.spec());
+ url_dict->SetString(DefaultSearchManager::kOriginatingURL,
+ data.originating_url.spec());
+
+ url_dict->SetString(DefaultSearchManager::kSearchURLPostParams,
+ data.search_url_post_params);
+ url_dict->SetString(DefaultSearchManager::kSuggestionsURLPostParams,
+ data.suggestions_url_post_params);
+ url_dict->SetString(DefaultSearchManager::kInstantURLPostParams,
+ data.instant_url_post_params);
+ url_dict->SetString(DefaultSearchManager::kImageURLPostParams,
+ data.image_url_post_params);
+
+ url_dict->SetBoolean(DefaultSearchManager::kSafeForAutoReplace,
+ data.safe_for_autoreplace);
+
+ url_dict->SetString(DefaultSearchManager::kDateCreated,
+ base::Int64ToString(data.date_created.ToInternalValue()));
+ url_dict->SetString(DefaultSearchManager::kLastModified,
+ base::Int64ToString(data.last_modified.ToInternalValue()));
+ url_dict->SetInteger(DefaultSearchManager::kUsageCount, data.usage_count);
+
+ std::unique_ptr<base::ListValue> alternate_urls(new base::ListValue);
+ for (std::vector<std::string>::const_iterator it =
+ data.alternate_urls.begin();
+ it != data.alternate_urls.end(); ++it) {
+ alternate_urls->AppendString(*it);
+ }
+ url_dict->Set(DefaultSearchManager::kAlternateURLs, alternate_urls.release());
+
+ std::unique_ptr<base::ListValue> encodings(new base::ListValue);
+ for (std::vector<std::string>::const_iterator it =
+ data.input_encodings.begin();
+ it != data.input_encodings.end(); ++it) {
+ encodings->AppendString(*it);
+ }
+ url_dict->Set(DefaultSearchManager::kInputEncodings, encodings.release());
+
+ url_dict->SetString(DefaultSearchManager::kSearchTermsReplacementKey,
+ data.search_terms_replacement_key);
+
+ url_dict->SetBoolean(DefaultSearchManager::kCreatedByPolicy,
+ data.created_by_policy);
+ return url_dict;
+}
« components/search_engines/default_search_manager.cc ('K') | « components/search_engines/util.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698