| OLD | NEW |
| 1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 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 /** | 5 /** |
| 6 * @fileoverview A helper object used from the "Manage certificates" section | 6 * @fileoverview A helper object used from the "Manage certificates" section |
| 7 * to interact with the browser. | 7 * to interact with the browser. |
| 8 */ | 8 */ |
| 9 | 9 |
| 10 /** | 10 /** |
| (...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 76 * @typedef {{ | 76 * @typedef {{ |
| 77 * title: string, | 77 * title: string, |
| 78 * description: string, | 78 * description: string, |
| 79 * certificateErrors: !Array<{name: string, error: string}> | 79 * certificateErrors: !Array<{name: string, error: string}> |
| 80 * }} | 80 * }} |
| 81 * @see chrome/browser/ui/webui/settings/certificates_handler.cc | 81 * @see chrome/browser/ui/webui/settings/certificates_handler.cc |
| 82 */ | 82 */ |
| 83 var CertificatesImportError; | 83 var CertificatesImportError; |
| 84 | 84 |
| 85 cr.define('settings', function() { | 85 cr.define('settings', function() { |
| 86 | |
| 87 /** @interface */ | 86 /** @interface */ |
| 88 function CertificatesBrowserProxy() {} | 87 class CertificatesBrowserProxy { |
| 89 | |
| 90 CertificatesBrowserProxy.prototype = { | |
| 91 /** | 88 /** |
| 92 * Triggers 5 events in the following order | 89 * Triggers 5 events in the following order |
| 93 * 1x 'certificates-model-ready' event. | 90 * 1x 'certificates-model-ready' event. |
| 94 * 4x 'certificates-changed' event, one for each certificate category. | 91 * 4x 'certificates-changed' event, one for each certificate category. |
| 95 */ | 92 */ |
| 96 refreshCertificates: function() {}, | 93 refreshCertificates() {} |
| 97 | 94 |
| 98 /** @param {string} id */ | 95 /** @param {string} id */ |
| 99 viewCertificate: function(id) {}, | 96 viewCertificate(id) {} |
| 100 | 97 |
| 101 /** @param {string} id */ | 98 /** @param {string} id */ |
| 102 exportCertificate: function(id) {}, | 99 exportCertificate(id) {} |
| 103 | 100 |
| 104 /** | 101 /** |
| 105 * @param {string} id | 102 * @param {string} id |
| 106 * @return {!Promise} A promise resolved when the certificate has been | 103 * @return {!Promise} A promise resolved when the certificate has been |
| 107 * deleted successfully or rejected with a CertificatesError. | 104 * deleted successfully or rejected with a CertificatesError. |
| 108 */ | 105 */ |
| 109 deleteCertificate: function(id) {}, | 106 deleteCertificate(id) {} |
| 110 | 107 |
| 111 /** | 108 /** |
| 112 * @param {string} id | 109 * @param {string} id |
| 113 * @return {!Promise<!CaTrustInfo>} | 110 * @return {!Promise<!CaTrustInfo>} |
| 114 */ | 111 */ |
| 115 getCaCertificateTrust: function(id) {}, | 112 getCaCertificateTrust(id) {} |
| 116 | 113 |
| 117 /** | 114 /** |
| 118 * @param {string} id | 115 * @param {string} id |
| 119 * @param {boolean} ssl | 116 * @param {boolean} ssl |
| 120 * @param {boolean} email | 117 * @param {boolean} email |
| 121 * @param {boolean} objSign | 118 * @param {boolean} objSign |
| 122 * @return {!Promise} | 119 * @return {!Promise} |
| 123 */ | 120 */ |
| 124 editCaCertificateTrust: function(id, ssl, email, objSign) {}, | 121 editCaCertificateTrust(id, ssl, email, objSign) {} |
| 125 | 122 |
| 126 cancelImportExportCertificate: function() {}, | 123 cancelImportExportCertificate() {} |
| 127 | 124 |
| 128 /** | 125 /** |
| 129 * @param {string} id | 126 * @param {string} id |
| 130 * @return {!Promise} A promise firing once the user has selected | 127 * @return {!Promise} A promise firing once the user has selected |
| 131 * the export location. A prompt should be shown to asking for a | 128 * the export location. A prompt should be shown to asking for a |
| 132 * password to use for encrypting the file. The password should be | 129 * password to use for encrypting the file. The password should be |
| 133 * passed back via a call to | 130 * passed back via a call to |
| 134 * exportPersonalCertificatePasswordSelected(). | 131 * exportPersonalCertificatePasswordSelected(). |
| 135 */ | 132 */ |
| 136 exportPersonalCertificate: function(id) {}, | 133 exportPersonalCertificate(id) {} |
| 137 | 134 |
| 138 /** | 135 /** |
| 139 * @param {string} password | 136 * @param {string} password |
| 140 * @return {!Promise} | 137 * @return {!Promise} |
| 141 */ | 138 */ |
| 142 exportPersonalCertificatePasswordSelected: function(password) {}, | 139 exportPersonalCertificatePasswordSelected(password) {} |
| 143 | 140 |
| 144 /** | 141 /** |
| 145 * @param {boolean} useHardwareBacked | 142 * @param {boolean} useHardwareBacked |
| 146 * @return {!Promise<boolean>} A promise firing once the user has selected | 143 * @return {!Promise<boolean>} A promise firing once the user has selected |
| 147 * the file to be imported. If true a password prompt should be shown to | 144 * the file to be imported. If true a password prompt should be shown to |
| 148 * the user, and the password should be passed back via a call to | 145 * the user, and the password should be passed back via a call to |
| 149 * importPersonalCertificatePasswordSelected(). | 146 * importPersonalCertificatePasswordSelected(). |
| 150 */ | 147 */ |
| 151 importPersonalCertificate: function(useHardwareBacked) {}, | 148 importPersonalCertificate(useHardwareBacked) {} |
| 152 | 149 |
| 153 /** | 150 /** |
| 154 * @param {string} password | 151 * @param {string} password |
| 155 * @return {!Promise} | 152 * @return {!Promise} |
| 156 */ | 153 */ |
| 157 importPersonalCertificatePasswordSelected: function(password) {}, | 154 importPersonalCertificatePasswordSelected(password) {} |
| 158 | 155 |
| 159 /** | 156 /** |
| 160 * @return {!Promise} A promise firing once the user has selected | 157 * @return {!Promise} A promise firing once the user has selected |
| 161 * the file to be imported, or failing with CertificatesError. | 158 * the file to be imported, or failing with CertificatesError. |
| 162 * Upon success, a prompt should be shown to the user to specify the | 159 * Upon success, a prompt should be shown to the user to specify the |
| 163 * trust levels, and that information should be passed back via a call | 160 * trust levels, and that information should be passed back via a call |
| 164 * to importCaCertificateTrustSelected(). | 161 * to importCaCertificateTrustSelected(). |
| 165 */ | 162 */ |
| 166 importCaCertificate: function() {}, | 163 importCaCertificate() {} |
| 167 | 164 |
| 168 /** | 165 /** |
| 169 * @param {boolean} ssl | 166 * @param {boolean} ssl |
| 170 * @param {boolean} email | 167 * @param {boolean} email |
| 171 * @param {boolean} objSign | 168 * @param {boolean} objSign |
| 172 * @return {!Promise} A promise firing once the trust level for the imported | 169 * @return {!Promise} A promise firing once the trust level for the imported |
| 173 * certificate has been successfully set. The promise is rejected if an | 170 * certificate has been successfully set. The promise is rejected if an |
| 174 * error occurred with either a CertificatesError or | 171 * error occurred with either a CertificatesError or |
| 175 * CertificatesImportError. | 172 * CertificatesImportError. |
| 176 */ | 173 */ |
| 177 importCaCertificateTrustSelected: function(ssl, email, objSign) {}, | 174 importCaCertificateTrustSelected(ssl, email, objSign) {} |
| 178 | 175 |
| 179 /** | 176 /** |
| 180 * @return {!Promise} A promise firing once the certificate has been | 177 * @return {!Promise} A promise firing once the certificate has been |
| 181 * imported. The promise is rejected if an error occurred, with either | 178 * imported. The promise is rejected if an error occurred, with either |
| 182 * a CertificatesError or CertificatesImportError. | 179 * a CertificatesError or CertificatesImportError. |
| 183 */ | 180 */ |
| 184 importServerCertificate: function() {}, | 181 importServerCertificate() {} |
| 185 }; | 182 } |
| 186 | 183 |
| 187 /** | 184 /** |
| 188 * @constructor | |
| 189 * @implements {settings.CertificatesBrowserProxy} | 185 * @implements {settings.CertificatesBrowserProxy} |
| 190 */ | 186 */ |
| 191 function CertificatesBrowserProxyImpl() {} | 187 class CertificatesBrowserProxyImpl { |
| 188 /** @override */ |
| 189 refreshCertificates() { |
| 190 chrome.send('refreshCertificates'); |
| 191 } |
| 192 |
| 193 /** @override */ |
| 194 viewCertificate(id) { |
| 195 chrome.send('viewCertificate', [id]); |
| 196 } |
| 197 |
| 198 /** @override */ |
| 199 exportCertificate(id) { |
| 200 chrome.send('exportCertificate', [id]); |
| 201 } |
| 202 |
| 203 /** @override */ |
| 204 deleteCertificate(id) { |
| 205 return cr.sendWithPromise('deleteCertificate', id); |
| 206 } |
| 207 |
| 208 /** @override */ |
| 209 exportPersonalCertificate(id) { |
| 210 return cr.sendWithPromise('exportPersonalCertificate', id); |
| 211 } |
| 212 |
| 213 /** @override */ |
| 214 exportPersonalCertificatePasswordSelected(password) { |
| 215 return cr.sendWithPromise( |
| 216 'exportPersonalCertificatePasswordSelected', password); |
| 217 } |
| 218 |
| 219 /** @override */ |
| 220 importPersonalCertificate(useHardwareBacked) { |
| 221 return cr.sendWithPromise('importPersonalCertificate', useHardwareBacked); |
| 222 } |
| 223 |
| 224 /** @override */ |
| 225 importPersonalCertificatePasswordSelected(password) { |
| 226 return cr.sendWithPromise( |
| 227 'importPersonalCertificatePasswordSelected', password); |
| 228 } |
| 229 |
| 230 /** @override */ |
| 231 getCaCertificateTrust(id) { |
| 232 return cr.sendWithPromise('getCaCertificateTrust', id); |
| 233 } |
| 234 |
| 235 /** @override */ |
| 236 editCaCertificateTrust(id, ssl, email, objSign) { |
| 237 return cr.sendWithPromise( |
| 238 'editCaCertificateTrust', id, ssl, email, objSign); |
| 239 } |
| 240 |
| 241 /** @override */ |
| 242 importCaCertificateTrustSelected(ssl, email, objSign) { |
| 243 return cr.sendWithPromise( |
| 244 'importCaCertificateTrustSelected', ssl, email, objSign); |
| 245 } |
| 246 |
| 247 /** @override */ |
| 248 cancelImportExportCertificate() { |
| 249 chrome.send('cancelImportExportCertificate'); |
| 250 } |
| 251 |
| 252 /** @override */ |
| 253 importCaCertificate() { |
| 254 return cr.sendWithPromise('importCaCertificate'); |
| 255 } |
| 256 |
| 257 /** @override */ |
| 258 importServerCertificate() { |
| 259 return cr.sendWithPromise('importServerCertificate'); |
| 260 } |
| 261 } |
| 262 |
| 192 // The singleton instance_ is replaced with a test version of this wrapper | 263 // The singleton instance_ is replaced with a test version of this wrapper |
| 193 // during testing. | 264 // during testing. |
| 194 cr.addSingletonGetter(CertificatesBrowserProxyImpl); | 265 cr.addSingletonGetter(CertificatesBrowserProxyImpl); |
| 195 | 266 |
| 196 CertificatesBrowserProxyImpl.prototype = { | |
| 197 /** @override */ | |
| 198 refreshCertificates: function() { | |
| 199 chrome.send('refreshCertificates'); | |
| 200 }, | |
| 201 | |
| 202 /** @override */ | |
| 203 viewCertificate: function(id) { | |
| 204 chrome.send('viewCertificate', [id]); | |
| 205 }, | |
| 206 | |
| 207 /** @override */ | |
| 208 exportCertificate: function(id) { | |
| 209 chrome.send('exportCertificate', [id]); | |
| 210 }, | |
| 211 | |
| 212 /** @override */ | |
| 213 deleteCertificate: function(id) { | |
| 214 return cr.sendWithPromise('deleteCertificate', id); | |
| 215 }, | |
| 216 | |
| 217 /** @override */ | |
| 218 exportPersonalCertificate: function(id) { | |
| 219 return cr.sendWithPromise('exportPersonalCertificate', id); | |
| 220 }, | |
| 221 | |
| 222 /** @override */ | |
| 223 exportPersonalCertificatePasswordSelected: function(password) { | |
| 224 return cr.sendWithPromise( | |
| 225 'exportPersonalCertificatePasswordSelected', password); | |
| 226 }, | |
| 227 | |
| 228 /** @override */ | |
| 229 importPersonalCertificate: function(useHardwareBacked) { | |
| 230 return cr.sendWithPromise('importPersonalCertificate', useHardwareBacked); | |
| 231 }, | |
| 232 | |
| 233 /** @override */ | |
| 234 importPersonalCertificatePasswordSelected: function(password) { | |
| 235 return cr.sendWithPromise( | |
| 236 'importPersonalCertificatePasswordSelected', password); | |
| 237 }, | |
| 238 | |
| 239 /** @override */ | |
| 240 getCaCertificateTrust: function(id) { | |
| 241 return cr.sendWithPromise('getCaCertificateTrust', id); | |
| 242 }, | |
| 243 | |
| 244 /** @override */ | |
| 245 editCaCertificateTrust: function(id, ssl, email, objSign) { | |
| 246 return cr.sendWithPromise( | |
| 247 'editCaCertificateTrust', id, ssl, email, objSign); | |
| 248 }, | |
| 249 | |
| 250 /** @override */ | |
| 251 importCaCertificateTrustSelected: function(ssl, email, objSign) { | |
| 252 return cr.sendWithPromise( | |
| 253 'importCaCertificateTrustSelected', ssl, email, objSign); | |
| 254 }, | |
| 255 | |
| 256 /** @override */ | |
| 257 cancelImportExportCertificate: function() { | |
| 258 chrome.send('cancelImportExportCertificate'); | |
| 259 }, | |
| 260 | |
| 261 /** @override */ | |
| 262 importCaCertificate: function() { | |
| 263 return cr.sendWithPromise('importCaCertificate'); | |
| 264 }, | |
| 265 | |
| 266 /** @override */ | |
| 267 importServerCertificate: function() { | |
| 268 return cr.sendWithPromise('importServerCertificate'); | |
| 269 }, | |
| 270 }; | |
| 271 | |
| 272 return { | 267 return { |
| 273 CertificatesBrowserProxy: CertificatesBrowserProxy, | 268 CertificatesBrowserProxy: CertificatesBrowserProxy, |
| 274 CertificatesBrowserProxyImpl: CertificatesBrowserProxyImpl, | 269 CertificatesBrowserProxyImpl: CertificatesBrowserProxyImpl, |
| 275 }; | 270 }; |
| 276 }); | 271 }); |
| OLD | NEW |