burger

Burger 🍔

MV3 Chrome extension that moves United States to the top of country dropdowns and USD to the top of currency dropdowns. Reorder-only — it never auto-selects.

Supports native <select>, ARIA listbox/combobox patterns (Radix, Headless UI, MUI Select, React Select, hand-rolled, etc.), libraries that wrap a native select (Select2, Choices.js, Tom Select), Ant Design (via synthetic ARIA roles), and elements inside open shadow DOM.

Install (unpacked)

  1. Open chrome://extensions
  2. Toggle Developer mode on
  3. Click Load unpacked → choose this folder
  4. Open tests/fixtures/index.html to verify

UI

Settings changes apply live — no tab reload required.

What gets reordered

A dropdown is reordered only if all of:

For ARIA listboxes there are two additional rules:

Debug overlay

Turn on in Options → Developer. Every detected selector gets a colored outline and a small badge showing its kind (country / currency / none) and confidence score. Hover the badge to see the reasons.

Layout

manifest.json
icons/                   16/32/48/128 PNG + SVG source
PRIVACY.md
STORE_LISTING.md         draft copy for the Chrome Web Store submission
src/
  service-worker.js
  shared/
    us-aliases.js        strong vs weak US label matching
    countries.js         country-name + ISO alpha-2 dictionaries
    currencies.js        USD label/value matching + ISO 4217 dictionary
    settings.js          chrome.storage wrapper
  content/
    dom-walk.js          shadow-DOM-aware traversal helpers
    detector.js          country + currency scoring (shared by native + ARIA)
    native-select-adapter.js  reorder + rollback for <select>
    aria-adapter.js      reorder + rollback for [role=listbox]
    wrapped-select-adapter.js  recognizes Select2 / Choices.js / Tom Select wrappers
    antd-adapter.js      synthesizes role=option on Ant Design dropdowns
    debug-overlay.js     dev-mode visual diagnostics
    mutation-manager.js  throttled MutationObserver (childList + aria-expanded)
    index.js             wires everything; reacts to storage changes live
  popup/                 quick toggle for the current site
  options/               full settings page
tests/fixtures/          hand-written positive + negative HTML pages