Files
fx_cast/docs/index.html

628 lines
36 KiB
HTML
Executable File
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!DOCTYPE html>
<html lang="en">
<head>
<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 name="viewport" content="width=device-width, initial-scale=1" />
<title>fx_cast: Chromecast for Firefox</title>
<link rel="stylesheet" href="fonts/stylesheet.css" />
<link rel="stylesheet" href="photon-colors.css" />
<link rel="stylesheet" href="photon.css" />
<link rel="stylesheet" href="index.css" />
<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-32.png" sizes="32x32" />
<script src="index.js" defer></script>
</head>
<body>
<div class="container">
<div class="page-width">
<header class="site-header">
<h1 class="site-header__title">fx_cast</h1>
<p class="site-header__subtitle">
Chromecast <nobr>for Firefox</nobr>
</p>
</header>
</div>
<main class="site-content">
<div class="page-width">
<section class="entry">
<div>
<div class="description">
<p>
A Firefox extension that enables Chromecast
support for casting web apps (like YouTube,
Netflix or BBC iPlayer) and HTML5 media.
</p>
<p class="disclaimer">
Requires a companion bridge application to
connect with receiver devices. Currently
supported on Windows, macOS and Linux.
</p>
<p class="disclaimer disclaimer--warning">
The current v0.x.x releases are incomplete
and may be unstable.
</p>
</div>
<div class="download">
<h2 hidden>Downloads</h2>
<a
class="download__ext button button--puffy button--primary"
title="No available download found"
disabled
>
Firefox Extension
</a>
<div class="download__bridge-primary"></div>
<details class="download__bridge-all">
<summary>Other bridge downloads</summary>
<div class="download__bridge-list"></div>
</details>
</div>
</div>
<picture class="preview">
<source
type="image/webp"
srcset="images/preview.webp"
/>
<source
type="image/png"
srcset="images/preview.png"
/>
<img
alt="Screenshot, receiver selector popup."
width="512"
src="images/preview.png"
/>
</picture>
</section>
</div>
<section class="faqs">
<div class="page-width">
<h2>FAQs</h2>
<ul class="faqs__list">
<li class="faqs__list-item">
<details class="faq" open>
<summary class="faq__summary">
<h3>How do I cast something?</h3>
</summary>
<div class="faq__content">
<picture style="float: right">
<source
type="image/webp"
srcset="images/menu.webp"
/>
<source
type="image/png"
srcset="images/menu.png"
/>
<img
alt="Screenshot, media context menu."
src="images/menu.png"
width="270"
/>
</picture>
<h4>Sites with Chromecast support</h4>
<p>
For sites with built-in Chromecast
support, the site must be added to
the whitelist to get the cast
button to appear. You can easily
add a site to the whitelist from
the toolbar button context menu.
</p>
<p>
Once whitelisted, reload the page
and click the cast button in the
player controls to start casting.
</p>
<p class="disclaimer">
Not all sites are well-supported and
you may encounter issues.
<a href="#Why_doesn't_𝑥_site_work?"
>See below</a
>, for more info.
</p>
<h4>HTML5 Media</h4>
<p>
For certain types of media, there is
a "Cast..." menu item in the browser
context menu for the media player
(if the player has a custom context
menu, try shift-clicking to bring up
the browser context menu).
</p>
<p>
This may not be visible depending on
whether the media is
<a
href="#Why_can't_I_cast_DRM-encumbered_media?"
>DRM-encumbered</a
>
or has a network-accessible URL to
send to the Chromecast device.
</p>
<div style="clear: right"></div>
</div>
</details>
</li>
<li class="faqs__list-item">
<details class="faq">
<summary class="faq__summary">
<h3>Why do I need the bridge?</h3>
</summary>
<div class="faq__content">
<p>
API limitations. Chromecast device
discovery requires an mDNS/DNS-SD
implementation, something which
isn't provided by (or possible with)
WebExtension APIs. Communicating
with Chromecast devices require
making TCP connections, which is
also not possible.
</p>
<p>Relevant Firefox bugs:</p>
<ul>
<li>
<a
href="https://bugzilla.mozilla.org/show_bug.cgi?id=1247628"
>bug 1247628 — Enable "TCP
and UDP Socket API" for
WebExtensions</a
>
</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
>
</li>
</ul>
</div>
</details>
</li>
<li class="faqs__list-item">
<details class="faq">
<summary class="faq__summary">
<h3>
Can I install the bridge through a
package manager?
</h3>
</summary>
<div class="faq__content">
<p>
The bridge is available for macOS
and Arch Linux via several third
party packages. The extension is not
bundled with these packages and must
still be installed separately.
</p>
<p class="disclaimer">
Any issues specific to these
packages should be directed to the
respective package maintainers.
</p>
<h4>macOS</h4>
<p>
The bridge is available via
<a href="https://brew.sh"
>Homebrew</a
>
for macOS by running
<code
>brew install --cask
fx-cast-bridge</code
>.
</p>
<h4>Arch Linux (AUR)</h4>
<p>
<code>fx_cast-bin</code>
<a
href="https://aur.archlinux.org/packages/fx_cast-bin"
>https://aur.archlinux.org/packages/fx_cast-bin</a
>
</p>
</div>
</details>
</li>
<li class="faqs__list-item">
<details class="faq">
<summary class="faq__summary">
<h3>
Why aren't my devices being found?
</h3>
</summary>
<div class="faq__content">
<p>
The bridge relies on system services
(Bonjour on Windows/macOS, Avahi on
Linux) to provide device discovery.
If the bridge isn't able to find any
devices, there may be a
configuration issue (either with the
system service or the network).
</p>
<p class="disclaimer">
If you're using Arch Linux, Avahi is
not configured by default to resolve
<code>.local</code> hostnames via
the
<abbr title="Name Service Switch"
>NSS</abbr
>
which is required to resolve
Chromecast device addresses. See
more information
<a
href="https://wiki.archlinux.org/title/avahi#Hostname_resolution"
>here</a
>.
</p>
<p>Other issues include:</p>
<ul>
<li>
The devices you're looking for
may not be compatible. Chrome
also supports a limited number
of apps on some Smart TVs via an
older protocol called
<abbr
title="DIscovery And Launch"
>DIAL</abbr
>
which
<a
href="https://github.com/hensm/fx_cast/issues/7"
>isn't currently
supported</a
>.
</li>
<li>
<p>
Some network configurations
may interfere with mDNS
packets. Virtual machine
network adapters typically
will not work out of the
box, for example.
</p>
</li>
<li>
<p>
There may be an issue with
the bridge causing it to
close unexpectedly. Check
the
<a
href="https://firefox-source-docs.mozilla.org/devtools-user/browser_console/index.html"
>Browser Console</a
>
for error logs and submit a
new issue on GitHub with
some more information (if
necessary).
</p>
</li>
</ul>
</div>
</details>
</li>
<li class="faqs__list-item">
<details class="faq">
<summary class="faq__summary">
<h3>
Why isn't the bridge found when
using the Firefox snap/Flatpak
package?
</h3>
</summary>
<div class="faq__content">
<p>
Whilst running inside a sandboxed
version of Firefox, the extension is
unable to start the bridge by
itself. The bridge must be started
in
<a
href="https://github.com/hensm/fx_cast/#daemon-configuration"
>daemon mode</a
>, and the
<i
>"Enable backup daemon
connection"</i
>
option enabled in the extension.
</p>
</div>
</details>
</li>
<li class="faqs__list-item">
<details class="faq">
<summary class="faq__summary">
<h3>
How do I completely remove the
bridge?
</h3>
</summary>
<div class="faq__content">
<h4>Windows</h4>
<p>
Removing the bridge on Windows
should be as easy as running the
uninstaller found in the control
panel, settings application, or
application directory.
</p>
<p>
To manually uninstall, remove the
following files/directories and
registry keys:
</p>
<ul>
<li>
<code
>C:\Program
Files\fx_cast\</code
>
</li>
<li>
<code
>HKLM\Software\Mozilla\NativeMessagingHosts\fx_cast_bridge</code
>
</li>
<li>
<code
>HKLM\Software\Microsoft\Windows\CurrentVersion\Uninstall\fx_cast_bridge</code
>
</li>
</ul>
<h4>macOS</h4>
<p>
Remove the following
files/directories:
</p>
<ul>
<li>
<code
>/Library/Application
Support/fx_cast/</code
>
</li>
<li>
<code
>/Library/Application
Support/Mozilla/NativeMessagingHosts/fx_cast_bridge.json</code
>
</li>
</ul>
<h4>Linux</h4>
<p class="disclaimer">
For third-party packages, check the
documentation provided by the
package maintainer.
</p>
<p>
On Debian-based systems, remove the
<code>fx-cast-bridge</code>
package, otherwise for Fedora-based
systems, remove the
<code>fx_cast_bridge</code>
package.
</p>
<p>
To manually uninstall, remove the
following files/directories:
</p>
<ul>
<li>
<code>/opt/fx_cast/</code>
</li>
<li>
<code
>/usr/lib/mozilla/native-messaging-hosts/fx_cast_bridge.json</code
>
</li>
<li>
<code
>/usr/lib64/mozilla/native-messaging-hosts/fx_cast_bridge.json</code
>
</li>
</ul>
</div>
</details>
</li>
<li class="faqs__list-item">
<details class="faq">
<summary class="faq__summary">
<h3>
Why is there no sound when casting a
screen or tab?
</h3>
</summary>
<div class="faq__content">
<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.
</p>
<p>Relevant Firefox bugs:</p>
<ul>
<li>
<a
href="https://bugzilla.mozilla.org/show_bug.cgi?id=1391223"
>bug 1391223 — Implement
tabCapture API</a
>
</li>
<li>
<a
href="https://bugzilla.mozilla.org/show_bug.cgi?id=1541425"
>bug 1541425 — Implement
audio capture for
getDisplayMedia</a
>
</li>
</ul>
</div>
</details>
</li>
<li class="faqs__list-item">
<details class="faq">
<summary class="faq__summary">
<h3>Why doesn't 𝑥 site work?</h3>
</summary>
<div class="faq__content">
<p>
Compatibility with Chrome is far
from perfect. Most sites will only
enable their cast support if the
browser reports itself as Chrome, so
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>
The Cast API is also not fully
implemented and has some stubbed
methods. The current implementation
likely also has edge-cases and bugs
which may cause issues.
</p>
<p>
Check the
<a
href="https://github.com/hensm/fx_cast-compat/issues?q=is%3Aissue+label%3Acompat"
>compatibility list</a
>
or if the site is not yet added,
<a
href="https://github.com/hensm/fx_cast-compat/issues/new/choose"
>submit a new compatibility
report issue</a
>.
</p>
</div>
</details>
</li>
<li class="faqs__list-item">
<details class="faq">
<summary class="faq__summary">
<h3>
Why can't I cast DRM-encumbered
media?
</h3>
</summary>
<div class="faq__content">
<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, which may not
always be available.
</p>
</div>
</details>
</li>
<li class="faqs__list-item">
<details class="faq">
<summary class="faq__summary">
<h3>
Why is it taking so long for a full
release?
</h3>
</summary>
<div class="faq__content">
<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).
</p>
</div>
</details>
</li>
<li class="faqs__list-item">
<details class="faq">
<summary class="faq__summary">
<h3>How can I support development?</h3>
</summary>
<div class="faq__content">
<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.
</p>
<hr />
<p>You can also donate via PayPal:</p>
<p>
<a
href="https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=3Z2FTMSG976WN&source=url"
>
<img
src="images/paypal.png"
alt="Donate with PayPal button"
/>
</a>
</p>
</div>
</details>
</li>
</ul>
</div>
</section>
</main>
<footer class="footer">
<div class="page-width">
<a
class="github-link"
href="https://github.com/hensm/fx_cast"
title="Visit GitHub repository"
>
<img
src="icons/GitHub-Mark-32px.png"
srcset="
icons/GitHub-Mark-32px.png,
icons/GitHub-Mark-64px.png 2x,
icons/GitHub-Mark-120px-plus.png 3x
"
alt="GitHub logo"
/>
</a>
</div>
</footer>
</div>
</body>
</html>