Block a request

Stop a request from ever leaving the browser, to prove a dependency or simulate an outage. The row stays in the table, marked, so you keep the evidence.

Updated

Stop a request from ever being sent, to prove a page depends on an endpoint or to simulate a third-party outage, and keep the blocked request in the table as evidence.

Type a pattern, load the page: the request is stopped, and still on the record.

Block a request

  1. Click Block in the tracker's toolbar.
  2. Type part of the URL you want stopped, such as /v2/reports or analytics.example.com, and press Enter. The pattern is in force at once; the count on the Block button goes up by one.
  3. Load or reload the page in any tab.
  4. The matching request appears with BLOCKED in the STATUS column. Click it to see why.

To stop blocking, remove the pattern's chip with its × button. Requests sent after that go through.

The Block popover with analytics.example.com added as a chip, the Block count reading 1, and the note about blocking under the input
One pattern, in force from the moment it is added.

What a pattern stops

A block pattern matches the request's full URL, scheme included, as a case-insensitive substring; Patterns explains the rule every list shares. A pattern stops every kind of request: the page itself, frames, fetch and XHR calls, scripts, stylesheets, images, fonts, media, WebSockets and pings, from every tab and every site.

Two things a pattern never stops:

  • Loupewire's own requests. A pattern such as polar cannot break the extension itself.
  • Anything while no tracker is open. Blocking lives only as long as a tracker does (below).

The browser's rule engine gives *, ^ and | a meaning of their own, so Block refuses them rather than match more than you typed. It also refuses text outside ASCII, because the browser matches the encoded URL: type xn--bcher-kva.de, not bücher.de.

You type The tracker says
Nothing Type something to match
A pattern already in the list Already in this list
A pattern already in Settings Already applied from options
*, ^ or | * ^ and | have a special meaning in a block rule, so this would match more than what you typed.
Accented or other non-ASCII text A block pattern must be ASCII. The browser encodes a URL before matching it, so type the encoded form.
The 1 001st pattern Block holds up to 1000 patterns. Remove one to add another.

Read a blocked request

  • STATUS reads BLOCKED. Hover it to see who blocked it: One of your block patterns or Another extension.
  • Headers says "Stopped before any header was sent." Cookies says that whether the request would have carried cookies is unknown.
A BLOCKED row selected, its Headers tab reading Stopped before any header was sent
Nothing was sent, so there are no headers to show.
  • Body still shows what a POST was about to send, often the reason you blocked it.
  • Meta shows Blocked by, keeps the browser's own error (net::ERR_BLOCKED_BY_CLIENT) underneath, and a duration of a fraction of a millisecond.
The Meta tab of a blocked request: Blocked by reading One of your block patterns, Error reading net::ERR_BLOCKED_BY_CLIENT, and a duration under a millisecond
The verdict, with the browser's own error kept underneath it.

Every extension's blocking rule produces the same browser error, so the tracker records at the moment of the block whether one of your patterns matched. Editing your patterns later does not change that answer. An exported HAR says the same thing in the entry's comment.

How long blocking lasts

Where the pattern is In force
Typed in the tracker's Block list Until you remove it or the tracker closes; gone after that
Settings → Global patterns → Block URLs having Whenever a tracker is open, in every tracker; shown as From options: chips without a remove button
  • Closing the tracker, window or tab, stops every block pattern. A rule that outlived the tracker would be a site that simply does not load, with nothing open to explain why.
  • Moving the tracker between a window and a tab with the header switch keeps every pattern in force: the tracker is moved, not reopened.
  • Pause stops recording, not blocking. A paused tracker still stops matching requests.
  • Turning the extension off in Settings (Extension enabled) stops blocking.
  • A second tracker page on standby applies nothing of its own; the one that is recording does.

Up to 1 000 patterns

Block holds up to 1 000 patterns, counting this window's and the ones in Settings together, on every plan. When the stored lists hold more (for example, Settings grew while this window had its own), the first 1 000 stay in force, the ones from Settings first. Then:

  • the Block count shows the patterns in force, not the patterns stored;
  • the popover says how many are not in force and asks you to remove some;
  • each pattern past the limit has a dotted border, and its tooltip reads "Not blocking: past the 1000-pattern limit".

If the browser ever refuses the rules, the popover says "These patterns are not blocking anything right now" and the Block button is marked.

When a blocked request has no row

A request is blocked whether or not it is recorded. It has no BLOCKED row when:

  • a Skip pattern matches it, or a Track list exists that does not;
  • its tab is outside the capture scope chosen under Tabs;
  • capture is paused;
  • its tab is on a site Loupewire has no access to (the tracker shows a banner when Site access is limited);
  • Brave Shields stopped it first, below where any extension can see.

Common mistakes

  • A pattern that matches the page itself. example.com stops the document too, and the tab shows an error page. Use the narrowest part of the URL.
  • Using Block to quieten the table. It adds rows, marked. For fewer rows, use Skip or the filter.
  • Leaving a pattern in Settings and forgetting it. It is in force in every tracker you open. The From options: chips in the Block list are the reminder.

Not in this version

Redirecting or rewriting a URL is deliberately not part of an inspector. Regular expressions and matching by method are planned.