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