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 3 // found in the LICENSE file. 4 5 cr.define('options', function() { 6 const OptionsPage = options.OptionsPage; 7 8 /** 9 * CertificateRestoreOverlay class 10 * Encapsulated handling of the 'enter restore password' overlay page. 11 * @class 12 */ 13 function CertificateRestoreOverlay() { 14 OptionsPage.call(this, 'certificateRestore', 15 '', 16 'certificateRestoreOverlay'); 17 } 18 19 cr.addSingletonGetter(CertificateRestoreOverlay); 20 21 CertificateRestoreOverlay.prototype = { 22 __proto__: OptionsPage.prototype, 23 24 /** 25 * Initializes the page. 26 */ 27 initializePage: function() { 28 OptionsPage.prototype.initializePage.call(this); 29 30 var self = this; 31 $('certificateRestoreCancelButton').onclick = function(event) { 32 self.cancelRestore_(); 33 } 34 $('certificateRestoreOkButton').onclick = function(event) { 35 self.finishRestore_(); 36 } 37 38 self.clearInputFields_(); 39 }, 40 41 /** 42 * Clears any uncommitted input, and dismisses the overlay. 43 * @private 44 */ 45 dismissOverlay_: function() { 46 this.clearInputFields_(); 47 OptionsPage.closeOverlay(); 48 }, 49 50 /** 51 * Attempt the restore operation. 52 * The overlay will be left up with inputs disabled until the backend 53 * finishes and dismisses it. 54 * @private 55 */ 56 finishRestore_: function() { 57 chrome.send('importPersonalCertificatePasswordSelected', 58 [$('certificateRestorePassword').value]); 59 $('certificateRestoreCancelButton').disabled = true; 60 $('certificateRestoreOkButton').disabled = true; 61 }, 62 63 /** 64 * Cancel the restore operation. 65 * @private 66 */ 67 cancelRestore_: function() { 68 chrome.send('cancelImportExportCertificate'); 69 this.dismissOverlay_(); 70 }, 71 72 /** 73 * Clears the value of each input field. 74 * @private 75 */ 76 clearInputFields_: function() { 77 $('certificateRestorePassword').value = ''; 78 $('certificateRestoreCancelButton').disabled = false; 79 $('certificateRestoreOkButton').disabled = false; 80 }, 81 }; 82 83 CertificateRestoreOverlay.show = function() { 84 CertificateRestoreOverlay.getInstance().clearInputFields_(); 85 OptionsPage.navigateToPage('certificateRestore'); 86 }; 87 88 CertificateRestoreOverlay.dismiss = function() { 89 CertificateRestoreOverlay.getInstance().dismissOverlay_(); 90 }; 91 92 // Export 93 return { 94 CertificateRestoreOverlay: CertificateRestoreOverlay 95 }; 96 97 }); 98