Commit d0484706 authored by Hector Carmona's avatar Hector Carmona Committed by Commit Bot

NUX Email - Preserve show/hide of bookmark bar when users skip NUX.

Bug: 832933
Change-Id: Id3c08467445cd359c24b6a1cad1e1132d61d87a2
Reviewed-on: https://chromium-review.googlesource.com/1204716Reviewed-by: default avatarScott Chen <scottchen@chromium.org>
Commit-Queue: Hector Carmona <hcarmona@chromium.org>
Cr-Commit-Position: refs/heads/master@{#589262}
parent 17cd2c0a
...@@ -130,7 +130,7 @@ WelcomeUI::WelcomeUI(content::WebUI* web_ui, const GURL& url) ...@@ -130,7 +130,7 @@ WelcomeUI::WelcomeUI(content::WebUI* web_ui, const GURL& url)
profile, ServiceAccessType::EXPLICIT_ACCESS), profile, ServiceAccessType::EXPLICIT_ACCESS),
BookmarkModelFactory::GetForBrowserContext(browser_context))); BookmarkModelFactory::GetForBrowserContext(browser_context)));
nux::EmailHandler::AddSources(html_source); nux::EmailHandler::AddSources(html_source, profile->GetPrefs());
} }
if (base::FeatureList::IsEnabled(nux::kNuxGoogleAppsFeature)) { if (base::FeatureList::IsEnabled(nux::kNuxGoogleAppsFeature)) {
......
...@@ -77,6 +77,11 @@ void EmailHandler::RegisterMessages() { ...@@ -77,6 +77,11 @@ void EmailHandler::RegisterMessages() {
web_ui()->RegisterMessageCallback( web_ui()->RegisterMessageCallback(
"addEmails", base::BindRepeating(&EmailHandler::HandleAddEmails, "addEmails", base::BindRepeating(&EmailHandler::HandleAddEmails,
base::Unretained(this))); base::Unretained(this)));
web_ui()->RegisterMessageCallback(
"toggleBookmarkBar",
base::BindRepeating(&EmailHandler::HandleToggleBookmarkBar,
base::Unretained(this)));
} }
void EmailHandler::HandleRejectEmails(const base::ListValue* args) { void EmailHandler::HandleRejectEmails(const base::ListValue* args) {
...@@ -115,16 +120,6 @@ void EmailHandler::HandleAddEmails(const base::ListValue* args) { ...@@ -115,16 +120,6 @@ void EmailHandler::HandleAddEmails(const base::ListValue* args) {
} }
} }
// Enable bookmark bar.
prefs_->SetBoolean(bookmarks::prefs::kShowBookmarkBar, true);
// Show bookmark bubble.
/* TODO(hcarmona): Show promo bubble.
ShowPromoDelegate::CreatePromoDelegate(
IDS_NUX_EMAIL_DESCRIPTION_PROMO_BUBBLE)
->ShowForNode(bookmark_model_->bookmark_bar_node()->GetChild(0));
*/
/* TODO(hcarmona): Add histograms and uncomment this code. /* TODO(hcarmona): Add histograms and uncomment this code.
UMA_HISTOGRAM_ENUMERATION(kEmailInteractionHistogram, UMA_HISTOGRAM_ENUMERATION(kEmailInteractionHistogram,
EmailInteraction::kGetStarted, EmailInteraction::kGetStarted,
...@@ -132,7 +127,14 @@ void EmailHandler::HandleAddEmails(const base::ListValue* args) { ...@@ -132,7 +127,14 @@ void EmailHandler::HandleAddEmails(const base::ListValue* args) {
*/ */
} }
void EmailHandler::AddSources(content::WebUIDataSource* html_source) { void EmailHandler::HandleToggleBookmarkBar(const base::ListValue* args) {
bool show = false;
CHECK(args->GetBoolean(0, &show));
prefs_->SetBoolean(bookmarks::prefs::kShowBookmarkBar, show);
}
void EmailHandler::AddSources(content::WebUIDataSource* html_source,
PrefService* prefs) {
// Localized strings. // Localized strings.
html_source->AddLocalizedString("noThanks", IDS_NO_THANKS); html_source->AddLocalizedString("noThanks", IDS_NO_THANKS);
html_source->AddLocalizedString("getStarted", IDS_NUX_EMAIL_GET_STARTED); html_source->AddLocalizedString("getStarted", IDS_NUX_EMAIL_GET_STARTED);
...@@ -173,6 +175,9 @@ void EmailHandler::AddSources(content::WebUIDataSource* html_source) { ...@@ -173,6 +175,9 @@ void EmailHandler::AddSources(content::WebUIDataSource* html_source) {
html_source->AddString("email_url_" + std::to_string(i), kEmail[i].url); html_source->AddString("email_url_" + std::to_string(i), kEmail[i].url);
} }
html_source->AddInteger("email_count", (int)EmailProviders::kCount); html_source->AddInteger("email_count", (int)EmailProviders::kCount);
html_source->AddBoolean(
"bookmark_bar_shown",
prefs->GetBoolean(bookmarks::prefs::kShowBookmarkBar));
html_source->SetJsonPath("strings.js"); html_source->SetJsonPath("strings.js");
} }
......
...@@ -49,9 +49,11 @@ class EmailHandler : public content::WebUIMessageHandler { ...@@ -49,9 +49,11 @@ class EmailHandler : public content::WebUIMessageHandler {
// Callbacks for JS APIs. // Callbacks for JS APIs.
void HandleRejectEmails(const base::ListValue* args); void HandleRejectEmails(const base::ListValue* args);
void HandleAddEmails(const base::ListValue* args); void HandleAddEmails(const base::ListValue* args);
void HandleToggleBookmarkBar(const base::ListValue* args);
// Adds webui sources. // Adds webui sources.
static void AddSources(content::WebUIDataSource* html_source); static void AddSources(content::WebUIDataSource* html_source,
PrefService* prefs);
private: private:
// Weak reference. // Weak reference.
......
...@@ -20,11 +20,16 @@ nux_email.EmailProviderModel; ...@@ -20,11 +20,16 @@ nux_email.EmailProviderModel;
Polymer({ Polymer({
is: 'email-chooser', is: 'email-chooser',
properties: { properties: {
// TODO(scottchen): get from C++ emailList: Array,
/** @private */ /** @private */
bookmarkBarWasHidden_: Boolean, bookmarkBarWasShown_: {
type: Boolean,
value: loadTimeData.getBoolean('bookmark_bar_shown'),
},
emailList: Array, /** @private */
gotStarted_: Boolean,
/** @private {nux_email.EmailProviderModel} */ /** @private {nux_email.EmailProviderModel} */
selectedEmailProvider_: { selectedEmailProvider_: {
...@@ -40,8 +45,14 @@ Polymer({ ...@@ -40,8 +45,14 @@ Polymer({
ready: function() { ready: function() {
this.browserProxy_ = nux.NuxEmailProxyImpl.getInstance(); this.browserProxy_ = nux.NuxEmailProxyImpl.getInstance();
this.emailList = this.browserProxy_.getEmailList(); this.emailList = this.browserProxy_.getEmailList();
window.addEventListener('beforeunload', () => { window.addEventListener('beforeunload', () => {
// Only need to clean up if user didn't choose "Get Started".
if (this.gotStarted_)
return;
this.revertBookmark_(); this.revertBookmark_();
this.browserProxy_.toggleBookmarkBar(this.bookmarkBarWasShown_);
}); });
}, },
...@@ -88,9 +99,6 @@ Polymer({ ...@@ -88,9 +99,6 @@ Polymer({
if (emailProvider && emailProvider.bookmarkId) if (emailProvider && emailProvider.bookmarkId)
this.browserProxy_.removeBookmark(emailProvider.bookmarkId); this.browserProxy_.removeBookmark(emailProvider.bookmarkId);
// TODO: also hide bookmark bar if this.selectedEmailProvider is now null &&
// the bookmarkBarWasHidden_ == true;
}, },
/** /**
...@@ -99,6 +107,9 @@ Polymer({ ...@@ -99,6 +107,9 @@ Polymer({
* @private * @private
*/ */
onSelectedEmailProviderChange_: function(newEmail, prevEmail) { onSelectedEmailProviderChange_: function(newEmail, prevEmail) {
if (!this.browserProxy_)
return;
if (prevEmail) { if (prevEmail) {
// If it was previously selected, it must've been assigned an id. // If it was previously selected, it must've been assigned an id.
assert(prevEmail.bookmarkId); assert(prevEmail.bookmarkId);
...@@ -106,21 +117,24 @@ Polymer({ ...@@ -106,21 +117,24 @@ Polymer({
} }
if (newEmail) { if (newEmail) {
this.browserProxy_.toggleBookmarkBar(true);
this.browserProxy_.addBookmark( this.browserProxy_.addBookmark(
{title: newEmail.name, url: newEmail.url, parentId: '1'}, results => { {title: newEmail.name, url: newEmail.url, parentId: '1'}, results => {
this.selectedEmailProvider_.bookmarkId = results.id; this.selectedEmailProvider_.bookmarkId = results.id;
}); });
} else {
this.browserProxy_.toggleBookmarkBar(this.bookmarkBarWasShown_);
} }
}, },
/** @private */ /** @private */
onNoThanksClicked_: function() { onNoThanksClicked_: function() {
this.revertBookmark_();
window.location.replace('chrome://newtab'); window.location.replace('chrome://newtab');
}, },
/** @private */ /** @private */
onGetStartedClicked_: function() { onGetStartedClicked_: function() {
this.gotStarted_ = true;
window.location.replace(this.selectedEmailProvider_.url); window.location.replace(this.selectedEmailProvider_.url);
}, },
}); });
\ No newline at end of file
...@@ -14,6 +14,9 @@ cr.define('nux', function() { ...@@ -14,6 +14,9 @@ cr.define('nux', function() {
*/ */
addBookmark(data, callback) {} addBookmark(data, callback) {}
/** @param {boolean} show */
toggleBookmarkBar(show) {}
/** @return {!Array<Object>} Array of email providers. */ /** @return {!Array<Object>} Array of email providers. */
getEmailList() {} getEmailList() {}
} }
...@@ -31,6 +34,11 @@ cr.define('nux', function() { ...@@ -31,6 +34,11 @@ cr.define('nux', function() {
// TODO(scottchen): request C++ to cache favicon // TODO(scottchen): request C++ to cache favicon
} }
/** @override */
toggleBookmarkBar(show) {
chrome.send('toggleBookmarkBar', [show]);
}
/** @override */ /** @override */
getEmailList() { getEmailList() {
let emailCount = loadTimeData.getInteger('email_count'); let emailCount = loadTimeData.getInteger('email_count');
......
...@@ -122,9 +122,6 @@ void GoogleAppsHandler::HandleAddGoogleApps(const base::ListValue* args) { ...@@ -122,9 +122,6 @@ void GoogleAppsHandler::HandleAddGoogleApps(const base::ListValue* args) {
// Enable bookmark bar. // Enable bookmark bar.
prefs_->SetBoolean(bookmarks::prefs::kShowBookmarkBar, true); prefs_->SetBoolean(bookmarks::prefs::kShowBookmarkBar, true);
// Wait to show bookmark bar.
// TODO(hcarmona): Any advice here would be helpful.
// Show bookmark bubble. // Show bookmark bubble.
ShowPromoDelegate::CreatePromoDelegate( ShowPromoDelegate::CreatePromoDelegate(
IDS_NUX_GOOGLE_APPS_DESCRIPTION_PROMO_BUBBLE) IDS_NUX_GOOGLE_APPS_DESCRIPTION_PROMO_BUBBLE)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment