Skip to content

Husk v0.1.6 - fullscreen handoff + silent 204 + baseline expand + DoH filter refresh

Choose a tag to compare

@runhusk runhusk released this 29 Jun 18:14

Husk v0.1.6 - Fullscreen handoff + quieter adblocker

Minor release. Four browser-feel fixes shipped together.

Downloads

File Size SHA-256
Husk-Portable-0.1.6.zip 2.7 MB fce92b2b3d3b0309429a670872fe2d0135eca085b1fd2876c1369cca739646d1
husk.exe (standalone, for in-place update) 5.9 MB 660e5ddea96fb2747e6c1b974172d4ba8f8bf3ff7ae94336ee3ba4786d022d32

Verify before running

Get-FileHash .\Husk-Portable-0.1.6.zip -Algorithm SHA256

Match the output against the hash above. If it differs, do not run.

What's new

Fullscreen video actually goes fullscreen

Pressing the fullscreen button in a YouTube / Netflix / Twitch player
used to expand the video inside Husk's chrome and stop there, the
window kept its title bar, taskbar stayed visible, the picture never
took over the screen. The HTML5 fullscreen API only controls the
webview's bounds; the OS window doesn't move unless someone tells it
to.

v0.1.6 wires those two together. When a page enters fullscreen Husk's
init script forwards the event to the Rust side, which calls
window.set_fullscreen() on the active tab's window. Exiting
fullscreen, via the page or the Escape key, undoes it. Background
tabs that toggle fullscreen no longer hijack the foreground window.

The adblocker is silent again

The fetch wrapper used to reject blocked requests with
new TypeError('Husk: blocked'). Functionally that blocks the
request, but every blocked ad call surfaced as an Uncaught (in promise) TypeError in DevTools and got picked up by Sentry / error
trackers as "Husk broke our site". On pages with 50+ trackers the
console noise drowned out actual errors.

Blocked requests now resolve as a 204 No Content response with an
X-Blocked-By: Husk header. Same blocking effect, no rejected
promises, no error-tracker tickets. The header is there for any
curious developer inspecting DevTools.

Bigger bundled baseline filter list

The starter filter list that ships inside the binary grew from ~110
rules to ~260. The expansion targets the long-tail of ad networks,
session-replay services (Contentsquare, Quantum Metric, …), regional
trackers (Yandex Metrika, Baidu Hm, Mail.ru), and the
analytics/pixel layer of TikTok / Snapchat. On networks where the
runtime EasyList fetch can't go through, the bundled list now covers
the obvious offenders out of the box instead of letting them through.

EasyList refresh now routes through Husk's own DoH

On corporate networks the OS resolver is often configured to refuse
easylist.to and similar adblock-tooling hostnames. That used to
silently leave the engine on the bundled baseline. v0.1.6 routes the
EasyList + EasyPrivacy fetch through Husk's local DoH proxy when DoH
is enabled: the OS resolver sees a 127.0.0.1 connection, the proxy
handles the actual lookup via the user's chosen DoH provider.

The refresh runs once at startup, on a background thread that doesn't
block window creation. On success the rules merge into the live
engine in-place (no restart needed). On failure,timeout, proxy
refused, mirror down, the engine quietly keeps the bundled baseline.

Upgrade path

  • From v0.1.5 portable: open Settings → About → Check for
    updates
    Download & install Husk 0.1.6 → restart. That's it;
    HuskData/ is untouched.
  • From v0.1.4 or earlier: same in-app flow, or grab the zip from
    the download page if you'd rather start fresh.
  • First install: download the zip or standalone husk.exe from
    the download page, extract or drop in place, run.

Privacy notes: unchanged

  • DoH stack, vault, profiles, boss key, fingerprint resistance, no
    telemetry, no auto-poll for updates: all unchanged from v0.1.5.
  • The new EasyList refresh fires once at startup. It hits
    easylist.to (a public, audit-friendly host); if you don't want
    this network call, turn the adblocker off in Settings, the
    refresh is gated behind the adblocker being enabled.

Known limitations carried over

  • macOS + Linux still v0.2 targets.
  • Taskbar pin AUMID identity remains consolidated by Windows Shell
    in dev setups where multiple husk.exe binaries live on the same
    machine.

If Husk is useful to you, support keeps it free, ad-free and
account-free: husk.run/donate.