Adicionar documentacao e screenshot

This commit is contained in:
2026-06-07 21:37:14 -03:00
parent 49e01836dd
commit bbad9ae4b3
2 changed files with 146 additions and 0 deletions
+146
View File
@@ -0,0 +1,146 @@
# URL Launcher
A Chrome extension for opening a list of URLs as tabs — ideal for workflows that involve opening the same set of pages repeatedly (dashboards, research sessions, daily reading lists, etc.).
Paste a raw list of URLs, or dump any arbitrary text and let the extension extract the links automatically. Tabs can be opened immediately or loaded lazily — only when you actually focus them — with optional staggered timers so your browser isn't hammered all at once.
### Why this exists
Chrome Web Store extensions are a well-documented supply chain attack vector. Extensions can be silently updated after installation, sold to new owners, or compromised to inject malicious code into your browser — with full access to cookies, form data, and page content. Several popular tab-management extensions have been hijacked this way.
This extension was built as a self-hostable, auditable alternative to a Chrome Store extension I relied on. The entire codebase is four short files you can read in a few minutes. Because you load it as an unpacked extension, it never updates without you explicitly pulling changes — and you can review every diff before you do.
---
## Features
- **Bulk open URLs** — paste one URL per line and open them all as background tabs in one click
- **Extract URLs from text** — paste any text (emails, docs, HTML, markdown, Slack messages) and extract every link automatically, deduplicated and cleaned of trailing punctuation
- **Wait for focus** — tabs open as lightweight placeholder pages and only navigate to their target URL when you switch to them, keeping memory and network usage low
- **Delayed load** — each tab gets a staggered auto-load countdown (1s, 2s, 3s…) so URLs load progressively even without you focusing them, preventing browser overload
- Live URL counter with instant validation
- "Load now" escape hatch on every placeholder page
---
## Screenshots
![URL Launcher](screenshot.png)
---
## Installation
This extension is not on the Chrome Web Store. Install it in developer mode:
1. Download or clone this repository
2. Open Chrome and navigate to `chrome://extensions`
3. Enable **Developer mode** (toggle in the top-right corner)
4. Click **Load unpacked**
5. Select the repository folder (the one containing `manifest.json`)
6. The **URL Launcher** icon will appear in your Chrome toolbar
To update after pulling new changes, go back to `chrome://extensions` and click the **↺ refresh** icon on the extension card.
---
## Usage
### Basic — open a list of URLs
1. Click the extension icon in the toolbar
2. Paste one URL per line into the text box
3. Click **Open URLs**
All URLs open as background tabs. Invalid lines are silently skipped.
### Extract URLs from arbitrary text
1. Paste any text into the box — an email thread, a webpage, a markdown document, anything
2. Click **Extract URLs**
3. The text box is replaced with one clean URL per line, duplicates removed
4. Click **Open URLs**
### Wait for focus to load
When the **Wait for focus to load** checkbox is enabled (default), each tab opens as a minimal placeholder page instead of loading the real URL immediately. The target URL only loads when you click on that tab.
This is useful when opening many tabs at once — the browser stays responsive and pages don't all race to load in parallel.
### Delayed load
When **Delayed load** is also enabled (default, requires Wait for focus), each placeholder page gets an automatic countdown timer:
| Tab | Auto-loads after |
|-----|-----------------|
| 1st | 1 second |
| 2nd | 2 seconds |
| 3rd | 3 seconds |
| … | … |
The placeholder shows a live countdown with a shrinking progress bar. Clicking **Load now →** on any placeholder page bypasses the timer immediately.
This staggers network requests so your browser isn't hit by all pages at once, while still loading everything in the background without you having to manually focus each tab.
---
## Options reference
| Option | Default | Description |
|---|---|---|
| Wait for focus to load | ✅ On | Opens a placeholder page; navigates only on tab focus |
| Delayed load | ✅ On | Adds a staggered per-tab countdown (requires Wait for focus) |
The mode badge in the popup header shows the current active mode: **lazy**, **lazy + delay**, or **eager**.
---
## File structure
```
url-launcher/
├── manifest.json # Extension manifest (Manifest V3)
├── popup.html # Toolbar popup UI
├── popup.js # Popup logic — URL parsing, extraction, tab creation
├── loader.html # Lightweight placeholder page shown in lazy mode
└── loader.js # Placeholder logic — focus detection and countdown timer
```
---
## Permissions
| Permission | Why it's needed |
|---|---|
| `tabs` | To open new tabs via `chrome.tabs.create` |
No data is collected, sent anywhere, or stored. Everything runs locally.
---
## Browser compatibility
Requires a Chromium-based browser with Manifest V3 support:
- Google Chrome 88+
- Microsoft Edge 88+
- Brave, Opera, Vivaldi (recent versions)
Firefox is not supported (uses a different extension API).
---
## Contributing
Bug reports and pull requests are welcome. When reporting an issue, please include:
- Chrome version (`chrome://version`)
- A description of the URLs or text you were working with
- What you expected vs. what happened
---
## License
MIT — do whatever you want with it.