Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(111)

Unified Diff: chrome/browser/resources/help/help_page.js

Issue 565903002: Fixed "Relaunch and Powerwash" button on a chrome://help page. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix. Created 6 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/resources/help/help_page.js
diff --git a/chrome/browser/resources/help/help_page.js b/chrome/browser/resources/help/help_page.js
index 5f52508d39fe4a08ef92e33521b18fbcef90529e..21794f29adee8546532a3731976e9dbe782a0680 100644
--- a/chrome/browser/resources/help/help_page.js
+++ b/chrome/browser/resources/help/help_page.js
@@ -22,13 +22,8 @@ cr.define('help', function() {
__proto__: Page.prototype,
/**
- * True if after update powerwash button should be displayed.
- * @private
- */
- powerwashAfterUpdate_: false,
-
- /**
- * List of the channel names.
+ * List of the channel names. Should be ordered in increasing level of
+ * stability.
* @private
*/
channelList_: ['dev-channel', 'beta-channel', 'stable-channel'],
@@ -45,6 +40,18 @@ cr.define('help', function() {
*/
targetChannel_: null,
+ /**
+ * Last status received from the version updater.
+ * @private
+ */
+ status_: null,
+
+ /**
+ * Last message received from the version updater.
+ * @private
+ */
+ message_: null,
+
/** @override */
initializePage: function() {
Page.prototype.initializePage.call(this);
@@ -224,11 +231,47 @@ cr.define('help', function() {
},
/**
+ * @return {boolean} True if target channel is more stable than the current
+ * one, and false otherwise.
+ * @private
+ */
+ targetChannelIsMoreStable_: function() {
+ var current = this.currentChannel_;
+ var target = this.targetChannel_;
+ if (current == null || target == null)
+ return false;
+ var currentIndex = this.channelList_.indexOf(current);
+ var targetIndex = this.channelList_.indexOf(target);
+ if (currentIndex < 0 || targetIndex < 0)
+ return false;
+ return currentIndex < targetIndex;
+ },
+
+ /**
* @param {string} status The status of the update.
* @param {string} message Failure message to display.
* @private
*/
setUpdateStatus_: function(status, message) {
+ this.status_ = status;
+ this.message_ = message;
+
+ this.updateUI_();
+ },
+
+ /**
+ * Updates UI elements on the page according to current state.
+ * @private
+ */
+ updateUI_: function() {
+ var status = this.status_;
+ var message = this.message_;
+ var channel = this.targetChannel_;
+
+ $('current-channel').textContent = loadTimeData.getStringF(
+ 'currentChannel', this.channelTable_[channel].label);
+ this.updateChannelChangePageContainerVisibility_();
+
if (cr.isMac &&
$('update-status-message') &&
$('update-status-message').hidden) {
@@ -238,7 +281,6 @@ cr.define('help', function() {
return;
}
- var channel = this.targetChannel_;
if (status == 'checking') {
this.setUpdateImage_('working');
$('update-status-message').innerHTML =
@@ -279,7 +321,7 @@ cr.define('help', function() {
// when user explicitly decides to update to a more stable
// channel.
relaunchAndPowerwashHidden =
- !this.powerwashAfterUpdate_ || status != 'nearly_updated';
+ !this.targetChannelIsMoreStable_() || status != 'nearly_updated';
$('relaunch-and-powerwash').hidden = relaunchAndPowerwashHidden;
}
@@ -415,10 +457,23 @@ cr.define('help', function() {
updateCurrentChannel_: function(channel) {
if (this.channelList_.indexOf(channel) < 0)
return;
- $('current-channel').textContent = loadTimeData.getStringF(
- 'currentChannel', this.channelTable_[channel].label);
this.currentChannel_ = channel;
help.ChannelChangePage.updateCurrentChannel(channel);
+ this.updateUI_();
+ },
+
+ /**
+ * Updates name of the target channel, i.e. the name of the
+ * channel the device is supposed to be.
+ * @param {string} channel The name of the target channel.
+ * @private
+ */
+ updateTargetChannel_: function(channel) {
+ if (this.channelList_.indexOf(channel) < 0)
+ return;
+ this.targetChannel_ = channel;
+ help.ChannelChangePage.updateTargetChannel(channel);
+ this.updateUI_();
},
/**
@@ -438,12 +493,11 @@ cr.define('help', function() {
* @private
*/
setChannel_: function(channel, isPowerwashAllowed) {
- this.powerwashAfterUpdate_ = isPowerwashAllowed;
- this.targetChannel_ = channel;
chrome.send('setChannel', [channel, isPowerwashAllowed]);
$('channel-change-confirmation').hidden = false;
$('channel-change-confirmation').textContent = loadTimeData.getStringF(
'channel-changed', this.channelTable_[channel].name);
+ this.updateTargetChannel_(channel);
},
/**
@@ -538,7 +592,7 @@ cr.define('help', function() {
HelpPage.updateTargetChannel = function(channel) {
if (!cr.isChromeOS)
return;
- help.ChannelChangePage.updateTargetChannel(channel);
+ HelpPage.getInstance().updateTargetChannel_(channel);
};
HelpPage.updateEnableReleaseChannel = function(enabled) {
@@ -553,10 +607,6 @@ cr.define('help', function() {
HelpPage.getInstance().setBuildDate_(buildDate);
};
- HelpPage.updateChannelChangePageContainerVisibility = function() {
- HelpPage.getInstance().updateChannelChangePageContainerVisibility_();
- };
-
// Export
return {
HelpPage: HelpPage

Powered by Google App Engine
This is Rietveld 408576698