testing/web-platform/tests/css/compositing/line-with-svg-background-ref.html
author Dana Keeler <dkeeler@mozilla.com>
Sat, 12 Jul 2025 15:57:37 +0000 (11 hours ago)
changeset 796342 3a804f83c6b282c3c6b6ed9b67bacbc277bfb300
parent 392912 9415bff8166863f344256c7a3dd14aa5e038e82b
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 mix-blend-mode API Test</title>
    <link rel="author" title="dmyang" href="mailto:yangdemo@gmail.com">
    <link rel="reviewer" title="Rik Cabanier" href="mailto:cabanier@adobe.com"><!-- 11-09-2013 @TestTWF Shenzhen -->
    <meta name="flags" content="svg">
    <style type="text/css">
      .svg {
        background-color: #888;
        width: 500px;
        display: block;
        height: 60px;
        margin: 10px auto;
      }
      .svg text {
        font-size: 25px;
        line-height: 50px;
        mix-blend-mode: normal;
      }
    </style>
</head>
<body>
    <svg class="svg">
        <line class="multiply" x1="10" y1="30" x2="300" y2="30" style="stroke:blue; stroke-width:20;" />
    </svg>
    <svg class="svg">
        <line class="screen" x1="10" y1="30" x2="300" y2="30" style="stroke:blue; stroke-width:20;" />
    </svg>
    <svg class="svg">
        <line class="overlay" x1="10" y1="30" x2="300" y2="30" style="stroke:blue; stroke-width:20;" />
    </svg>
    <svg class="svg">
        <line class="darken" x1="10" y1="30" x2="300" y2="30" style="stroke:blue; stroke-width:20;" />
    </svg>
    <svg class="svg">
        <line class="lighten" x1="10" y1="30" x2="300" y2="30" style="stroke:blue; stroke-width:20;" />
    </svg>
    <svg class="svg">
        <line class="color-dodge" x1="10" y1="30" x2="300" y2="30" style="stroke:blue; stroke-width:20;" />
    </svg>
    <svg class="svg">
        <line class="hard-light" x1="10" y1="30" x2="300" y2="30" style="stroke:blue; stroke-width:20;" />
    </svg>
    <svg class="svg">
        <line class="soft-light" x1="10" y1="30" x2="300" y2="30" style="stroke:blue; stroke-width:20;" />
    </svg>
    <svg class="svg">
        <line class="difference" x1="10" y1="30" x2="300" y2="30" style="stroke:blue; stroke-width:20;" />
    </svg>
    <svg class="svg">
        <line class="exclusion" x1="10" y1="30" x2="300" y2="30" style="stroke:blue; stroke-width:20;" />
    </svg>
</body>
</html>