| Index: chrome/test/data/extensions/api_test/certificate_provider/request_pin/basic.js
|
| diff --git a/chrome/test/data/extensions/api_test/certificate_provider/request_pin/basic.js b/chrome/test/data/extensions/api_test/certificate_provider/request_pin/basic.js
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..cf771acb5c4419650906961b7a80a717ee39f57e
|
| --- /dev/null
|
| +++ b/chrome/test/data/extensions/api_test/certificate_provider/request_pin/basic.js
|
| @@ -0,0 +1,56 @@
|
| +// Copyright 2016 The Chromium Authors. All rights reserved.
|
| +// Use of this source code is governed by a BSD-style license that can be
|
| +// found in the LICENSE file.
|
| +
|
| +// The script requests pin infinitely when the dialog is closed, and requests
|
| +// the input again when the PIN is wrong till 3 times. When the correct
|
| +// PIN (1234) is given, the script requests to close the dialog.
|
| +function userInputCallback(codeValue) {
|
| + if(chrome.runtime.lastError != null) {
|
| + console.error("Error: " + chrome.runtime.lastError.message);
|
| + return;
|
| + }
|
| +
|
| + if(attempts >= 3) {
|
| + console.info("Returning after maximum attempts exceeded");
|
| + return;
|
| + }
|
| +
|
| + console.info("UserInput received, value = " + codeValue);
|
| + if (!codeValue || !codeValue.userInput) {
|
| + console.info("User closed the dialog");
|
| + chrome.certificateProvider.requestPin({signRequestId: 123},
|
| + userInputCallback);
|
| + return;
|
| + }
|
| +
|
| + var success = (codeValue.userInput == "1234"); // validatePIN(codeValue);
|
| + if (success) {
|
| + console.info("Success");
|
| + chrome.certificateProvider.stopPinRequest({signRequestId: 123},
|
| + closeCallback);
|
| + } else {
|
| + attempts++;
|
| + console.info("Invalid PIN");
|
| + var code = attempts < 3 ?
|
| + {signRequestId: 123, errorType: "INVALID_PIN"} :
|
| + {signRequestId: 123, requestType: "PUK",
|
| + errorType: "MAX_ATTEMPTS_EXCEEDED",
|
| + attemptsLeft: 0};
|
| + chrome.certificateProvider.requestPin(code, userInputCallback);
|
| + }
|
| +}
|
| +
|
| +function closeCallback() {
|
| + console.info("Close finished on Chrome side");
|
| + if(chrome.runtime.lastError != null) {
|
| + console.error("Error: " + chrome.runtime.lastError.message);
|
| + return;
|
| + }
|
| +
|
| + // User authenticated.
|
| + console.info("Successfully authenticated!");
|
| +}
|
| +
|
| +var attempts = 0;
|
| +chrome.certificateProvider.requestPin({signRequestId: 123}, userInputCallback);
|
|
|