| OLD | NEW |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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 * Javascript for local_discovery.html, served from chrome://devices/ | 6 * Javascript for local_discovery.html, served from chrome://devices/ |
| 7 * This is used to show discoverable devices near the user as well as | 7 * This is used to show discoverable devices near the user as well as |
| 8 * cloud devices registered to them. | 8 * cloud devices registered to them. |
| 9 * | 9 * |
| 10 * The object defined in this javascript file listens for callbacks from the | 10 * The object defined in this javascript file listens for callbacks from the |
| (...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 79 * @param {boolean} is_mine Whether or not the device is in the 'Registered' | 79 * @param {boolean} is_mine Whether or not the device is in the 'Registered' |
| 80 * section. | 80 * section. |
| 81 */ | 81 */ |
| 82 deviceContainer: function() { | 82 deviceContainer: function() { |
| 83 return $('register-device-list'); | 83 return $('register-device-list'); |
| 84 }, | 84 }, |
| 85 /** | 85 /** |
| 86 * Register the device. | 86 * Register the device. |
| 87 */ | 87 */ |
| 88 register: function() { | 88 register: function() { |
| 89 recordUmaAction('DevicesPage_RegisterClicked'); |
| 89 chrome.send('registerDevice', [this.info.service_name]); | 90 chrome.send('registerDevice', [this.info.service_name]); |
| 90 setRegisterPage('register-page-adding1'); | 91 setRegisterPage('register-page-adding1'); |
| 91 } | 92 } |
| 92 }; | 93 }; |
| 93 | 94 |
| 94 /** | 95 /** |
| 95 * Returns a textual representation of the number of printers on the network. | 96 * Returns a textual representation of the number of printers on the network. |
| 96 * @return {string} Number of printers on the network as localized string. | 97 * @return {string} Number of printers on the network as localized string. |
| 97 */ | 98 */ |
| 98 function generateNumberPrintersAvailableText(numberPrinters) { | 99 function generateNumberPrintersAvailableText(numberPrinters) { |
| (...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 135 deviceDescription.textContent = description; | 136 deviceDescription.textContent = description; |
| 136 deviceInfo.appendChild(deviceDescription); | 137 deviceInfo.appendChild(deviceDescription); |
| 137 | 138 |
| 138 var button = document.createElement('button'); | 139 var button = document.createElement('button'); |
| 139 button.textContent = button_text; | 140 button.textContent = button_text; |
| 140 button.addEventListener('click', button_action); | 141 button.addEventListener('click', button_action); |
| 141 device_dom_element.appendChild(button); | 142 device_dom_element.appendChild(button); |
| 142 } | 143 } |
| 143 | 144 |
| 144 /** | 145 /** |
| 145 * Hide the register overlay. | 146 * Show the register overlay. |
| 146 */ | 147 */ |
| 147 function showRegisterOverlay() { | 148 function showRegisterOverlay() { |
| 149 recordUmaAction('DevicesPage_AddPrintersClicked'); |
| 148 $('register-overlay').classList.add('showing'); | 150 $('register-overlay').classList.add('showing'); |
| 149 $('overlay').hidden = false; | 151 $('overlay').hidden = false; |
| 150 uber.invokeMethodOnParent('beginInterceptingEvents'); | 152 uber.invokeMethodOnParent('beginInterceptingEvents'); |
| 151 setRegisterPage('register-page-choose'); | 153 setRegisterPage('register-page-choose'); |
| 152 } | 154 } |
| 153 | 155 |
| 154 /** | 156 /** |
| 155 * Show the register overlay. | 157 * Hide the register overlay. |
| 156 */ | 158 */ |
| 157 function hideRegisterOverlay() { | 159 function hideRegisterOverlay() { |
| 158 $('register-overlay').classList.remove('showing'); | 160 $('register-overlay').classList.remove('showing'); |
| 159 $('overlay').hidden = true; | 161 $('overlay').hidden = true; |
| 160 uber.invokeMethodOnParent('stopInterceptingEvents'); | 162 uber.invokeMethodOnParent('stopInterceptingEvents'); |
| 161 chrome.send('cancelRegistration'); | |
| 162 } | 163 } |
| 163 | 164 |
| 164 /** | 165 /** |
| 165 * Clear a DOM element of all children. | 166 * Clear a DOM element of all children. |
| 166 * @param {HTMLElement} element DOM element to clear. | 167 * @param {HTMLElement} element DOM element to clear. |
| 167 */ | 168 */ |
| 168 function clearElement(element) { | 169 function clearElement(element) { |
| 169 while (element.firstChild) { | 170 while (element.firstChild) { |
| 170 element.removeChild(element.firstChild); | 171 element.removeChild(element.firstChild); |
| 171 } | 172 } |
| 172 } | 173 } |
| 173 | 174 |
| 174 /** | 175 /** |
| 175 * Announce that a registration failed. | 176 * Announce that a registration failed. |
| 176 */ | 177 */ |
| 177 function onRegistrationFailed() { | 178 function onRegistrationFailed() { |
| 178 setRegisterPage('register-page-error'); | 179 setRegisterPage('register-page-error'); |
| 180 recordUmaAction('DevicesPage_RegisterFailure'); |
| 179 } | 181 } |
| 180 | 182 |
| 181 /** | 183 /** |
| 182 * Update UI to reflect that registration has been confirmed on the printer. | 184 * Update UI to reflect that registration has been confirmed on the printer. |
| 183 */ | 185 */ |
| 184 function onRegistrationConfirmedOnPrinter() { | 186 function onRegistrationConfirmedOnPrinter() { |
| 185 setRegisterPage('register-page-adding2'); | 187 setRegisterPage('register-page-adding2'); |
| 186 } | 188 } |
| 187 | 189 |
| 188 /** | 190 /** |
| (...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 261 } | 263 } |
| 262 } | 264 } |
| 263 | 265 |
| 264 | 266 |
| 265 /** | 267 /** |
| 266 * Announce that a registration succeeeded. | 268 * Announce that a registration succeeeded. |
| 267 */ | 269 */ |
| 268 function onRegistrationSuccess() { | 270 function onRegistrationSuccess() { |
| 269 hideRegisterOverlay(); | 271 hideRegisterOverlay(); |
| 270 requestPrinterList(); | 272 requestPrinterList(); |
| 273 recordUmaAction('DevicesPage_RegisterSuccess'); |
| 271 } | 274 } |
| 272 | 275 |
| 273 /** | 276 /** |
| 274 * Update visibility status for page. | 277 * Update visibility status for page. |
| 275 */ | 278 */ |
| 276 function updateVisibility() { | 279 function updateVisibility() { |
| 277 chrome.send('isVisible', [!document.webkitHidden]); | 280 chrome.send('isVisible', [!document.webkitHidden]); |
| 278 } | 281 } |
| 279 | 282 |
| 280 /** | 283 /** |
| (...skipping 17 matching lines...) Expand all Loading... |
| 298 clearElement($('cloud-devices')); | 301 clearElement($('cloud-devices')); |
| 299 $('cloud-devices-loading').hidden = false; | 302 $('cloud-devices-loading').hidden = false; |
| 300 chrome.send('requestPrinterList'); | 303 chrome.send('requestPrinterList'); |
| 301 } | 304 } |
| 302 | 305 |
| 303 /** | 306 /** |
| 304 * Go to management page for a cloud device. | 307 * Go to management page for a cloud device. |
| 305 * @param {string} device_id ID of device. | 308 * @param {string} device_id ID of device. |
| 306 */ | 309 */ |
| 307 function manageCloudDevice(device_id) { | 310 function manageCloudDevice(device_id) { |
| 311 recordUmaAction('DevicesPage_ManageClicked'); |
| 308 chrome.send('openCloudPrintURL', | 312 chrome.send('openCloudPrintURL', |
| 309 [PRINTER_MANAGEMENT_PAGE_PREFIX + device_id]); | 313 [PRINTER_MANAGEMENT_PAGE_PREFIX + device_id]); |
| 310 } | 314 } |
| 311 | 315 |
| 316 /** |
| 317 * Record an action in UMA. |
| 318 * @param {string} actionDesc The name of the action to be logged. |
| 319 */ |
| 320 function recordUmaAction(actionDesc) { |
| 321 chrome.send('metricsHandler:recordAction', [actionDesc]); |
| 322 } |
| 323 |
| 324 /** |
| 325 * Cancel the registration. |
| 326 */ |
| 327 function cancelRegistration() { |
| 328 hideRegisterOverlay(); |
| 329 chrome.send('cancelRegistration'); |
| 330 recordUmaAction('DevicesPage_RegisterCancel'); |
| 331 } |
| 312 | 332 |
| 313 document.addEventListener('DOMContentLoaded', function() { | 333 document.addEventListener('DOMContentLoaded', function() { |
| 314 uber.onContentFrameLoaded(); | 334 uber.onContentFrameLoaded(); |
| 315 | 335 |
| 316 cr.ui.overlay.setupOverlay($('overlay')); | 336 cr.ui.overlay.setupOverlay($('overlay')); |
| 317 cr.ui.overlay.globalInitialization(); | 337 cr.ui.overlay.globalInitialization(); |
| 318 $('overlay').addEventListener('cancelOverlay', hideRegisterOverlay); | 338 $('overlay').addEventListener('cancelOverlay', cancelRegistration); |
| 319 | 339 |
| 320 var cancelButtons = document.querySelectorAll('.register-cancel'); | 340 var cancelButtons = document.querySelectorAll('.register-cancel'); |
| 321 var cancelButtonsLength = cancelButtons.length; | 341 var cancelButtonsLength = cancelButtons.length; |
| 322 for (var i = 0; i < cancelButtonsLength; i++) { | 342 for (var i = 0; i < cancelButtonsLength; i++) { |
| 323 cancelButtons[i].addEventListener('click', hideRegisterOverlay); | 343 cancelButtons[i].addEventListener('click', cancelRegistration); |
| 324 } | 344 } |
| 325 | 345 |
| 326 $('register-error-exit').addEventListener('click', hideRegisterOverlay); | 346 $('register-error-exit').addEventListener('click', cancelRegistration); |
| 327 | 347 |
| 328 $('add-printers-button').addEventListener('click', | 348 $('add-printers-button').addEventListener('click', |
| 329 showRegisterOverlay); | 349 showRegisterOverlay); |
| 330 | 350 |
| 331 updateVisibility(); | 351 updateVisibility(); |
| 332 document.addEventListener('webkitvisibilitychange', updateVisibility, | 352 document.addEventListener('webkitvisibilitychange', updateVisibility, |
| 333 false); | 353 false); |
| 334 | 354 |
| 335 var title = loadTimeData.getString('devicesTitle'); | 355 var title = loadTimeData.getString('devicesTitle'); |
| 336 uber.invokeMethodOnParent('setTitle', {title: title}); | 356 uber.invokeMethodOnParent('setTitle', {title: title}); |
| 337 | 357 |
| 338 chrome.send('start'); | 358 chrome.send('start'); |
| 359 recordUmaAction('DevicesPage_Opened'); |
| 339 requestPrinterList(); | 360 requestPrinterList(); |
| 340 }); | 361 }); |
| 341 | 362 |
| 342 return { | 363 return { |
| 343 onRegistrationSuccess: onRegistrationSuccess, | 364 onRegistrationSuccess: onRegistrationSuccess, |
| 344 onRegistrationFailed: onRegistrationFailed, | 365 onRegistrationFailed: onRegistrationFailed, |
| 345 onUnregisteredDeviceUpdate: onUnregisteredDeviceUpdate, | 366 onUnregisteredDeviceUpdate: onUnregisteredDeviceUpdate, |
| 346 onRegistrationConfirmedOnPrinter: onRegistrationConfirmedOnPrinter, | 367 onRegistrationConfirmedOnPrinter: onRegistrationConfirmedOnPrinter, |
| 347 onCloudDeviceListAvailable: onCloudDeviceListAvailable, | 368 onCloudDeviceListAvailable: onCloudDeviceListAvailable, |
| 348 onDeviceCacheFlushed: onDeviceCacheFlushed | 369 onDeviceCacheFlushed: onDeviceCacheFlushed |
| 349 }; | 370 }; |
| 350 }); | 371 }); |
| OLD | NEW |