Disable view source for Developer Tools.
[chromium-blink-merge.git] / chrome / browser / resources / chromeos / login / oobe_screen_update.js
blob34c9f036184672ca7dad60eef239af4915a71f72
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 /**
6  * @fileoverview Oobe update screen implementation.
7  */
9 login.createScreen('UpdateScreen', 'update', function() {
10   return {
11     EXTERNAL_API: [
12       'enableUpdateCancel',
13       'setUpdateProgress',
14       'showEstimatedTimeLeft',
15       'setEstimatedTimeLeft',
16       'showProgressMessage',
17       'setProgressMessage',
18       'setUpdateMessage',
19       'showUpdateCurtain'
20     ],
22     /**
23      * Header text of the screen.
24      * @type {string}
25      */
26     get header() {
27       return loadTimeData.getString('updateScreenTitle');
28     },
30     /**
31      * Cancels the screen.
32      */
33     cancel: function() {
34       // It's safe to act on the accelerator even if it's disabled on official
35       // builds, since Chrome will just ignore the message in that case.
36       var updateCancelHint = $('update-cancel-hint').firstElementChild;
37       updateCancelHint.textContent =
38           loadTimeData.getString('cancelledUpdateMessage');
39       chrome.send('cancelUpdate');
40     },
42     /**
43      * Makes 'press Escape to cancel update' hint visible.
44      */
45     enableUpdateCancel: function() {
46       $('update-cancel-hint').hidden = false;
47     },
49     /**
50      * Sets update's progress bar value.
51      * @param {number} progress Percentage of the progress bar.
52      */
53     setUpdateProgress: function(progress) {
54       $('update-progress-bar').value = progress;
55     },
57     /**
58      * Shows or hides downloading ETA message.
59      * @param {boolean} visible Are ETA message visible?
60      */
61     showEstimatedTimeLeft: function(visible) {
62       $('progress-message').hidden = visible;
63       $('estimated-time-left').hidden = !visible;
64     },
66     /**
67      * Sets estimated time left until download will complete.
68      * @param {number} seconds Time left in seconds.
69      */
70     setEstimatedTimeLeft: function(seconds) {
71       var minutes = Math.ceil(seconds / 60);
72       var message = '';
73       if (minutes > 60) {
74         message = loadTimeData.getString('downloadingTimeLeftLong');
75       } else if (minutes > 55) {
76         message = loadTimeData.getString('downloadingTimeLeftStatusOneHour');
77       } else if (minutes > 20) {
78         message = loadTimeData.getStringF('downloadingTimeLeftStatusMinutes',
79                                           Math.ceil(minutes / 5) * 5);
80       } else if (minutes > 1) {
81         message = loadTimeData.getStringF('downloadingTimeLeftStatusMinutes',
82                                           minutes);
83       } else {
84         message = loadTimeData.getString('downloadingTimeLeftSmall');
85       }
86       $('estimated-time-left').textContent =
87         loadTimeData.getStringF('downloading', message);
88     },
90     /**
91      * Shows or hides info message below progress bar.
92      * @param {boolean} visible Are message visible?
93      */
94     showProgressMessage: function(visible) {
95       $('estimated-time-left').hidden = visible;
96       $('progress-message').hidden = !visible;
97     },
99     /**
100      * Sets message below progress bar.
101      * @param {string} message Message that should be shown.
102      */
103     setProgressMessage: function(message) {
104       $('progress-message').innerText = message;
105     },
107     /**
108      * Sets update message, which is shown above the progress bar.
109      * @param {text} message Message which is shown by the label.
110      */
111     setUpdateMessage: function(message) {
112       $('update-upper-label').textContent = message;
113     },
115     /**
116      * Shows or hides update curtain.
117      * @param {boolean} visible Are curtains visible?
118      */
119     showUpdateCurtain: function(visible) {
120       $('update-screen-curtain').hidden = !visible;
121       $('update-screen-main').hidden = visible;
122     }
123   };