Whales πŸ‹ Chrome extension icon

Whales πŸ‹

✨ AI-Powered
πŸ“¦ v2024.11.26
πŸ’Ύ 368KiB
πŸ“… 2026-03-07
View on Chrome Web Store

Chrome will indicate if you already have this installed.

Overview

# Whales

A personal fork of [Quick Tabs](https://github.com/babyman/quick-tabs-chrome-extension) with power-user enhancements for managing large numbers of tabs.

## Fork Changes

### πŸ‹ Domain-Grouped Tab View ("Whales")

Toggle the grouping icon (≑) in the popup header (or assign a keyboard shortcut via `chrome://extensions/shortcuts` β†’ "Open Quick Tabs in Domain Groups mode") to see all open tabs **grouped by domain**. Each group shows:

- Domain favicon, name, and tab count
- Expandable/collapsible tab list
- URL paths with domain stripped (already in the header)
- Close-all button per group

### 🧠 Semantic Title Extraction

SPAs like Google Gemini share a single generic `<title>` across all pages, making tabs impossible to distinguish. This fork injects a content script that extracts the **actual page title** from the DOM:

- **Gemini** β€” reads the selected conversation name from the sidebar's `aria-label`
- **Other sites** β€” falls back to `document.title` β†’ `<h1>` β†’ `<meta description>`

Titles are cached in the background service worker and displayed in the popup.

### πŸ“Έ Visual Thumbnails

On tab visit, a compressed JPEG screenshot is captured via `chrome.tabs.captureVisibleTab` and cached in-memory. Thumbnails render alongside each tab item in the popup.

### ⚑ jQuery Removed β€” Vanilla JS Only

All jQuery and jQuery Hotkeys dependencies have been completely removed. DOM manipulation, event handling, focus management, and scrolling now use native browser APIs (`querySelector`, `classList`, `scrollIntoView`, etc.), reducing extension size and improving performance.

### πŸš€ Faster Popup Loading

- **Parallel init** β€” `Config.init()` and `getPopupData()` run simultaneously via `Promise.all` instead of sequentially
- **Favicon pre-caching** β€” favicons are fetched and converted to data URIs in the background service worker, eliminating per-tab network requests when the popup opens
- **Batched data transfer** β€” a single `getPopupData()` call returns tabs, closed tabs, bookmarks, semantic titles, and thumbnails in one message instead of three separate `getTabs`/`getClosedTabs`/`getBookmarks` calls

### 🎨 Modernized UI

Complete visual overhaul of `styles-popup.css` β€” clean spacing, refined colors, improved hover states, and better layout structure for tab items and domain groups.

### Technical Notes

- All caching uses `Map` objects in the background service worker (`faviconCache`, `semanticTitleCache`, `thumbnailCache`)
- `compareTabArrays()` preserves injected properties (`semanticTitle`, `thumbnailUrl`) during the tab refresh cycle
- Added `"scripting"` permission and `host_permissions` for cross-origin favicon fetching and content script injection
- Extension `key` set in manifest for stable extension ID across installs

Tags

Productivity/tools productivity/tools

Privacy Practices

βœ“ Not being sold to third parties, outside of the approved use cases
βœ“ Not being used or transferred for purposes that are unrelated to the item's core functionality
βœ“ Not being used or transferred to determine creditworthiness or for lending purposes

πŸ” Security Analysis

This extension hasn't been security-scanned yet.

Easy-to-use PDF tools to view, edit, convert, fill, e-sign PDF files, and more in your browser.
Productivity/tools AI

Zotero Connector

7M+ users
Save references to Zotero from your web browser
Productivity/tools
Browsec VPN is a Chrome VPN extension that protects your IP from Internet threats and lets you browse privately for free…
Productivity/tools