Revision 8d877aacda3215c8ef53f1bb787c7c1d1b5d2fe5 authored by Fredrik Söderquist on 07 November 2018, 09:00:38 UTC, committed by Chromium WPT Sync on 07 November 2018, 09:00:38 UTC
In css_properties.json5 we list these keywords but we didn't recognize
them when parsing. Synchronize the two lists.

CSS Images L3 says the following about these two values:

  "This property previously accepted the values optimizeSpeed and
   optimizeQuality. These are now deprecated; a user agent must accept
   them as valid values but must treat them as having the same behavior
   as pixelated and auto respectively, and authors must not use them."

(https://drafts.csswg.org/css-images-3/#propdef-image-rendering)

Bug: 901669
Change-Id: Iecc4f38e711b14fa7b6fd4beb550abdaf99d5b46
1 parent e0e8196
Raw File
createcredential-excludecredentials.https.html
<!DOCTYPE html>
<meta charset="utf-8">
<title>WebAuthn navigator.credentials.create() excludeCredentials Tests</title>
<link rel="author" title="Adam Powers" href="mailto:adam@fidoalliance.org">
<link rel="help" href="https://w3c.github.io/webauthn/#iface-credential">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src=helpers.js></script>
<body></body>
<script>
standardSetup(function() {
    "use strict";

    // bad excludeCredentials values
    new CreateCredentialsTest("options.publicKey.excludeCredentials", "hi mom").runTest("Bad excludeCredentials: string", new TypeError());
    new CreateCredentialsTest("options.publicKey.excludeCredentials", {}).runTest("Bad excludeCredentials: empty object", new TypeError());
    // TODO: bad excludeCredentials with [{.type}] or [{.id}] or [{.transports}] wrong

    // good excludeCredentials values
    new CreateCredentialsTest({path: "options.publicKey.excludeCredentials", value: undefined}).runTest("excludeCredentials missing");
    new CreateCredentialsTest("options.publicKey.excludeCredentials", []).runTest("excludeCredentials empty array");

    // proper excludeCredentials behavior
    // should error on excluding existing credential
    promise_test((t) => {
        var cred1;
        return Promise.resolve()
            .then(() => {
                return createCredential();
            })
            .then((cred) => {
                cred1 = cred;
                var excludeCred = {
                    id: cred.rawId,
                    type: "public-key"
                };
                var args = {
                    options: {
                        publicKey: {
                            excludeCredentials: [excludeCred]
                        }
                    }
                };
                var p = createCredential(args);
                return promise_rejects (t, "NotAllowedError", p, "expected to fail on excluded credenetial");
            });
    }, "exclude existing credential");

    // should not error on excluding random credential
    promise_test(() => {
        return Promise.resolve()
            .then(() => {
                return createCredential();
            })
            .then(() => {
                var randomCredId = new Uint8Array(162);
                window.crypto.getRandomValues(randomCredId);

                var excludeCred = {
                    id: randomCredId,
                    type: "public-key"
                };
                var args = {
                    options: {
                        publicKey: {
                            excludeCredentials: [excludeCred]
                        }
                    }
                };
                return createCredential(args);
            });
    }, "exclude random (non-existing) credential");

    // TODO: exclude including transport type (USB, BLE, NFC)
});

/* JSHINT */
/* globals standardSetup, CreateCredentialsTest, createCredential, promise_test, promise_rejects */
</script>
back to top