Chromium Code Reviews| OLD | NEW |
|---|---|
| (Empty) | |
| 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 | |
| 3 // found in the LICENSE file. | |
| 4 | |
| 5 // The script requests pin and checks the input. If correct PIN (1234) is | |
| 6 // provided, the script requests to close the dialog and stops there. If wrong | |
| 7 // PIN is provided, the request is repeated until the limit of 3 bad tries is | |
| 8 // reached. If the dialog is closed, the request is repeated without considering | |
| 9 // it a wrong attempt. This allows the testing of quota limit of closed dialogs | |
| 10 // (3 closed dialogs per 10 minutes). | |
| 11 function userInputCallback(codeValue) { | |
| 12 if (chrome.runtime.lastError != null) { | |
|
Devlin
2016/11/29 21:09:04
prefer just
if (chrome.runtime.lastError)
igorcov
2016/11/30 15:32:38
Done.
| |
| 13 // Should end up here only when quota is exceeded. | |
| 14 lastError = chrome.runtime.lastError.message; | |
| 15 return; | |
| 16 } | |
| 17 | |
| 18 if (attempts >= 3) { | |
| 19 chrome.test.sendMessage('No attempt left'); | |
| 20 return; | |
| 21 } | |
| 22 | |
| 23 if (!codeValue || !codeValue.userInput) { | |
| 24 chrome.certificateProvider.requestPin( | |
| 25 {signRequestId: 123}, userInputCallback); | |
| 26 chrome.test.sendMessage('User closed the dialog', function(message) { | |
| 27 if (message == 'GetLastError') { | |
| 28 chrome.test.sendMessage(lastError); | |
| 29 } | |
| 30 }); | |
| 31 return; | |
| 32 } | |
| 33 | |
| 34 var success = codeValue.userInput == '1234'; // Validate the code. | |
| 35 if (success) { | |
| 36 chrome.certificateProvider.stopPinRequest( | |
| 37 {signRequestId: 123}, closeCallback); | |
| 38 chrome.test.sendMessage(lastError == '' ? 'Success' : lastError); | |
| 39 } else { | |
| 40 attempts++; | |
| 41 var code = attempts < 3 ? {signRequestId: 123, errorType: 'INVALID_PIN'} : { | |
| 42 signRequestId: 123, | |
| 43 requestType: 'PUK', | |
| 44 errorType: 'MAX_ATTEMPTS_EXCEEDED', | |
| 45 attemptsLeft: 0 | |
| 46 }; | |
| 47 chrome.certificateProvider.requestPin(code, userInputCallback); | |
| 48 chrome.test.sendMessage(lastError == '' ? 'Invalid PIN' : lastError); | |
| 49 } | |
| 50 } | |
| 51 | |
| 52 function closeCallback() { | |
| 53 if (chrome.runtime.lastError != null) { | |
| 54 console.error('Error: ' + chrome.runtime.lastError.message); | |
| 55 lastError = chrome.runtime.lastError.message; | |
| 56 return; | |
| 57 } | |
| 58 } | |
| 59 | |
| 60 var attempts = 0; | |
| 61 var lastError = ''; | |
| 62 chrome.certificateProvider.requestPin({signRequestId: 123}, userInputCallback); | |
| OLD | NEW |