← BuboFlash home

Browser Extension — Privacy

Version 2 · Last updated on 2026-09-06


Part A — What the extension sends, in plain terms

The Buboflash extension lets you highlight a passage on any webpage and turn it into a flashcard, and shows you the highlights you made when you come back to that page.

To show you your old highlights it has to ask our server "do I have anything for this page?" — and to ask that, it has to tell the server which page you are on. That is the whole privacy trade, and everything below is detail on it.

1. The switch is real

Annotations in tabs is a checkbox in the extension's popup. The browser-action icon shows its state: crossed out disabled when off, plain enabled when on.

When it is off — or when you are not logged in to Buboflash — the extension sends nothing about your browsing. Not the URL, not the page, nothing. It does not even load itself into the page: with the switch off no script is injected into any tab, so there is nothing running there to send anything.

This is a gate in the code and not a promise about intent. It is checked before the URL is sent, and again before anything is created.

2. When it is on, and you are logged in

Every page address you open is sent to the Buboflash server. It is sent twice, for two questions:

  1. Can this page be annotated at all? — some pages are excluded (see § 4).
  2. Do you have annotations, tags or a reading point on this page?

The page itself is not sent. We send the address; the server answers with your own annotations for it; the extension then finds the matching passages inside your browser and highlights them there. The server never sees the text it is highlighting.

So if you open your bank, your medical records or your employer's intranet with the extension on, what reaches us is the address of the page and nothing that is on it. That holds even if somebody else has maliciously created an annotation on a page with the same address — the matching happens in your browser, and the annotation text is theirs, not your page's.

But an address is not nothing. https://example-clinic.co.uk/results/appointment-confirmed tells a reader a great deal without a single word of the page body. Please read § 3 and § 6 with that in mind.

3. When you actually create something

Creating an annotation, a flashcard or a reading point sends us, in addition to the address:

  • the text you selected, and its HTML;
  • a short window of the surrounding page — at most 256 characters before your selection and 192 after it — so the passage can be located again if the page changes, and so its context can be shown, for instance in search results;
  • which occurrence it is, if the same text appears several times on the page, and how many occurrences there are;
  • a count of the words before your selection, and the page's total word count. Counts only — the words themselves stay in your browser.

That passage is the only page content we receive that you did not select yourself, and it is bounded. We do not receive the rest of the page.

4. Pages the extension will not touch

  • Buboflash's own pages. You do not need the extension there.
  • mail.google.com is blocked outright, server-side.
  • Anything that is not http: or https: — local files, browser settings pages, extension pages.

5. Your settings — and the one that is not local

Stored in your browser, per browser (so you can have the extension on at home and off at work): the Annotations in tabs switch itself, how long a highlight's popup stays open, and your keyboard shortcuts.

Stored on your Buboflash account, shared across every browser: the Annotations from selector, which chooses whose annotations you see. It is a normal account preference that happens to be reachable from the extension popup.

6. Please do not install this at work or school

Sending the address of every page you open to an outside server is almost certainly against your employer's or your school's policy, whatever the server does with it. You may also get buboflash.eu blocked by whoever runs the firewall, which would be a bad outcome for both of us.

If you want to learn from something at work, use buboflash.eu directly. Nothing in the extension is unavailable there.

7. What happens to the addresses afterwards

Nothing. The address is removed from our server's request log before the log is written, and the log itself is deleted after 14 days; what it keeps is that your extension asked, when, and for which account. We do not keep a record of your browsing — not a permanent one, and not a temporary one. The Privacy Notice § 5 and § 8 give the detail.

8. Where else to look

  • Privacy Notice — the whole service, not just the extension.
  • Terms of Service
  • Your Freedom Matters

Part B — Chrome Web Store submission details

Single purpose

  1. Annotating and taking snippets from websites for learning. Annotations can be converted to flashcards.
  2. Setting reading points on webpages to mark reading progress.

Annotations, flashcards and the reading schedule are managed by the https://buboflash.eu backend service, which the extension's author also wrote.

Permission justification

scripting

The extension injects a content script that lets the user annotate websites and displays previously made annotations on mouse hover. Text with annotations is highlighted in the website.

The content script is injected only if the Annotations in tabs checkbox is enabled and the user is logged in. Users enable and disable this in the popup. If it is disabled there is no content script, and the popup shows only a generic learning summary from the server with no connection to the page being browsed.

This is explained at https://buboflash.eu/bubo5/tal-static-fullscreen-forall/annotations-privacy, linked next to the checkbox in the popup. That page also discourages enabling the extension at work and suggests using https://buboflash.eu directly instead.

contextMenus

Annotations and flashcards are created by selecting text on a website and right-clicking, then choosing a menu item: create annotation, create flashcard. A reading point is set the same way.

storage

Extension settings are stored locally in the browser: whether Annotations in tabs is on, how long to show an annotation's popup when the mouse hovers over an annotated passage, and the keyboard shortcuts.

One preference reachable from the popup — Annotations from, which chooses whose annotations are displayed — is not local; it is an account preference stored on the Buboflash server, as it is also settable on the website.

tabs

The extension needs access to:

  1. the tab's URL, to ask the server whether that page already has annotations;
  2. the tab's content in the browser, to attach annotations and reading points retrieved from the server to text passages on the displayed page — this matching is local processing and the page content is not transmitted;
  3. the passage the user selects, which is sent to the server when a new annotation is created, together with at most 256 characters of preceding and 192 characters of following page text so the passage can be located again if the page changes, and so its context can be shown, for instance in search results.

If Annotations in tabs is unchecked, or the user is not logged in, the extension does not touch tabs.

webRequest

The extension listens for https://buboflash.eu/bubo5/logout so it knows when the user logs out of the backend server. When the user logs out, the extension stops injecting anything into tabs.

Host permissions

When the user enables annotations in webpages and the backend server confirms that a page loaded into a tab may be annotated, a content script is dynamically injected into that tab, so that (1) existing annotations retrieved from the backend can be shown in the text as a highlighted passage with a popup on hover, and (2) a context menu is available to create new annotations.

The server declines injection for Buboflash's own pages, for mail.google.com, and for anything that is not an http: or https: page.

Are you using remote code?

No.


  • Terms of service
  • Privacy notice
  • Your freedom matters
  • talk to us:
  • reddit
  • twitter
  • piotr.wasik [at] gmail.com