Repository navigation
Conversation
…tch to http(s) A stored interval no longer starts the web refresh timer without the same consent prompt as refresh-on-open. Web fetches accept only http and https. Co-authored-by: Thomas <0xtlt@users.noreply.github.com>
Web queries are fetched with ureq and rustls instead of a system curl binary. The request asks for gzip, deflate and brotli and the body is decompressed. Connect and overall timeouts, the ten-redirect cap, and the http(s)-only rule on the address and on redirects stay in place. Consent for a scheduled refresh is unchanged. ureq is blocking, which matches fetch() on the background executor, and it reuses the rustls stack GPUI already links. GPUI's zed-reqwest fork is async and does not enable compression. Co-authored-by: Thomas <0xtlt@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
A workbook's
intervalno longer starts the refresh timer by itself. Opening asks once, with the same prompt as refresh-on-open. Declining leaves the timer stopped; Refresh still works. Agreeing, or turning the interval on in Connection Properties, starts it.Web fetches accept only
httpandhttps.file://and bare paths are rejected with an error. Redirects are followed only while they stay on those two schemes, and at most ten of them.Fetching is done in process with ureq and rustls. The client sends
Accept-Encoding: gzip, deflate, brand decompresses the body. A connect timeout of 10s and an overall timeout of 30s still apply, andHTTP_PROXY/HTTPS_PROXY/ALL_PROXYare honoured. ureq is a small blocking client, so the fetch stays off the window thread without a second async runtime. TLS is the rustls stack GPUI already links, with the Mozilla root set, which builds the same way on macOS, Windows and Linux. GPUI's own HTTP client is an async fork of reqwest and does not enable gzip, brotli or deflate, so it is not reused; the public reqwest crate would not replace that fork.Local file import stays a separate, explicit action. Text/CSV connections still re-read the file they name, including on Refresh and, after the same consent, on a timer: that path never goes through the web fetch. JSON, XML and workbook imports the user picks in the file dialog still load and can be refreshed during that session. A web query that arrives inside a workbook cannot read a local path on its own; after the file is opened again, that address is refused until the user picks the file again (Change File Path, or a new import).
This stays on the same branch as the consent and protocol fix. The client is how that restriction is enforced, so a second pull request would review one fetch path twice.
Noted from item 1 of https://gist.github.com/TeamDijon/1ea7db06524264dd5b1851aac2642168 (review of 90a5e28).