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' should be ignored in element with 'display' set to 'table-row-group' when 'border-collapse: collapse'.</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="'Border-radius' should not produce rounded corners when applied to an element with 'display' set to 'table-row-group' when 'border-collapse: collapse'."/><styletype="text/css">#test{border:solidgreen;border-radius:10px;display:table-row-group;}#table{border-collapse:collapse;display:table;}#row{display:table-row;}#cell{display:table-cell;height:1in;width:1in;}</style></head><body><p>Test passes if there is a box with sharp or rounded corners below.</p><divid="table"><divid="test"><divid="row"><divid="cell"></div></div></div></div></body></html>