| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 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 | 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 cr.exportPath('options'); | 5 cr.exportPath('options'); |
| 6 | 6 |
| 7 /** @typedef {{appsEnforced: boolean, | 7 /** @typedef {{appsEnforced: boolean, |
| 8 * appsRegistered: boolean, | 8 * appsRegistered: boolean, |
| 9 * appsSynced: boolean, | 9 * appsSynced: boolean, |
| 10 * autofillEnforced: boolean, | 10 * autofillEnforced: boolean, |
| (...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 57 cr.define('options', function() { | 57 cr.define('options', function() { |
| 58 /** @const */ var Page = cr.ui.pageManager.Page; | 58 /** @const */ var Page = cr.ui.pageManager.Page; |
| 59 /** @const */ var PageManager = cr.ui.pageManager.PageManager; | 59 /** @const */ var PageManager = cr.ui.pageManager.PageManager; |
| 60 | 60 |
| 61 /** | 61 /** |
| 62 * SyncSetupOverlay class | 62 * SyncSetupOverlay class |
| 63 * Encapsulated handling of the 'Sync Setup' overlay page. | 63 * Encapsulated handling of the 'Sync Setup' overlay page. |
| 64 * @class | 64 * @class |
| 65 */ | 65 */ |
| 66 function SyncSetupOverlay() { | 66 function SyncSetupOverlay() { |
| 67 Page.call(this, 'syncSetup', | 67 Page.call( |
| 68 loadTimeData.getString('syncSetupOverlayTabTitle'), | 68 this, 'syncSetup', loadTimeData.getString('syncSetupOverlayTabTitle'), |
| 69 'sync-setup-overlay'); | 69 'sync-setup-overlay'); |
| 70 } | 70 } |
| 71 | 71 |
| 72 cr.addSingletonGetter(SyncSetupOverlay); | 72 cr.addSingletonGetter(SyncSetupOverlay); |
| 73 | 73 |
| 74 SyncSetupOverlay.prototype = { | 74 SyncSetupOverlay.prototype = { |
| 75 __proto__: Page.prototype, | 75 __proto__: Page.prototype, |
| 76 | 76 |
| 77 /** | 77 /** |
| 78 * True if the synced account uses a custom passphrase. | 78 * True if the synced account uses a custom passphrase. |
| 79 * @private {boolean} | 79 * @private {boolean} |
| (...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 125 | 125 |
| 126 // If 'profilesInfo' doesn't exist, it's forbidden to delete profile. | 126 // If 'profilesInfo' doesn't exist, it's forbidden to delete profile. |
| 127 // So don't display the delete-profile checkbox. | 127 // So don't display the delete-profile checkbox. |
| 128 if (!loadTimeData.valueExists('profilesInfo') && | 128 if (!loadTimeData.valueExists('profilesInfo') && |
| 129 $('sync-setup-delete-profile')) { | 129 $('sync-setup-delete-profile')) { |
| 130 $('sync-setup-delete-profile').hidden = true; | 130 $('sync-setup-delete-profile').hidden = true; |
| 131 } | 131 } |
| 132 | 132 |
| 133 $('basic-encryption-option').onchange = | 133 $('basic-encryption-option').onchange = |
| 134 $('full-encryption-option').onchange = function() { | 134 $('full-encryption-option').onchange = function() { |
| 135 self.onEncryptionRadioChanged_(); | 135 self.onEncryptionRadioChanged_(); |
| 136 }; | 136 }; |
| 137 $('choose-datatypes-cancel').onclick = | 137 $('choose-datatypes-cancel').onclick = |
| 138 $('confirm-everything-cancel').onclick = | 138 $('confirm-everything-cancel').onclick = |
| 139 $('stop-syncing-cancel').onclick = | 139 $('stop-syncing-cancel').onclick = |
| 140 $('sync-spinner-cancel').onclick = function() { | 140 $('sync-spinner-cancel').onclick = function() { |
| 141 self.closeOverlay_(); | 141 self.closeOverlay_(); |
| 142 }; | 142 }; |
| 143 $('activity-controls').onclick = function() { | 143 $('activity-controls').onclick = function() { |
| 144 chrome.metricsPrivate.recordUserAction( | 144 chrome.metricsPrivate.recordUserAction( |
| 145 'Signin_AccountSettings_GoogleActivityControlsClicked'); | 145 'Signin_AccountSettings_GoogleActivityControlsClicked'); |
| 146 }; | 146 }; |
| 147 $('confirm-everything-ok').onclick = function() { | 147 $('confirm-everything-ok').onclick = function() { |
| 148 self.sendConfiguration_(); | 148 self.sendConfiguration_(); |
| 149 }; | 149 }; |
| 150 $('timeout-ok').onclick = function() { | 150 $('timeout-ok').onclick = function() { |
| 151 chrome.send('CloseTimeout'); | 151 chrome.send('CloseTimeout'); |
| 152 self.closeOverlay_(); | 152 self.closeOverlay_(); |
| 153 }; | 153 }; |
| 154 $('stop-syncing-ok').onclick = function() { | 154 $('stop-syncing-ok').onclick = function() { |
| 155 var deleteProfile = $('delete-profile') != undefined && | 155 var deleteProfile = |
| 156 $('delete-profile').checked; | 156 $('delete-profile') != undefined && $('delete-profile').checked; |
| 157 chrome.send('SyncSetupStopSyncing', [deleteProfile]); | 157 chrome.send('SyncSetupStopSyncing', [deleteProfile]); |
| 158 self.closeOverlay_(); | 158 self.closeOverlay_(); |
| 159 }; | 159 }; |
| 160 $('use-default-link').onclick = function() { | 160 $('use-default-link').onclick = function() { |
| 161 self.showSyncEverythingPage_(); | 161 self.showSyncEverythingPage_(); |
| 162 }; | 162 }; |
| 163 $('autofill-checkbox').onclick = function() { | 163 $('autofill-checkbox').onclick = function() { |
| 164 var autofillSyncEnabled = $('autofill-checkbox').checked; | 164 var autofillSyncEnabled = $('autofill-checkbox').checked; |
| 165 $('payments-integration-checkbox').checked = autofillSyncEnabled; | 165 $('payments-integration-checkbox').checked = autofillSyncEnabled; |
| 166 $('payments-integration-checkbox').disabled = !autofillSyncEnabled; | 166 $('payments-integration-checkbox').disabled = !autofillSyncEnabled; |
| (...skipping 24 matching lines...) Expand all Loading... |
| 191 /** @override */ | 191 /** @override */ |
| 192 didClosePage: function() { | 192 didClosePage: function() { |
| 193 chrome.send('SyncSetupDidClosePage'); | 193 chrome.send('SyncSetupDidClosePage'); |
| 194 }, | 194 }, |
| 195 | 195 |
| 196 /** @private */ | 196 /** @private */ |
| 197 onEncryptionRadioChanged_: function() { | 197 onEncryptionRadioChanged_: function() { |
| 198 var visible = $('full-encryption-option').checked; | 198 var visible = $('full-encryption-option').checked; |
| 199 // TODO(dbeam): should sync-custom-passphrase-container be hidden instead? | 199 // TODO(dbeam): should sync-custom-passphrase-container be hidden instead? |
| 200 $('sync-custom-passphrase').hidden = !visible; | 200 $('sync-custom-passphrase').hidden = !visible; |
| 201 chrome.send('coreOptionsUserMetricsAction', | 201 chrome.send( |
| 202 ['Options_SyncSetEncryption']); | 202 'coreOptionsUserMetricsAction', ['Options_SyncSetEncryption']); |
| 203 }, | 203 }, |
| 204 | 204 |
| 205 /** | 205 /** |
| 206 * Sets the checked state of the individual sync data type checkboxes in the | 206 * Sets the checked state of the individual sync data type checkboxes in the |
| 207 * advanced sync settings dialog. | 207 * advanced sync settings dialog. |
| 208 * @param {boolean} value True for checked, false for unchecked. | 208 * @param {boolean} value True for checked, false for unchecked. |
| 209 * @private | 209 * @private |
| 210 */ | 210 */ |
| 211 checkAllDataTypeCheckboxes_: function(value) { | 211 checkAllDataTypeCheckboxes_: function(value) { |
| 212 // Only check / uncheck the visible ones (since there's no way to uncheck | 212 // Only check / uncheck the visible ones (since there's no way to uncheck |
| 213 // / check the invisible ones). | 213 // / check the invisible ones). |
| 214 var checkboxes = $('choose-data-types-body').querySelectorAll( | 214 var checkboxes = |
| 215 '.sync-type-checkbox:not([hidden]) input'); | 215 $('choose-data-types-body') |
| 216 .querySelectorAll('.sync-type-checkbox:not([hidden]) input'); |
| 216 for (var i = 0; i < checkboxes.length; i++) { | 217 for (var i = 0; i < checkboxes.length; i++) { |
| 217 checkboxes[i].checked = value; | 218 checkboxes[i].checked = value; |
| 218 } | 219 } |
| 219 $('payments-integration-checkbox').checked = value; | 220 $('payments-integration-checkbox').checked = value; |
| 220 }, | 221 }, |
| 221 | 222 |
| 222 /** | 223 /** |
| 223 * Restores the checked states of the sync data type checkboxes in the | 224 * Restores the checked states of the sync data type checkboxes in the |
| 224 * advanced sync settings dialog. Called when "Choose what to sync" is | 225 * advanced sync settings dialog. Called when "Choose what to sync" is |
| 225 * selected. Required because all the checkboxes are checked when | 226 * selected. Required because all the checkboxes are checked when |
| (...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 269 }, | 270 }, |
| 270 | 271 |
| 271 /** @private */ | 272 /** @private */ |
| 272 checkPassphraseMatch_: function() { | 273 checkPassphraseMatch_: function() { |
| 273 var emptyError = $('empty-error'); | 274 var emptyError = $('empty-error'); |
| 274 var mismatchError = $('mismatch-error'); | 275 var mismatchError = $('mismatch-error'); |
| 275 emptyError.hidden = true; | 276 emptyError.hidden = true; |
| 276 mismatchError.hidden = true; | 277 mismatchError.hidden = true; |
| 277 | 278 |
| 278 if (!$('full-encryption-option').checked || | 279 if (!$('full-encryption-option').checked || |
| 279 $('basic-encryption-option').disabled) { | 280 $('basic-encryption-option').disabled) { |
| 280 return true; | 281 return true; |
| 281 } | 282 } |
| 282 | 283 |
| 283 var customPassphrase = $('custom-passphrase'); | 284 var customPassphrase = $('custom-passphrase'); |
| 284 if (customPassphrase.value.length == 0) { | 285 if (customPassphrase.value.length == 0) { |
| 285 emptyError.hidden = false; | 286 emptyError.hidden = false; |
| 286 return false; | 287 return false; |
| 287 } | 288 } |
| 288 | 289 |
| 289 var confirmPassphrase = $('confirm-passphrase'); | 290 var confirmPassphrase = $('confirm-passphrase'); |
| (...skipping 17 matching lines...) Expand all Loading... |
| 307 customPassphrase = getRequiredElement('passphrase').value; | 308 customPassphrase = getRequiredElement('passphrase').value; |
| 308 usePassphrase = true; | 309 usePassphrase = true; |
| 309 // If we were displaying the 'enter your old google password' prompt, | 310 // If we were displaying the 'enter your old google password' prompt, |
| 310 // then that means this is the user's google password. | 311 // then that means this is the user's google password. |
| 311 googlePassphrase = !$('google-passphrase-needed-body').hidden; | 312 googlePassphrase = !$('google-passphrase-needed-body').hidden; |
| 312 // We allow an empty passphrase, in case the user has disabled | 313 // We allow an empty passphrase, in case the user has disabled |
| 313 // all their encrypted datatypes. In that case, the PSS will accept | 314 // all their encrypted datatypes. In that case, the PSS will accept |
| 314 // the passphrase and finish configuration. If the user has enabled | 315 // the passphrase and finish configuration. If the user has enabled |
| 315 // encrypted datatypes, the PSS will prompt again specifying that the | 316 // encrypted datatypes, the PSS will prompt again specifying that the |
| 316 // passphrase failed. | 317 // passphrase failed. |
| 317 } else if (!$('basic-encryption-option').disabled && | 318 } else if ( |
| 318 $('full-encryption-option').checked) { | 319 !$('basic-encryption-option').disabled && |
| 320 $('full-encryption-option').checked) { |
| 319 // The user is setting a custom passphrase for the first time. | 321 // The user is setting a custom passphrase for the first time. |
| 320 if (!this.checkPassphraseMatch_()) | 322 if (!this.checkPassphraseMatch_()) |
| 321 return; | 323 return; |
| 322 customPassphrase = $('custom-passphrase').value; | 324 customPassphrase = $('custom-passphrase').value; |
| 323 usePassphrase = true; | 325 usePassphrase = true; |
| 324 } else { | 326 } else { |
| 325 // The user is not setting a custom passphrase. | 327 // The user is not setting a custom passphrase. |
| 326 usePassphrase = false; | 328 usePassphrase = false; |
| 327 } | 329 } |
| 328 | 330 |
| 329 // Don't allow the user to tweak the settings once we send the | 331 // Don't allow the user to tweak the settings once we send the |
| 330 // configuration to the backend. | 332 // configuration to the backend. |
| 331 this.setInputElementsDisabledState_(true); | 333 this.setInputElementsDisabledState_(true); |
| 332 $('use-default-link').hidden = true; | 334 $('use-default-link').hidden = true; |
| 333 | 335 |
| 334 // These values need to be kept in sync with where they are read in | 336 // These values need to be kept in sync with where they are read in |
| 335 // sync_setup_handler.cc:GetConfiguration(). | 337 // sync_setup_handler.cc:GetConfiguration(). |
| 336 var syncAll = $('sync-select-datatypes').selectedIndex == | 338 var syncAll = $('sync-select-datatypes').selectedIndex == |
| 337 options.DataTypeSelection.SYNC_EVERYTHING; | 339 options.DataTypeSelection.SYNC_EVERYTHING; |
| 338 var autofillSynced = syncAll || $('autofill-checkbox').checked; | 340 var autofillSynced = syncAll || $('autofill-checkbox').checked; |
| 339 var result = JSON.stringify({ | 341 var result = JSON.stringify({ |
| 340 'syncAllDataTypes': syncAll, | 342 'syncAllDataTypes': syncAll, |
| 341 'bookmarksSynced': syncAll || $('bookmarks-checkbox').checked, | 343 'bookmarksSynced': syncAll || $('bookmarks-checkbox').checked, |
| 342 'preferencesSynced': syncAll || $('preferences-checkbox').checked, | 344 'preferencesSynced': syncAll || $('preferences-checkbox').checked, |
| 343 'themesSynced': syncAll || $('themes-checkbox').checked, | 345 'themesSynced': syncAll || $('themes-checkbox').checked, |
| 344 'passwordsSynced': syncAll || $('passwords-checkbox').checked, | 346 'passwordsSynced': syncAll || $('passwords-checkbox').checked, |
| 345 'autofillSynced': autofillSynced, | 347 'autofillSynced': autofillSynced, |
| 346 'extensionsSynced': syncAll || $('extensions-checkbox').checked, | 348 'extensionsSynced': syncAll || $('extensions-checkbox').checked, |
| 347 'typedUrlsSynced': syncAll || $('typed-urls-checkbox').checked, | 349 'typedUrlsSynced': syncAll || $('typed-urls-checkbox').checked, |
| (...skipping 22 matching lines...) Expand all Loading... |
| 370 var configureElements = | 372 var configureElements = |
| 371 $('customize-sync-preferences').querySelectorAll('input'); | 373 $('customize-sync-preferences').querySelectorAll('input'); |
| 372 for (var i = 0; i < configureElements.length; i++) | 374 for (var i = 0; i < configureElements.length; i++) |
| 373 configureElements[i].disabled = disabled; | 375 configureElements[i].disabled = disabled; |
| 374 $('sync-select-datatypes').disabled = disabled; | 376 $('sync-select-datatypes').disabled = disabled; |
| 375 $('payments-integration-checkbox').disabled = disabled; | 377 $('payments-integration-checkbox').disabled = disabled; |
| 376 | 378 |
| 377 $('customize-link').hidden = disabled; | 379 $('customize-link').hidden = disabled; |
| 378 $('customize-link').disabled = disabled; | 380 $('customize-link').disabled = disabled; |
| 379 $('customize-link').onclick = disabled ? null : function() { | 381 $('customize-link').onclick = disabled ? null : function() { |
| 380 SyncSetupOverlay.showCustomizePage(self.syncConfigureArgs_, | 382 SyncSetupOverlay.showCustomizePage( |
| 381 options.DataTypeSelection.SYNC_EVERYTHING); | 383 self.syncConfigureArgs_, options.DataTypeSelection.SYNC_EVERYTHING); |
| 382 return false; | 384 return false; |
| 383 }; | 385 }; |
| 384 }, | 386 }, |
| 385 | 387 |
| 386 /** | 388 /** |
| 387 * Shows or hides the sync data type checkboxes in the advanced sync | 389 * Shows or hides the sync data type checkboxes in the advanced sync |
| 388 * settings dialog. Also initializes |this.dataTypeBoxesChecked_| and | 390 * settings dialog. Also initializes |this.dataTypeBoxesChecked_| and |
| 389 * |this.dataTypeBoxedDisabled_| with their values, and makes their onclick | 391 * |this.dataTypeBoxedDisabled_| with their values, and makes their onclick |
| 390 * handlers update |this.dataTypeBoxesChecked_|. | 392 * handlers update |this.dataTypeBoxesChecked_|. |
| 391 * @param {SyncConfig} args The configuration data used to show/hide UI. | 393 * @param {SyncConfig} args The configuration data used to show/hide UI. |
| (...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 483 * Updates the cached values of the sync data type checkboxes stored in | 485 * Updates the cached values of the sync data type checkboxes stored in |
| 484 * |this.dataTypeBoxesChecked_|. Used as an onclick handler for each data | 486 * |this.dataTypeBoxesChecked_|. Used as an onclick handler for each data |
| 485 * type checkbox. | 487 * type checkbox. |
| 486 * @param {Event} e The change event. | 488 * @param {Event} e The change event. |
| 487 * @private | 489 * @private |
| 488 */ | 490 */ |
| 489 handleDataTypeChange_: function(e) { | 491 handleDataTypeChange_: function(e) { |
| 490 var input = assertInstanceof(e.target, HTMLInputElement); | 492 var input = assertInstanceof(e.target, HTMLInputElement); |
| 491 assert(input.type == 'checkbox'); | 493 assert(input.type == 'checkbox'); |
| 492 this.dataTypeBoxesChecked_[input.id] = input.checked; | 494 this.dataTypeBoxesChecked_[input.id] = input.checked; |
| 493 chrome.send('coreOptionsUserMetricsAction', | 495 chrome.send( |
| 494 ['Options_SyncToggleDataType']); | 496 'coreOptionsUserMetricsAction', ['Options_SyncToggleDataType']); |
| 495 }, | 497 }, |
| 496 | 498 |
| 497 /** | 499 /** |
| 498 * @param {SyncConfig} args | 500 * @param {SyncConfig} args |
| 499 * @private | 501 * @private |
| 500 */ | 502 */ |
| 501 setEncryptionRadios_: function(args) { | 503 setEncryptionRadios_: function(args) { |
| 502 if (!args.encryptAllData && !args.usePassphrase) { | 504 if (!args.encryptAllData && !args.usePassphrase) { |
| 503 $('basic-encryption-option').checked = true; | 505 $('basic-encryption-option').checked = true; |
| 504 } else { | 506 } else { |
| (...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 559 if (args) { | 561 if (args) { |
| 560 this.setCheckboxesAndErrors_(args); | 562 this.setCheckboxesAndErrors_(args); |
| 561 | 563 |
| 562 this.useEncryptEverything_ = args.encryptAllData; | 564 this.useEncryptEverything_ = args.encryptAllData; |
| 563 | 565 |
| 564 // Determine whether to display the 'OK, sync everything' confirmation | 566 // Determine whether to display the 'OK, sync everything' confirmation |
| 565 // dialog or the advanced sync settings dialog, and assign focus to the | 567 // dialog or the advanced sync settings dialog, and assign focus to the |
| 566 // OK button, or to the passphrase field if a passphrase is required. | 568 // OK button, or to the passphrase field if a passphrase is required. |
| 567 this.usePassphrase_ = args.usePassphrase; | 569 this.usePassphrase_ = args.usePassphrase; |
| 568 var index = args.syncAllDataTypes ? | 570 var index = args.syncAllDataTypes ? |
| 569 options.DataTypeSelection.SYNC_EVERYTHING : | 571 options.DataTypeSelection.SYNC_EVERYTHING : |
| 570 options.DataTypeSelection.CHOOSE_WHAT_TO_SYNC; | 572 options.DataTypeSelection.CHOOSE_WHAT_TO_SYNC; |
| 571 this.showCustomizePage_(args, index); | 573 this.showCustomizePage_(args, index); |
| 572 } | 574 } |
| 573 }, | 575 }, |
| 574 | 576 |
| 575 /** @private */ | 577 /** @private */ |
| 576 showSpinner_: function() { | 578 showSpinner_: function() { |
| 577 this.resetPage_('sync-setup-spinner'); | 579 this.resetPage_('sync-setup-spinner'); |
| 578 $('sync-setup-spinner').hidden = false; | 580 $('sync-setup-spinner').hidden = false; |
| 579 }, | 581 }, |
| 580 | 582 |
| 581 /** @private */ | 583 /** @private */ |
| 582 showTimeoutPage_: function() { | 584 showTimeoutPage_: function() { |
| 583 this.resetPage_('sync-setup-timeout'); | 585 this.resetPage_('sync-setup-timeout'); |
| 584 $('sync-setup-timeout').hidden = false; | 586 $('sync-setup-timeout').hidden = false; |
| 585 }, | 587 }, |
| 586 | 588 |
| 587 /** @private */ | 589 /** @private */ |
| 588 showSyncEverythingPage_: function() { | 590 showSyncEverythingPage_: function() { |
| 589 chrome.send('coreOptionsUserMetricsAction', | 591 chrome.send('coreOptionsUserMetricsAction', ['Options_SyncSetDefault']); |
| 590 ['Options_SyncSetDefault']); | |
| 591 | 592 |
| 592 $('confirm-sync-preferences').hidden = false; | 593 $('confirm-sync-preferences').hidden = false; |
| 593 $('customize-sync-preferences').hidden = true; | 594 $('customize-sync-preferences').hidden = true; |
| 594 | 595 |
| 595 // Reset the selection to 'Sync everything'. | 596 // Reset the selection to 'Sync everything'. |
| 596 $('sync-select-datatypes').selectedIndex = 0; | 597 $('sync-select-datatypes').selectedIndex = 0; |
| 597 | 598 |
| 598 // The default state is to sync everything. | 599 // The default state is to sync everything. |
| 599 this.setDataTypeCheckboxes_(options.DataTypeSelection.SYNC_EVERYTHING); | 600 this.setDataTypeCheckboxes_(options.DataTypeSelection.SYNC_EVERYTHING); |
| 600 | 601 |
| (...skipping 147 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 748 */ | 749 */ |
| 749 resetPage_: function(pageElementId) { | 750 resetPage_: function(pageElementId) { |
| 750 var page = $(pageElementId); | 751 var page = $(pageElementId); |
| 751 var forEach = function(arr, fn) { | 752 var forEach = function(arr, fn) { |
| 752 var length = arr.length; | 753 var length = arr.length; |
| 753 for (var i = 0; i < length; i++) { | 754 for (var i = 0; i < length; i++) { |
| 754 fn(arr[i]); | 755 fn(arr[i]); |
| 755 } | 756 } |
| 756 }; | 757 }; |
| 757 | 758 |
| 758 forEach(page.getElementsByClassName('reset-hidden'), | 759 forEach(page.getElementsByClassName('reset-hidden'), function(elt) { |
| 759 function(elt) { elt.hidden = true; }); | 760 elt.hidden = true; |
| 760 forEach(page.getElementsByClassName('reset-shown'), | 761 }); |
| 761 function(elt) { elt.hidden = false; }); | 762 forEach(page.getElementsByClassName('reset-shown'), function(elt) { |
| 762 forEach(page.getElementsByClassName('reset-disabled'), | 763 elt.hidden = false; |
| 763 function(elt) { elt.disabled = true; }); | 764 }); |
| 764 forEach(page.getElementsByClassName('reset-enabled'), | 765 forEach(page.getElementsByClassName('reset-disabled'), function(elt) { |
| 765 function(elt) { elt.disabled = false; }); | 766 elt.disabled = true; |
| 766 forEach(page.getElementsByClassName('reset-value'), | 767 }); |
| 767 function(elt) { elt.value = ''; }); | 768 forEach(page.getElementsByClassName('reset-enabled'), function(elt) { |
| 768 forEach(page.getElementsByClassName('reset-opaque'), | 769 elt.disabled = false; |
| 769 function(elt) { elt.classList.remove('transparent'); }); | 770 }); |
| 771 forEach(page.getElementsByClassName('reset-value'), function(elt) { |
| 772 elt.value = ''; |
| 773 }); |
| 774 forEach(page.getElementsByClassName('reset-opaque'), function(elt) { |
| 775 elt.classList.remove('transparent'); |
| 776 }); |
| 770 }, | 777 }, |
| 771 | 778 |
| 772 /** | 779 /** |
| 773 * Displays the stop syncing dialog. | 780 * Displays the stop syncing dialog. |
| 774 * @private | 781 * @private |
| 775 */ | 782 */ |
| 776 showStopSyncingUI_: function() { | 783 showStopSyncingUI_: function() { |
| 777 // Hide any visible children of the overlay. | 784 // Hide any visible children of the overlay. |
| 778 var overlay = $('sync-setup-overlay'); | 785 var overlay = $('sync-setup-overlay'); |
| 779 for (var i = 0; i < overlay.children.length; i++) | 786 for (var i = 0; i < overlay.children.length; i++) |
| (...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 820 'closeOverlay', | 827 'closeOverlay', |
| 821 'showSetupUI', | 828 'showSetupUI', |
| 822 'startSignIn', | 829 'startSignIn', |
| 823 'doSignOutOnAuthError', | 830 'doSignOutOnAuthError', |
| 824 'showSyncSetupPage', | 831 'showSyncSetupPage', |
| 825 'showCustomizePage', | 832 'showCustomizePage', |
| 826 'showStopSyncingUI', | 833 'showStopSyncingUI', |
| 827 ]); | 834 ]); |
| 828 | 835 |
| 829 // Export | 836 // Export |
| 830 return { | 837 return {SyncSetupOverlay: SyncSetupOverlay}; |
| 831 SyncSetupOverlay: SyncSetupOverlay | |
| 832 }; | |
| 833 }); | 838 }); |
| OLD | NEW |