summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--chrome/app/chromium_strings.grd5
-rw-r--r--chrome/app/generated_resources.grd19
-rw-r--r--chrome/app/google_chrome_strings.grd5
-rw-r--r--chrome/browser/resources/sync_promo/sync_promo.css288
-rw-r--r--chrome/browser/resources/sync_promo/sync_promo.js31
-rw-r--r--chrome/browser/resources/sync_setup_overlay.html84
-rw-r--r--chrome/browser/ui/webui/sync_promo/sync_promo_handler.cc7
-rw-r--r--chrome/browser/ui/webui/sync_promo/sync_promo_handler2.cc7
-rw-r--r--chrome/browser/ui/webui/sync_promo/sync_promo_ui.cc12
-rw-r--r--chrome/browser/ui/webui/sync_promo/sync_promo_ui.h5
-rw-r--r--chrome/browser/ui/webui/sync_setup_handler.cc63
-rw-r--r--chrome/browser/ui/webui/sync_setup_handler2.cc63
-rw-r--r--chrome/common/chrome_switches.cc3
-rw-r--r--chrome/common/chrome_switches.h1
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">&lt;a target="_blank" href="$1"&gt;</ph>more benefits<ph name="END_LINK">&lt;/a&gt;</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">&lt;a target="_blank" href="$1"&gt;</ph>more benefits<ph name="END_LINK">&lt;/a&gt;</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[];