OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 /** | 5 /** |
6 * @fileoverview | 6 * @fileoverview |
7 * Class for detecting when the application is idle. Note that chrome.idle is | 7 * Class for detecting when the application is idle. Note that chrome.idle is |
8 * not suitable for this purpose because it detects when the computer is idle, | 8 * not suitable for this purpose because it detects when the computer is idle, |
9 * and we'd like to close the application and free up VM resources even if the | 9 * and we'd like to close the application and free up VM resources even if the |
10 * user has been using another application for a long time. | 10 * user has been using another application for a long time. |
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
47 this.resetTimeoutRef_ = null; | 47 this.resetTimeoutRef_ = null; |
48 | 48 |
49 var manifest = chrome.runtime.getManifest(); | 49 var manifest = chrome.runtime.getManifest(); |
50 var message = this.idleWarning_.querySelector('.idle-warning-message'); | 50 var message = this.idleWarning_.querySelector('.idle-warning-message'); |
51 l10n.localizeElement(message, manifest.name); | 51 l10n.localizeElement(message, manifest.name); |
52 | 52 |
53 var cont = this.idleWarning_.querySelector('.idle-dialog-continue'); | 53 var cont = this.idleWarning_.querySelector('.idle-dialog-continue'); |
54 cont.addEventListener('click', this.onContinue_.bind(this), false); | 54 cont.addEventListener('click', this.onContinue_.bind(this), false); |
55 var quit = this.idleWarning_.querySelector('.idle-dialog-disconnect'); | 55 var quit = this.idleWarning_.querySelector('.idle-dialog-disconnect'); |
56 quit.addEventListener('click', this.onDisconnect_.bind(this), false); | 56 quit.addEventListener('click', this.onDisconnect_.bind(this), false); |
57 | |
58 remoting.windowShape.addCallback(this); | |
59 this.resetTimeout_(); | 57 this.resetTimeout_(); |
60 }; | 58 }; |
61 | 59 |
62 /** | 60 /** |
63 * @param {boolean} register True to register the callbacks; false to remove | 61 * @param {boolean} register True to register the callbacks; false to remove |
64 * them. | 62 * them. |
65 * @private | 63 * @private |
66 */ | 64 */ |
67 remoting.IdleDetector.prototype.registerInputDetectionCallbacks_ = | 65 remoting.IdleDetector.prototype.registerInputDetectionCallbacks_ = |
68 function(register) { | 66 function(register) { |
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
133 } | 131 } |
134 this.onDialogTimeout_(); | 132 this.onDialogTimeout_(); |
135 }; | 133 }; |
136 | 134 |
137 /** | 135 /** |
138 * @param {boolean} show True to show the warning dialog; false to hide it. | 136 * @param {boolean} show True to show the warning dialog; false to hide it. |
139 * @private | 137 * @private |
140 */ | 138 */ |
141 remoting.IdleDetector.prototype.showIdleWarning_ = function(show) { | 139 remoting.IdleDetector.prototype.showIdleWarning_ = function(show) { |
142 this.idleWarning_.hidden = !show; | 140 this.idleWarning_.hidden = !show; |
143 remoting.windowShape.updateClientWindowShape(); | 141 if (show) { |
144 } | 142 remoting.windowShape.registerClientUI(this); |
| 143 } else { |
| 144 remoting.windowShape.unregisterClientUI(this); |
| 145 } |
| 146 }; |
145 | 147 |
146 /** | 148 /** |
147 * @param {Array<{left: number, top: number, width: number, height: number}>} | 149 * @param {Array<{left: number, top: number, width: number, height: number}>} |
148 * rects List of rectangles. | 150 * rects List of rectangles. |
149 */ | 151 */ |
150 remoting.IdleDetector.prototype.addToRegion = function(rects) { | 152 remoting.IdleDetector.prototype.addToRegion = function(rects) { |
151 if (!this.idleWarning_.hidden) { | 153 if (!this.idleWarning_.hidden) { |
152 var dialog = this.idleWarning_.querySelector('.kd-modaldialog'); | 154 var dialog = this.idleWarning_.querySelector('.kd-modaldialog'); |
153 var rect = /** @type {ClientRect} */ (dialog.getBoundingClientRect()); | 155 var rect = /** @type {ClientRect} */ (dialog.getBoundingClientRect()); |
154 rects.push(rect); | 156 rects.push(rect); |
155 } | 157 } |
156 }; | 158 }; |
157 | 159 |
158 // Time-out after 1hr of no activity. | 160 // Time-out after 1hr of no activity. |
159 remoting.IdleDetector.kIdleTimeoutMs = 60 * 60 * 1000; | 161 remoting.IdleDetector.kIdleTimeoutMs = 60 * 60 * 1000; |
160 | 162 |
161 // Show the idle warning dialog for 2 minutes. | 163 // Show the idle warning dialog for 2 minutes. |
162 remoting.IdleDetector.kDialogTimeoutMs = 2 * 60 * 1000; | 164 remoting.IdleDetector.kDialogTimeoutMs = 2 * 60 * 1000; |
OLD | NEW |