Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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.define('options', function() { | 5 cr.define('options', function() { |
| 6 const OptionsPage = options.OptionsPage; | 6 const OptionsPage = options.OptionsPage; |
| 7 | 7 |
| 8 // Variable to track if a captcha challenge was issued. If this gets set to | 8 // Variable to track if a captcha challenge was issued. If this gets set to |
| 9 // true, it stays that way until we are told about successful login from | 9 // true, it stays that way until we are told about successful login from |
| 10 // the browser. This means subsequent errors (like invalid password) are | 10 // the browser. This means subsequent errors (like invalid password) are |
| (...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 87 /** @inheritDoc */ | 87 /** @inheritDoc */ |
| 88 didShowPage: function() { | 88 didShowPage: function() { |
| 89 chrome.send('SyncSetupAttachHandler'); | 89 chrome.send('SyncSetupAttachHandler'); |
| 90 }, | 90 }, |
| 91 | 91 |
| 92 /** @inheritDoc */ | 92 /** @inheritDoc */ |
| 93 didClosePage: function() { | 93 didClosePage: function() { |
| 94 chrome.send('SyncSetupDidClosePage'); | 94 chrome.send('SyncSetupDidClosePage'); |
| 95 }, | 95 }, |
| 96 | 96 |
| 97 sendPassphraseAndClose_: function() { | |
| 98 var f = $('choose-data-types-form'); | |
| 99 var result = JSON.stringify({"passphrase": f.passphrase.value}); | |
| 100 chrome.send('SyncSetupPassphrase', [result]); | |
| 101 return false; | |
| 102 }, | |
| 103 | |
| 104 getEncryptionRadioCheckedValue_: function() { | 97 getEncryptionRadioCheckedValue_: function() { |
| 105 var f = $('choose-data-types-form'); | 98 var f = $('choose-data-types-form'); |
| 106 for (var i = 0; i < f.encrypt.length; ++i) { | 99 for (var i = 0; i < f.encrypt.length; ++i) { |
| 107 if (f.encrypt[i].checked) { | 100 if (f.encrypt[i].checked) { |
| 108 return f.encrypt[i].value; | 101 return f.encrypt[i].value; |
| 109 } | 102 } |
| 110 } | 103 } |
| 111 | 104 |
| 112 return undefined; | 105 return undefined; |
| 113 }, | 106 }, |
| (...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 185 }, | 178 }, |
| 186 | 179 |
| 187 checkPassphraseMatch_: function() { | 180 checkPassphraseMatch_: function() { |
| 188 var emptyError = $('empty-error'); | 181 var emptyError = $('empty-error'); |
| 189 var mismatchError = $('mismatch-error'); | 182 var mismatchError = $('mismatch-error'); |
| 190 emptyError.hidden = true; | 183 emptyError.hidden = true; |
| 191 mismatchError.hidden = true; | 184 mismatchError.hidden = true; |
| 192 | 185 |
| 193 var f = $('choose-data-types-form'); | 186 var f = $('choose-data-types-form'); |
| 194 if (this.getPassphraseRadioCheckedValue_() != "explicit" || | 187 if (this.getPassphraseRadioCheckedValue_() != "explicit" || |
| 195 f.option[0].disabled) | 188 $('google-option').disabled) { |
| 196 return true; | 189 return true; |
| 190 } | |
| 197 | 191 |
| 198 var customPassphrase = $('custom-passphrase'); | 192 var customPassphrase = $('custom-passphrase'); |
| 199 if (customPassphrase.value.length == 0) { | 193 if (customPassphrase.value.length == 0) { |
| 200 emptyError.hidden = false; | 194 emptyError.hidden = false; |
| 201 return false; | 195 return false; |
| 202 } | 196 } |
| 203 | 197 |
| 204 var confirmPassphrase = $('confirm-passphrase'); | 198 var confirmPassphrase = $('confirm-passphrase'); |
| 205 if (confirmPassphrase.value != customPassphrase.value) { | 199 if (confirmPassphrase.value != customPassphrase.value) { |
| 206 mismatchError.hidden = false; | 200 mismatchError.hidden = false; |
| 207 return false; | 201 return false; |
| 208 } | 202 } |
| 209 | 203 |
| 210 return true; | 204 return true; |
| 211 }, | 205 }, |
| 212 | 206 |
| 213 sendConfiguration_: function() { | 207 sendConfiguration_: function() { |
| 214 // Trying to submit, so hide previous errors. | 208 // Trying to submit, so hide previous errors. |
| 215 $('aborted-text').hidden = true; | 209 $('aborted-text').hidden = true; |
| 216 $('error-text').hidden = true; | 210 $('error-text').hidden = true; |
| 217 | 211 |
| 218 if (this.noDataTypesChecked_()) { | 212 if (this.noDataTypesChecked_()) { |
| 219 $('error-text').hidden = false; | 213 $('error-text').hidden = false; |
| 220 return; | 214 return; |
| 221 } | 215 } |
| 222 | 216 |
| 223 var f = $('choose-data-types-form'); | 217 var f = $('choose-data-types-form'); |
| 224 if (!this.checkPassphraseMatch_()) | 218 // Must be done before we disable input elements. |
| 219 if (!this.checkPassphraseMatch_()) { | |
|
James Hawkins
2011/07/21 19:20:09
No braces for single-line logic blocks, here and e
Nicolas Zea
2011/07/21 19:34:57
Done.
| |
| 225 return; | 220 return; |
| 221 } | |
| 226 | 222 |
| 227 // Don't allow the user to tweak the settings once we send the | 223 // Don't allow the user to tweak the settings once we send the |
| 228 // configuration to the backend. | 224 // configuration to the backend. |
| 229 this.setInputElementsDisabledState_(true); | 225 this.setInputElementsDisabledState_(true); |
| 230 | 226 |
| 231 var syncAll = | 227 var syncAll = |
| 232 document.getElementById('sync-select-datatypes').selectedIndex == 0; | 228 document.getElementById('sync-select-datatypes').selectedIndex == 0; |
| 233 var usePassphrase = this.getPassphraseRadioCheckedValue_() == 'explicit'; | 229 var usePassphrase = this.getPassphraseRadioCheckedValue_() == 'explicit'; |
| 234 var encryptAllData = this.getEncryptionRadioCheckedValue_() == 'all'; | 230 var encryptAllData = this.getEncryptionRadioCheckedValue_() == 'all'; |
| 235 | 231 |
| 232 var customPassphrase = ""; | |
|
James Hawkins
2011/07/21 19:20:09
No need to initialize to empty string.
Nicolas Zea
2011/07/21 19:34:57
Done.
| |
| 233 if (!$('sync-existing-passphrase-container').hidden) { | |
| 234 // We were prompted for an existing passphrase, use it. | |
| 235 customPassphrase = f.passphrase.value; | |
| 236 } else { | |
| 237 customPassphrase = $('custom-passphrase').value; | |
| 238 } | |
| 239 | |
| 240 // If the user has not actually entered a passphrase (for example on | |
| 241 // customize when the passphrase box is hidden), we don't attempt to reset | |
| 242 // the passphrase. | |
| 243 if (customPassphrase.length == 0) { | |
| 244 usePassphrase = false; | |
| 245 } | |
| 246 | |
| 236 // These values need to be kept in sync with where they are read in | 247 // These values need to be kept in sync with where they are read in |
| 237 // SyncSetupFlow::GetDataTypeChoiceData(). | 248 // SyncSetupFlow::GetDataTypeChoiceData(). |
| 238 var result = JSON.stringify({ | 249 var result = JSON.stringify({ |
| 239 "keepEverythingSynced": syncAll, | 250 "keepEverythingSynced": syncAll, |
| 240 "syncBookmarks": syncAll || $('bookmarks-checkbox').checked, | 251 "syncBookmarks": syncAll || $('bookmarks-checkbox').checked, |
| 241 "syncPreferences": syncAll || $('preferences-checkbox').checked, | 252 "syncPreferences": syncAll || $('preferences-checkbox').checked, |
| 242 "syncThemes": syncAll || $('themes-checkbox').checked, | 253 "syncThemes": syncAll || $('themes-checkbox').checked, |
| 243 "syncPasswords": syncAll || $('passwords-checkbox').checked, | 254 "syncPasswords": syncAll || $('passwords-checkbox').checked, |
| 244 "syncAutofill": syncAll || $('autofill-checkbox').checked, | 255 "syncAutofill": syncAll || $('autofill-checkbox').checked, |
| 245 "syncExtensions": syncAll || $('extensions-checkbox').checked, | 256 "syncExtensions": syncAll || $('extensions-checkbox').checked, |
| 246 "syncTypedUrls": syncAll || $('typed-urls-checkbox').checked, | 257 "syncTypedUrls": syncAll || $('typed-urls-checkbox').checked, |
| 247 "syncApps": syncAll || $('apps-checkbox').checked, | 258 "syncApps": syncAll || $('apps-checkbox').checked, |
| 248 "syncSessions": syncAll || $('sessions-checkbox').checked, | 259 "syncSessions": syncAll || $('sessions-checkbox').checked, |
| 249 "encryptAllData": encryptAllData, | 260 "encryptAllData": encryptAllData, |
| 250 "usePassphrase": usePassphrase, | 261 "usePassphrase": usePassphrase, |
| 251 "passphrase": $('custom-passphrase').value | 262 "passphrase": customPassphrase |
| 252 }); | 263 }); |
| 253 chrome.send('SyncSetupConfigure', [result]); | 264 chrome.send('SyncSetupConfigure', [result]); |
| 254 }, | 265 }, |
| 255 | 266 |
| 256 /** | 267 /** |
| 257 * Sets the disabled property of all input elements within the 'Customize | 268 * Sets the disabled property of all input elements within the 'Customize |
| 258 * Sync Preferences' screen. This is used to prohibit the user from changing | 269 * Sync Preferences' screen. This is used to prohibit the user from changing |
| 259 * the inputs after confirming the customized sync preferences, or resetting | 270 * the inputs after confirming the customized sync preferences, or resetting |
| 260 * the state when re-showing the dialog. | 271 * the state when re-showing the dialog. |
| 261 * @param disabled True if controls should be set to disabled. | 272 * @param disabled True if controls should be set to disabled. |
| (...skipping 177 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 439 // passphrase radio when switching to the 'Sync everything' page. | 450 // passphrase radio when switching to the 'Sync everything' page. |
| 440 if (!this.usePassphrase_) { | 451 if (!this.usePassphrase_) { |
| 441 $('google-option').checked = true; | 452 $('google-option').checked = true; |
| 442 $('sync-custom-passphrase').hidden = true; | 453 $('sync-custom-passphrase').hidden = true; |
| 443 } | 454 } |
| 444 | 455 |
| 445 $('confirm-everything-ok').focus(); | 456 $('confirm-everything-ok').focus(); |
| 446 }, | 457 }, |
| 447 | 458 |
| 448 /** | 459 /** |
| 449 * Reveals the UI for entering a custom passphrase after initial setup. This | 460 * Reveals the UI for entering a custom passphrase during initial setup. |
| 450 * may happen if the user forgot to enter the correct (or any) custom | 461 * This happens if the user has previously enabled a custom passphrase on a |
| 451 * passphrase during initial setup. | 462 * different machine. |
| 452 * @param {Array} args The args that contain the passphrase UI | 463 * @param {Array} args The args that contain the passphrase UI |
| 453 * configuration. | 464 * configuration. |
| 454 * @private | 465 * @private |
| 455 */ | 466 */ |
| 456 showPassphraseContainer_: function(args) { | 467 showPassphraseContainer_: function(args) { |
| 457 $('choose-data-types-form').onsubmit = | |
| 458 this.sendPassphraseAndClose_.bind(this); | |
| 459 $('sync-custom-passphrase-container').hidden = true; | 468 $('sync-custom-passphrase-container').hidden = true; |
| 460 $('sync-existing-passphrase-container').hidden = false; | 469 $('sync-existing-passphrase-container').hidden = false; |
| 461 | 470 |
| 462 if (args["passphrase_creation_rejected"]) | 471 if (args["passphrase_creation_rejected"]) |
| 463 $('passphrase-rejected-body').hidden = false; | 472 $('passphrase-rejected-body').hidden = false; |
| 464 else | 473 else |
| 465 $('normal-body').hidden = false; | 474 $('normal-body').hidden = false; |
| 466 | 475 |
| 467 if (args["passphrase_setting_rejected"]) | 476 if (args["passphrase_setting_rejected"]) |
| 468 $('incorrect-passphrase').hidden = false; | 477 $('incorrect-passphrase').hidden = false; |
| (...skipping 323 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 792 | 801 |
| 793 SyncSetupOverlay.showStopSyncingUI = function() { | 802 SyncSetupOverlay.showStopSyncingUI = function() { |
| 794 SyncSetupOverlay.getInstance().showStopSyncingUI_(); | 803 SyncSetupOverlay.getInstance().showStopSyncingUI_(); |
| 795 }; | 804 }; |
| 796 | 805 |
| 797 // Export | 806 // Export |
| 798 return { | 807 return { |
| 799 SyncSetupOverlay: SyncSetupOverlay | 808 SyncSetupOverlay: SyncSetupOverlay |
| 800 }; | 809 }; |
| 801 }); | 810 }); |
| OLD | NEW |