Skip to content

Protect authenticated live sessions from low-memory eviction #59

Description

@isomorphisms

Requirement

IB must protect an active authenticated transaction on a low-memory device from ordinary tab/app switching and renderer eviction.

The motivating class of workflow is a fragile government, benefits, banking, healthcare, or other form-driven site where the user is logged in and must temporarily open another tab or app to retrieve information. Opening that other program must not silently destroy the login, cookies/site-session state, navigation position, or in-progress form state and force the user to start over.

This is an IB live-browsing requirement, distinct from Pensieve's persistent indexing/link-graph role.

Architecture boundary

  • Treat a user-marked or automatically recognized active transaction as protected live state, not an ordinary disposable sleeping tab.
  • Authentication/session state required by the transaction must not be owned only by a renderer process.
  • Under memory pressure, prefer evicting ordinary renderers before a protected transaction.
  • Preserve enough browser-owned state to resume or reconstruct the transaction when a renderer is killed anyway.
  • Do not require impossible cross-engine JavaScript-heap continuity. The requirement is to protect the user-visible authenticated transaction and avoid needless loss of state.
  • Do not blindly persist secrets or sensitive field contents merely to satisfy restoration; the security boundary must be explicit.
  • If exact restoration is impossible for a particular site, surface that limitation rather than silently presenting a fresh unauthenticated page as successful recovery.

Acceptance direction

Add a low-memory Android acceptance fixture that can:

  1. establish an authenticated test session;
  2. enter partial form state;
  3. mark the transaction protected;
  4. open another tab/app while memory pressure is induced;
  5. return and verify the session is still authenticated and the intended form/task state is intact;
  6. separately exercise renderer-process death and verify the strongest restoration IB actually provides.

Record separately whether the evidence proves cookie/session survival, form-state survival, renderer survival, or reconstruction after renderer death. Do not conflate them.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions