Skip to main content

Chrome extension · free · by dfacto.ai

The page loaded. Here is how long it took.

Tock times every navigation from the moment the request leaves to the moment the last resource lands, and puts the running number on your toolbar — coloured green through dark red so a slow load is something you see rather than something you read.

Free, and complete. No account, no telemetry, and no permission to read any page you visit.

This page, on your connection

on your toolbar it reads 0.0s

How it measures

Four moments, three gaps, one number

Tock does not estimate and does not sample. It reads the four navigation events the browser reports to an extension and subtracts. The last of them is the same instant the page's own load event fires, which is the definition of "loaded" used everywhere on this page.

01

The request is about to leave

onBeforeNavigate — the clock starts here, before DNS, before the connection, before anything has been sent. The badge starts counting immediately, so a page that is still resolving is visibly still resolving.

02

The first bytes came back

onCommitted — the browser has a response and has decided to render it. Everything before this point is your network: lookup, handshake, and the server's own thinking time.

03

The document is parsed

onDOMContentLoaded — HTML read, blocking scripts and stylesheets applied. This gap is the site's own code, not your connection.

04

Everything it referenced has arrived

onCompleted — images, fonts, iframes, the lot. The number that ends up on the badge is this minus the first.

Ten updates a second

The badge shows tenths and repaints at 10 Hz; the popup shows milliseconds and repaints at your display's frame rate. Two clocks, because a millisecond counter that moves ten times a second looks broken.

Colour on a stated axis

The scale is logarithmic — every tick is a doubling — and interpolated in OKLCH, so the middle of it stays a real colour instead of the grey-olive an sRGB blend between green and red passes through.

Medians, never means

One cold-cache load at 30 seconds moves a mean of ten samples by three seconds and moves the median not at all. Every figure Tock reports is a median.

With and without

Did that network change actually help?

You switch something on — Linkfuse, a different DNS resolver, a VPN, a new router — and the internet feels faster. Feeling faster is not evidence. Flip Tock's switch to say which side you are on, browse normally, and it keeps the two populations apart.

Linkfuse on

0.94 s

12 loads

Linkfuse off

1.36 s

18 loads

Verdict

−31%

6 sites, both ways

Only sites measured both ways count

Browse a text forum with the switch on and a photo gallery with it off, and a naive comparison will report a triumph. Tock throws away every origin it has not seen in both modes, and tells you how many survived — because that number is what the verdict rests on.

Five each way, minimum

Below that it shows the counts and refuses the headline. A percentage off two loads is not a small result, it is a wrong one.

Alt+Shift+T

The switch has a keyboard shortcut, because the actual procedure is on, reload, off, reload — and opening a popup between every leg is how half your samples end up mislabelled.

Built alongside Linkfuse, which spreads your traffic across every connection you have. Tock is how you check it worked — and it is just as happy proving that it did not.

What it can't see

Two permissions, and neither one reads a page

Most timing extensions inject a script into every site you open, which needs access to all your data on all websites. Tock does not, because the four events it needs are reported to the extension directly. It asks for webNavigation and storage, and that is the entire list.

No code on your pages

Nothing is injected into any site. There is no content script in the extension at all — check the manifest, it is nineteen lines.

No network requests

Tock never calls out. Not for licensing, not for analytics, not for a version check. Measurements stay in your browser's own storage.

Origins, not URLs

A sample records https://example.com and a duration. The path, the query string and the page content never enter the record.

Pricing

Free, and that is the whole product today

Everything described on this page is in the free version, permanently. A paid tier is planned for the work that has not been built yet; it is listed here so nobody is surprised later, and it is not for sale.

Available

Free

$0

forever · no account

  • Live badge with the full colour scale
  • Network, document and resource breakdown
  • With-and-without comparison, site-matched
  • Last 600 loads kept locally
Not built yet

Pro

$12/yr

planned · or $29 once · not for sale

  • More than two modes, so you can label any change
  • Per-site tables and CSV export
  • A warning when a site you use gets slower
  • History beyond 600 loads

Install

Load it unpacked, today

Tock is not in the Chrome Web Store yet, and this page will link it the day it is. Until then it loads unpacked in about thirty seconds and is the same build — it works on Chrome, Edge, Brave, Opera and Arc.

01

Download the folder

Grab the latest build from the repository and unzip it anywhere.

02

Open your extensions page

chrome://extensions — then turn on Developer mode, top right.

03

Load unpacked, pick the folder

Choose the extension directory. Pin Tock to the toolbar and open any site — the badge starts counting on the next navigation.

Questions

The ones worth answering

Is this the same number DevTools shows?+

It is the same event. DevTools' "Load" figure and Tock's total both end at the document's load event. They can differ by a few milliseconds because Tock starts fractionally earlier — before the request is issued rather than at navigation start — and because having DevTools open changes what it is measuring.

Does it slow my browsing down?+

It cannot get in the way: nothing is injected into a page and no request is intercepted. While a page is loading the service worker repaints four characters ten times a second, and when nothing is loading it does nothing and Chrome unloads it.

Why does the switch say "Linkfuse" if I don't use it?+

Because that is what it was built for, and naming it honestly is better than a vague "Mode A". It labels whatever change you are testing — a VPN, a resolver, a different router, a different café. Tock records which side you said you were on; it never claims to detect it, because a browser extension genuinely cannot.

What about single-page apps that never reload?+

A route change inside a single-page app is not a navigation and is not measured. Tock times document loads, which is what the four events describe. Timing in-app transitions needs code running on the page, and that is the permission this extension exists without.

Where does my data go?+

Into chrome.storage.local on your machine, and nowhere else. There is no server. Clearing the history in the popup deletes it, and removing the extension takes the storage with it.