Add additional disclaimer about latest release builds.

This commit is contained in:
hensm
2022-04-19 12:07:19 +01:00
parent e485dc762e
commit fc6a9aaa35

View File

@@ -1,20 +1,23 @@
<!DOCTYPE html> <!DOCTYPE html>
<html lang="en" class="theme-dark"> <html lang="en" class="theme-dark">
<head> <head>
<meta charset="utf-8"> <meta charset="utf-8" />
<meta name="description" content="A browser extension that enables Chromecast support for casting web apps (like YouTube, Netflix or BBC iPlayer)."> <meta
<meta name="viewport" content="width=device-width, initial-scale=1"> name="description"
content="A browser extension that enables Chromecast support for casting web apps (like YouTube, Netflix or BBC iPlayer)."
/>
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>fx_cast: Chromecast for Firefox</title> <title>fx_cast: Chromecast for Firefox</title>
<link rel="stylesheet" href="fonts/stylesheet.css"> <link rel="stylesheet" href="fonts/stylesheet.css" />
<link rel="stylesheet" href="photon-colors.css"> <link rel="stylesheet" href="photon-colors.css" />
<link rel="stylesheet" href="photon.css"> <link rel="stylesheet" href="photon.css" />
<link rel="stylesheet" href="index.css"> <link rel="stylesheet" href="index.css" />
<link rel="icon" type="image/svg+xml" href="favicon.svg" sizes="any"> <link rel="icon" type="image/svg+xml" href="favicon.svg" sizes="any" />
<link rel="icon" type="image/png" href="favicon-16.png" sizes="16x16"> <link rel="icon" type="image/png" href="favicon-16.png" sizes="16x16" />
<link rel="icon" type="image/png" href="favicon-32.png" sizes="32x32"> <link rel="icon" type="image/png" href="favicon-32.png" sizes="32x32" />
<script src="index.js" defer></script> <script src="index.js" defer></script>
</head> </head>
@@ -22,69 +25,103 @@
<div class="container"> <div class="container">
<header class="site-header"> <header class="site-header">
<h1 class="site-header__title">fx_cast</h1> <h1 class="site-header__title">fx_cast</h1>
<p class="site-header__subtitle">Chromecast <nobr>for Firefox</nobr></p> <p class="site-header__subtitle">
Chromecast <nobr>for Firefox</nobr>
</p>
</header> </header>
<main class="site-content"> <main class="site-content">
<section class="description"> <section class="description">
<h2 hidden>Description</h2> <h2 hidden>Description</h2>
<p> <p>
A browser extension that enables Chromecast support for casting web apps (like YouTube, Netflix or BBC iPlayer), HTML5 media and <nobr>screen/tab sharing</nobr>. A browser extension that enables Chromecast support for
casting web apps (like YouTube, Netflix or BBC iPlayer),
HTML5 media and <nobr>screen/tab sharing</nobr>.
</p> </p>
<p class="description__disclaimer"> <p class="description__disclaimer">
Requires a native bridge app to connect with receiver devices. Currently supported on Windows, macOS and Linux. Requires a native bridge app to connect with receiver
devices. Currently supported on Windows, macOS and
Linux.
</p> </p>
<p class="description__prerelease"> <p class="description__prerelease">
No full public release yet! Pre-release beta version is incomplete and likely buggy. No full public release yet! Pre-release beta version is
incomplete and likely buggy.
</p>
<p class="description__disclaimer">
Latest release is missing macOS x86 build and Windows
32-bit build. See
<a href="https://github.com/hensm/fx_cast/issues/209"
>#209</a
>
for more info. Older releases are
<a href="https://github.com/hensm/fx_cast/releases"
>available</a
>.
</p> </p>
</section> </section>
<section class="download"> <section class="download">
<h2 hidden>Downloads</h2> <h2 hidden>Downloads</h2>
<a class="download__ext button button--puffy button--primary" <a
title="No available download found" class="download__ext button button--puffy button--primary"
disabled> title="No available download found"
<img class="button__icon" disabled
src="icons/extension_light.svg" >
alt="Extension symbol (puzzle) icon"> <img
class="button__icon"
src="icons/extension_light.svg"
alt="Extension symbol (puzzle) icon"
/>
Firefox Extension Firefox Extension
</a> </a>
<a class="download__app button button--puffy" <a
title="No available download found" class="download__app button button--puffy"
disabled> title="No available download found"
disabled
>
</a> </a>
<details class="download__app-other"> <details class="download__app-other">
<summary> <summary>
<h3>Other bridge downloads</h3> <h3>Other bridge downloads</h3>
</summary> </summary>
<div class="app-list"> <div class="app-list">
<a class="app-list__app app-list__mac" <a
title="No available download found" class="app-list__app app-list__mac"
disabled> title="No available download found"
disabled
>
macOS macOS
</a> </a>
<div class="app-list__platform"> <div class="app-list__platform">
<a class="app-list__app app-list__win64" <a
title="No available download found" class="app-list__app app-list__win64"
disabled> title="No available download found"
disabled
>
Windows Windows
<span class="app-list__app-label">x64</span> <span class="app-list__app-label">x64</span>
</a> </a>
<a class="app-list__app app-list__win32" <a
title="No available download found" class="app-list__app app-list__win32"
disabled> title="No available download found"
disabled
>
Windows Windows
<span class="app-list__app-label">x86</span> <span class="app-list__app-label">x86</span>
</a> </a>
</div> </div>
<div class="app-list__platform"> <div class="app-list__platform">
<a class="app-list__app app-list__deb" <a
title="No available download found" class="app-list__app app-list__deb"
disabled> title="No available download found"
disabled
>
Linux Linux
<span class="app-list__app-label">DEB</span> <span class="app-list__app-label">DEB</span>
</a> </a>
<a class="app-list__app app-list__rpm" <a
title="No available download found" class="app-list__app app-list__rpm"
disabled> title="No available download found"
disabled
>
Linux Linux
<span class="app-list__app-label">RPM</span> <span class="app-list__app-label">RPM</span>
</a> </a>
@@ -102,37 +139,72 @@
</summary> </summary>
<div class="faq__content"> <div class="faq__content">
<picture style="float: right"> <picture style="float: right">
<source type="image/webp" <source
srcset="images/webp/menu_light.webp, type="image/webp"
images/webp/menu_light@2x.webp 2x" srcset="
media="(prefers-color-scheme: light)"> images/webp/menu_light.webp,
<source type="image/webp" images/webp/menu_light@2x.webp 2x
srcset="images/webp/menu_dark.webp, "
images/webp/menu_dark@2x.webp 2x" media="(prefers-color-scheme: light)"
media="(prefers-color-scheme: dark)"> />
<source type="image/png" <source
srcset="images/menu_light.png, type="image/webp"
images/menu_light@2x.png 2x" srcset="
media="(prefers-color-scheme: light)"> images/webp/menu_dark.webp,
<source type="image/png" images/webp/menu_dark@2x.webp 2x
srcset="images/menu_dark.png, "
images/menu_dark@2x.png 2x" media="(prefers-color-scheme: dark)"
media="(prefers-color-scheme: dark)"> />
<source
type="image/png"
srcset="
images/menu_light.png,
images/menu_light@2x.png 2x
"
media="(prefers-color-scheme: light)"
/>
<source
type="image/png"
srcset="
images/menu_dark.png,
images/menu_dark@2x.png 2x
"
media="(prefers-color-scheme: dark)"
/>
<img alt="Screenshot, media context menu." <img
src="images/menu_dark.png"> alt="Screenshot, media context menu."
src="images/menu_dark.png"
/>
</picture> </picture>
<p> <p>
For sites with built-in cast support, click the cast button in the page and select the destination in the receiver selector popup. You may have to add the site to the whitelist to get the cast button to appear. For sites with built-in cast support,
click the cast button in the page and
select the destination in the receiver
selector popup. You may have to add the
site to the whitelist to get the cast
button to appear.
</p> </p>
<p> <p>
For other sites, there is a "Cast..." item in the context menu when right-clicking on a media player. This may not be visible depending on whether the site has chosen to obscure the player with an overlay or if the media is DRM-encumbered (see below). For other sites, there is a "Cast..."
item in the context menu when
right-clicking on a media player. This
may not be visible depending on whether
the site has chosen to obscure the
player with an overlay or if the media
is DRM-encumbered (see below).
</p> </p>
<p> <p>
Clicking the toolbar button will open the popup, but depending on the context, it may not be possible to cast anything. Clicking the toolbar button will open
the popup, but depending on the context,
it may not be possible to cast anything.
</p> </p>
<p> <p>
As a last resort, casting the tab or screen may provide a means of displaying this media on the Chromecast, but it has its own limitations: the performance is very poor and there's no audio casting. As a last resort, casting the tab or
screen may provide a means of displaying
this media on the Chromecast, but it has
its own limitations: the performance is
very poor and there's no audio casting.
</p> </p>
<div style="clear: right"></div> <div style="clear: right"></div>
</div> </div>
@@ -144,21 +216,40 @@
<h3>Why do I need the bridge?</h3> <h3>Why do I need the bridge?</h3>
</summary> </summary>
<div class="faq__content"> <div class="faq__content">
<p>Access to TCP/UDP sockets.</p>
<p> <p>
Access to TCP/UDP sockets. Network discovery for Chromecast devices
relies on mDNS, the implementation of
which is reliant on being able to send
UDP packets. Communication with the
Chromecast device itself relies on a TCP
connection. The current workaround is to
offload that work to a native companion
application that the extension can then
launch and communicate with.
</p> </p>
<p> <p>
Network discovery for Chromecast devices relies on mDNS, the implementation of which is reliant on being able to send UDP packets. Communication with the Chromecast device itself relies on a TCP connection. The current workaround is to offload that work to a native companion application that the extension can then launch and communicate with. It's possible that this functionality
</p> will be re-exposed to extensions, in
<p> which case the bridge will be made
It's possible that this functionality will be re-exposed to extensions, in which case the bridge will be made redundant: redundant:
</p> </p>
<ul> <ul>
<li> <li>
<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1247628">bug 1247628 — Enable "TCP and UDP Socket API" for WebExtensions</a> <a
href="https://bugzilla.mozilla.org/show_bug.cgi?id=1247628"
>bug 1247628 — Enable "TCP and
UDP Socket API" for
WebExtensions</a
>
</li> </li>
<li> <li>
<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1461830">bug 1461830 — [experimental api] mDNS APIs for IoT and p2p extensions</a> <a
href="https://bugzilla.mozilla.org/show_bug.cgi?id=1461830"
>bug 1461830 — [experimental
api] mDNS APIs for IoT and p2p
extensions</a
>
</li> </li>
</ul> </ul>
</div> </div>
@@ -167,62 +258,97 @@
<li class="faqs__list-item"> <li class="faqs__list-item">
<details class="faq card"> <details class="faq card">
<summary class="faq__summary"> <summary class="faq__summary">
<h3>How do I completely remove the bridge?</h3> <h3>
How do I completely remove the bridge?
</h3>
</summary> </summary>
<div class="faq__content"> <div class="faq__content">
<ul> <ul>
<li> <li>
<h4>Windows</h4> <h4>Windows</h4>
<p> <p>
Removing the bridge on Windows should be as easy as running the uninstaller (<code>C:\Program Files\fx_cast\uninstaller.exe</code>) found in the control panel or settings application. Removing the bridge on Windows
should be as easy as running the
uninstaller (<code
>C:\Program
Files\fx_cast\uninstaller.exe</code
>) found in the control panel or
settings application.
</p> </p>
<p> <p>
To manually uninstall, remove the following files/folders and registry keys: To manually uninstall, remove
the following files/folders and
registry keys:
</p> </p>
<ul> <ul>
<li> <li>
<code>C:\Program Files\fx_cast\</code> <code
>C:\Program
Files\fx_cast\</code
>
</li> </li>
<li> <li>
<code>HKLM\Software\Mozilla\NativeMessagingHosts\fx_cast_bridge</code> <code
>HKLM\Software\Mozilla\NativeMessagingHosts\fx_cast_bridge</code
>
</li> </li>
<li> <li>
<code>HKLM\Software\Microsoft\Windows\CurrentVersion\Uninstall\fx_cast_bridge</code> <code
>HKLM\Software\Microsoft\Windows\CurrentVersion\Uninstall\fx_cast_bridge</code
>
</li> </li>
</ul> </ul>
</li> </li>
<li> <li>
<h4>macOS</h4> <h4>macOS</h4>
<p> <p>
Remove the following files/folders: Remove the following
files/folders:
</p> </p>
<ul> <ul>
<li> <li>
<code>/Library/Application Support/fx_cast/</code> <code
>/Library/Application
Support/fx_cast/</code
>
</li> </li>
<li> <li>
<code>/Library/Application Support/Mozilla/NativeMessagingHosts/fx_cast_bridge.json</code> <code
>/Library/Application
Support/Mozilla/NativeMessagingHosts/fx_cast_bridge.json</code
>
</li> </li>
</ul> </ul>
</li> </li>
<li> <li>
<h4>Linux</h4> <h4>Linux</h4>
<p> <p>
On Debian-based systems, remove the <code>fx-cast-bridge</code> package, otherwise remove the <code>fx_cast_bridge</code> package. On Debian-based systems, remove
the
<code>fx-cast-bridge</code>
package, otherwise remove the
<code>fx_cast_bridge</code>
package.
</p> </p>
<p> <p>
To manually uninstall, remove the following files/folders: To manually uninstall, remove
the following files/folders:
</p> </p>
<ul> <ul>
<li> <li>
<code>/opt/fx_cast/</code> <code>/opt/fx_cast/</code>
</li> </li>
<li> <li>
<code>/usr/lib/mozilla/native-messaging-hosts/fx_cast_bridge.json</code> OR <code
>/usr/lib/mozilla/native-messaging-hosts/fx_cast_bridge.json</code
>
OR
</li> </li>
<li> <li>
<code>/usr/lib64/mozilla/native-messaging-hosts/fx_cast_bridge.json</code> <code
>/usr/lib64/mozilla/native-messaging-hosts/fx_cast_bridge.json</code
>
</li> </li>
</ul> </ul>
</li> </li>
@@ -233,18 +359,32 @@
<li class="faqs__list-item"> <li class="faqs__list-item">
<details class="faq card"> <details class="faq card">
<summary class="faq__summary"> <summary class="faq__summary">
<h3>Why is there no sound when casting a screen or tab?</h3> <h3>
Why is there no sound when casting a
screen or tab?
</h3>
</summary> </summary>
<div class="faq__content"> <div class="faq__content">
<p> <p>
API limitations. There's no method of obtaining the audio streams. Merging of audio streams from remote media is also not possible due to cross-origin issues. API limitations. There's no method of
obtaining the audio streams. Merging of
audio streams from remote media is also
not possible due to cross-origin issues.
</p> </p>
<ul> <ul>
<li> <li>
<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1391223">bug 1391223 — Implement tabCapture API</a> <a
href="https://bugzilla.mozilla.org/show_bug.cgi?id=1391223"
>bug 1391223 — Implement
tabCapture API</a
>
</li> </li>
<li> <li>
<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1541425">bug 1541425 — Implement audio capture for getDisplayMedia</a> <a
href="https://bugzilla.mozilla.org/show_bug.cgi?id=1541425"
>bug 1541425 — Implement audio
capture for getDisplayMedia</a
>
</li> </li>
</ul> </ul>
</div> </div>
@@ -257,13 +397,36 @@
</summary> </summary>
<div class="faq__content"> <div class="faq__content">
<p> <p>
Compatibility with Chrome is far from perfect. Most sites will only enable their cast support if the browser reports itself as Chrome. Ensure that you've added the site to the whitelist. Some sites may not test their Chrome-specific code with Firefox, so it's possible that they're using incompatible/non-standard APIs. Compatibility with Chrome is far from
perfect. Most sites will only enable
their cast support if the browser
reports itself as Chrome. Ensure that
you've added the site to the whitelist.
Some sites may not test their
Chrome-specific code with Firefox, so
it's possible that they're using
incompatible/non-standard APIs.
</p> </p>
<p> <p>
The API is also not fully implemented and is missing some methods (mostly queue management). The current implementation likely also has edge-cases and bugs which may cause issues. The API is also not fully implemented
and is missing some methods (mostly
queue management). The current
implementation likely also has
edge-cases and bugs which may cause
issues.
</p> </p>
<p> <p>
Check the <a href="https://github.com/hensm/fx_cast-compat/issues?q=is%3Aissue+label%3Acompat">compatibility list</a> or if it's missing, <a href="https://github.com/hensm/fx_cast-compat/issues/new/choose">submit a new compatibility report issue</a>. Check the
<a
href="https://github.com/hensm/fx_cast-compat/issues?q=is%3Aissue+label%3Acompat"
>compatibility list</a
>
or if it's missing,
<a
href="https://github.com/hensm/fx_cast-compat/issues/new/choose"
>submit a new compatibility report
issue</a
>.
</p> </p>
</div> </div>
</details> </details>
@@ -271,11 +434,20 @@
<li class="faqs__list-item"> <li class="faqs__list-item">
<details class="faq card"> <details class="faq card">
<summary class="faq__summary"> <summary class="faq__summary">
<h3>Why can't I cast DRM-encumbered media?</h3> <h3>
Why can't I cast DRM-encumbered media?
</h3>
</summary> </summary>
<div class="faq__content"> <div class="faq__content">
<p> <p>
Unforunately, for DRM-encumbered media, there's no network-accessible URL to provide to the Chromecast and no means of accessing the media streams. The only way to cast on sites like this is via built-in Chromecast support (look for a cast button), which may not always be available. Unforunately, for DRM-encumbered media,
there's no network-accessible URL to
provide to the Chromecast and no means
of accessing the media streams. The only
way to cast on sites like this is via
built-in Chromecast support (look for a
cast button), which may not always be
available.
</p> </p>
</div> </div>
</details> </details>
@@ -283,11 +455,18 @@
<li class="faqs__list-item"> <li class="faqs__list-item">
<details class="faq card"> <details class="faq card">
<summary class="faq__summary"> <summary class="faq__summary">
<h3>Why is it taking so long for a full release?</h3> <h3>
Why is it taking so long for a full
release?
</h3>
</summary> </summary>
<div class="faq__content"> <div class="faq__content">
<p> <p>
Though I do enjoy working on this, it's (obviously) not a full-time thing. It's just a hobby project. You can help speed up development by contributing (see below). Though I do enjoy working on this, it's
(obviously) not a full-time thing. It's
just a hobby project. You can help speed
up development by contributing (see
below).
</p> </p>
</div> </div>
</details> </details>
@@ -299,15 +478,25 @@
</summary> </summary>
<div class="faq__content"> <div class="faq__content">
<p> <p>
Contributing code, translations, compatibility reports, or even reporting bugs is very helpful. See the <a href="https://github.com/hensm/fx_cast/blob/master/CONTRIBUTING.md">contributing guide</a> for more information. Contributing code, translations,
compatibility reports, or even reporting
bugs is very helpful. See the
<a
href="https://github.com/hensm/fx_cast/blob/master/CONTRIBUTING.md"
>contributing guide</a
>
for more information.
</p> </p>
<hr> <hr />
<p>You can also donate via PayPal:</p>
<p> <p>
You can also donate via PayPal: <a
</p> href="https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=3Z2FTMSG976WN&source=url"
<p> >
<a href="https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=3Z2FTMSG976WN&source=url"> <img
<img src="images/paypal.png" alt="Donate with PayPal button"> src="images/paypal.png"
alt="Donate with PayPal button"
/>
</a> </a>
</p> </p>
</div> </div>
@@ -318,52 +507,84 @@
</main> </main>
<picture style="display: contents"> <picture style="display: contents">
<source type="image/webp" <source
srcset="images/webp/preview-bg.webp, type="image/webp"
images/webp/preview-bg@2x.webp 2x"> srcset="
<source type="image/png" images/webp/preview-bg.webp,
srcset="images/preview-bg.png, images/webp/preview-bg@2x.webp 2x
images/preview-bg@2x.png 2x"> "
/>
<source
type="image/png"
srcset="images/preview-bg.png, images/preview-bg@2x.png 2x"
/>
<img class="preview preview--bg" <img
alt="Screenshot preview (background), browser window." class="preview preview--bg"
src="images/preview-bg.png"> alt="Screenshot preview (background), browser window."
src="images/preview-bg.png"
/>
</picture> </picture>
<picture style="display: contents"> <picture style="display: contents">
<source type="image/webp" <source
srcset="images/webp/preview-fg_light.webp, type="image/webp"
images/webp/preview-fg_light@2x.webp 2x" srcset="
media="(prefers-color-scheme: light)"> images/webp/preview-fg_light.webp,
<source type="image/webp" images/webp/preview-fg_light@2x.webp 2x
srcset="images/webp/preview-fg_dark.webp, "
images/webp/preview-fg_dark@2x.webp 2x" media="(prefers-color-scheme: light)"
media="(prefers-color-scheme: dark)"> />
<source type="image/png" <source
srcset="images/preview-fg_light.png, type="image/webp"
images/preview-fg_light@2x.png 2x" srcset="
media="(prefers-color-scheme: light)"> images/webp/preview-fg_dark.webp,
<source type="image/png" images/webp/preview-fg_dark@2x.webp 2x
srcset="images/preview-fg_dark.png, "
images/preview-fg_dark@2x.png 2x" media="(prefers-color-scheme: dark)"
media="(prefers-color-scheme: dark)"> />
<source
type="image/png"
srcset="
images/preview-fg_light.png,
images/preview-fg_light@2x.png 2x
"
media="(prefers-color-scheme: light)"
/>
<source
type="image/png"
srcset="
images/preview-fg_dark.png,
images/preview-fg_dark@2x.png 2x
"
media="(prefers-color-scheme: dark)"
/>
<img class="preview preview--fg" <img
alt="Screenshot preview (foreground), receiver selector popup." class="preview preview--fg"
width="462" height="275" alt="Screenshot preview (foreground), receiver selector popup."
src="images/preview-fg_dark.png"> width="462"
height="275"
src="images/preview-fg_dark.png"
/>
</picture> </picture>
<footer class="footer"> <footer class="footer">
<div class="links"> <div class="links">
<a class="links__link links__link-github" <a
href="https://github.com/hensm/fx_cast" class="links__link links__link-github"
title="Visit GitHub repository"> href="https://github.com/hensm/fx_cast"
<img src="icons/GitHub-Mark-32px.png" title="Visit GitHub repository"
srcset="icons/GitHub-Mark-32px.png, >
icons/GitHub-Mark-64px.png 2x, <img
icons/GitHub-Mark-120px-plus.png 3x" src="icons/GitHub-Mark-32px.png"
alt="GitHub logo"> srcset="
icons/GitHub-Mark-32px.png,
icons/GitHub-Mark-64px.png 2x,
icons/GitHub-Mark-120px-plus.png 3x
"
alt="GitHub logo"
/>
</a> </a>
</div> </div>
</footer> </footer>