OLD | NEW |
| (Empty) |
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 | |
3 // found in the LICENSE file. | |
4 | |
5 cr.define('options', function() { | |
6 /** @const */ var OptionsPage = options.OptionsPage; | |
7 | |
8 /** | |
9 * CertificateEditCaTrustOverlay class | |
10 * Encapsulated handling of the 'edit ca trust' and 'import ca' overlay pages. | |
11 * @class | |
12 */ | |
13 function CertificateEditCaTrustOverlay() { | |
14 OptionsPage.call(this, 'certificateEditCaTrustOverlay', | |
15 '', | |
16 'certificateEditCaTrustOverlay'); | |
17 } | |
18 | |
19 cr.addSingletonGetter(CertificateEditCaTrustOverlay); | |
20 | |
21 CertificateEditCaTrustOverlay.prototype = { | |
22 __proto__: OptionsPage.prototype, | |
23 | |
24 /** | |
25 * Dismisses the overlay. | |
26 * @private | |
27 */ | |
28 dismissOverlay_: function() { | |
29 OptionsPage.closeOverlay(); | |
30 }, | |
31 | |
32 /** | |
33 * Enables or disables input fields. | |
34 * @private | |
35 */ | |
36 enableInputs_: function(enabled) { | |
37 $('certificateCaTrustSSLCheckbox').disabled = | |
38 $('certificateCaTrustEmailCheckbox').disabled = | |
39 $('certificateCaTrustObjSignCheckbox').disabled = | |
40 $('certificateEditCaTrustCancelButton').disabled = | |
41 $('certificateEditCaTrustOkButton').disabled = !enabled; | |
42 }, | |
43 | |
44 /** | |
45 * Attempt the Edit operation. | |
46 * The overlay will be left up with inputs disabled until the backend | |
47 * finishes and dismisses it. | |
48 * @private | |
49 */ | |
50 finishEdit_: function() { | |
51 // TODO(mattm): Send checked values as booleans. For now send them as | |
52 // strings, since WebUIBindings::send does not support any other types :( | |
53 chrome.send('editCaCertificateTrust', | |
54 [this.certId, | |
55 $('certificateCaTrustSSLCheckbox').checked.toString(), | |
56 $('certificateCaTrustEmailCheckbox').checked.toString(), | |
57 $('certificateCaTrustObjSignCheckbox').checked.toString()]); | |
58 this.enableInputs_(false); | |
59 }, | |
60 | |
61 /** | |
62 * Cancel the Edit operation. | |
63 * @private | |
64 */ | |
65 cancelEdit_: function() { | |
66 this.dismissOverlay_(); | |
67 }, | |
68 | |
69 /** | |
70 * Attempt the Import operation. | |
71 * The overlay will be left up with inputs disabled until the backend | |
72 * finishes and dismisses it. | |
73 * @private | |
74 */ | |
75 finishImport_: function() { | |
76 // TODO(mattm): Send checked values as booleans. For now send them as | |
77 // strings, since WebUIBindings::send does not support any other types :( | |
78 chrome.send('importCaCertificateTrustSelected', | |
79 [$('certificateCaTrustSSLCheckbox').checked.toString(), | |
80 $('certificateCaTrustEmailCheckbox').checked.toString(), | |
81 $('certificateCaTrustObjSignCheckbox').checked.toString()]); | |
82 this.enableInputs_(false); | |
83 }, | |
84 | |
85 /** | |
86 * Cancel the Import operation. | |
87 * @private | |
88 */ | |
89 cancelImport_: function() { | |
90 chrome.send('cancelImportExportCertificate'); | |
91 this.dismissOverlay_(); | |
92 }, | |
93 }; | |
94 | |
95 /** | |
96 * Callback from CertificateManagerHandler with the trust values. | |
97 * @param {boolean} trustSSL The initial value of SSL trust checkbox. | |
98 * @param {boolean} trustEmail The initial value of Email trust checkbox. | |
99 * @param {boolean} trustObjSign The initial value of Object Signing trust. | |
100 */ | |
101 CertificateEditCaTrustOverlay.populateTrust = function( | |
102 trustSSL, trustEmail, trustObjSign) { | |
103 $('certificateCaTrustSSLCheckbox').checked = trustSSL; | |
104 $('certificateCaTrustEmailCheckbox').checked = trustEmail; | |
105 $('certificateCaTrustObjSignCheckbox').checked = trustObjSign; | |
106 CertificateEditCaTrustOverlay.getInstance().enableInputs_(true); | |
107 } | |
108 | |
109 /** | |
110 * Show the Edit CA Trust overlay. | |
111 * @param {string} certId The id of the certificate to be passed to the | |
112 * certificate manager model. | |
113 * @param {string} certName The display name of the certificate. | |
114 * checkbox. | |
115 */ | |
116 CertificateEditCaTrustOverlay.show = function(certId, certName) { | |
117 var self = CertificateEditCaTrustOverlay.getInstance(); | |
118 self.certId = certId; | |
119 $('certificateEditCaTrustCancelButton').onclick = function(event) { | |
120 self.cancelEdit_(); | |
121 } | |
122 $('certificateEditCaTrustOkButton').onclick = function(event) { | |
123 self.finishEdit_(); | |
124 } | |
125 $('certificateEditCaTrustDescription').textContent = | |
126 loadTimeData.getStringF('certificateEditCaTrustDescriptionFormat', | |
127 certName); | |
128 self.enableInputs_(false); | |
129 OptionsPage.navigateToPage('certificateEditCaTrustOverlay'); | |
130 chrome.send('getCaCertificateTrust', [certId]); | |
131 } | |
132 | |
133 /** | |
134 * Show the Import CA overlay. | |
135 * @param {string} certId The id of the certificate to be passed to the | |
136 * certificate manager model. | |
137 * @param {string} certName The display name of the certificate. | |
138 * checkbox. | |
139 */ | |
140 CertificateEditCaTrustOverlay.showImport = function(certName) { | |
141 var self = CertificateEditCaTrustOverlay.getInstance(); | |
142 // TODO(mattm): do we want a view certificate button here like firefox has? | |
143 $('certificateEditCaTrustCancelButton').onclick = function(event) { | |
144 self.cancelImport_(); | |
145 } | |
146 $('certificateEditCaTrustOkButton').onclick = function(event) { | |
147 self.finishImport_(); | |
148 } | |
149 $('certificateEditCaTrustDescription').textContent = | |
150 loadTimeData.getStringF('certificateImportCaDescriptionFormat', | |
151 certName); | |
152 CertificateEditCaTrustOverlay.populateTrust(false, false, false); | |
153 OptionsPage.navigateToPage('certificateEditCaTrustOverlay'); | |
154 } | |
155 | |
156 CertificateEditCaTrustOverlay.dismiss = function() { | |
157 CertificateEditCaTrustOverlay.getInstance().dismissOverlay_(); | |
158 }; | |
159 | |
160 // Export | |
161 return { | |
162 CertificateEditCaTrustOverlay: CertificateEditCaTrustOverlay | |
163 }; | |
164 }); | |
OLD | NEW |