← Commit history

1.3.14: Cache-Control no-store on the dashboard HTML (WebView2 heuristic caching kept dock tabs on stale UI through refreshes)

John Lauer ·b9ae07e497 ·1mo ago ·parent 540b1f2
3 files changed +7−3
Cargo.lock+1−1
@@ -4,7 +4,7 @@ version = 4  [[package]] name = "adom-chip-fetcher"-version = "1.3.13"+version = "1.3.14" dependencies = [  "anyhow",  "clap",
Cargo.toml+1−1
@@ -1,6 +1,6 @@ [package] name = "adom-chip-fetcher"-version = "1.3.13"+version = "1.3.14" edition = "2021" description = "Crawls the web on your behalf to gather everything about the chips you care about (datasheet, symbol, footprint, 3D, stock) into one library, by driving Chrome via pup." 
src/serve.rs+5−1
@@ -1134,7 +1134,11 @@ fn error_response(code: u16, body: String) -> Response<std::io::Cursor<Vec<u8>>>  fn html_response(body: &str) -> Response<std::io::Cursor<Vec<u8>>> {     let h = Header::from_bytes(&b"Content-Type"[..], &b"text/html; charset=utf-8"[..]).unwrap();-    Response::from_string(body.to_string()).with_header(h)+    // no-store: WebView2 and Chrome heuristically cache pages with no+    // Cache-Control, so a dock tab kept serving a WEEK-old UI through real+    // refreshes. The HTML must always be the running binary's HTML.+    let cc = Header::from_bytes(&b"Cache-Control"[..], &b"no-store"[..]).unwrap();+    Response::from_string(body.to_string()).with_header(h).with_header(cc) }  fn json_response(body: String) -> Response<std::io::Cursor<Vec<u8>>> {