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 PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><htmlxmlns="http://www.w3.org/1999/xhtml"><head><title>CSS Test: 'Border-radius' applied to element with 'display' set to inline-block.</title><linkrel="author"title="Microsoft"href="http://www.microsoft.com/"/><linkrel="help"href="http://www.w3.org/TR/css3-background/#border-radius"/><metaname="assert"content="When 'border-radius' is applied to an element with 'displaye: inline-block' it produces rounded corners."/><styletype="text/css">div{border:solidgreen;border-radius:10px;display:inline-block;height:1in;width:1in;}</style></head><body><p>Test passes if there is a box with rounded corners below.</p><div></div></body></html>