diff --git a/loader.html b/loader.html index b6602db..cff46b9 100644 --- a/loader.html +++ b/loader.html @@ -11,6 +11,7 @@ --accent: #7fff6e; --muted: #6b6b7a; --text: #e8e8ec; + --border: #2a2a32; } body { @@ -22,7 +23,7 @@ align-items: center; justify-content: center; height: 100vh; - gap: 24px; + gap: 20px; user-select: none; } @@ -65,7 +66,7 @@ text-align: center; word-break: break-all; padding: 8px 16px; - border: 1px solid #2a2a32; + border: 1px solid var(--border); border-radius: 6px; line-height: 1.6; margin-bottom: 1em; diff --git a/loader.js b/loader.js index 4744bfa..8581dfc 100644 --- a/loader.js +++ b/loader.js @@ -1,6 +1,7 @@ (() => { const params = new URLSearchParams(location.search); const destUrl = params.get('url'); + const loadDelay = params.get('load_delay'); // seconds, or null if (!destUrl) { document.querySelector('.label').textContent = 'No URL provided.'; @@ -17,7 +18,13 @@ function navigate() { if (navigated) return; navigated = true; - location.replace(destUrl); + if( destUrl.indexOf('chrome://')==0 ) { + document.querySelector('.ring').style.display = 'none'; + document.querySelector('.label').textContent = 'Cant load url'; + } + else { + location.replace(destUrl); + } } // "Load now" button — immediate bypass @@ -36,4 +43,8 @@ } }); } + + if( loadDelay!=null ) { + setTimeout(navigate, loadDelay*1000); + } })(); diff --git a/manifest.json b/manifest.json index 379d6cb..92aa7e2 100644 --- a/manifest.json +++ b/manifest.json @@ -1,7 +1,7 @@ { "manifest_version": 3, "name": "URL Launcher", - "version": "1.0.1", + "version": "1.1.0", "description": "Paste a list of URLs and open them all as tabs, with optional lazy-load on focus.", "action": { "default_popup": "popup.html", diff --git a/popup.html b/popup.html index da9b2eb..44189f0 100644 --- a/popup.html +++ b/popup.html @@ -305,6 +305,25 @@ background: rgba(127,255,110,0.1); } + /* ── Checkboxes stack ── */ + .checkboxes { + display: flex; + flex-direction: column; + gap: 8px; + flex: 1; + } + + .delay-hint { + color: var(--muted); + font-size: 10px; + font-family: 'JetBrains Mono', monospace; + } + + .checkbox-label.disabled { + opacity: 0.35; + pointer-events: none; + } + /* ── Focus mode indicator ── */ .mode-badge { display: inline-flex; @@ -377,16 +396,27 @@
- +
+ + + +