diff options
author | vasilii@chromium.org <vasilii@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-03-28 13:25:23 +0000 |
---|---|---|
committer | vasilii@chromium.org <vasilii@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-03-28 13:25:23 +0000 |
commit | 002d3ddb901464380d69f2594d3f40c45496b226 (patch) | |
tree | 24bd88ff4c4cf1d32be4fc518d41fabf868b7718 | |
parent | 07d515c2cf9923ad6aea5d7740ae24274bd998fd (diff) | |
download | chromium_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
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[]; |