| 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, |
| 8 * appsRegistered: boolean, |
| 9 * appsSynced: boolean, |
| 10 * autofillEnforced: boolean, |
| 11 * autofillRegistered: boolean, |
| 12 * autofillSynced: boolean, |
| 13 * bookmarksEnforced: boolean, |
| 14 * bookmarksRegistered: boolean, |
| 15 * bookmarksSynced: boolean, |
| 16 * encryptAllData: boolean, |
| 17 * enterGooglePassphraseBody: (string|undefined), |
| 18 * enterPassphraseBody: (string|undefined), |
| 19 * extensionsEnforced: boolean, |
| 20 * extensionsRegistered: boolean, |
| 21 * extensionsSynced: boolean, |
| 22 * fullEncryptionBody: string, |
| 23 * isSupervised: boolean, |
| 24 * passphraseFailed: boolean, |
| 25 * passwordsEnforced: boolean, |
| 26 * passwordsRegistered: boolean, |
| 27 * passwordsSynced: boolean, |
| 28 * preferencesEnforced: boolean, |
| 29 * preferencesRegistered: boolean, |
| 30 * preferencesSynced: boolean, |
| 31 * showPassphrase: boolean, |
| 32 * showSyncEverythingPage: boolean, |
| 33 * syncAllDataTypes: boolean, |
| 34 * syncNothing: boolean, |
| 35 * tabsEnforced: boolean, |
| 36 * tabsRegistered: boolean, |
| 37 * tabsSynced: boolean, |
| 38 * themesEnforced: boolean, |
| 39 * themesRegistered: boolean, |
| 40 * themesSynced: boolean, |
| 41 * typedUrlsEnforced: boolean, |
| 42 * typedUrlsRegistered: boolean, |
| 43 * typedUrlsSynced: boolean, |
| 44 * usePassphrase: boolean}} |
| 45 */ |
| 46 var SyncConfig; |
| 47 |
| 7 /** | 48 /** |
| 8 * The user's selection in the synced data type drop-down menu, as an index. | 49 * The user's selection in the synced data type drop-down menu, as an index. |
| 9 * @enum {number} | 50 * @enum {number} |
| 10 * @const | 51 * @const |
| 11 */ | 52 */ |
| 12 options.DataTypeSelection = { | 53 options.DataTypeSelection = { |
| 13 SYNC_EVERYTHING: 0, | 54 SYNC_EVERYTHING: 0, |
| 14 CHOOSE_WHAT_TO_SYNC: 1, | 55 CHOOSE_WHAT_TO_SYNC: 1, |
| 15 SYNC_NOTHING: 2 | 56 SYNC_NOTHING: 2 |
| 16 }; | 57 }; |
| (...skipping 152 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 169 } | 210 } |
| 170 }, | 211 }, |
| 171 | 212 |
| 172 /** | 213 /** |
| 173 * Enables / grays out the sync data type checkboxes in the advanced | 214 * Enables / grays out the sync data type checkboxes in the advanced |
| 174 * settings dialog. | 215 * settings dialog. |
| 175 * @param {boolean} enabled True for enabled, false for grayed out. | 216 * @param {boolean} enabled True for enabled, false for grayed out. |
| 176 * @private | 217 * @private |
| 177 */ | 218 */ |
| 178 setDataTypeCheckboxesEnabled_: function(enabled) { | 219 setDataTypeCheckboxesEnabled_: function(enabled) { |
| 179 for (dataType in dataTypeBoxesDisabled_) { | 220 for (var dataType in dataTypeBoxesDisabled_) { |
| 180 $(dataType).disabled = !enabled || dataTypeBoxesDisabled_[dataType]; | 221 $(dataType).disabled = !enabled || dataTypeBoxesDisabled_[dataType]; |
| 181 } | 222 } |
| 182 }, | 223 }, |
| 183 | 224 |
| 184 /** | 225 /** |
| 185 * Sets the state of the sync data type checkboxes based on whether "Sync | 226 * Sets the state of the sync data type checkboxes based on whether "Sync |
| 186 * everything", "Choose what to sync", or "Sync nothing" are selected in the | 227 * everything", "Choose what to sync", or "Sync nothing" are selected in the |
| 187 * drop-down menu of the advanced settings dialog. | 228 * drop-down menu of the advanced settings dialog. |
| 188 * @param {options.DataTypeSelection} selectedIndex Index of user's | 229 * @param {options.DataTypeSelection} selectedIndex Index of user's |
| 189 * selection. | 230 * selection. |
| (...skipping 123 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 313 options.DataTypeSelection.SYNC_EVERYTHING); | 354 options.DataTypeSelection.SYNC_EVERYTHING); |
| 314 return false; | 355 return false; |
| 315 }; | 356 }; |
| 316 }, | 357 }, |
| 317 | 358 |
| 318 /** | 359 /** |
| 319 * Shows or hides the sync data type checkboxes in the advanced sync | 360 * Shows or hides the sync data type checkboxes in the advanced sync |
| 320 * settings dialog. Also initializes |dataTypeBoxesChecked_| and | 361 * settings dialog. Also initializes |dataTypeBoxesChecked_| and |
| 321 * |dataTypeBoxedDisabled_| with their values, and makes their onclick | 362 * |dataTypeBoxedDisabled_| with their values, and makes their onclick |
| 322 * handlers update |dataTypeBoxesChecked_|. | 363 * handlers update |dataTypeBoxesChecked_|. |
| 323 * @param {Object} args The configuration data used to show/hide UI. | 364 * @param {SyncConfig} args The configuration data used to show/hide UI. |
| 324 * @private | 365 * @private |
| 325 */ | 366 */ |
| 326 setChooseDataTypesCheckboxes_: function(args) { | 367 setChooseDataTypesCheckboxes_: function(args) { |
| 327 var datatypeSelect = $('sync-select-datatypes'); | 368 var datatypeSelect = $('sync-select-datatypes'); |
| 328 datatypeSelect.selectedIndex = args.syncAllDataTypes ? | 369 datatypeSelect.selectedIndex = args.syncAllDataTypes ? |
| 329 options.DataTypeSelection.SYNC_EVERYTHING : | 370 options.DataTypeSelection.SYNC_EVERYTHING : |
| 330 options.DataTypeSelection.CHOOSE_WHAT_TO_SYNC; | 371 options.DataTypeSelection.CHOOSE_WHAT_TO_SYNC; |
| 331 | 372 |
| 332 $('bookmarks-checkbox').checked = args.bookmarksSynced; | 373 $('bookmarks-checkbox').checked = args.bookmarksSynced; |
| 333 dataTypeBoxesChecked_['bookmarks-checkbox'] = args.bookmarksSynced; | 374 dataTypeBoxesChecked_['bookmarks-checkbox'] = args.bookmarksSynced; |
| (...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 407 * |dataTypeBoxesChecked_|. Used as an onclick handler for each data type | 448 * |dataTypeBoxesChecked_|. Used as an onclick handler for each data type |
| 408 * checkbox. | 449 * checkbox. |
| 409 * @private | 450 * @private |
| 410 */ | 451 */ |
| 411 handleDataTypeClick_: function() { | 452 handleDataTypeClick_: function() { |
| 412 dataTypeBoxesChecked_[this.id] = this.checked; | 453 dataTypeBoxesChecked_[this.id] = this.checked; |
| 413 chrome.send('coreOptionsUserMetricsAction', | 454 chrome.send('coreOptionsUserMetricsAction', |
| 414 ['Options_SyncToggleDataType']); | 455 ['Options_SyncToggleDataType']); |
| 415 }, | 456 }, |
| 416 | 457 |
| 458 /** |
| 459 * @param {SyncConfig} args |
| 460 */ |
| 417 setEncryptionRadios_: function(args) { | 461 setEncryptionRadios_: function(args) { |
| 418 if (!args.encryptAllData && !args.usePassphrase) { | 462 if (!args.encryptAllData && !args.usePassphrase) { |
| 419 $('basic-encryption-option').checked = true; | 463 $('basic-encryption-option').checked = true; |
| 420 } else { | 464 } else { |
| 421 $('full-encryption-option').checked = true; | 465 $('full-encryption-option').checked = true; |
| 422 $('full-encryption-option').disabled = true; | 466 $('full-encryption-option').disabled = true; |
| 423 $('basic-encryption-option').disabled = true; | 467 $('basic-encryption-option').disabled = true; |
| 424 } | 468 } |
| 425 }, | 469 }, |
| 426 | 470 |
| 471 /** |
| 472 * @param {SyncConfig} args |
| 473 */ |
| 427 setCheckboxesAndErrors_: function(args) { | 474 setCheckboxesAndErrors_: function(args) { |
| 428 this.setChooseDataTypesCheckboxes_(args); | 475 this.setChooseDataTypesCheckboxes_(args); |
| 429 this.setEncryptionRadios_(args); | 476 this.setEncryptionRadios_(args); |
| 430 }, | 477 }, |
| 431 | 478 |
| 479 /** |
| 480 * @param {SyncConfig} args |
| 481 */ |
| 432 showConfigure_: function(args) { | 482 showConfigure_: function(args) { |
| 433 var datatypeSelect = $('sync-select-datatypes'); | 483 var datatypeSelect = $('sync-select-datatypes'); |
| 434 var self = this; | 484 var self = this; |
| 435 | 485 |
| 436 // Cache the sync config args so they can be reused when we transition | 486 // Cache the sync config args so they can be reused when we transition |
| 437 // between the drop-down menu items in the advanced settings dialog. | 487 // between the drop-down menu items in the advanced settings dialog. |
| 438 if (args) | 488 if (args) |
| 439 this.syncConfigureArgs_ = args; | 489 this.syncConfigureArgs_ = args; |
| 440 | 490 |
| 441 // Required in order to determine whether to give focus to the OK button | 491 // Required in order to determine whether to give focus to the OK button |
| (...skipping 115 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 557 // Hide the "use default settings" link. | 607 // Hide the "use default settings" link. |
| 558 $('use-default-link').hidden = true; | 608 $('use-default-link').hidden = true; |
| 559 $('use-default-link').disabled = true; | 609 $('use-default-link').disabled = true; |
| 560 $('use-default-link').onclick = null; | 610 $('use-default-link').onclick = null; |
| 561 }, | 611 }, |
| 562 | 612 |
| 563 /** | 613 /** |
| 564 * Reveals the UI for entering a custom passphrase during initial setup. | 614 * Reveals the UI for entering a custom passphrase during initial setup. |
| 565 * This happens if the user has previously enabled a custom passphrase on a | 615 * This happens if the user has previously enabled a custom passphrase on a |
| 566 * different machine. | 616 * different machine. |
| 567 * @param {Array} args The args that contain the passphrase UI | 617 * @param {SyncConfig} args The args that contain the passphrase UI |
| 568 * configuration. | 618 * configuration. |
| 569 * @private | 619 * @private |
| 570 */ | 620 */ |
| 571 showPassphraseContainer_: function(args) { | 621 showPassphraseContainer_: function(args) { |
| 572 // Once we require a passphrase, we prevent the user from returning to | 622 // Once we require a passphrase, we prevent the user from returning to |
| 573 // the Sync Everything pane. | 623 // the Sync Everything pane. |
| 574 $('use-default-link').hidden = true; | 624 $('use-default-link').hidden = true; |
| 575 $('use-default-link').disabled = true; | 625 $('use-default-link').disabled = true; |
| 576 $('use-default-link').onclick = null; | 626 $('use-default-link').onclick = null; |
| 577 $('sync-custom-passphrase-container').hidden = true; | 627 $('sync-custom-passphrase-container').hidden = true; |
| (...skipping 18 matching lines...) Expand all Loading... |
| 596 // previously but failed). | 646 // previously but failed). |
| 597 $('incorrect-passphrase').hidden = | 647 $('incorrect-passphrase').hidden = |
| 598 !(args.usePassphrase && args.passphraseFailed); | 648 !(args.usePassphrase && args.passphraseFailed); |
| 599 | 649 |
| 600 $('sync-passphrase-warning').hidden = false; | 650 $('sync-passphrase-warning').hidden = false; |
| 601 }, | 651 }, |
| 602 | 652 |
| 603 /** | 653 /** |
| 604 * Displays the advanced sync setting dialog, and pre-selects either the | 654 * Displays the advanced sync setting dialog, and pre-selects either the |
| 605 * "Sync everything" or the "Choose what to sync" drop-down menu item. | 655 * "Sync everything" or the "Choose what to sync" drop-down menu item. |
| 656 * @param {SyncConfig} args |
| 606 * @param {options.DataTypeSelection} index Index of item to pre-select. | 657 * @param {options.DataTypeSelection} index Index of item to pre-select. |
| 607 * @private | 658 * @private |
| 608 */ | 659 */ |
| 609 showCustomizePage_: function(args, index) { | 660 showCustomizePage_: function(args, index) { |
| 610 // Determine whether to bring the OK button field into focus. | 661 // Determine whether to bring the OK button field into focus. |
| 611 var wasCustomizePageHidden = !this.customizePageVisible_; | 662 var wasCustomizePageHidden = !this.customizePageVisible_; |
| 612 this.customizePageVisible_ = true; | 663 this.customizePageVisible_ = true; |
| 613 this.confirmPageVisible_ = false; | 664 this.confirmPageVisible_ = false; |
| 614 | 665 |
| 615 $('confirm-sync-preferences').hidden = true; | 666 $('confirm-sync-preferences').hidden = true; |
| (...skipping 27 matching lines...) Expand all Loading... |
| 643 $('use-default-link').onclick = function() { | 694 $('use-default-link').onclick = function() { |
| 644 SyncSetupOverlay.showSyncEverythingPage(); | 695 SyncSetupOverlay.showSyncEverythingPage(); |
| 645 return false; | 696 return false; |
| 646 }; | 697 }; |
| 647 } | 698 } |
| 648 }, | 699 }, |
| 649 | 700 |
| 650 /** | 701 /** |
| 651 * Shows the appropriate sync setup page. | 702 * Shows the appropriate sync setup page. |
| 652 * @param {string} page A page of the sync setup to show. | 703 * @param {string} page A page of the sync setup to show. |
| 653 * @param {Object} args Data from the C++ to forward on to the right | 704 * @param {SyncConfig} args Data from the C++ to forward on to the right |
| 654 * section. | 705 * section. |
| 655 */ | 706 */ |
| 656 showSyncSetupPage_: function(page, args) { | 707 showSyncSetupPage_: function(page, args) { |
| 657 // If the user clicks the OK button, dismiss the dialog immediately, and | 708 // If the user clicks the OK button, dismiss the dialog immediately, and |
| 658 // do not go through the process of hiding elements of the overlay. | 709 // do not go through the process of hiding elements of the overlay. |
| 659 // See crbug.com/308873. | 710 // See crbug.com/308873. |
| 660 if (page == 'done') { | 711 if (page == 'done') { |
| 661 this.closeOverlay_(); | 712 this.closeOverlay_(); |
| 662 return; | 713 return; |
| 663 } | 714 } |
| (...skipping 152 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 816 | 867 |
| 817 SyncSetupOverlay.showStopSyncingUI = function() { | 868 SyncSetupOverlay.showStopSyncingUI = function() { |
| 818 SyncSetupOverlay.getInstance().showStopSyncingUI_(); | 869 SyncSetupOverlay.getInstance().showStopSyncingUI_(); |
| 819 }; | 870 }; |
| 820 | 871 |
| 821 // Export | 872 // Export |
| 822 return { | 873 return { |
| 823 SyncSetupOverlay: SyncSetupOverlay | 874 SyncSetupOverlay: SyncSetupOverlay |
| 824 }; | 875 }; |
| 825 }); | 876 }); |
| OLD | NEW |