commit | 359fb31aac1f63de5694460bf6aaa53d13651deb | [log] [tgz] |
---|---|---|
author | Eric Orth <ericorth@chromium.org> | Fri Aug 27 19:51:51 2021 |
committer | Chromium LUCI CQ <chromium-scoped@luci-project-accounts.iam.gserviceaccount.com> | Fri Aug 27 19:51:51 2021 |
tree | ae04c028dabcfa3b29c5aabea54097e3c96a69cc | |
parent | 8f4016a358d98b079c1fdf217673458857496aad [diff] |
Implement HTTPS transaction timeouts Changes made: * Expanded DnsTask::transactions_started_ to also keep the DnsQueryType rather than just the raw qtype currently stored (inside the DnsTransaction). Allows more logic to differentiate between HTTPS and EXPERIMENTAL_HTTPS. * Expanded/renamed the experimental query timeout logic to use timeout values from the new HTTPS timeout params when an HTTPS transaction remains after completion of all address transactions. But does not set any timeout if in a case with enabled params where the timeout would be considered a fatal failure. * Made it so the timeout logic could be applied even if the HTTPS transaction is still queued and not yet started. Just defensive coding against potential future changes and avoiding adding in too many hidden assumptions. Not actually currently possible because, even if concurrent Jobs are constrained enough that not all transactions were immediately started, the HTTPS transaction would have been started to fill the spot of the completed address transaction, just before checking if a timeout timer should be set. * As a simplification, timeout logic no longer keeps track of which DoH provider is timing out. Was only ever used for metrics, and is no longer important now that we know all the recognized providers can return results without unexpected timeouts. * Updated features.h to document that timeouts are not used when the request is fatal. And while there, correct the comment to state that it affects transactions, not individual queries. Bug: 1225776 Change-Id: I9b7584bb4b7d23b81b8b9e0ce2771c25b39bb5c7 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3072999 Commit-Queue: Eric Orth <ericorth@chromium.org> Reviewed-by: David Benjamin <davidben@chromium.org> Cr-Commit-Position: refs/heads/main@{#916079}
Chromium is an open-source browser project that aims to build a safer, faster, and more stable way for all users to experience the web.
The project's web site is https://www.chromium.org.
To check out the source code locally, don't use git clone
! Instead, follow the instructions on how to get the code.
Documentation in the source is rooted in docs/README.md.
Learn how to Get Around the Chromium Source Code Directory Structure .
For historical reasons, there are some small top level directories. Now the guidance is that new top level directories are for product (e.g. Chrome, Android WebView, Ash). Even if these products have multiple executables, the code should be in subdirectories of the product.
If you found a bug, please file it at https://crbug.com/new.