Main | Download | FAQ | Documentation
MuteTab Frequently Asked Questions
Contents:
General
Q: What is MuteTab?
A: MuteTab is a Chrome extension that helps you manage the sound coming from tabs in Google Chrome. It helps you to find which tab(s) are making sounds and
provides browser-wide management of tab muting, including automatically muting all background tabs. It does its best to allow this while working around weaknesses
in some plug-in implementations (most notably Adobe Flash).
Q: How does it work (ignoring the weaknesses and the working around them for now)?
A: All sounds in modern browsers such as Chrome are made by plug-ins such as Flash, Silverlight, QuickTime, etc. (expressed in HTML as <object> or <embed>), Java applets (<applet>), or HTML5 audio/video (<audio>, <video>).
The extension scans open webpages for these tags. If configured, webpages that include any of these tags that are making sound will have their tab icon changed to the MuteTab icon (

) to make it easier
to see which tabs play sound. Also, the extension collects a centralized list of the found sound source tags.
A user can see this list by clicking on the MuteTab extension icon.
There, they are given links to mute or perform other operations (individually or collectively) on the sound sources.
A similar menu is shown
by right clicking within the webpage and clicking on the MuteTab context menu.
A user can also configure the extension to automatically mute all tabs but the current one as they browse to ensure they never have to spend time tracking down a sound.
See the
user documentation for specific instructions.
Q: What are these plug-in weaknesses?
A: There are two issues that make controlling sound in the browser more complicated than it needs to be:
- It is not possible to tell when most audio sources make sound or even if they ever do.
- Not everything that makes sound can be muted.
These issues come about because Google Chrome (and I believe all browsers that support plug-ins other than Internet Explorer) runs a shared instance of plug-ins for all open tabs/windows and some plug-ins
(most notably Flash) do not provide a generic ability to mute individual instances. This extension provides work arounds for this issue which results in sound management tasks being a little more complicated and sometimes impossible.
Q: How does MuteTab work around not being able to tell when audio sources make sound or if they ever do?
A: Instead of showing audio sources, MuteTab shows possible audio sources. This means that tabs that use the MuteTab icon (

) and tabs that show up in the extension popup only _might_ play sound and only _might_ be
playing sound at the moment. As a result, the list will include false positives (i.e. tabs are listed because they might make sound yet they do not). The number of false positives can be reduced by running AdBlock or AdBlock Plus to strip out ads.
Q: How does MuteTab work around not everything that can make sound being mutable?
A: If a sound source does not have a JavaScript method for muting (which is true for most Flash files), MuteTab will mute it by using its Block operation to hide the element from the page. Unfortunately,
when this happens, the running sound source will be restarted from scratch when the sound is restored (via the Unblock operation). This makes blocking 'unsafe' if running a game or video since you cannot easily restore to where you left off. Thus, whenever the user wants to mute something, he needs to decide if he wants to do so in a safe or an unsafe manner. If he tries to mute something safely but doing so is not possible, then the sound will continue playing.
Q: What will it take for these browser/plug-in weaknesses to go away?
A: I can imagine a few possible scenarios in which this happens:
- The biggest help would be for Adobe to update their Flash plug-in to have Javascript APIs that allow controlling and detecting when sound plays.
They do offer some JavaScript methods (Play() and StopPlay() among them) but there are several ways to create sound within a Flash file via ActionScript, and those commands don't affect the most common ways.
The Chrome team is working on a new plug-in framework called Pepper2 which will provide standard JavaScript audio APIs for controlling and detecting when sound plays.
The only mention of even acknowledging Pepper2 or adding a JavaScript API I've seen from Adobe is found here. If Adobe would implement JavaScript sound APIs in Flash (ideally via Pepper2), browser sound management would become a lot cleaner.
- Chrome could be modified to launch a new Flash instance for every tab (like Internet Explorer does). You wouldn't be able to tell which plug-in instances on a tab are making sound or control them individually, but you would have control over the tab as a whole (using the mixer for recent versions of Windows, Audio Hijack on the Mac, or more likely APIs that programmatically return the same information. Unfortunately, this would greatly increase Chrome's memory footprint, which I would think would be at odds with Chrome's design philosophy, so this seems unlikely to me.
- An open source Flash player could be created that is fully compatible and also allows muting/unmuting via JavaScript. Wikipedia has a list of current attempts for Flash player alternatives. None of these work well enough as a Flash replacement (although maybe there is a way to use these Flash players for a subset of Flash files that they do work well with?) and since Flash is proprietary I imagine it is difficult to do well.
- There may be a solution for this which involves decompiling Flash. Basically, if a Chrome extension would forward URLs to an external server which runs an SWF decompiler, it could decompile, modify the ActionScript to provide a JavaScript mute method and have that mute affect all sound-generating code, and then recompile and serve up the new SWF. Unfortunately, no SWF decompiler works perfectly (although this may work for SWF files of certain versions), there is questionable legality for decompiling other peoples' Flash files, and getting a cloud license for a proprietary Flash decompiler may be expensive or impossible. Also, the use of an external server involves loss in privacy to end users and bandwidth/storage costs to whoever provides it.
- If more of the web switches from Flash to HTML5 or if more Flash players provide nice JavaScript audio APIs (like YouTube does) then the weaknesses would become less relevant for this extension.
In my opinion, the first scenario is most desirable and the first, last, or no improvement are the most likely.
Q: What improvements can be made to this extension to make up for these weaknesses?
A: I have a few ideas about how to further remove false positives that could maybe show up in a future version. These include:
- Some audio sources provide JavaScript APIs to indicate the current state, including if it is playing and the current volume. Support could be added for this.
- Could create whitelist/blacklist-like AdBlock lists (either shared or individual) to indicate which plug-in instances play sound and have the extension make use of it
- Could autopopulate such a list by writing a server that automatically decompiles plug-in files and determines if they play sound or not. (Decompiling may always be able to extract all ActionScript to determine if it can make sound, but legal, privacy, and server costs remain issues.)
- Could provide an option to not include (blocked) audio sources in the list. This would greatly reduce the list when using FlashBlock.
The mute safe/unsafe UI could be simplified by only presenting a single operation in the list and showing a dialog to ask the user if they want to do an unsafe mute for audio sources that won't safely mute.
Q: Are there any known issues in this extension?
A: Yes. :( As of July 2011, this extension is fairly new to the public so people are sure to run into issues. Please give me feedback at mutetabextension at gmail.com. I am releasing this now (despite issues) to find out if this is something people are interested in and if it is worth me investing further effort into.
Here is a list of more major bugs:
- When you click on the icon, it doesn't always show the full list. Sometimes you have to click it again to see the recently-added possible sound sources or to have them not say 'blocked'
- Clean up the display so that text doesn't overwrite itself in the popup menu
- Sometimes a tag will be set in a way that isn't detected. Let me know the URL where you find this (some can be found in Appendix B of the documentation.)
- Sometimes a video will show as a black box and won't load. Let me know the URL where you find this.
Usage
Q: How do I install the extension?
Q: What is the difference between "Mute (Safe)", "Mute (Unsafe)", and "Mute"?
A: The Mute operation just sets the volume to zero but will let the sound source continue to play.
The other two Mute operations will first try to pause and if that doesn't work will try to mute.
Mute (Unsafe) differs from Mute (Safe) in that it will actually hide a sound source from the page if pause
and mute aren't supported (which is primarily the case for Flash files with no JavaScript API). It is
called unsafe because hiding from the page means that when sound is restored, it will have to start a
video or game from the beginning. If you mute (safe) something that can't be paused or muted, it
won't actually do anything.
Q: Why do Gmail and Facebook show up as possible sound sources?
A: Their chat clients will make a sound when you receive a message.
Q: Why do some YouTube and Vimeo videos flicker on load?
A: To allow using methods that will 'safely' mute these videos, it is sometimes necessary to modify the HTML to allow local scripting. For an unknown reason, this new HTML would only be applied after blocking and unblocking it.
Related extensions
Q: I'm playing a Flash game but it doesn't have a mute button. Is there an extension that will let me play it muted while I listen to background music / video coming from another tab?
A: Unfortunately, no. I spent some time looking into solving this problem but it likely requires action on Adobe's part or an unlikely major redesign of how Chrome runs
plugins.
I think the best workaround for this problem is to run one Flash file in Chrome and the other in FireFox/IE/Safari/Opera. Or open them both in Internet Explorer. You can then control the volume for each process separately, in different ways depending on the operating system. (For more recent versions of Windows, you can double click on the volume icon in the system tray to launch the mixer; an entry will be shown for each process allowing you to modify its volume. For Macs, I have heard that Audio Hijack can do this.)
Q: Is there an extension that blocks certain plug-in instances completely?
Q: Is there an extension that prevent tabs from making sound until the user requests it?
A: Yes, there are several. There is
Stop AutoPlay,
FlashBlock,
NotScripts and also built-in Chrome plug-in blocking. If also using this extension, FlashBlock is preferred since sound sources blocked by it will be shown as (blocked).
Note that while many people rely on these extensions to solve their sound control needs, these extensions can't help you find a tab after you unblocked it and allowed it to run in the background.
Q: Is there an extension that mutes all Flash browser-wide (without blocking)?
A: The
Google Chrome ToolBox does this but only for Vista and newer versions of Windows.
You can also do this by changing the volume for the entire Chrome process (via the Sound Mixer in recent versions of Windows and Audio Hijack for Macs.)
Q: Is there an extension that allows controlling the volume of different tabs?
A: No. But perhaps a future version of this extension will support it (although it would only work for sound sources that have JavaScript APIs).
Do you have another question or have feedback on a provided answer? Send feedback to mutetabextension at gmail.com