本文へスキップ

このページはまだお使いの言語では用意されていません。英語の文章をご覧いただいています。

Crash recovery

When the browser closes by itself

A browser can vanish in the middle of a job and take every open tab with it. ARMANOS writes down what was on screen every half minute, freezes that list the moment the browser goes, and offers it back the next time you open the profile. You answer that question once, and the answer is remembered.
30 seconds
A snapshot every
Up to 30 per profile
Tabs remembered
7 days
The offer lives
None
Tab addresses sent to your account

What the app is watching

While a profile is open the app asks its browser what is on screen, once every half minute. A profile that is closed is never asked.

The built-in engine answers from its own windows. ARMANOS Browser answers on the local port it already uses for automation, and a browser that cannot answer right now says nothing rather than saying that nothing is open.

What was openWhat the snapshot keeps
A page on http or httpsIts address and its title
The start page, or anything else on localhostNothing: the start page opens itself at every launch
A blank tab, settings, developer toolsNothing: you never opened them
Extension and worker targetsNothing: they are not pages
The same address in two tabsOne entry
Tab number thirty oneNothing: thirty is the ceiling

The snapshot is written quietly

A profile that climbs to the top of your recently changed list every half minute would be worse than no memory at all. So this write is not counted as a change you made.

It also stays on this computer. The fields that travel to your account are named one by one, and the addresses of open pages are not among them.

  • The change date stays put

    Sorting by recently changed keeps meaning what you did to the profile.

  • Nothing new means nothing written

    A set of tabs that has not moved since the last sweep never touches the disk.

  • An empty answer keeps the memory

    A browser still starting, or reloading a page, does not erase what it held a minute ago.

When the browser goes

A browser that exits with a code nobody asked for, or dies on a signal, has crashed. Pressing stop is not that, and neither is closing the window yourself.

The last snapshot is frozen right there, before anything else touches the profile. The next launch would write over the list before you had a chance to answer.

  • The notification names the profile

    It leads to the profile it belongs to, and when the engine named no reason it says how many tabs were remembered.

  • The reason, when the engine gave one

    A browser that printed a line before dying hands that line to the message, and it stands there in place of the tab count.

  • One message per profile per clock hour

    A browser crashing in a loop folds into the message still sitting unread, instead of burying the rest under copies of itself.

  • When nothing was seen nothing is promised

    If the snapshot was empty, and the engine named no reason, the message says the profile and its cookies are intact and stops there.

What you are asked at the next launch

The question comes before the browser starts, because your answer decides what it opens with. It names the profile, the time its browser went, and how many tabs were remembered.

Both answers are final in their own way, and a question closed with Esc counts as the clean slate.

  1. 1

    Bring them back

    The tabs open again in the order you left them.

  2. 2

    Start with a clean slate

    The offer is dropped for good, so it cannot keep surfacing at every launch.

  3. 3

    Either way the profile opens

    The question decides the tabs and nothing else about the launch.

Where the restored tabs land

On ARMANOS Browser they queue behind what the launch already opens with: the address the profile was going to, and ahead of that the start page whenever this launch has one.

The built-in engine has no tab strip, so each one comes back as its own window, opened the way the app opens any window of that profile.

  • The same folder

    Cookies and storage are the ones that profile already had.

  • The same way out

    A restored window leaves through the profile's proxy like every other window of it.

  • The same order

    First tab first: the order is the one you left, not the one the disk returned.

  • Only after a launch that worked

    A launch that fails keeps both the tabs and the offer to bring them back.

What else a bad exit leaves behind

A browser is not the only thing that can be cut off mid sentence. Three more things are checked every time the app starts.

  • A session swap caught in half

    Moving a session in does two renames, and a profile left between them is put back together with the older copy, because the newer one may never have finished being written.

  • A tunnel that outlived the app

    On macOS and Linux an ssh that ARMANOS started and that still holds a connection to your server is found by a file only this app names, and shut down.

  • Folders from a run that was killed

    Tunnel folders and leftover working folders from a previous run are swept, because otherwise they pile up until the disk has no room for a profile.

What this does not do

  • It does not bring your work back. Addresses return; a half filled form, an unsent message and a basket the site had not saved yet go with the browser.
  • The last half minute can be missing. A tab opened between two sweeps was never seen, and one you closed just before may come back anyway.
  • The offer does not wait forever. It goes by itself after a week, and a clean slate is final: that profile is not asked again.
  • It does not cover the app itself being killed. The list is frozen by the app watching its browser go, so when ARMANOS goes down too there is nobody left to freeze it.

How to check

Each claim above is held down by a stand you can run.

Service addresses and repeats stay out, thirty is the ceiling, and the offer expires after a week
apps/desktop/src/lib/tabRestore.js · apps/desktop/test/вкладки-после-падения.js
Remembering tabs does not mark the profile changed and sends no address upward
apps/desktop/src/lib/profiles.js · apps/desktop/test/вкладки-после-падения.js
An ordinary close is not taken for a crash, and the offer clears only after a launch that worked
apps/desktop/src/main/main.js · apps/desktop/test/вкладки-после-падения.js
A session swap cut in half is put back together, and a stray tunnel is shut down
apps/desktop/test/session-sync-folder.js · apps/desktop/test/выход-по-ssh.js

Questions

Does an ordinary close offer the tabs back?
No. Closing the window or pressing stop is your own decision, and the offer exists only for a browser that went unasked.
What happens when I launch the profile inside a group?
It opens without the question and without the tabs. The offer waits until you open that profile on its own.
Does the question show which pages they were?
Not yet. It gives the profile, the time and the count, while the titles sit on disk beside the addresses.
Do the addresses of my open tabs reach your server?
No. The fields that sync are listed by name, and open addresses are not among them: they stay on your own disk.
Why half a minute and not every second?
Ten open profiles asked every second is ten real requests a second, for nothing. Half a minute keeps up with hands.

Keep what the browser was holding

Install ARMANOS and open a profile: what is on screen starts being written down at once.