testing/web-platform/tests/css/css-backgrounds/background-position-subpixel-at-border.tentative.html
author Dana Keeler <dkeeler@mozilla.com>
Sat, 12 Jul 2025 15:57:37 +0000 (12 hours ago)
changeset 796342 3a804f83c6b282c3c6b6ed9b67bacbc277bfb300
parent 520505 2ea5e6b0832c1a731ddd699e7f90da17ba2094f7
permissions -rw-r--r--
Bug 1976779 - rsclientcerts: make each backend responsible for rate-limiting calls to find_objects r=jschanck Before this patch, `rsclientcerts::manager` would rate-limit calls to `find_objects` to once every 3 seconds because the underlying operation can be time-consuming (in particular, on macOS and Windows, if there are many certificates/keys available). On Android, keys aren't available until the user selects one, which means that if a call to `find_objects` happened before the selection prompt was shown (which is what happens) and the user chose one in less than 3 seconds, the backend wouldn't search again, thus making it seem like no keys were available, which would cause Firefox to not send a client certificate. This patch makes each backend implementation responsible for this rate-limiting, because only they know if it's appropriate to do so (in particular, on Android, `find_objects` doesn't have the same performance concern as on macOS and Windows because rather than searching for certificates and keys, it asks `ClientAuthCertificateManager` for the cached list of certificates and keys that have already been approved for use by the user). Differential Revision: https://phabricator.services.mozilla.com/D257065
<!DOCTYPE html>
<html>
<head>
    <title>CSS Backgrounds: Subpixel positions adjacent to the borders</title>
    <link rel="author" title="Stephen Chenney" href="mailto:schenney@chromium.org">
    <link rel="help" href="https://www.w3.org/TR/css-backgrounds-3/#background-position">
    <link rel="match" href="reference/background-position-subpixel-at-border-ref.tentative.html">
    <style>
        #no-repeat-y-bottom {
            position: absolute;
            top: 200.5px;
            left: 8px;
            width: 150px;
            height: 37.5px;
            border-width: 0px 0px 1.25px;
            border-style: solid;
            border-color: rgba(0,0,0,0.5);
            border-bottom-color: transparent;
            box-sizing: border-box;
            background-color: lightgrey;
            background-image: url("resources/green50x1.png");
            background-position: bottom -1.25px left 0px;
            background-repeat: repeat-x;
            padding: 2.5px 2.5px 1.25px 2.5px;
        }
        #no-repeat-y-top {
            position: absolute;
            top: 160.25px;
            left: 8px;
            width: 150px;
            height: 37.5px;
            border-width: 1.25px 0px 0px 0px;
            border-style: solid;
            border-color: rgba(0,0,0,0.5);
            border-top-color: transparent;
            box-sizing: border-box;
            background-color: lightgrey;
            background-image: url("resources/green50x1.png");
            background-position: top -1.25px left 0px;
            background-repeat: repeat-x;
            padding: 1.25px 2.5px 2.5px 2.5px;
        }
        #no-repeat-x-right {
            position: absolute;
            top: 8px;
            left: 200.5px;
            width: 37.5px;
            height: 150px;
            border-width: 0px 1.25px 0px 0px;
            border-style: solid;
            border-color: rgba(0,0,0,0.5);
            border-right-color: transparent;
            box-sizing: border-box;
            background-color: lightgrey;
            background-image: url("resources/green1x50.png");
            background-position: right -1.25px top 0px;
            background-repeat: repeat-y;
            padding: 2.5px 1.25px 2.5px 2.5px;
        }
        #no-repeat-x-left {
            position: absolute;
            top: 8px;
            left: 160.25px;
            width: 37.5px;
            height: 150px;
            border-width: 0px 0px 0px 1.25px;
            border-style: solid;
            border-color: rgba(0,0,0,0.5);
            border-left-color: transparent;
            box-sizing: border-box;
            background-color: lightgrey;
            background-image: url("resources/green1x50.png");
            background-position: left -1.25px top 0px;
            background-repeat: repeat-y;
            padding: 2.5px 2.5px 2.5px 1.25px;
        }
    </style>
</head>
<body>
        <div id="no-repeat-y-top">
        </div>
        <div id="no-repeat-y-bottom">
        </div>
        <div id="no-repeat-x-right">
        </div>
        <div id="no-repeat-x-left">
        </div>
</body>
</html>