diff options
-rw-r--r-- | chrome/app/chromium_strings.grd | 5 | ||||
-rw-r--r-- | chrome/app/generated_resources.grd | 19 | ||||
-rw-r--r-- | chrome/app/google_chrome_strings.grd | 5 | ||||
-rw-r--r-- | chrome/browser/resources/sync_promo/sync_promo.css | 288 | ||||
-rw-r--r-- | chrome/browser/resources/sync_promo/sync_promo.js | 31 | ||||
-rw-r--r-- | chrome/browser/resources/sync_setup_overlay.html | 84 | ||||
-rw-r--r-- | chrome/browser/ui/webui/sync_promo/sync_promo_handler.cc | 7 | ||||
-rw-r--r-- | chrome/browser/ui/webui/sync_promo/sync_promo_handler2.cc | 7 | ||||
-rw-r--r-- | chrome/browser/ui/webui/sync_promo/sync_promo_ui.cc | 12 | ||||
-rw-r--r-- | chrome/browser/ui/webui/sync_promo/sync_promo_ui.h | 5 | ||||
-rw-r--r-- | chrome/browser/ui/webui/sync_setup_handler.cc | 63 | ||||
-rw-r--r-- | chrome/browser/ui/webui/sync_setup_handler2.cc | 63 | ||||
-rw-r--r-- | chrome/common/chrome_switches.cc | 3 | ||||
-rw-r--r-- | chrome/common/chrome_switches.h | 1 |
14 files changed, 436 insertions, 157 deletions
diff --git a/chrome/app/chromium_strings.grd b/chrome/app/chromium_strings.grd index ae9d7a3..611cb6f 100644 --- a/chrome/app/chromium_strings.grd +++ b/chrome/app/chromium_strings.grd @@ -660,6 +660,11 @@ The extension "<ph name="EXTENSION_NAME">$1<ex>Gmail Checker</ex></ph>" has been Chromium Utility </message> </if> + + <!-- Sync promo page chrome://syncpromo --> + <message name="IDS_SYNC_PROMO_V_LEARN_MORE" desc="Learn more link at the bottom of the sync promo."> + See <ph name="BEGIN_LINK"><a target="_blank" href="$1"></ph>more benefits<ph name="END_LINK"></a></ph> of signing in to Chromium. + </message> </messages> </release> </grit> diff --git a/chrome/app/generated_resources.grd b/chrome/app/generated_resources.grd index 6600c73..fcabc40 100644 --- a/chrome/app/generated_resources.grd +++ b/chrome/app/generated_resources.grd @@ -11014,16 +11014,9 @@ Some features may be unavailable. Please check that the profile exists and you <message name="IDS_SYNC_PROMO_MESSAGE_BODY_D" desc="The body of the sync promo message. Experiment choice 3."> Get your bookmarks, history, and settings on all your devices. Plus, you'll be automatically signed in to your favorite Google services. </message> - <if expr="pp_ifdef('use_titlecase')"> - <message name="IDS_SYNC_PROMO_SKIP_BUTTON" desc="In Title Case: The button at the bottom to let the user skip the sync promo."> - Skip for Now - </message> - </if> - <if expr="not pp_ifdef('use_titlecase')"> - <message name="IDS_SYNC_PROMO_SKIP_BUTTON" desc="The button at the bottom to let the user skip the sync promo."> - Skip for now - </message> - </if> + <message name="IDS_SYNC_PROMO_SKIP_BUTTON" desc="The link button at the bottom to let the user skip the sync promo."> + Skip for now + </message> <message name="IDS_SYNC_PROMO_ADVANCED" desc="The link button at the bottom to let the user customize the sync settings."> Advanced... </message> @@ -11065,7 +11058,8 @@ Some features may be unavailable. Please check that the profile exists and you Add a bookmark on one device and it's instantly added on all your devices. </message> <message name="IDS_SYNC_PROMO_V_BACKUP_TITLE" desc="Verbose sync promo. Title of the backup message."> - Backup </message> + Backup + </message> <message name="IDS_SYNC_PROMO_V_BACKUP_BODY" desc="Verbose sync promo. Body of the backup message."> All your <ph name="SHORT_PRODUCT_NAME">$1<ex>Chrome</ex></ph> settings are safe in case anything happens to your computer. </message> @@ -11075,6 +11069,9 @@ Some features may be unavailable. Please check that the profile exists and you <message name="IDS_SYNC_PROMO_V_SERVICES_BODY" desc="Verbose sync promo. Body of the Google Services message."> Automatically sign in to all your favorite Google services, like Gmail. </message> + <message name="IDS_SYNC_PROMO_V_SIGN_UP" desc="Sign up link at the top of the sync promo."> + Sign up for a new Google Account + </message> <!-- Translate Info Bar --> <message name="IDS_TRANSLATE_INFOBAR_OPTIONS" desc="Text to show for the translate infobar options menu button"> diff --git a/chrome/app/google_chrome_strings.grd b/chrome/app/google_chrome_strings.grd index eea76b4..c13cd8c 100644 --- a/chrome/app/google_chrome_strings.grd +++ b/chrome/app/google_chrome_strings.grd @@ -639,6 +639,11 @@ The extension "<ph name="EXTENSION_NAME">$1<ex>Gmail Checker</ex></ph>" has been Chrome Utility </message> </if> + + <!-- Sync promo page chrome://syncpromo --> + <message name="IDS_SYNC_PROMO_V_LEARN_MORE" desc="Learn more link at the bottom of the sync promo."> + See <ph name="BEGIN_LINK"><a target="_blank" href="$1"></ph>more benefits<ph name="END_LINK"></a></ph> of signing in to Chrome. + </message> </messages> </release> </grit> diff --git a/chrome/browser/resources/sync_promo/sync_promo.css b/chrome/browser/resources/sync_promo/sync_promo.css index ab03c52..5c0e102 100644 --- a/chrome/browser/resources/sync_promo/sync_promo.css +++ b/chrome/browser/resources/sync_promo/sync_promo.css @@ -1,4 +1,4 @@ -/* Copyright (c) 2011 The Chromium Authors. All rights reserved. +/* Copyright (c) 2012 The Chromium Authors. All rights reserved. * Use of this source code is governed by a BSD-style license that can be * found in the LICENSE file. */ @@ -6,31 +6,27 @@ html { font-family: segoe ui, arial, helvetica, sans-serif; font-size: 13px; - height: 100%; } -body { +html, body { + margin: 0; + min-height: 100%; + min-width: 100%; + padding 0; + position: absolute; +} + +html[promo-version='0'] body { background-image: -webkit-linear-gradient( rgba(0, 0, 0, 0.0), rgba(0, 0, 0, 0.04)); } #sync-setup-overlay { background-color: transparent; + margin: 0; width: 100%; } -#sync-setup-login { - margin: 0 auto; - max-width: 900px; - min-width: 830px; - position: relative; - width: auto; -} - -#sync-setup-login > div:first-of-type { - position: relative; -} - #sync-setup-configure { background-color: transparent; margin-left: auto; @@ -38,15 +34,18 @@ body { width: 600px; } -#sync-setup-login-promo-column { - left: 0; - position: absolute; - width: 444px; +.sync-main-content { + margin: 0 auto; + max-width: 900px; + min-width: 830px; + padding: 23px 44px 0; + width: auto; } -html[dir='rtl'] #sync-setup-login-promo-column { - left: auto; - right: 0; +html[promo-version='3'] .sync-main-content { + max-width: none; + min-width: 0; + padding-top: 0; } #sync-setup-login-content-column { @@ -58,64 +57,148 @@ html[dir='rtl'] #sync-setup-login-content-column { float: left; } -#promo-title { - margin-top: 33px; - margin-bottom: 64px; - text-align: center; +html[promo-version='3'] #sync-setup-login-content-column { + float: none; + margin: 0 auto; } -#promo-title[hidden] + div { - margin-top: 30px; +#sync-setup-login-promo-column p, +#sync-setup-login-promo-column h3 { + color: rgb(34, 34, 34); } -#promo-infographic { - margin-top: 14px; +/* When showing the full page promo, remove top margin from sign-in box. */ +#sync-promo .sign-in { + margin-top: 0; } -#promo-skip { - clear: both; - display: block; - padding-top: 85px; - text-align: center; -} +/* Links and buttons. *********************************************************/ +#promo-skip-button, +#promo-skip-button:hover, #promo-advanced, #promo-advanced:hover, -#sync-setup-login-promo-column a:link, -#sync-setup-login-promo-column a:hover { - color: #15c; +#sync-setup-overlay * a:link { + color: rgb(17, 85, 204); +} + +#sync-setup-overlay * a:visited { + color: rgb(102, 17, 12); } +#promo-skip-button:active, #promo-advanced:active, -#sync-setup-login-promo-column a:active { - color: #d14836; +#sync-setup-overlay * a:active { + color: rgb(209, 72, 54); } -/* When showing the full page promo, remove top margin from sign-in box. */ -#sync-promo .sign-in { - margin-top: 0; +#promo-skip-button, +#promo-advanced, +#sync-setup-overlay * a { + text-decoration: none; } -#sync-setup-login h1 { - color: #222; +#promo-skip-button:hover, +#promo-advanced:hover, +#sync-setup-overlay * a:hover { + text-decoration: underline; +} + +#promo-skip { + text-align: center; + width: 335px; +} + +#promo-skip-button { + -webkit-margin-end: 25px; +} + +/* Page Title. ****************************************************************/ + +#promo-title-container { + display: block; + margin-bottom: 35px; + margin-top: 37px; + text-align: center; +} + +html[promo-version='1'] #promo-title-container, +html[promo-version='3'] #promo-title-container { + margin-top: 41px; +} + +html[promo-version='2'] #promo-title-container { + display: none; +} + +h1 { + color: rgb(34, 34, 34); font-size: 27px; font-weight: normal; + margin: 0; } -#sync-setup-login-promo-column h2 { - color: #222; - font-size: 18px; +html[promo-version='1'] #sync-setup-login h1, +html[promo-version='3'] #sync-setup-login h1 { + font-size: 40px; +} + +#promo-title-container h2 { + color: rgb(102, 102, 102); + font-size: 16px; font-weight: normal; } -#sync-setup-login-promo-column h3 { - color: #222; - font-size: 13px; - line-height: 13px; +html[promo-version='0'] #promo-title-container h2, +html[promo-version='2'] #promo-title-container h2 { + display: none; } -#sync-setup-login-promo-column p { - color: #222; +/* Signup header bar. *********************************************************/ + +.signup-header-bar { + background: rgb(245, 245, 245); + border-bottom: 1px solid rgb(229, 229, 229); + height: 71px; + overflow: hidden; + padding: 0 44px; +} + +.signup-header-bar .logo { + background: url('chrome://resources/images/google-logo-41.png') no-repeat; + float: left; + height: 41px; + margin: 17px 0 0; + width: 116px; +} + +html[dir='rtl'] .signup-header-bar .logo { + float: right; +} + +html[promo-version='2'] .signup-header-bar { + display: block; +} + +.signup-header-bar .signup { + float: right; + font-weight: bold; + margin: 28px 0 0; +} + +html[dir='rtl'] .signup-header-bar .signup { + float: left; +} + +/* Promo graphic / info toggle column. ****************************************/ + +#sync-setup-login-promo-column-0 h2 { + color: rgb(34, 34, 34); + font-size: 18px; + font-weight: normal; +} + +#sync-setup-login-promo-column-0 p { font-size: 13px; line-height: 20px; } @@ -135,3 +218,98 @@ html[dir='rtl'] #sync-setup-login-content-column { display: inline-block; /* Override default user-agent styles. */ opacity: 0; } + +#promo-infographic { + background: url('chrome://theme/IRD_SYNC_PROMO_INFO_GRAPHIC') no-repeat; + height: 161px; + margin-top: 14px; + width: 444px; +} + +#promo-infographic-1 { + background: url('chrome://theme/IRD_SYNC_PROMO_INFO_GRAPHIC_1') no-repeat; + height: 274px; + margin-top: 10px; + width: 451px; +} + +/* Verbose feature list. ******************************************************/ + +#sync-setup-login-promo-column-2 h2 { + color: rgb(221, 75, 57); + font-size: 25px; + font-weight: normal; + margin: 0 0 15px; +} + +.features { + line-height: 17px; + list-style: none; + margin: 2em 0 0; + overflow: hidden; + padding: 0; +} + +.features li { + margin: 3px 0 2em; +} + +.feature-logo { + float: left; + margin: -3px 0 0; +} + +html[dir='rtl'] .feature-logo { + float: right; +} + +.features p, +.features h3 { + -webkit-margin-start: 68px; + margin-bottom: 0; + margin-top: 0; +} + +.features h3 { + font-size: 16px; + font-weight: normal; + margin-bottom: 0.3em; +} + +#features-sync-logo { + background: url('chrome://resources/images/sync.png') no-repeat; + height: 42px; + width: 53px; +} + +#features-sync-backup-logo { + background: url('chrome://resources/images/sync-backup.png') no-repeat; + height: 42px; + width: 42px; +} + +#features-google-mail-logo { + background: url('chrome://resources/images/google-mail.png') no-repeat; + height: 43px; + width: 42px; +} + +/* Promo information column. **************************************************/ + +#sync-setup-login-promo-column { + display: block; +} + +html[promo-version='3'] #sync-setup-login-promo-column { + display: none; +} + +html[promo-version='0'] #sync-setup-login-promo-column-0, +html[promo-version='1'] #sync-setup-login-promo-column-1, +html[promo-version='2'] #sync-setup-login-promo-column-2 { + display: block; +} + +#sync-setup-login-promo-column { + -webkit-margin-end: 385px; +} diff --git a/chrome/browser/resources/sync_promo/sync_promo.js b/chrome/browser/resources/sync_promo/sync_promo.js index 7315874..9d2f459 100644 --- a/chrome/browser/resources/sync_promo/sync_promo.js +++ b/chrome/browser/resources/sync_promo/sync_promo.js @@ -1,4 +1,4 @@ -// Copyright (c) 2011 The Chromium Authors. All rights reserved. +// Copyright (c) 2012 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. @@ -61,7 +61,6 @@ cr.define('sync_promo', function() { // Hide parts of the login UI and show the promo UI. this.hideOuterLoginUI_(); - $('sync-setup-login-promo-column').hidden = false; $('promo-skip').hidden = false; this.showSetupUI_(); @@ -198,16 +197,6 @@ cr.define('sync_promo', function() { arguments); }, - /** - * Shows or hides the title of the promo page. - * @param {Boolean} visible true if the title should be visible, false - * otherwise. - * @private - */ - setPromoTitleVisible_: function(visible) { - $('promo-title').hidden = !visible; - }, - /** @inheritDoc */ setThrobbersVisible_: function(visible) { if (visible) { @@ -225,6 +214,16 @@ cr.define('sync_promo', function() { }, /** + * Shows the given promo version. Each version changes the UI slightly + * (for example, replacing text with an infographic). + * @param {Integer} the version of the promo. + * @private + */ + showPromoVersion_: function(version) { + document.documentElement.setAttribute('promo-version', version); + }, + + /** * Number of times a user attempted to sign in to GAIA during this page * view. * @private @@ -267,10 +266,6 @@ cr.define('sync_promo', function() { SyncPromo.getInstance().initializePage(); }; - SyncPromo.setPromoTitleVisible = function(visible) { - SyncPromo.getInstance().setPromoTitleVisible_(visible); - }; - SyncPromo.recordPageViewActions = function() { SyncPromo.getInstance().recordPageViewActions_(); }; @@ -279,6 +274,10 @@ cr.define('sync_promo', function() { SyncPromo.getInstance().populatePromoMessage_(resName); }; + SyncPromo.showPromoVersion = function(version) { + SyncPromo.getInstance().showPromoVersion_(version); + }; + // Export return { SyncPromo: SyncPromo diff --git a/chrome/browser/resources/sync_setup_overlay.html b/chrome/browser/resources/sync_setup_overlay.html index 4199d77..16f66bd 100644 --- a/chrome/browser/resources/sync_setup_overlay.html +++ b/chrome/browser/resources/sync_setup_overlay.html @@ -1,24 +1,15 @@ <div id="sync-setup-overlay" class="page" hidden> <div id="sync-setup-login" hidden> - <h1 id="promo-title" i18n-content="promoTitle" hidden></h1> - <div> - <div id="sync-setup-login-promo-column" hidden> - <h2 id="promo-message-title" i18n-content="promoMessageTitle"></h2> - <p> - <span i18n-values=".innerHTML:promoMessageBody"></span> - <a id="promo-learn-more-show" i18n-content="promoLearnMoreShow" - href="#" tabindex="1"></a> - <a id="promo-learn-more-hide" i18n-content="promoLearnMoreHide" - href="#" tabindex="1" hidden> </a> - </p> - <div id="promo-info-pane"> - <img id="promo-infographic" - src="chrome://theme/IRD_SYNC_PROMO_INFO_GRAPHIC"> - <div id="promo-information" i18n-values=".innerHTML:promoInformation" - hidden> - </div> - </div> - </div> + <div id="promo-title-container" hidden> + <h1 i18n-content="promoTitle"></h1> + <h2 i18n-content="promoTitleShort"></h2> + </div> + <div class="signup-header-bar" hidden> + <div class="logo"></div> + <a class="signup" i18n-values="href:signUpURL" + i18n-content="promoVerboseSignUp"></a> + </div> + <div class="sync-main-content"> <div id="sync-setup-login-content-column"> <h1 id="sync-setup-overlay-title" i18n-content="syncSetupOverlayTitle"> @@ -125,13 +116,56 @@ </button> </div> </div> + <div id="promo-skip" hidden> + <button id="promo-skip-button" type="reset" + i18n-content="promoSkipButton" class="link-button"></button> + <button id="promo-advanced" i18n-content="promoAdvanced" + class="link-button"></button> + </div> + </div> + <div id="sync-setup-login-promo-column" hidden> + <div id="sync-setup-login-promo-column-0" hidden> + <h2 i18n-content="promoMessageTitle"></h2> + <p> + <span i18n-values=".innerHTML:promoMessageBody"></span> + <a id="promo-learn-more-show" i18n-content="promoLearnMoreShow" + href="#" tabindex="1"></a> + <a id="promo-learn-more-hide" i18n-content="promoLearnMoreHide" + href="#" tabindex="1" hidden> </a> + </p> + <div id="promo-info-pane"> + <div id="promo-infographic"></div> + <div id="promo-information" + i18n-values=".innerHTML:promoInformation" hidden> + </div> + </div> + </div> + <div id="sync-setup-login-promo-column-1" hidden> + <div id="promo-infographic-1"></div> + </div> + <div id="sync-setup-login-promo-column-2" hidden> + <h2 i18n-content="promoVerboseTitle"></h2> + <p i18n-content="promoVerboseMessageBody"></p> + <ul class="features"> + <li> + <div id="features-sync-logo" class="feature-logo"></div> + <h3 i18n-content="promoVerboseSyncTitle"></h3> + <p i18n-content="promoVerboseSyncBody"></p> + </li> + <li> + <div id="features-sync-backup-logo" class="feature-logo"></div> + <h3 i18n-content="promoVerboseBackupTitle"></h3> + <p i18n-content="promoVerboseBackupBody"></p> + </li> + <li> + <div id="features-google-mail-logo" class="feature-logo"></div> + <h3 i18n-content="promoVerboseServicesTitle"></h3> + <p i18n-content="promoVerboseServicesBody"></p> + </li> + </ul> + <span i18n-values=".innerHTML:promoVerboseLearnMore"></span> + </div> </div> - </div> - <div id="promo-skip" hidden> - <button id="promo-skip-button" type="reset" - i18n-content="promoSkipButton"> </button> - <button id="promo-advanced" i18n-content="promoAdvanced" - class="link-button"></button> </div> </div> <div id="sync-setup-configure" hidden> diff --git a/chrome/browser/ui/webui/sync_promo/sync_promo_handler.cc b/chrome/browser/ui/webui/sync_promo/sync_promo_handler.cc index 9a2302d..0ae59e1 100644 --- a/chrome/browser/ui/webui/sync_promo/sync_promo_handler.cc +++ b/chrome/browser/ui/webui/sync_promo/sync_promo_handler.cc @@ -224,9 +224,10 @@ void SyncPromoHandler::HandleInitializeSyncPromo(const base::ListValue* args) { web_ui()->GetWebContents()->GetURL()); if (is_launch_page && sync_promo_trial::IsExperimentActive()) sync_promo_trial::RecordUserSawMessage(); - base::FundamentalValue visible(is_launch_page); - web_ui()->CallJavascriptFunction("SyncSetupOverlay.setPromoTitleVisible", - visible); + + base::FundamentalValue version(SyncPromoUI::GetSyncPromoVersion()); + web_ui()->CallJavascriptFunction("SyncSetupOverlay.showPromoVersion", + version); OpenSyncSetup(); // We don't need to compute anything for this, just do this every time. diff --git a/chrome/browser/ui/webui/sync_promo/sync_promo_handler2.cc b/chrome/browser/ui/webui/sync_promo/sync_promo_handler2.cc index 760ea98..9dbdbb1 100644 --- a/chrome/browser/ui/webui/sync_promo/sync_promo_handler2.cc +++ b/chrome/browser/ui/webui/sync_promo/sync_promo_handler2.cc @@ -227,9 +227,10 @@ void SyncPromoHandler2::HandleInitializeSyncPromo(const base::ListValue* args) { web_ui_->tab_contents()->GetURL()); if (is_launch_page && sync_promo_trial::IsExperimentActive()) sync_promo_trial::RecordUserSawMessage(); - base::FundamentalValue visible(is_launch_page); - web_ui_->CallJavascriptFunction("SyncSetupOverlay.setPromoTitleVisible", - visible); + + base::FundamentalValue version(SyncPromoUI::GetSyncPromoVersion()); + web_ui_->CallJavascriptFunction("SyncSetupOverlay.showPromoVersion", + version); OpenSyncSetup(); // We don't need to compute anything for this, just do this every time. diff --git a/chrome/browser/ui/webui/sync_promo/sync_promo_ui.cc b/chrome/browser/ui/webui/sync_promo/sync_promo_ui.cc index 9886add..63d6aec 100644 --- a/chrome/browser/ui/webui/sync_promo/sync_promo_ui.cc +++ b/chrome/browser/ui/webui/sync_promo/sync_promo_ui.cc @@ -5,6 +5,7 @@ #include "chrome/browser/ui/webui/sync_promo/sync_promo_ui.h" #include "base/command_line.h" +#include "base/string_number_conversions.h" #include "base/utf_string_conversions.h" #include "chrome/browser/browser_process.h" #include "chrome/browser/first_run/first_run.h" @@ -289,3 +290,14 @@ std::string SyncPromoUI::GetSourceForSyncPromoURL(const GURL& url) { bool SyncPromoUI::UserHasSeenSyncPromoAtStartup(Profile* profile) { return profile->GetPrefs()->GetInteger(prefs::kSyncPromoStartupCount) > 0; } + +// static +int SyncPromoUI::GetSyncPromoVersion() { + int version = 0; + if (base::StringToInt(CommandLine::ForCurrentProcess()-> + GetSwitchValueASCII(switches::kSyncPromoVersion), &version)) { + return version; + } + // Default promo version is 0. + return 0; +} diff --git a/chrome/browser/ui/webui/sync_promo/sync_promo_ui.h b/chrome/browser/ui/webui/sync_promo/sync_promo_ui.h index 7e90992..ab932cc 100644 --- a/chrome/browser/ui/webui/sync_promo/sync_promo_ui.h +++ b/chrome/browser/ui/webui/sync_promo/sync_promo_ui.h @@ -64,6 +64,11 @@ class SyncPromoUI : public content::WebUIController { // Returns true if the sync promo page was ever shown at startup. static bool UserHasSeenSyncPromoAtStartup(Profile* profile); + // Returns the version of the sync promo UI that we should display. + // Each version changes the UI slightly (for example, replacing text with + // an infographic). + static int GetSyncPromoVersion(); + private: DISALLOW_COPY_AND_ASSIGN(SyncPromoUI); }; diff --git a/chrome/browser/ui/webui/sync_setup_handler.cc b/chrome/browser/ui/webui/sync_setup_handler.cc index 2bd6003d..5b7246d 100644 --- a/chrome/browser/ui/webui/sync_setup_handler.cc +++ b/chrome/browser/ui/webui/sync_setup_handler.cc @@ -204,39 +204,40 @@ void SyncSetupHandler::GetStaticLocalizedValues( "cannotAccessAccountURL", google_util::StringAppendGoogleLocaleParam( chrome::kCanNotAccessAccountURL)); + string16 product_name(GetStringUTF16(IDS_PRODUCT_NAME)); localized_strings->SetString( "introduction", - GetStringFUTF16(IDS_SYNC_LOGIN_INTRODUCTION, - GetStringUTF16(IDS_PRODUCT_NAME))); + GetStringFUTF16(IDS_SYNC_LOGIN_INTRODUCTION, product_name)); localized_strings->SetString( "chooseDataTypesInstructions", - GetStringFUTF16(IDS_SYNC_CHOOSE_DATATYPES_INSTRUCTIONS, - GetStringUTF16(IDS_PRODUCT_NAME))); + GetStringFUTF16(IDS_SYNC_CHOOSE_DATATYPES_INSTRUCTIONS, product_name)); localized_strings->SetString( "encryptionInstructions", - GetStringFUTF16(IDS_SYNC_ENCRYPTION_INSTRUCTIONS, - GetStringUTF16(IDS_PRODUCT_NAME))); + GetStringFUTF16(IDS_SYNC_ENCRYPTION_INSTRUCTIONS, product_name)); localized_strings->SetString( "encryptionHelpURL", google_util::StringAppendGoogleLocaleParam( chrome::kSyncEncryptionHelpURL)); localized_strings->SetString( "passphraseEncryptionMessage", - GetStringFUTF16(IDS_SYNC_PASSPHRASE_ENCRYPTION_MESSAGE, - GetStringUTF16(IDS_PRODUCT_NAME))); + GetStringFUTF16(IDS_SYNC_PASSPHRASE_ENCRYPTION_MESSAGE, product_name)); localized_strings->SetString( "passphraseRecover", GetStringFUTF16(IDS_SYNC_PASSPHRASE_RECOVER, ASCIIToUTF16(google_util::StringAppendGoogleLocaleParam( chrome::kSyncGoogleDashboardURL)))); + + bool is_launch_page = web_ui && SyncPromoUI::GetIsLaunchPageForSyncPromoURL( + web_ui->GetWebContents()->GetURL()); + int title_id = is_launch_page ? IDS_SYNC_PROMO_TITLE : + IDS_SYNC_PROMO_TITLE_EXISTING_USER; + string16 short_product_name(GetStringUTF16(IDS_SHORT_PRODUCT_NAME)); localized_strings->SetString( - "promoTitle", - GetStringFUTF16(IDS_SYNC_PROMO_TITLE, - GetStringUTF16(IDS_PRODUCT_NAME))); + "promoTitle", GetStringFUTF16(title_id, short_product_name)); + localized_strings->SetString( "promoMessageTitle", - GetStringFUTF16(IDS_SYNC_PROMO_MESSAGE_TITLE, - GetStringUTF16(IDS_SHORT_PRODUCT_NAME))); + GetStringFUTF16(IDS_SYNC_PROMO_MESSAGE_TITLE, short_product_name)); localized_strings->SetString( "syncEverythingHelpURL", google_util::StringAppendGoogleLocaleParam( @@ -249,10 +250,8 @@ void SyncSetupHandler::GetStaticLocalizedValues( // The experimental body string only appears if we are on the launch page // version of the Sync Promo. int message_body_resource_id = IDS_SYNC_PROMO_MESSAGE_BODY_A; - if (web_ui && SyncPromoUI::GetIsLaunchPageForSyncPromoURL( - web_ui->GetWebContents()->GetURL())) { + if (is_launch_page) message_body_resource_id = sync_promo_trial::GetMessageBodyResID(); - } localized_strings->SetString( "promoMessageBody", GetStringUTF16(message_body_resource_id)); @@ -266,6 +265,19 @@ void SyncSetupHandler::GetStaticLocalizedValues( localized_strings->SetString("createAccountLinkHTML", GetStringFUTF16(IDS_SYNC_CREATE_ACCOUNT_PREFIX, create_account)); + localized_strings->SetString("promoVerboseTitle", short_product_name); + localized_strings->SetString("promoVerboseMessageBody", + GetStringFUTF16(IDS_SYNC_PROMO_V_MESSAGE_BODY, short_product_name)); + + string16 sync_benefits_url( + UTF8ToUTF16(google_util::StringAppendGoogleLocaleParam( + chrome::kSyncLearnMoreURL))); + localized_strings->SetString("promoVerboseLearnMore", + GetStringFUTF16(IDS_SYNC_PROMO_V_LEARN_MORE, sync_benefits_url)); + localized_strings->SetString("promoVerboseBackupBody", + GetStringFUTF16(IDS_SYNC_PROMO_V_BACKUP_BODY, short_product_name)); + localized_strings->SetString("signUpURL", create_account_url); + static OptionsStringResource resources[] = { { "syncSetupOverlayTitle", IDS_SYNC_SETUP_TITLE }, { "syncSetupConfigureTitle", IDS_SYNC_SETUP_CONFIGURE_TITLE }, @@ -336,12 +348,19 @@ void SyncSetupHandler::GetStaticLocalizedValues( { "encryptAllOption", IDS_SYNC_ENCRYPT_ALL_DATA }, { "encryptAllOption", IDS_SYNC_ENCRYPT_ALL_DATA }, { "aspWarningText", IDS_SYNC_ASP_PASSWORD_WARNING_TEXT }, - { "promoPageTitle", IDS_SYNC_PROMO_TAB_TITLE}, - { "promoSkipButton", IDS_SYNC_PROMO_SKIP_BUTTON}, - { "promoAdvanced", IDS_SYNC_PROMO_ADVANCED}, - { "promoLearnMoreShow", IDS_SYNC_PROMO_LEARN_MORE_SHOW}, - { "promoLearnMoreHide", IDS_SYNC_PROMO_LEARN_MORE_HIDE}, - { "promoInformation", IDS_SYNC_PROMO_INFORMATION}, + { "promoPageTitle", IDS_SYNC_PROMO_TAB_TITLE }, + { "promoSkipButton", IDS_SYNC_PROMO_SKIP_BUTTON }, + { "promoAdvanced", IDS_SYNC_PROMO_ADVANCED }, + { "promoLearnMoreShow", IDS_SYNC_PROMO_LEARN_MORE_SHOW }, + { "promoLearnMoreHide", IDS_SYNC_PROMO_LEARN_MORE_HIDE }, + { "promoInformation", IDS_SYNC_PROMO_INFORMATION }, + { "promoVerboseSyncTitle", IDS_SYNC_PROMO_V_SYNC_TITLE }, + { "promoVerboseSyncBody", IDS_SYNC_PROMO_V_SYNC_BODY }, + { "promoVerboseBackupTitle", IDS_SYNC_PROMO_V_BACKUP_TITLE }, + { "promoVerboseServicesTitle", IDS_SYNC_PROMO_V_SERVICES_TITLE }, + { "promoVerboseServicesBody", IDS_SYNC_PROMO_V_SERVICES_BODY }, + { "promoVerboseSignUp", IDS_SYNC_PROMO_V_SIGN_UP }, + { "promoTitleShort", IDS_SYNC_PROMO_MESSAGE_TITLE_SHORT }, }; RegisterStrings(localized_strings, resources, arraysize(resources)); diff --git a/chrome/browser/ui/webui/sync_setup_handler2.cc b/chrome/browser/ui/webui/sync_setup_handler2.cc index 76b83f3..bdeb392 100644 --- a/chrome/browser/ui/webui/sync_setup_handler2.cc +++ b/chrome/browser/ui/webui/sync_setup_handler2.cc @@ -207,39 +207,40 @@ void SyncSetupHandler2::GetStaticLocalizedValues( "cannotAccessAccountURL", google_util::StringAppendGoogleLocaleParam( chrome::kCanNotAccessAccountURL)); + string16 product_name(GetStringUTF16(IDS_PRODUCT_NAME)); localized_strings->SetString( "introduction", - GetStringFUTF16(IDS_SYNC_LOGIN_INTRODUCTION, - GetStringUTF16(IDS_PRODUCT_NAME))); + GetStringFUTF16(IDS_SYNC_LOGIN_INTRODUCTION, product_name)); localized_strings->SetString( "chooseDataTypesInstructions", - GetStringFUTF16(IDS_SYNC_CHOOSE_DATATYPES_INSTRUCTIONS, - GetStringUTF16(IDS_PRODUCT_NAME))); + GetStringFUTF16(IDS_SYNC_CHOOSE_DATATYPES_INSTRUCTIONS, product_name)); localized_strings->SetString( "encryptionInstructions", - GetStringFUTF16(IDS_SYNC_ENCRYPTION_INSTRUCTIONS, - GetStringUTF16(IDS_PRODUCT_NAME))); + GetStringFUTF16(IDS_SYNC_ENCRYPTION_INSTRUCTIONS, product_name)); localized_strings->SetString( "encryptionHelpURL", google_util::StringAppendGoogleLocaleParam( chrome::kSyncEncryptionHelpURL)); localized_strings->SetString( "passphraseEncryptionMessage", - GetStringFUTF16(IDS_SYNC_PASSPHRASE_ENCRYPTION_MESSAGE, - GetStringUTF16(IDS_PRODUCT_NAME))); + GetStringFUTF16(IDS_SYNC_PASSPHRASE_ENCRYPTION_MESSAGE, product_name)); localized_strings->SetString( "passphraseRecover", GetStringFUTF16(IDS_SYNC_PASSPHRASE_RECOVER, ASCIIToUTF16(google_util::StringAppendGoogleLocaleParam( chrome::kSyncGoogleDashboardURL)))); + + bool is_launch_page = SyncPromoUI::GetIsLaunchPageForSyncPromoURL( + web_ui->GetWebContents()->GetURL()); + int title_id = is_launch_page ? IDS_SYNC_PROMO_TITLE : + IDS_SYNC_PROMO_TITLE_EXISTING_USER; + string16 short_product_name(GetStringUTF16(IDS_SHORT_PRODUCT_NAME)); localized_strings->SetString( - "promoTitle", - GetStringFUTF16(IDS_SYNC_PROMO_TITLE, - GetStringUTF16(IDS_PRODUCT_NAME))); + "promoTitle", GetStringFUTF16(title_id, short_product_name)); + localized_strings->SetString( "promoMessageTitle", - GetStringFUTF16(IDS_SYNC_PROMO_MESSAGE_TITLE, - GetStringUTF16(IDS_SHORT_PRODUCT_NAME))); + GetStringFUTF16(IDS_SYNC_PROMO_MESSAGE_TITLE, short_product_name)); localized_strings->SetString( "syncEverythingHelpURL", google_util::StringAppendGoogleLocaleParam( @@ -252,10 +253,8 @@ void SyncSetupHandler2::GetStaticLocalizedValues( // The experimental body string only appears if we are on the launch page // version of the Sync Promo. int message_body_resource_id = IDS_SYNC_PROMO_MESSAGE_BODY_A; - if (web_ui && SyncPromoUI::GetIsLaunchPageForSyncPromoURL( - web_ui->GetWebContents()->GetURL())) { + if (is_launch_page) message_body_resource_id = sync_promo_trial::GetMessageBodyResID(); - } localized_strings->SetString( "promoMessageBody", GetStringUTF16(message_body_resource_id)); @@ -269,6 +268,19 @@ void SyncSetupHandler2::GetStaticLocalizedValues( localized_strings->SetString("createAccountLinkHTML", GetStringFUTF16(IDS_SYNC_CREATE_ACCOUNT_PREFIX, create_account)); + localized_strings->SetString("promoVerboseTitle", short_product_name); + localized_strings->SetString("promoVerboseMessageBody", + GetStringFUTF16(IDS_SYNC_PROMO_V_MESSAGE_BODY, short_product_name)); + + string16 sync_benefits_url( + UTF8ToUTF16(google_util::StringAppendGoogleLocaleParam( + chrome::kSyncLearnMoreURL))); + localized_strings->SetString("promoVerboseLearnMore", + GetStringFUTF16(IDS_SYNC_PROMO_V_LEARN_MORE, sync_benefits_url)); + localized_strings->SetString("promoVerboseBackupBody", + GetStringFUTF16(IDS_SYNC_PROMO_V_BACKUP_BODY, short_product_name)); + localized_strings->SetString("signUpURL", create_account_url); + static OptionsStringResource resources[] = { { "syncSetupOverlayTitle", IDS_SYNC_SETUP_TITLE }, { "syncSetupConfigureTitle", IDS_SYNC_SETUP_CONFIGURE_TITLE }, @@ -339,12 +351,19 @@ void SyncSetupHandler2::GetStaticLocalizedValues( { "encryptAllOption", IDS_SYNC_ENCRYPT_ALL_DATA }, { "encryptAllOption", IDS_SYNC_ENCRYPT_ALL_DATA }, { "aspWarningText", IDS_SYNC_ASP_PASSWORD_WARNING_TEXT }, - { "promoPageTitle", IDS_SYNC_PROMO_TAB_TITLE}, - { "promoSkipButton", IDS_SYNC_PROMO_SKIP_BUTTON}, - { "promoAdvanced", IDS_SYNC_PROMO_ADVANCED}, - { "promoLearnMoreShow", IDS_SYNC_PROMO_LEARN_MORE_SHOW}, - { "promoLearnMoreHide", IDS_SYNC_PROMO_LEARN_MORE_HIDE}, - { "promoInformation", IDS_SYNC_PROMO_INFORMATION}, + { "promoPageTitle", IDS_SYNC_PROMO_TAB_TITLE }, + { "promoSkipButton", IDS_SYNC_PROMO_SKIP_BUTTON }, + { "promoAdvanced", IDS_SYNC_PROMO_ADVANCED }, + { "promoLearnMoreShow", IDS_SYNC_PROMO_LEARN_MORE_SHOW }, + { "promoLearnMoreHide", IDS_SYNC_PROMO_LEARN_MORE_HIDE }, + { "promoInformation", IDS_SYNC_PROMO_INFORMATION }, + { "promoVerboseSyncTitle", IDS_SYNC_PROMO_V_SYNC_TITLE }, + { "promoVerboseSyncBody", IDS_SYNC_PROMO_V_SYNC_BODY }, + { "promoVerboseBackupTitle", IDS_SYNC_PROMO_V_BACKUP_TITLE }, + { "promoVerboseServicesTitle", IDS_SYNC_PROMO_V_SERVICES_TITLE }, + { "promoVerboseServicesBody", IDS_SYNC_PROMO_V_SERVICES_BODY }, + { "promoVerboseSignUp", IDS_SYNC_PROMO_V_SIGN_UP }, + { "promoTitleShort", IDS_SYNC_PROMO_MESSAGE_TITLE_SHORT }, }; RegisterStrings(localized_strings, resources, arraysize(resources)); diff --git a/chrome/common/chrome_switches.cc b/chrome/common/chrome_switches.cc index ee4d325..75156ba 100644 --- a/chrome/common/chrome_switches.cc +++ b/chrome/common/chrome_switches.cc @@ -1111,6 +1111,9 @@ const char kSyncNotificationMethod[] = "sync-notification-method"; // or "host:port". const char kSyncNotificationHost[] = "sync-notification-host"; +// Specifies the sync promo version to display. +const char kSyncPromoVersion[] = "sync-promo-version"; + // Overrides the default server used for profile sync. const char kSyncServiceURL[] = "sync-url"; diff --git a/chrome/common/chrome_switches.h b/chrome/common/chrome_switches.h index 60b9ec2..d78caae 100644 --- a/chrome/common/chrome_switches.h +++ b/chrome/common/chrome_switches.h @@ -300,6 +300,7 @@ extern const char kSyncInvalidateXmppLogin[]; extern const char kSyncerThreadTimedStop[]; extern const char kSyncNotificationMethod[]; extern const char kSyncNotificationHost[]; +extern const char kSyncPromoVersion[]; extern const char kSyncServiceURL[]; extern const char kSyncThrowUnrecoverableError[]; extern const char kSyncTrySsltcpFirstForXmpp[]; |