Skip to content

v1.0.1

Choose a tag to compare

@github-actions github-actions released this 16 Sep 11:01
· 27 commits to main since this release
9f3b068

Scopyx 1.0.1

A patch release with one fix: on the chromium backend, every subresource is
now decided against the policy plane. Nothing frozen in compat/1.0.json
moves.

Since 1.0.0

  • The chromium backend decided each subresource against the address rules
    and an allow-set the policy plane never sends, so a subresource on an
    approved page reached any public host while the record said
    per_request. Under it, the proxy that is the browser's only way out asked
    the decider on a context of its own, so nothing the fetch had established
    reached that question. Now each subresource host is one question to the
    policy plane through the fetch's own memo (once per host, not once per
    request), a plane that cannot be asked is deny_policy_unreachable, and a
    question asked outside a governed fetch is refused. Run red first with a
    real browser: the refused host's server reached once, the policy plane
    never asked about it (#44).
  • features/subresources.feature: seven scenarios, each bound to a test and
    held by scripts/features-are-bound.sh, the ninth gate.

Upgrade note, 1.0.0 to 1.0.1

Nothing to migrate. A page whose subresource host the policy refuses now
renders without that subresource and the record counts it; a page that
rendered whole under 1.0.0 and renders with a blocked count under 1.0.1 was
reaching a host the policy never allowed, and that is the fix. A rendered
page now costs the policy plane one /v1/decide per distinct subresource
host it names. The image tags are v1.0.1 and v1.0.1-chromium.

Not in this release, said plainly

  • The loopback proxy under a chromium fetch is still usable by a process on
    the same machine that guesses its port for the length of the fetch; the fix
    shape is unchanged from the 1.0.0 notes and not built.
  • extract=screenshot and wait_for are accepted by the browse tool and
    not rendered by the chromium backend: a screenshot request returns the
    page's HTML, and wait_for is not waited for. Both stay frozen names, and
    both are listed as experimental in compat/1.0.json.
  • The browser's own background traffic (component updates, despite the flag
    that disables them) reaches the proxy, is refused there, and is counted as
    blocked; a page's blocked count can therefore be one higher than the page
    itself explains.
  • The external backend is unchanged and always navigation_only.