summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorvasilii@chromium.org <vasilii@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-03-28 13:25:23 +0000
committervasilii@chromium.org <vasilii@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-03-28 13:25:23 +0000
commit002d3ddb901464380d69f2594d3f40c45496b226 (patch)
tree24bd88ff4c4cf1d32be4fc518d41fabf868b7718
parent07d515c2cf9923ad6aea5d7740ae24274bd998fd (diff)
downloadchromium_src-002d3ddb901464380d69f2594d3f40c45496b226.zip
chromium_src-002d3ddb901464380d69f2594d3f40c45496b226.tar.gz
chromium_src-002d3ddb901464380d69f2594d3f40c45496b226.tar.bz2
Settings Override API: localize all URLs.
Currently the search provider can be localized. The CL adds localization support of homepage and startup page. BUG=267510 R=kalman@chromium.org Review URL: https://codereview.chromium.org/213683006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@260116 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r--chrome/browser/extensions/api/settings_overrides/settings_overrides_browsertest.cc4
-rw-r--r--chrome/common/extensions/extension_l10n_util.cc17
-rw-r--r--chrome/common/extensions/extension_l10n_util_unittest.cc17
-rw-r--r--chrome/test/data/extensions/settings_override/manifest.json4
-rw-r--r--extensions/common/manifest_constants.cc5
-rw-r--r--extensions/common/manifest_constants.h4
6 files changed, 40 insertions, 11 deletions
diff --git a/chrome/browser/extensions/api/settings_overrides/settings_overrides_browsertest.cc b/chrome/browser/extensions/api/settings_overrides/settings_overrides_browsertest.cc
index 3d4bed8..6774c61 100644
--- a/chrome/browser/extensions/api/settings_overrides/settings_overrides_browsertest.cc
+++ b/chrome/browser/extensions/api/settings_overrides/settings_overrides_browsertest.cc
@@ -73,12 +73,12 @@ IN_PROC_BROWSER_TEST_F(ExtensionBrowserTest, OverrideSettings) {
kFlagEnableFileAccess,
"10");
ASSERT_TRUE(extension);
- EXPECT_EQ("http://www.homepage.com/?param=10",
+ EXPECT_EQ("http://www.homepage.de/?param=10",
prefs->GetString(prefs::kHomePage));
EXPECT_FALSE(prefs->GetBoolean(prefs::kHomePageIsNewTabPage));
startup_pref = SessionStartupPref::GetStartupPref(prefs);
EXPECT_EQ(SessionStartupPref::URLS, startup_pref.type);
- EXPECT_EQ(std::vector<GURL>(1, GURL("http://www.startup.com/?param=10")),
+ EXPECT_EQ(std::vector<GURL>(1, GURL("http://www.startup.de/?param=10")),
startup_pref.urls);
TemplateURL* extension_provider = url_service->GetDefaultSearchProvider();
EXPECT_EQ(TemplateURL::NORMAL_CONTROLLED_BY_EXTENSION,
diff --git a/chrome/common/extensions/extension_l10n_util.cc b/chrome/common/extensions/extension_l10n_util.cc
index bc3c229..38891ba 100644
--- a/chrome/common/extensions/extension_l10n_util.cc
+++ b/chrome/common/extensions/extension_l10n_util.cc
@@ -240,12 +240,13 @@ bool LocalizeManifest(const extensions::MessageBundle& messages,
// Initialize search_provider fields.
base::DictionaryValue* search_provider = NULL;
- if (manifest->GetDictionary(keys::kSearchProvider, &search_provider)) {
+ if (manifest->GetDictionary(keys::kOverrideSearchProvider,
+ &search_provider)) {
for (base::DictionaryValue::Iterator iter(*search_provider);
!iter.IsAtEnd();
iter.Advance()) {
- key.assign(base::StringPrintf("%s.%s", keys::kSearchProvider,
- iter.key().c_str()));
+ key.assign(base::StringPrintf(
+ "%s.%s", keys::kOverrideSearchProvider, iter.key().c_str()));
bool success = (key == keys::kSettingsOverrideAlternateUrls) ?
LocalizeManifestListValue(key, messages, manifest, error) :
LocalizeManifestValue(key, messages, manifest, error);
@@ -254,6 +255,16 @@ bool LocalizeManifest(const extensions::MessageBundle& messages,
}
}
+ // Initialize chrome_settings_overrides.homepage.
+ if (!LocalizeManifestValue(
+ keys::kOverrideHomepage, messages, manifest, error))
+ return false;
+
+ // Initialize chrome_settings_overrides.startup_pages.
+ if (!LocalizeManifestListValue(
+ keys::kOverrideStartupPage, messages, manifest, error))
+ return false;
+
// Add current locale key to the manifest, so we can overwrite prefs
// with new manifest when chrome locale changes.
manifest->SetString(keys::kCurrentLocale, CurrentLocaleOrDefault());
diff --git a/chrome/common/extensions/extension_l10n_util_unittest.cc b/chrome/common/extensions/extension_l10n_util_unittest.cc
index c5ed18a..442fec0 100644
--- a/chrome/common/extensions/extension_l10n_util_unittest.cc
+++ b/chrome/common/extensions/extension_l10n_util_unittest.cc
@@ -575,7 +575,13 @@ TEST(ExtensionL10nUtil, LocalizeManifestWithSearchProviderMsgs) {
search_provider->SetString("search_url", "http://www.foo.__MSG_country__");
search_provider->SetString("favicon_url", "http://www.foo.__MSG_country__");
search_provider->SetString("suggest_url", "http://www.foo.__MSG_country__");
- manifest.Set(keys::kSearchProvider, search_provider);
+ manifest.Set(keys::kOverrideSearchProvider, search_provider);
+
+ manifest.SetString(keys::kOverrideHomepage, "http://www.foo.__MSG_country__");
+
+ base::ListValue* startup_pages = new base::ListValue;
+ startup_pages->AppendString("http://www.foo.__MSG_country__");
+ manifest.Set(keys::kOverrideStartupPage, startup_pages);
std::string error;
scoped_ptr<MessageBundle> messages(CreateManifestBundle());
@@ -590,7 +596,7 @@ TEST(ExtensionL10nUtil, LocalizeManifestWithSearchProviderMsgs) {
ASSERT_TRUE(manifest.GetString(keys::kDescription, &result));
EXPECT_EQ("description", result);
- std::string key_prefix(keys::kSearchProvider);
+ std::string key_prefix(keys::kOverrideSearchProvider);
key_prefix += '.';
ASSERT_TRUE(manifest.GetString(key_prefix + "name", &result));
EXPECT_EQ("de", result);
@@ -607,6 +613,13 @@ TEST(ExtensionL10nUtil, LocalizeManifestWithSearchProviderMsgs) {
ASSERT_TRUE(manifest.GetString(key_prefix + "suggest_url", &result));
EXPECT_EQ("http://www.foo.de", result);
+ ASSERT_TRUE(manifest.GetString(keys::kOverrideHomepage, &result));
+ EXPECT_EQ("http://www.foo.de", result);
+
+ ASSERT_TRUE(manifest.GetList(keys::kOverrideStartupPage, &startup_pages));
+ ASSERT_TRUE(startup_pages->GetString(0, &result));
+ EXPECT_EQ("http://www.foo.de", result);
+
EXPECT_TRUE(error.empty());
}
diff --git a/chrome/test/data/extensions/settings_override/manifest.json b/chrome/test/data/extensions/settings_override/manifest.json
index 7c0a542..48327d7 100644
--- a/chrome/test/data/extensions/settings_override/manifest.json
+++ b/chrome/test/data/extensions/settings_override/manifest.json
@@ -4,7 +4,7 @@
"manifest_version": 2,
"description": "end-to-end browser test for chrome.settings_override API",
"chrome_settings_overrides": {
- "homepage": "http://www.homepage.com/?param=__PARAM__",
+ "homepage": "http://www.homepage.__MSG_url_domain__/?param=__PARAM__",
"search_provider": {
"name": "name.__MSG_url_domain__",
"keyword": "keyword.__MSG_url_domain__",
@@ -24,7 +24,7 @@
"encoding": "UTF-8",
"is_default": true
},
- "startup_pages": ["http://www.startup.com/?param=__PARAM__"]
+ "startup_pages": ["http://www.startup.__MSG_url_domain__/?param=__PARAM__"]
},
"default_locale": "de"
}
diff --git a/extensions/common/manifest_constants.cc b/extensions/common/manifest_constants.cc
index 40e0f9e..e0433b3 100644
--- a/extensions/common/manifest_constants.cc
+++ b/extensions/common/manifest_constants.cc
@@ -92,6 +92,10 @@ const char kOmnibox[] = "omnibox";
const char kOmniboxKeyword[] = "omnibox.keyword";
const char kOptionalPermissions[] = "optional_permissions";
const char kOptionsPage[] = "options_page";
+const char kOverrideHomepage[] = "chrome_settings_overrides.homepage";
+const char kOverrideSearchProvider[] =
+ "chrome_settings_overrides.search_provider";
+const char kOverrideStartupPage[] = "chrome_settings_overrides.startup_pages";
const char kPageAction[] = "page_action";
const char kPageActionDefaultIcon[] = "default_icon";
const char kPageActionDefaultPopup[] = "default_popup";
@@ -119,7 +123,6 @@ const char kRunAt[] = "run_at";
const char kSandboxedPages[] = "sandbox.pages";
const char kSandboxedPagesCSP[] = "sandbox.content_security_policy";
const char kScriptBadge[] = "script_badge";
-const char kSearchProvider[] = "chrome_settings_overrides.search_provider";
const char kSettingsOverride[] = "chrome_settings_overrides";
const char kSettingsOverrideAlternateUrls[] =
"chrome_settings_overrides.search_provider.alternate_urls";
diff --git a/extensions/common/manifest_constants.h b/extensions/common/manifest_constants.h
index ac14f5c..398b082 100644
--- a/extensions/common/manifest_constants.h
+++ b/extensions/common/manifest_constants.h
@@ -101,6 +101,9 @@ extern const char kOmnibox[];
extern const char kOmniboxKeyword[];
extern const char kOptionalPermissions[];
extern const char kOptionsPage[];
+extern const char kOverrideHomepage[];
+extern const char kOverrideSearchProvider[];
+extern const char kOverrideStartupPage[];
extern const char kPageAction[];
extern const char kPageActionDefaultIcon[];
extern const char kPageActionDefaultPopup[];
@@ -128,7 +131,6 @@ extern const char kRunAt[];
extern const char kSandboxedPages[];
extern const char kSandboxedPagesCSP[];
extern const char kScriptBadge[];
-extern const char kSearchProvider[];
extern const char kSettingsOverride[];
extern const char kSettingsOverrideAlternateUrls[];
extern const char kShiftKey[];