mirror of
https://github.com/Shik3i/KoalaSync.git
synced 2026-08-21 16:36:44 +00:00
Fix blocked website access and add troubleshooting page
This commit is contained in:
@@ -235,6 +235,7 @@ async function compile() {
|
||||
'styles/hero.css',
|
||||
'styles/landing-primary.css',
|
||||
'styles/legal.css',
|
||||
'styles/support.css',
|
||||
'styles/landing-controls.css',
|
||||
'styles/join-spinner.css',
|
||||
'styles/landing-sections.css',
|
||||
@@ -514,6 +515,7 @@ async function compile() {
|
||||
{ src: 'join.html', dest: 'join.html' },
|
||||
{ src: 'imprint.html', dest: 'imprint.html' },
|
||||
{ src: 'privacy.html', dest: 'privacy.html' },
|
||||
{ src: 'site-access-help.html', dest: 'site-access-help.html' },
|
||||
{ src: 'impressum-de.html', dest: 'de/impressum.html' },
|
||||
{ src: 'datenschutz-de.html', dest: 'de/datenschutz.html' },
|
||||
{ src: 'impressum.html', dest: 'impressum.html' },
|
||||
@@ -723,6 +725,12 @@ function generateSitemap(wwwDir) {
|
||||
<changefreq>monthly</changefreq>
|
||||
<priority>0.3</priority>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://sync.koalastuff.net/site-access-help.html</loc>
|
||||
<lastmod>${today}</lastmod>
|
||||
<changefreq>weekly</changefreq>
|
||||
<priority>0.8</priority>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://sync.koalastuff.net/de/impressum</loc>
|
||||
<lastmod>${today}</lastmod>
|
||||
|
||||
@@ -14,6 +14,8 @@
|
||||
"TWITTER_DESCRIPTION": "Starte eine Watch Party auf Netflix, Emby, Jellyfin, YouTube, Twitch und fast jedem HTML5-Video. Open Source, datenschutzfreundlich und ohne Konto.",
|
||||
"NAV_FEATURES": "Funktionen",
|
||||
"NAV_HOW_IT_WORKS": "So funktioniert's",
|
||||
"SUPPORT_BANNER_TEXT": "KoalaSync kann nicht auf deine Videoseite zugreifen?",
|
||||
"SUPPORT_BANNER_CTA": "Websitezugriff reparieren",
|
||||
"HERO_TITLE": "Mach jedes Video zur <span class='hero-highlight'>Watch Party</span>.",
|
||||
"HERO_SUBTITLE": "Dein Kino-Abend auf Distanz, ohne Lags. Kein Account, kein Tracking, keine Werbung. Einfach Link teilen und gemeinsam Play drücken.",
|
||||
"HERO_MASCOT_ALT": "Ein niedlicher Koala steht da und schaut nach unten auf die Download-Buttons",
|
||||
|
||||
@@ -14,6 +14,8 @@
|
||||
"TWITTER_DESCRIPTION": "Host a watch party on Netflix, Emby, Jellyfin, YouTube, Twitch and almost any HTML5 video. Open source, privacy-first, and account-free.",
|
||||
"NAV_FEATURES": "Features",
|
||||
"NAV_HOW_IT_WORKS": "How it works",
|
||||
"SUPPORT_BANNER_TEXT": "KoalaSync cannot access your video site?",
|
||||
"SUPPORT_BANNER_CTA": "Fix website access",
|
||||
"HERO_TITLE": "Turn any video into a <span class='hero-highlight'>watch party</span>.",
|
||||
"HERO_SUBTITLE": "Your remote movie night without lags. No account, no tracking, no ads. Just share a link and press play together.",
|
||||
"HERO_MASCOT_ALT": "A cute koala standing and looking down at the download buttons",
|
||||
|
||||
@@ -14,6 +14,8 @@
|
||||
"TWITTER_DESCRIPTION": "Organiza una watch party en Netflix, Emby, Jellyfin, YouTube, Twitch y casi cualquier vídeo HTML5. Open source, privada y sin cuenta.",
|
||||
"NAV_FEATURES": "Características",
|
||||
"NAV_HOW_IT_WORKS": "Cómo funciona",
|
||||
"SUPPORT_BANNER_TEXT": "¿KoalaSync no puede acceder al sitio del vídeo?",
|
||||
"SUPPORT_BANNER_CTA": "Reparar acceso al sitio",
|
||||
"HERO_TITLE": "Convierte cualquier vídeo en una <span class='hero-highlight'>watch party</span>.",
|
||||
"HERO_SUBTITLE": "Tu noche de cine a distancia, sin retrasos. Sin cuenta, sin rastreo, sin anuncios. Comparte un enlace y dale al play juntos.",
|
||||
"HERO_MASCOT_ALT": "Un lindo koala de pie mirando hacia abajo a los botones de descarga",
|
||||
|
||||
@@ -14,6 +14,8 @@
|
||||
"TWITTER_DESCRIPTION": "Organisez une watch party sur Netflix, Emby, Jellyfin, YouTube, Twitch et presque toute vidéo HTML5. Open source, privé et sans compte.",
|
||||
"NAV_FEATURES": "Fonctionnalités",
|
||||
"NAV_HOW_IT_WORKS": "Comment ça marche",
|
||||
"SUPPORT_BANNER_TEXT": "KoalaSync n’accède pas à votre site vidéo ?",
|
||||
"SUPPORT_BANNER_CTA": "Réparer l’accès au site",
|
||||
"HERO_TITLE": "Transformez n'importe quelle vidéo en <span class='hero-highlight'>watch party</span>.",
|
||||
"HERO_SUBTITLE": "Votre soirée ciné à distance, sans décalage. Pas de compte, pas de tracking, pas de pub. Partagez un lien et lancez la lecture ensemble.",
|
||||
"HERO_MASCOT_ALT": "Un koala mignon debout et regardant vers le bas les boutons de téléchargement",
|
||||
|
||||
@@ -14,6 +14,8 @@
|
||||
"TWITTER_DESCRIPTION": "Avvia una watch party su Netflix, Emby, Jellyfin, YouTube, Twitch e quasi ogni video HTML5. Open source, privata e senza account.",
|
||||
"NAV_FEATURES": "Funzionalità",
|
||||
"NAV_HOW_IT_WORKS": "Come Funziona",
|
||||
"SUPPORT_BANNER_TEXT": "KoalaSync non riesce ad accedere al sito video?",
|
||||
"SUPPORT_BANNER_CTA": "Ripristina l’accesso al sito",
|
||||
"HERO_TITLE": "Trasforma qualsiasi video in una <span class='hero-highlight'>watch party</span>.",
|
||||
"HERO_SUBTITLE": "La tua serata film a distanza, senza lag. Niente account, niente tracciamento, niente pubblicità. Condividi un link e premete play insieme.",
|
||||
"HERO_MASCOT_ALT": "Un simpatico koala che guarda i pulsanti di download",
|
||||
|
||||
@@ -14,6 +14,8 @@
|
||||
"TWITTER_DESCRIPTION": "Netflix、Emby、Jellyfin、YouTube、Twitch、ほぼすべてのHTML5動画でウォッチパーティーを開催。オープンソース、プライバシー重視、アカウント不要。",
|
||||
"NAV_FEATURES": "機能",
|
||||
"NAV_HOW_IT_WORKS": "仕組み",
|
||||
"SUPPORT_BANNER_TEXT": "KoalaSync が動画サイトにアクセスできませんか?",
|
||||
"SUPPORT_BANNER_CTA": "サイトアクセスを修復",
|
||||
"HERO_TITLE": "どんな動画も<span class='hero-highlight'>ウォッチパーティー</span>に。",
|
||||
"HERO_SUBTITLE": "離れていても一緒に映画ナイト。アカウント不要、トラッキングなし、広告なし。リンクを共有して、一緒に再生するだけ。",
|
||||
"HERO_MASCOT_ALT": "ダウンロードボタンを見下ろしているかわいいコアラ",
|
||||
|
||||
@@ -14,6 +14,8 @@
|
||||
"TWITTER_DESCRIPTION": "Netflix, Emby, Jellyfin, YouTube, Twitch 및 거의 모든 HTML5 영상에서 워치 파티를 열어보세요. 오픈소스, 개인정보 보호 중심, 계정 불필요.",
|
||||
"NAV_FEATURES": "특징",
|
||||
"NAV_HOW_IT_WORKS": "작동 방식",
|
||||
"SUPPORT_BANNER_TEXT": "KoalaSync가 동영상 사이트에 액세스할 수 없나요?",
|
||||
"SUPPORT_BANNER_CTA": "사이트 액세스 복구",
|
||||
"HERO_TITLE": "어떤 영상이든 <span class='hero-highlight'>워치 파티</span>로.",
|
||||
"HERO_SUBTITLE": "지연 없는 원격 영화의 밤. 계정 없음, 추적 없음, 광고 없음. 링크만 공유하고 함께 재생하세요.",
|
||||
"HERO_MASCOT_ALT": "다운로드 버튼을 내려다보고 서 있는 귀여운 코알라",
|
||||
|
||||
@@ -14,6 +14,8 @@
|
||||
"TWITTER_DESCRIPTION": "Start een watch party op Netflix, Emby, Jellyfin, YouTube, Twitch en bijna elke HTML5-video. Open source, privacyvriendelijk en zonder account.",
|
||||
"NAV_FEATURES": "Functies",
|
||||
"NAV_HOW_IT_WORKS": "Hoe het werkt",
|
||||
"SUPPORT_BANNER_TEXT": "Heeft KoalaSync geen toegang tot je videosite?",
|
||||
"SUPPORT_BANNER_CTA": "Websitetoegang herstellen",
|
||||
"HERO_TITLE": "Maak van elke video een <span class='hero-highlight'>watch party</span>.",
|
||||
"HERO_SUBTITLE": "Jouw filmavond op afstand, zonder vertraging. Geen account, geen tracking, geen advertenties. Deel een link en druk samen op play.",
|
||||
"HERO_MASCOT_ALT": "Een schattige koala die staat en naar beneden kijkt naar de downloadknoppen",
|
||||
|
||||
@@ -14,6 +14,8 @@
|
||||
"TWITTER_DESCRIPTION": "Zorganizuj watch party na Netflix, Emby, Jellyfin, YouTube, Twitch i prawie każdym wideo HTML5. Open source, prywatnie i bez konta.",
|
||||
"NAV_FEATURES": "Funkcje",
|
||||
"NAV_HOW_IT_WORKS": "Jak to działa",
|
||||
"SUPPORT_BANNER_TEXT": "KoalaSync nie ma dostępu do strony z filmem?",
|
||||
"SUPPORT_BANNER_CTA": "Napraw dostęp do strony",
|
||||
"HERO_TITLE": "Zamień dowolne wideo w <span class='hero-highlight'>watch party</span>.",
|
||||
"HERO_SUBTITLE": "Twój zdalny wieczór filmowy bez opóźnień. Bez konta, bez śledzenia, bez reklam. Udostępnij link i naciśnijcie play razem.",
|
||||
"HERO_MASCOT_ALT": "Uroczy koala stojący i patrzący w dół na przyciski pobierania",
|
||||
|
||||
@@ -14,6 +14,8 @@
|
||||
"TWITTER_DESCRIPTION": "Crie uma watch party na Netflix, Emby, Jellyfin, YouTube, Twitch e quase qualquer vídeo HTML5. Open source, privado e sem conta.",
|
||||
"NAV_FEATURES": "Recursos",
|
||||
"NAV_HOW_IT_WORKS": "Como Funciona",
|
||||
"SUPPORT_BANNER_TEXT": "O KoalaSync não consegue acessar o site do vídeo?",
|
||||
"SUPPORT_BANNER_CTA": "Corrigir acesso ao site",
|
||||
"HERO_TITLE": "Transforme qualquer vídeo em uma <span class='hero-highlight'>watch party</span>.",
|
||||
"HERO_SUBTITLE": "Sua sessão de cinema à distância, sem atrasos. Sem conta, sem rastreamento, sem anúncios. Compartilhe um link e deem play juntos.",
|
||||
"HERO_MASCOT_ALT": "Um coala fofo olhando para os botões de download",
|
||||
|
||||
@@ -14,6 +14,8 @@
|
||||
"TWITTER_DESCRIPTION": "Cria uma watch party na Netflix, Emby, Jellyfin, YouTube, Twitch e quase qualquer vídeo HTML5. Open source, privado e sem conta.",
|
||||
"NAV_FEATURES": "Funcionalidades",
|
||||
"NAV_HOW_IT_WORKS": "Como Funciona",
|
||||
"SUPPORT_BANNER_TEXT": "O KoalaSync não consegue aceder ao site do vídeo?",
|
||||
"SUPPORT_BANNER_CTA": "Corrigir acesso ao site",
|
||||
"HERO_TITLE": "Transforma qualquer vídeo numa <span class='hero-highlight'>watch party</span>.",
|
||||
"HERO_SUBTITLE": "A tua noite de cinema à distância, sem atrasos. Sem conta, sem rastreio, sem anúncios. Partilha um link e carreguem no play juntos.",
|
||||
"HERO_MASCOT_ALT": "Um coala fofo a olhar para os botões de download",
|
||||
|
||||
@@ -14,6 +14,8 @@
|
||||
"TWITTER_DESCRIPTION": "Запускайте watch party в Netflix, Emby, Jellyfin, YouTube, Twitch и почти любом HTML5-видео. Open source, приватно и без аккаунта.",
|
||||
"NAV_FEATURES": "Функции",
|
||||
"NAV_HOW_IT_WORKS": "Как это работает",
|
||||
"SUPPORT_BANNER_TEXT": "KoalaSync не может получить доступ к сайту с видео?",
|
||||
"SUPPORT_BANNER_CTA": "Исправить доступ к сайту",
|
||||
"HERO_TITLE": "Преврати любое видео в <span class='hero-highlight'>watch party</span>.",
|
||||
"HERO_SUBTITLE": "Ваш киновечер на расстоянии, без задержек. Без аккаунта, без слежки, без рекламы. Просто поделитесь ссылкой и нажмите play вместе.",
|
||||
"HERO_MASCOT_ALT": "Милый коала стоит и смотрит вниз на кнопки загрузки",
|
||||
|
||||
@@ -14,6 +14,8 @@
|
||||
"TWITTER_DESCRIPTION": "Netflix, Emby, Jellyfin, YouTube, Twitch ve neredeyse tüm HTML5 videolarında watch party başlatın. Açık kaynak, gizlilik odaklı ve hesapsız.",
|
||||
"NAV_FEATURES": "Özellikler",
|
||||
"NAV_HOW_IT_WORKS": "Nasıl Çalışır",
|
||||
"SUPPORT_BANNER_TEXT": "KoalaSync video sitesine erişemiyor mu?",
|
||||
"SUPPORT_BANNER_CTA": "Site erişimini düzelt",
|
||||
"HERO_TITLE": "Herhangi bir videoyu <span class='hero-highlight'>watch party</span>'ye dönüştür.",
|
||||
"HERO_SUBTITLE": "Gecikmesiz uzaktan film gecen. Hesap yok, takip yok, reklam yok. Sadece bir bağlantı paylaş ve birlikte oynatın.",
|
||||
"HERO_MASCOT_ALT": "İndirme düğmelerine bakan sevimli bir koala",
|
||||
|
||||
@@ -14,6 +14,8 @@
|
||||
"TWITTER_DESCRIPTION": "Запускайте watch party у Netflix, Emby, Jellyfin, YouTube, Twitch і майже будь-якому HTML5-відео. Open source, приватно й без акаунта.",
|
||||
"NAV_FEATURES": "особливості",
|
||||
"NAV_HOW_IT_WORKS": "Як це працює",
|
||||
"SUPPORT_BANNER_TEXT": "KoalaSync не має доступу до сайту з відео?",
|
||||
"SUPPORT_BANNER_CTA": "Виправити доступ до сайту",
|
||||
"HERO_TITLE": "Перетвори будь-яке відео на <span class='hero-highlight'>watch party</span>.",
|
||||
"HERO_SUBTITLE": "Ваш кіновечір на відстані, без затримок. Без акаунта, без стеження, без реклами. Просто поділіться посиланням і натисніть play разом.",
|
||||
"HERO_MASCOT_ALT": "Мила коала стоїть і дивиться вниз на кнопки завантаження",
|
||||
|
||||
@@ -14,6 +14,8 @@
|
||||
"TWITTER_DESCRIPTION": "在 Netflix、Emby、Jellyfin、YouTube、Twitch 和几乎任意 HTML5 视频上发起一起看派对。开源、重视隐私、无需账号。",
|
||||
"NAV_FEATURES": "特征",
|
||||
"NAV_HOW_IT_WORKS": "它是如何运作的",
|
||||
"SUPPORT_BANNER_TEXT": "KoalaSync 无法访问视频网站?",
|
||||
"SUPPORT_BANNER_CTA": "修复网站访问权限",
|
||||
"HERO_TITLE": "把任意视频变成<span class='hero-highlight'>一起看派对</span>。",
|
||||
"HERO_SUBTITLE": "远程电影之夜,毫无延迟。无需账号、无跟踪、无广告。分享链接,一起播放。",
|
||||
"HERO_MASCOT_ALT": "一只可爱的考拉站着,低头看着下载按钮",
|
||||
|
||||
@@ -0,0 +1,169 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en" class="lang-en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>KoalaSync Cannot Access Your Video Site? Fix Website Access</title>
|
||||
<meta name="description" content="Restore KoalaSync website access in Chrome, Edge, Brave, Opera, or Firefox when a video tab cannot be linked or controlled.">
|
||||
<meta name="robots" content="index, follow">
|
||||
<link rel="preload" href="style.min.css" as="style">
|
||||
<link rel="stylesheet" href="style.min.css">
|
||||
<link rel="icon" type="image/png" sizes="32x32" href="assets/favicon-32x32.png">
|
||||
<link rel="canonical" href="https://sync.koalastuff.net/site-access-help.html">
|
||||
<link rel="alternate" hreflang="en" href="https://sync.koalastuff.net/site-access-help.html">
|
||||
<link rel="alternate" hreflang="x-default" href="https://sync.koalastuff.net/site-access-help.html">
|
||||
<meta property="og:type" content="website">
|
||||
<meta property="og:url" content="https://sync.koalastuff.net/site-access-help.html">
|
||||
<meta property="og:title" content="Fix KoalaSync website access">
|
||||
<meta property="og:description" content="Quick browser-specific steps for reconnecting KoalaSync to a video tab.">
|
||||
<meta property="og:image" content="https://sync.koalastuff.net/assets/og-image.png">
|
||||
<meta name="theme-color" content="#10190e">
|
||||
<script type="application/ld+json">
|
||||
{
|
||||
"@context": "https://schema.org",
|
||||
"@type": "TechArticle",
|
||||
"headline": "Fix KoalaSync website access",
|
||||
"description": "Restore KoalaSync access when a browser blocks the extension on a video website.",
|
||||
"inLanguage": "en",
|
||||
"url": "https://sync.koalastuff.net/site-access-help.html",
|
||||
"isPartOf": {
|
||||
"@type": "WebSite",
|
||||
"name": "KoalaSync",
|
||||
"url": "https://sync.koalastuff.net/"
|
||||
}
|
||||
}
|
||||
</script>
|
||||
<script src="lang-init.min.js"></script>
|
||||
</head>
|
||||
<body class="support-page">
|
||||
<div class="scroll-progress-bar"></div>
|
||||
<a class="skip-link" href="#main-content">Skip to troubleshooting</a>
|
||||
|
||||
<nav>
|
||||
<div class="container nav-content">
|
||||
<a class="logo-area" href="./" aria-label="KoalaSync home">
|
||||
<img class="nav-logo-img" src="assets/NewLogoIcon_128.webp" srcset="assets/NewLogoIcon_64.webp 64w, assets/NewLogoIcon_128.webp 128w, assets/NewLogoIcon.webp 256w" sizes="64px" alt="KoalaSync logo" width="64" height="64">
|
||||
<span>KoalaSync</span>
|
||||
</a>
|
||||
<div class="nav-links" id="primary-nav" role="navigation" aria-label="Primary">
|
||||
<a href="./">Home</a>
|
||||
<a href="https://github.com/Shik3i/KoalaSync" target="_blank" rel="noopener">GitHub</a>
|
||||
</div>
|
||||
<div class="nav-right">
|
||||
<button class="theme-toggle" id="theme-toggle" type="button" aria-label="Toggle light or dark theme" title="Toggle light or dark theme">
|
||||
<svg class="theme-icon-sun" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" width="18" height="18" aria-hidden="true"><circle cx="12" cy="12" r="4"/><path d="M12 2v2M12 20v2M4.93 4.93l1.41 1.41M17.66 17.66l1.41 1.41M2 12h2M20 12h2M6.34 17.66l-1.41 1.41M19.07 4.93l-1.41 1.41"/></svg>
|
||||
<svg class="theme-icon-moon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" width="18" height="18" aria-hidden="true"><path d="M12 3a6 6 0 0 0 9 9 9 9 0 1 1-9-9Z"/></svg>
|
||||
</button>
|
||||
<button class="hamburger" aria-label="Toggle navigation menu" aria-expanded="false" aria-controls="primary-nav">
|
||||
<svg viewBox="0 0 24 24" width="24" height="24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" aria-hidden="true"><line x1="3" y1="6" x2="21" y2="6"/><line x1="3" y1="12" x2="21" y2="12"/><line x1="3" y1="18" x2="21" y2="18"/></svg>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
|
||||
<main id="main-content" class="support-content">
|
||||
<header class="support-hero">
|
||||
<span class="support-status">Website access troubleshooting</span>
|
||||
<h1>Connected, but the video tab does nothing?</h1>
|
||||
<p class="support-lead">Your browser may be withholding KoalaSync’s access to that website. The room connection can still look healthy while KoalaSync cannot read or control the player.</p>
|
||||
</header>
|
||||
|
||||
<section class="support-card" aria-labelledby="quick-fix-title">
|
||||
<span class="support-eyebrow">Start here</span>
|
||||
<h2 id="quick-fix-title">Use the built-in one-click fix</h2>
|
||||
<ol class="support-steps">
|
||||
<li>Open the video website and then open the KoalaSync popup.</li>
|
||||
<li>Select the video tab. If access is blocked, KoalaSync shows an access notice instead of silently pretending the tab is connected.</li>
|
||||
<li>Select <strong>Allow access</strong> and approve the browser prompt. KoalaSync retries the tab automatically.</li>
|
||||
<li>If the prompt does not appear, use the manual browser steps below and reload the video page once.</li>
|
||||
</ol>
|
||||
</section>
|
||||
|
||||
<div class="support-callout" role="note">
|
||||
<span class="support-callout-icon" aria-hidden="true">i</span>
|
||||
<div>
|
||||
<strong>This is not a new KoalaSync permission.</strong>
|
||||
<p>Modern browsers let users, profiles, and administrators withhold extension access per website. Chrome’s newer extension menu makes that existing control much more visible. KoalaSync now detects the blocked state and asks for access only after you select a video tab.</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="support-grid">
|
||||
<section class="support-card" aria-labelledby="chromium-title">
|
||||
<span class="support-eyebrow">Chrome, Edge, Brave, Opera</span>
|
||||
<h2 id="chromium-title">Allow KoalaSync on the current site</h2>
|
||||
<ol>
|
||||
<li>Keep the affected video tab open.</li>
|
||||
<li>Open the browser’s extensions menu near the address bar.</li>
|
||||
<li>Under <strong>Access requested</strong>, select KoalaSync and allow access.</li>
|
||||
<li>If needed, open KoalaSync’s extension details and change site access to <strong>On this site</strong> or <strong>On all sites</strong>.</li>
|
||||
<li>Reload the video tab and select it again in KoalaSync.</li>
|
||||
</ol>
|
||||
<p><a class="support-link" href="https://support.google.com/chrome/answer/2664769?hl=en" target="_blank" rel="noopener">Google’s official site-access instructions</a></p>
|
||||
</section>
|
||||
|
||||
<section class="support-card" aria-labelledby="firefox-title">
|
||||
<span class="support-eyebrow">Firefox</span>
|
||||
<h2 id="firefox-title">Check extension permissions</h2>
|
||||
<ol>
|
||||
<li>Open <strong>Add-ons and themes</strong>, then select <strong>Extensions</strong>.</li>
|
||||
<li>Open KoalaSync and select <strong>Permissions</strong> or <strong>Permissions and data</strong>.</li>
|
||||
<li>Allow the requested website access.</li>
|
||||
<li>Return to the video site, reload it, and select the tab again.</li>
|
||||
</ol>
|
||||
<p><a class="support-link" href="https://support.mozilla.org/en-US/kb/manage-optional-permissions-extensions" target="_blank" rel="noopener">Mozilla’s official extension-permissions instructions</a></p>
|
||||
</section>
|
||||
</div>
|
||||
|
||||
<section class="support-card" aria-labelledby="why-title">
|
||||
<span class="support-eyebrow">Why access is needed</span>
|
||||
<h2 id="why-title">KoalaSync must reach the player you selected</h2>
|
||||
<p>KoalaSync injects a local content script into the selected tab so it can find the HTML5 player, read its playback position, and apply play, pause, and seek actions. The video and audio stream never leave your browser. Only synchronization state is sent through the relay.</p>
|
||||
<p>Access is requested for the website origin shown in the popup. Browser-internal pages such as <strong>chrome://</strong>, <strong>edge://</strong>, and <strong>about:</strong> cannot be controlled. Local files may also require the separate <strong>Allow access to file URLs</strong> switch in the extension details.</p>
|
||||
</section>
|
||||
|
||||
<section class="support-card" aria-labelledby="still-title">
|
||||
<span class="support-eyebrow">Still not working?</span>
|
||||
<h2 id="still-title">Run these checks in order</h2>
|
||||
<ul>
|
||||
<li>Update KoalaSync in both browsers. Friends using different releases should update before testing again.</li>
|
||||
<li>Reload the video page after granting access. An already-open page may still have the old blocked state.</li>
|
||||
<li>Open KoalaSync and reselect the exact tab containing the player.</li>
|
||||
<li>Confirm the debug report says <strong>Video Found</strong>. A page without a standard player may need site-specific support.</li>
|
||||
<li>Temporarily test without another extension that also modifies the player.</li>
|
||||
<li>If it still fails, collect a debug report from each participant before leaving the room.</li>
|
||||
</ul>
|
||||
</section>
|
||||
|
||||
<section class="support-card support-separate-issue" aria-labelledby="peers-title">
|
||||
<span class="support-eyebrow">Separate issue</span>
|
||||
<h2 id="peers-title">“Peers (1)” only shows yourself</h2>
|
||||
<p>Website access does <strong>not</strong> control the relay participant list. If both people see the same room name but each report lists only themselves, the relay has not placed both connections into the same live room state.</p>
|
||||
<ul>
|
||||
<li>Open the same invite link again and verify the room name, password, and server URL match.</li>
|
||||
<li>Update both extensions, leave the room, and reconnect once.</li>
|
||||
<li>When self-hosting, use a single relay process unless room state is shared between instances; KoalaSync’s default relay state lives in process memory.</li>
|
||||
<li>If the problem remains, save both debug reports and the relay logs from the same timestamp.</li>
|
||||
</ul>
|
||||
</section>
|
||||
|
||||
<div class="support-actions">
|
||||
<a class="btn btn-primary" href="./">Back to KoalaSync</a>
|
||||
<a class="btn btn-secondary" href="https://github.com/Shik3i/KoalaSync/issues" target="_blank" rel="noopener">Report a reproducible issue</a>
|
||||
</div>
|
||||
</main>
|
||||
|
||||
<footer>
|
||||
<div class="container">
|
||||
<p class="footer-ram">Rooms are ephemeral and stored in RAM.</p>
|
||||
<p class="footer-copyright">© 2026 KoalaSync. Open source under the MIT License.</p>
|
||||
<div class="footer-links">
|
||||
<a href="imprint.html">Legal notice</a>
|
||||
<a href="privacy.html">Privacy</a>
|
||||
<a href="https://github.com/Shik3i/KoalaSync" target="_blank" rel="noopener">GitHub</a>
|
||||
</div>
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
<script src="app.min.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
Vendored
+69
@@ -92,6 +92,75 @@
|
||||
transform: scale(1.05);
|
||||
}
|
||||
|
||||
.site-access-banner {
|
||||
position: relative;
|
||||
z-index: 900;
|
||||
margin-top: 96px;
|
||||
border-block: 1px solid color-mix(in oklch, var(--accent) 42%, transparent);
|
||||
background: color-mix(in oklch, var(--accent) 16%, var(--bg));
|
||||
box-shadow: 0 10px 30px rgba(0, 0, 0, 0.16);
|
||||
}
|
||||
|
||||
.site-access-banner-inner {
|
||||
min-height: 50px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
gap: 0.75rem;
|
||||
color: var(--text);
|
||||
font-size: 0.9rem;
|
||||
font-weight: 650;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.site-access-banner-icon {
|
||||
flex: 0 0 auto;
|
||||
display: inline-grid;
|
||||
place-items: center;
|
||||
width: 1.5rem;
|
||||
height: 1.5rem;
|
||||
border-radius: 999px;
|
||||
background: var(--accent);
|
||||
color: var(--text-on-green);
|
||||
font-size: 0.9rem;
|
||||
font-weight: 900;
|
||||
}
|
||||
|
||||
.site-access-banner-link {
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
gap: 0.35rem;
|
||||
color: var(--accent);
|
||||
font-weight: 800;
|
||||
text-decoration: underline;
|
||||
text-underline-offset: 0.18em;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.site-access-banner-link:hover {
|
||||
color: var(--text);
|
||||
}
|
||||
|
||||
@media (max-width: 768px) {
|
||||
.site-access-banner {
|
||||
margin-top: 76px;
|
||||
}
|
||||
|
||||
.site-access-banner-inner {
|
||||
min-height: 64px;
|
||||
padding-block: 0.65rem;
|
||||
gap: 0.5rem;
|
||||
flex-wrap: wrap;
|
||||
font-size: 0.8rem;
|
||||
}
|
||||
|
||||
.site-access-banner-icon {
|
||||
width: 1.3rem;
|
||||
height: 1.3rem;
|
||||
font-size: 0.75rem;
|
||||
}
|
||||
}
|
||||
|
||||
* {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
|
||||
@@ -0,0 +1,246 @@
|
||||
/* --- Site-access troubleshooting page --- */
|
||||
.support-page {
|
||||
min-height: 100vh;
|
||||
}
|
||||
|
||||
.support-page::before {
|
||||
content: '';
|
||||
position: fixed;
|
||||
inset: 0;
|
||||
z-index: -1;
|
||||
pointer-events: none;
|
||||
background:
|
||||
radial-gradient(circle at 15% 8%, color-mix(in oklch, var(--accent) 15%, transparent), transparent 32rem),
|
||||
radial-gradient(circle at 85% 30%, color-mix(in oklch, var(--accent-terracotta) 10%, transparent), transparent 30rem);
|
||||
}
|
||||
|
||||
.support-content {
|
||||
width: min(980px, calc(100% - 2rem));
|
||||
margin: 0 auto;
|
||||
padding: 9rem 0 4rem;
|
||||
}
|
||||
|
||||
.support-hero {
|
||||
max-width: 760px;
|
||||
margin: 0 auto 2rem;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.support-eyebrow,
|
||||
.support-status {
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
gap: 0.45rem;
|
||||
border: 1px solid color-mix(in oklch, var(--accent) 35%, transparent);
|
||||
border-radius: 999px;
|
||||
background: color-mix(in oklch, var(--accent) 12%, var(--card));
|
||||
color: var(--accent);
|
||||
padding: 0.4rem 0.8rem;
|
||||
font-size: 0.78rem;
|
||||
font-weight: 800;
|
||||
letter-spacing: 0.04em;
|
||||
text-transform: uppercase;
|
||||
}
|
||||
|
||||
.support-status::before {
|
||||
content: '';
|
||||
width: 0.55rem;
|
||||
height: 0.55rem;
|
||||
border-radius: 999px;
|
||||
background: var(--accent);
|
||||
box-shadow: 0 0 0 0.3rem color-mix(in oklch, var(--accent) 16%, transparent);
|
||||
}
|
||||
|
||||
.support-hero h1 {
|
||||
margin: 1rem 0;
|
||||
color: var(--text);
|
||||
font-size: clamp(2.35rem, 6vw, 4.3rem);
|
||||
line-height: 1.05;
|
||||
letter-spacing: -0.045em;
|
||||
}
|
||||
|
||||
.support-lead {
|
||||
color: var(--text-muted);
|
||||
font-size: clamp(1rem, 2vw, 1.18rem);
|
||||
line-height: 1.75;
|
||||
}
|
||||
|
||||
.support-card,
|
||||
.support-callout {
|
||||
border: 1px solid var(--card-border);
|
||||
border-radius: 22px;
|
||||
background: var(--card-surface);
|
||||
box-shadow: 0 18px 55px rgba(0, 0, 0, 0.15);
|
||||
backdrop-filter: blur(14px);
|
||||
}
|
||||
|
||||
.support-card {
|
||||
padding: clamp(1.35rem, 4vw, 2.25rem);
|
||||
}
|
||||
|
||||
.support-card + .support-card,
|
||||
.support-grid + .support-card,
|
||||
.support-card + .support-grid,
|
||||
.support-callout + .support-card {
|
||||
margin-top: 1.25rem;
|
||||
}
|
||||
|
||||
.support-card h2,
|
||||
.support-card h3 {
|
||||
color: var(--text);
|
||||
line-height: 1.25;
|
||||
}
|
||||
|
||||
.support-card h2 {
|
||||
margin-bottom: 0.8rem;
|
||||
font-size: clamp(1.35rem, 3vw, 1.75rem);
|
||||
}
|
||||
|
||||
.support-card h3 {
|
||||
margin-bottom: 0.55rem;
|
||||
font-size: 1.05rem;
|
||||
}
|
||||
|
||||
.support-card p,
|
||||
.support-card li,
|
||||
.support-callout p {
|
||||
color: var(--text-muted);
|
||||
}
|
||||
|
||||
.support-card p + p,
|
||||
.support-card p + ul,
|
||||
.support-card p + ol,
|
||||
.support-card ul + p,
|
||||
.support-card ol + p {
|
||||
margin-top: 0.85rem;
|
||||
}
|
||||
|
||||
.support-card ul,
|
||||
.support-card ol {
|
||||
padding-left: 1.2rem;
|
||||
}
|
||||
|
||||
.support-card li + li {
|
||||
margin-top: 0.6rem;
|
||||
}
|
||||
|
||||
.support-grid {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(2, minmax(0, 1fr));
|
||||
gap: 1.25rem;
|
||||
margin-top: 1.25rem;
|
||||
}
|
||||
|
||||
.support-steps {
|
||||
list-style: none;
|
||||
padding: 0 !important;
|
||||
counter-reset: support-step;
|
||||
}
|
||||
|
||||
.support-steps li {
|
||||
position: relative;
|
||||
min-height: 2.4rem;
|
||||
padding-left: 3.2rem;
|
||||
counter-increment: support-step;
|
||||
}
|
||||
|
||||
.support-steps li::before {
|
||||
content: counter(support-step);
|
||||
position: absolute;
|
||||
top: -0.15rem;
|
||||
left: 0;
|
||||
display: grid;
|
||||
place-items: center;
|
||||
width: 2.2rem;
|
||||
height: 2.2rem;
|
||||
border-radius: 12px;
|
||||
background: var(--accent);
|
||||
color: var(--text-on-green);
|
||||
font-weight: 900;
|
||||
}
|
||||
|
||||
.support-callout {
|
||||
display: grid;
|
||||
grid-template-columns: auto minmax(0, 1fr);
|
||||
gap: 1rem;
|
||||
align-items: start;
|
||||
margin: 1.25rem 0;
|
||||
padding: 1.25rem;
|
||||
border-color: color-mix(in oklch, var(--accent) 40%, transparent);
|
||||
background: color-mix(in oklch, var(--accent) 10%, var(--card-surface));
|
||||
}
|
||||
|
||||
.support-callout-icon {
|
||||
display: grid;
|
||||
place-items: center;
|
||||
width: 2rem;
|
||||
height: 2rem;
|
||||
border-radius: 999px;
|
||||
background: var(--accent);
|
||||
color: var(--text-on-green);
|
||||
font-weight: 900;
|
||||
}
|
||||
|
||||
.support-callout strong {
|
||||
display: block;
|
||||
margin-bottom: 0.3rem;
|
||||
color: var(--text);
|
||||
}
|
||||
|
||||
.support-link {
|
||||
color: var(--accent);
|
||||
font-weight: 700;
|
||||
text-decoration: underline;
|
||||
text-underline-offset: 0.18em;
|
||||
}
|
||||
|
||||
.support-link:hover {
|
||||
color: var(--text);
|
||||
}
|
||||
|
||||
.support-actions {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
gap: 0.8rem;
|
||||
flex-wrap: wrap;
|
||||
margin-top: 2rem;
|
||||
}
|
||||
|
||||
.support-actions .btn {
|
||||
min-width: 180px;
|
||||
}
|
||||
|
||||
.support-separate-issue {
|
||||
border-color: color-mix(in oklch, var(--accent-terracotta) 45%, transparent);
|
||||
}
|
||||
|
||||
.support-separate-issue .support-eyebrow {
|
||||
border-color: color-mix(in oklch, var(--accent-terracotta) 40%, transparent);
|
||||
background: color-mix(in oklch, var(--accent-terracotta) 10%, var(--card));
|
||||
color: var(--accent-terracotta);
|
||||
}
|
||||
|
||||
html.theme-light .support-card,
|
||||
html.theme-light .support-callout {
|
||||
background-color: var(--card-surface);
|
||||
box-shadow: 0 18px 45px rgba(44, 62, 37, 0.1);
|
||||
}
|
||||
|
||||
@media (max-width: 720px) {
|
||||
.support-content {
|
||||
width: min(100% - 1rem, 980px);
|
||||
padding-top: 7.5rem;
|
||||
}
|
||||
|
||||
.support-grid {
|
||||
grid-template-columns: 1fr;
|
||||
}
|
||||
|
||||
.support-card {
|
||||
border-radius: 18px;
|
||||
}
|
||||
|
||||
.support-callout {
|
||||
grid-template-columns: 1fr;
|
||||
}
|
||||
}
|
||||
+12
-1
@@ -210,7 +210,7 @@
|
||||
</style>
|
||||
</noscript>
|
||||
</head>
|
||||
<body>
|
||||
<body class="landing-with-support-banner">
|
||||
<div class="scroll-progress-bar"></div>
|
||||
|
||||
<a class="skip-link" href="#main-content">Skip to main content</a>
|
||||
@@ -360,6 +360,17 @@
|
||||
</div>
|
||||
</nav>
|
||||
|
||||
<aside class="site-access-banner" aria-labelledby="site-access-banner-text">
|
||||
<div class="container site-access-banner-inner">
|
||||
<span class="site-access-banner-icon" aria-hidden="true">!</span>
|
||||
<span id="site-access-banner-text">{{SUPPORT_BANNER_TEXT}}</span>
|
||||
<a href="/site-access-help.html" class="site-access-banner-link">
|
||||
<span>{{SUPPORT_BANNER_CTA}}</span>
|
||||
<span aria-hidden="true">→</span>
|
||||
</a>
|
||||
</div>
|
||||
</aside>
|
||||
|
||||
<main id="main-content">
|
||||
<header class="hero" id="top">
|
||||
<div class="container hero-grid">
|
||||
|
||||
Reference in New Issue
Block a user