Index: chrome/browser/resources/settings/about_page/about_page.js |
diff --git a/chrome/browser/resources/settings/about_page/about_page.js b/chrome/browser/resources/settings/about_page/about_page.js |
index 36f8b61d2081d3db66c908af6c3495637c691b40..1ad7867a559fa0e5f16daf0d8140e2b05e5e5774 100644 |
--- a/chrome/browser/resources/settings/about_page/about_page.js |
+++ b/chrome/browser/resources/settings/about_page/about_page.js |
@@ -1,7 +1,6 @@ |
// Copyright 2016 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. |
- |
/** |
* @fileoverview 'settings-about-page' contains version and OS related |
* information. |
@@ -84,7 +83,13 @@ Polymer({ |
'#detailed-build-info-trigger'); |
return map; |
}, |
- } |
+ }, |
+ |
+ /** @private */ |
+ showUpdateWarningDialog_: { |
+ type: Boolean, |
+ value: false, |
+ }, |
// </if> |
}, |
@@ -163,6 +168,21 @@ Polymer({ |
// <if expr="chromeos"> |
if (event.status == UpdateStatus.CHECKING) |
this.hasCheckedForUpdates_ = true; |
+ else if (event.status == UpdateStatus.NEED_PERMISSION_TO_UPDATE) { |
+ this.showUpdateWarningDialog_ = true; |
+ // Async to wait for dialog to appear in the DOM. |
+ this.async(function() { |
+ var dialog = this.$$('settings-update-warning-dialog'); |
+ // event includes the update version and size in bytes. |
+ dialog.setUpdateWarningMessage(event.version, event.size); |
+ // Register listener to detect when the dialog is closed. Flip the |
+ // boolean once closed to force a restamp next time it is shown such |
+ // that the previous dialog's contents are cleared. |
+ dialog.addEventListener('close', function() { |
+ this.showUpdateWarningDialog_ = false; |
+ }.bind(this)); |
+ }.bind(this)); |
+ } |
// </if> |
this.currentUpdateStatusEvent_ = event; |
}, |
@@ -258,6 +278,8 @@ Polymer({ |
switch (this.currentUpdateStatusEvent_.status) { |
case UpdateStatus.CHECKING: |
return this.i18n('aboutUpgradeCheckStarted'); |
+ case UpdateStatus.NEED_PERMISSION_TO_UPDATE: |
+ return ""; |
case UpdateStatus.NEARLY_UPDATED: |
// <if expr="chromeos"> |
if (this.currentChannel_ != this.targetChannel_) |
@@ -399,7 +421,8 @@ Polymer({ |
var staleUpdatedStatus = !this.hasCheckedForUpdates_ && |
this.checkStatus_(UpdateStatus.UPDATED); |
- return staleUpdatedStatus || this.checkStatus_(UpdateStatus.FAILED); |
+ return staleUpdatedStatus || this.checkStatus_(UpdateStatus.FAILED) || |
+ this.checkStatus_(UpdateStatus.NEED_PERMISSION_TO_UPDATE); |
}, |
/** |