ClickToPlugin & ClickToFlash Safari extensions

ClickToPlugin is a lightweight and highly customizable extension that prevents Safari from launching plug-ins automatically, resulting in faster browsing, reduced fan usage, and increased battery life. It replaces every plug-in object by an unobtrusive placeholder that can be clicked to load the embedded content. Further, it can replace many plug-in-based media players by Safari’s native HTML5 media player. ClickToFlash is a restriction of ClickToPlugin that only deals with Flash content.

ClickToPlugin is currently localized in English, French, German, Spanish, Italian, Polish, Turkish, Japanese, Simplified Chinese, and Traditional Chinese.

Feel free to request features and please report bugs by email or on GitHub. However, please read the help page carefully before sending me an email!

Requirements

Acknowledgements

This extension owes its existence and awesomeness to many. I would like to thank

Further, thanks should be given to

Overview of features

Blocking plug-ins

ClickToPlugin prevents Safari from launching plug-ins and replaces every plug-in object by a placeholder labeled by the name of the blocked plug-in (fig. 1). Clicking this placeholder loads the original plug-in object. Which plug-ins are blocked can be specified in the preferences. In addition, ClickToPlugin features several control lists to specify objects that should never be blocked or that should be hidden from view instantly. Check the Settings section for complete details on customizing ClickToPlugin.

Flash placeholder Silverlight placeholder Java placeholder QuickTime placeholder Shockwave placeholder
Figure 1: Examples of placeholders

ClickToPlugin does not block <applet> elements. These elements are used to embed Java applets into web pages and launch a Java plug-in. The reason is that they cannot be blocked.

Replacing plug-ins by HTML5

ClickToPlugin has extensible plug-in-to-HTML5 capabilities. When ClickToPlugin can replace a plug-in objects by an HTML media element, the label of the placeholder is changed accordingly (fig. 2), and a preview image of the media is shown when available. Clicking such a placeholder loads Safari’s native media player (fig. 3).

Media placeholder
Figure 2: Media placeholder
Safari’s media player
Figure 3: Safari’s media player

The original plug-in object can still be loaded by right-clicking the placeholder and choosing “Load Plug-in”, by right-clicking the media player and choosing “Restore Plug-in”, or by using the source selector.

With the default configuration, ClickToPlugin can create HTML5 versions of most plug-in-based players (both on-site and embedded) from the following websites: BBC, Blip.tv, Break, Dailymotion, Facebook, IGN, Metacafe, TED, and YouTube. It can also find audio/video replacements to several generic Flash and Silverlight players, and use existing <audio>/<video> fallback content. Finally, it can replace QuickTime, Windows Media, and DivX plug-in objects by HTML media elements.

Additional functions of the media player

ClickToPlugin’s media player provides additional functions through the shortcut menu or the source selector. It can

  • download a media resource;
  • open a media resource in the QuickTime Player application (requires version ≤ 7.7.1 of the QuickTime plug-in for Safari);
  • ask a specified AirPlay device to play a media resource (requires a compatible AirPlay device, see below);
  • open in a new tab the web page associated with the current track by the replacement script, if any.

The following devices or applications provide AirPlay servers that are known to be compatible with the extension:

  • Apple TV (with software version 4.3 or later);
  • AirServer;
  • XBMC (listens on port 36667 by default).

Note that there is no streaming involved when ClickToPlugin requests an AirPlay device to play a video: only the video URL is transmitted.

Source selection

A list of all available media sources (for example differing in quality) appears when hovering in the top left corner of a media placeholder (fig. 4 left) or the media player (fig. 4 center). On a media placeholder, clicking a source loads that source in the HTML5 media player. In the media player, clicking a source loads that source and jumps to the current playback time if the media is seekable. When right-clicking a source, the “Download Video”, “Open in QuickTime Player”, and “Send via AirPlay” commands apply to that particular source.

Source selector on placeholder Source selector on video element Source selector on placeholder with no default source
Figure 4: The source selector

When sources are available to play with the HTML5 player but the settings prevent any of them from being used by default, an asterisk appears on the placeholder’s badge to indicate that alternative media sources are available (fig. 4 right).

Playlists

ClickToPlugin can load whole playlists into the media player. With the default configuration, it will do so for various types of YouTube playlists and some generic Flash players. When a playlist is used, additional controls appear to navigate the playlist (fig. 5), and a track selector is accessible through a customizable shortcut. The track selector is a normal HTML <select> element and behaves as such.

Playlist controls
Figure 5: Playlist controls

Settings

ClickToPlugin uses a custom interface for its preferences. It can be accessed in three ways: from the Extension tab in Safari’s preferences, using an optional shortcut menu item, or using a customizable keyboard shortcut. The preference window overlays the current page, except if the top document is an HTML4 frameset document, in which case it opens in a new tab instead.

When the preference window is standing on top of a web page, you can dismiss it by clicking outside it (this click does not affect the underlying web page), by using the same keyboard shortcut that opens the preference window, or by pressing ⌘W (Command-W).

General

General tab
Placeholder opacity
This slider controls the opacity of the placeholder elements, from invisible to opaque.
Show plug-in source as tooltip
If checked, the source of the blocked plug-in object appears as a tooltip when hovering its placeholder.
Allow invisible plug-ins
If checked, plug-in objects whose height and width do not exceed 8 pixels will be loaded automatically.
Block plug-ins manually
If checked, a dialog asks for confirmation before blocking any plug-in object. This dialog contains the following information about the object: the name of the plug-in that Safari will use for it (Flash, Silverlight, etc.), its location, its source, its position within its document, and its size. Further, a command “Get Plug-in Info” is added to the shortcut menu of placeholders.
sIFR text policy [Show text only | Treat as regular Flash | Load automatically]
sIFR is a pre-CSS3 technology for displaying advanced typography on the web. It uses Javascript to replace some text elements on the page by text-mimicking Flash objects. Choose “Show text only” to disable this process and display the original HTML text.
Plug-in to HTML5 conversion scripts
A list of scripts to be included in the extension’s global page. The default scripts load the built-in killers.
Load plug-in if HTML5 conversion fails
If checked, plug-in object that will not be handled by any killer are loaded automatically.
Use HTML5 media fallbacks
Fallback content is HTML code within an <object> tag designed to be used by the browser in case it lacks a plug-in to handle the object. If checked, plug-in objects with <audio> or <video> fallback content will behave as if the required plug-in was not installed.
Use a download manager
If checked, the “Download Video” command sends the video file to a download manager. This works with Folx, iGetter, Speed Download, and possibly more.
AirPlay device hostname
Specify the hostname or IP address of an AirPlay device, and optionally a port number (which defaults to 7000). An Apple TV’s hostname is obtained from the Apple TV’s name (found in Settings > General > Name) by replacing spaces by hyphens and appending .local. For example, the Apple TV “Living Room Apple TV” has hostname living-room-apple-tv.local; to use the XBMC server on that Apple TV instead of the built-in server, you would use living-room-apple-tv.local:36667.
AirPlay password
Specify a password to use with AirPlay. For an Apple TV, this is the password set in Settings > AirPlay > Set Password (it is empty by default).

Plug-ins

Plug-ins tab

In this tab you can specify which plug-ins are not blocked by ClickToPlugin.

Control lists

Control lists tab

A line in a control list matches a URL if either

The first two control lists are the whitelists and the latter two the blacklists. A pair of lists matches a given plug-in object if either

When an instance of a plug-in that is not selected under the “Plug-ins” tab is about to be loaded in a document, ClickToPlugin blocks it unless either

If a plug-in object is blocked, then ClickToPlugin further removes it from the document if either

Media player

Media player tab
Default media player [HTML5 | Plug-in | QuickTime Player | AirPlay]
Choose which media player to load when directly clicking a placeholder. Nondefault players can be loaded through the source selector or the shortcut menu, neither of which is affected by this setting.
Load media player automatically
If checked, ClickToPlugin automatically replaces blocked elements by HTML5 media elements when available, without waiting for the user to click a placeholder.
Show preview image
If checked, a preview image of the video is shown on the placeholder.

The next two settings control ClickToPlugin’s choice of default source to be used when the placeholder is clicked. Other sources can only be loaded from the source selector.

Default resolution [240p | 360p | 480p | 720p | 1080p | 4K]
If possible, ClickToPlugin will choose a default source with the highest available resolution not exceeding the default resolution.
Nonnative formats policy [Never use as default | Use only as a last resort | Use freely]
Prescribe whether ClickToPlugin considers media files that will use third-party QuickTime components to play. If “Use only as a last resort” is selected, ClickToPlugin does not choose such a source for default unless there are no natively playable source available. If “Use freely” is selected, ClickToPlugin uses the highest-quality source regardless of its format.
Initial behavior [Do not preload | Preload | Autoplay]
Choose whether ClickToPlugin creates media elements with the preload attribute set to none, to auto, or with the autoplay attribute. With the “Do not preload” option selected, the video only starts buffering when the “Play” button is clicked.
Instant autoplay
Check this (regardless of the previous setting) if your internet connection can download videos in real time or faster. This overrides Safari’s default autoplay behavior which is to initiate playback when the canplaythrough event is fired; instead playback will begin as soon as possible.
Include media sources
Check this to be able to select and switch between available sources using the source selector.
Include plug-in
Clicking the name of the plug-in in the source selector restores the blocked plug-in object.
Include the video’s web page
Clicking this item in the source selector opens the video’s dedicated web page in a new tab.
Include QuickTime Player
Clicking “QT Player” in the source selector opens the current track in QuickTime Player.
Include AirPlay
Clicking “AirPlay” in the source selector asks the specified AirPlay device to play the current track’s URL.
Hide “Rewind” button
If checked, the “Rewind” button in the default HTML5 media controls is removed.
Sound volume
Sets the initial volume of media elements created by ClickToPlugin.
Autoplay on these sites
If a line in this list matches a tab’s URL, ClickToPlugin behaves in this tab as if the “Load media player automatically” box were checked and the “Initial behavior” pop-up button were set to “Autoplay”.

Shortcut menu

Shortcut menu tab

In this tab you can choose which commands can appear in the shortcut menu (or contextual menu). Even if selected, a command does not appear in the shortcut menu if it cannot be used at that time. Moreover, when right-clicking a placeholder, only the commands that apply specifically to the targeted element appear.

Always Allow
This command reads “Always Allow” on placeholders and and “Allow Plug-ins on Domain” elsewhere. Choosing it in the first case adds the hierarchical part of the blocked object’s resource URL to the sources whitelist, while in the second case it adds the domain of the current document to the locations whitelist. In both cases the new whitelists are applied at once.
Always Hide
This command reads “Always Hide” on placeholders and and “Hide Plug-ins on Domain” elsewhere. Choosing it in the first case adds the hierarchical part of the blocked object’s resource URL to the sources blacklist, while in the second case it adds the domain of the current document to the locations blacklist. In both cases the new blacklists are applied at once.
Load All Plug-ins
Loads all blocked plug-in objects in a document. The number of objects to be loaded is indicated in parentheses.
Load Invisible Plug-ins
A plug-in object is considered invisible if its height and width do not exceed 8 pixels. The number of objects to be loaded is indicated in parentheses.

The following four shortcut menu items can appear on media placeholders or media players.

View on Site
Opens the video’s dedicated web page in a new tab. With the default killers, this command applies to embedded Blip.tv, Break, Dailymotion, Facebook, Metacafe, TED, YouTube videos, and more.
Download Video
Downloads the current track.
Open in QuickTime Player
Opens the current track in the QuickTime Player application.
Send via AirPlay
Sends a request to the specified AirPlay device asking to play the current track’s URL.
ClickToPlugin Preferences
This command brings up the preference window. It can only be disabled if a keyboard shortcut is set for the same action.
Disable/Enable ClickToPlugin
After disabling ClickToPlugin using this command, new pages are unaffected by ClickToPlugin. The active tab is reloaded, while ClickToPlugin continues to work normally in other existing tabs. Enabling ClickToPlugin has the opposite effect.

Keyboard shortcuts

Keyboard shortcuts tab

To set a keyboard shortcut, click in the text field and type the desired shortcut. The four modifier keys (Shift), (Control), (Option), and (Command) can be used. To set a mouse shortcut, hover the mouse pointer over the square to the right of the text field, and perform the desired mouse action. The left button, middle button, and mouse wheel can be used, possibly with modifier keys.

Clearing a shortcut prevents ClickToPlugin from registering a listener to this shortcut.

Some shortcuts will not work while watching a video in fullscreen mode. If applicable, the “Enter fullscreen” shortcut can be used to exit fullscreen. The (Escape) key can also be used to exit fullscreen.

Release Notes

Version 2.9.8 ()
  • The HLS streams provided by the MTVNetworks killer now include 720p sources
  • Removed a directive in the YouTube killer that caused problems on OS X 10.10
Version 2.9.7 ()
  • Fixed MTVNetworks killer (it now uses HLS streams since the complete video files were removed)
  • Fixed parsing of YouTube playlists with more than 100 videos
Version 2.9.6 ()
  • Fixed media player CSS for Safari 7.1/8 and the WebKit nightlies
Version 2.9.5 ()
  • Fixed an issue that prevented ClickToPlugin from opening QuickTime Player on older versions of OS X
  • Catalan localization by Pau Sellés i Garcia
Version 2.9.4 ()
  • Fixed a bug which prevented some plug-ins from being whitelisted
  • Updated MTVNetworks killer
Version 2.9.3 ()
  • Fixed an issue which sometimes caused the placeholders to have incorrect dimensions
  • Updates to the BBC, MTVNetworks, TED, and YouTube killers
  • Removed obsolete Break killer
Version 2.9.2 ()
  • Updates to the MTVNetworks, TED, and YouTube killers
Version 2.9.1 ()
  • Minor updates to the BBC, MTVNetworks, and YouTube killers
  • The “Autoplay on these sites” list now matches the tab’s URL rather than the document’s URL (this allows the list to apply to YouTube videos embedded on a given site, for example)
  • Changing the track in a playlist using the track selector or a keyboard shortcut does not force autoplay (with “Initial behavior” set to “Do not preload” or “Preload”, this allows selecting tracks for AirPlay without downloading or playing them in Safari)
Version 2.9 ()
  • Updated the YouTube killer with support for 480p FLV, 1080p MP4, and 1440p MP4 videos
  • Updated the generic Flash killer with support for videos from screencast.com (thanks Smokey Ardisson!)
Version 2.8.9 ()
  • Updated YouTube killer (fixes #41)
  • Removed Vimeo killer, since Vimeo has now completely switched to HTML5
Version 2.8.8 ()
  • “Send via AirPlay” remembers the current playback position in Safari (thanks Rafal Nowosielski!)
  • Fixed an incompatibility between the “Disable/Enable ClickToPlugin” commands and the YouTube killer
  • Updated Break killer
Version 2.8.7 ()
  • Improved Facebook and Flash killers
Version 2.8.6 ()
  • Minor fixes to the Flash and YouTube killers
Version 2.8.5 ()
  • Fixed a bug that broke the extension in recent versions of WebKit (thanks Jason!)
  • Fixed Break killer
  • Polish localization by Arkadiusz Fal
Version 2.8.4 ()
  • The script killers/YouTube.js now performs two additional tasks:
    • It prevents YouTube from removing the Flash player, allowing ClickToPlugin’s HTML5 replacements to be used without the Flash plug-in (this was previously accomplished by the YouTube Flash Proxy extension)
    • It disables YouTube’s experimental Ajax-based loading mechanism for /watch pages (which is mostly useless if the Flash player is not used) (thanks Maxime Michel!)
  • The YouTube killer now supports live M3U8 streams
Version 2.8.3 ()
  • Fixed a bug affecting Safari 5.0.6 that could result in an infinite loop on some pages (thanks Dan!)
  • The media player now shows the status display (e.g. the “Loading…” text) provided by Safari, rather than a custom one
Version 2.8.2 ()
  • Updated YouTube killer
Version 2.8.1 ()
  • Internal WebKit plug-ins are not listed in the “Plug-ins” tab anymore (they are not really plug-ins and cannot be blocked anyway)
  • Fixed Dailymotion killer
Version 2.8 ()
  • Updated YouTube killer
Version 2.7.9 ()
  • Updated Dailymotion and YouTube killers
Version 2.7.8 ()
  • “Send via AirPlay” should now work with AirServer on both OS X and iOS (thanks Andrew Simmonds!)
  • Updated CSS for Safari 6.1/7 and the WebKit nightlies
  • Updated killers
Version 2.7.7 ()
  • Fixed Break, Dailymotion, and Facebook killers (thanks Josh Rafofsky!)
  • Swapped obsolete Tumblr killer with an IGN killer
Version 2.7.6 ()
  • Updated MTVNetworks and YouTube killers (thanks Stephen DeWidt!)
Version 2.7.5 ()
  • Updated killers: Dailymotion, Facebook, MTVNetworks, Silverlight, Tumblr, and YouTube (thanks Florian Ubr!)
Version 2.7.4 ()
  • ClickToPlugin now works normally in iframes with a javascript: source (this fixes a bug introduced in 2.7.3)
  • Adapted Dailymotion killer to recent site changes
Version 2.7.3 ()
  • Killer fixes and improvements for Blip, Brightcove, Facebook, Flash, TED, and YouTube (thanks Eugene Lee and Arman Vartan!)
  • Fixed: the keyboard shortcuts to load or hide all plug-ins now work even if the top frame contains no plug-ins
  • To work around a rare Safari bug, ClickToPlugin now blocks all resources in frames where safari is undefined (thanks Mark Irwin and Brian Mastenbrook!)
Version 2.7.2 ()
  • Updated killers
Version 2.7.1 ()
  • Fixed a bug where the track selector would select incorrect tracks while the playlist was still loading
  • YouTube killer: removed useless 360p FLV format
Version 2.2.9 ()
  • Updated all killers
Version 2.7 ()
  • Updated killers:
    • Dailymotion: fixed replacement of embedded videos
    • Flash: replaces more Flash objects
    • YouTube: fixed broken video URLs caused by an ongoing YouTube update (thanks Matthew Rosen!)
  • Includes new killer for HTML5-enabled Brightcove videos
Version 2.6.9 ()
  • The Vimeo killer is back (thanks Andrew Simmonds!)
  • Various fixes to the MTVNetworks killer (provides HTML5 videos on colbertnation.com, comedycentral.com, gametrailers.com, mtv.com, southparkstudios.com, and thedailyshow.com)
  • Italian localization by Vincenzo Boiano
Version 2.6.8 ()
  • The AirPlay feature is now compatible with XBMC
Version 2.6.7 ()
  • Fixed CSS bug affecting the media player volume slider in playlists
Version 2.6.6 ()
  • It is now possible to set both a keyboard and a mouse shortcut for the same task
  • The default AirPlay port can be overridden in the AirPlay device hostname
  • Fixed TED killer
  • Removed Vimeo killer since it does not work with the redesigned Vimeo
  • Fixed Disable/Enable mechanism in Safari 6
  • Fixed media player button layout in Safari 6
Version 2.6.5 ()
  • The AirPlay feature now works with the current Apple TV software (thanks Andreas Treichel!)
  • MTVNetworks killer: fix for HTML5 replacements on thedailyshow.com (thanks Paul Grave!)
Version 2.6.4 ()
  • Minor fixes to the YouTube killer
Version 2.6.3 ()
  • New killer for videos from collegehumor.com
  • Removed broken IGN killer
Version 2.6.2 ()
  • Fixed the “Open in QuickTime Player” function in WebKit (thanks Giorgio Calderolla!)
  • Facebook killer: fix HTML5 replacement of embedded Facebook videos
Version 2.6.1 ()
  • Fixes display of video titles in WebKit
  • Includes Turkish localization by Taylan Tunç
Version 2.6 ()
  • Includes new killers for Flash videos from ign.com, 1up.com, bbc.co.uk, mtv.com, colbertnation.com, thedailyshow.com, gametrailers.com, southparkstudios.com, and comedycentral.com (thanks Paul Grave!)
  • Fixed TED killer
Version 2.5.7 ()
  • YouTube killer: fixed a typo that prevented videos from loading in rare cases
Version 2.5.6 ()
  • Improved support for seek-to links on YouTube
  • Added checkbox to open the settings from Safari’s preferences
Version 2.5.5 ()
  • Fixed CSS for the WebKit nightly builds (thanks Mark Rowe!)
  • Support for seek-to links and URLs on YouTube (thanks Alexey Ermakov!)
Version 2.5.4 ()
  • Fixed saving of checkbox states in the WebKit nightly builds (thanks Rickey Chang!)
  • Fixed a bug where ClickToPlugin did not detect that a QuickTime object would launch QuickTime Player (thanks Jussi Hagman!)
  • Fixed Blip.tv killer (thanks gkaindl!)
Version 2.5.3 ()
  • Minor update to the YouTube killer
Version 2.5.2 ()
  • AirPlay support (thanks Eric Dubiel!)
    • Videos in ClickToPlugin’s media player can be viewed instantly on a specified Apple TV
    • New “Send via AirPlay” shortcut menu item
    • New “AirPlay” item in the source selector
  • Added an option to automatically load plug-ins that killers cannot handle
  • Fixed a bug that made a video start playing on canplaythrough even if it was previously paused by the user
Version 2.5.1 ()
  • Updates the list of killers in the preferences
  • Killers are guaranteed to be added in the specified order (this allows remote killers to take precedence over local killers if necessary)
  • Fixed a minor track ordering bug in the track selector
  • YouTube killer: support for SP playlists
Version 2.5 ()
  • Major code refactoring, including:
    • The extension’s core was rewritten from scratch based on the new plug-in handling mechanism in Safari 5.1
    • Improved code structure and readability
    • Merged event listeners and removed unnecessary closures
    • The extension now runs in strict mode
  • The track title in the media player is now also a track selector
  • The media player has a new “Instant autoplay” setting for fast connections
  • The “View on …” functionality for embedded videos is now also available in the source selector
  • YouTube killer: support for UL (user) and AV (artist) playlists
  • Break killer: support for the new on-site Flash player
  • Removed the QuickTime, Windows Media, and DivX killers in favor of a single killer that can replace any HTML5-playable embedded media
  • The “Loading…” text in the media player is correctly localized
  • German localization by Andreas Treichel
Version 2.4.1 ()
  • YouTube killer: fixed a typo introduced in 2.4 that prevented videos from loading when contained in certain types of playlists (thanks Ast A. Moore!)
Version 2.2.8 ()
  • Includes updated killers from 2.4.1
Version 2.4 ()
  • It is now possible to add killers to the extension (some new killers are available in the killers database)
  • Improved killers
  • Cosmetic improvements to the preference window
Version 2.2.7 ()
  • Includes updated killers from 2.4
Version 2.3.3 ()
  • Fixed YouTube HTML5 replacements
  • Spanish localization by aONe
  • Traditional Chinese, Simplified Chinese, and Japanese localizations by Eric Woo
Version 2.3.2 ()
  • The commands to add a domain to a control list are now hidden if the current page is already matched
  • Fixed: the keyboard shortcut to bring up the preferences would not work in some iframes
  • Fixed titles of Blip.tv videos
  • Minor cosmetic improvements to the preference window
Version 2.3.1 ()
  • Fixed: <object> tags with a classid attribute are not blocked anymore since Safari ignores them
  • New option to download videos using a download manager
Version 2.3 ()
  • HTML5 replacements for TED videos
  • HTML5 playlists now use native controls
  • Fixed fullscreen video controls in Safari 5.1
  • Fixes for YouTube, Dailymotion, and Blip.tv killers
Version 2.2.6 ()
  • Fixes for YouTube, Dailymotion, Facebook, Blip.tv, and Megavideo killers
  • Removed Veoh killer since Perian 1.2.2 dropped support for the required video format
  • Keyboard shortcut for whitelisting
Version 2.2.5 ()
  • Replaces more Facebook videos
  • Fixed: whitelisted plug-ins could change from session to session (thanks Valerio Garzo!)
  • Worked around a bug in the WebKit nightly builds that made the whitelists uneditable (thanks Manuel Schülke!)
Version 2.2.4 ()
  • Updating from < 2.2 to 2.2.3 with nonempty whitelists would make the preference window inaccessible
Version 2.2.3 ()
  • Support for embedded Facebook videos
  • Adapted Blip.tv HTML5 replacements to site changes
  • The hidden setting for the “ClickToPlugin Preferences” shortcut menu item can now be set in the preference window
  • Restored the “Initial behavior” setting for the HTML5 media player
  • The preference window works on HTML4 frameset documents by opening in a new tab
  • The preference window is scrollable if it overflows the enclosing window
  • Some parts of the extension would not work as expected on documents with MIME type application/xhtml+xml
  • The preference window would become inaccessible when previously whitelisted plug-ins were uninstalled
  • MIDI audio files, not playable in QuickTime X, are not considered for HTML5 replacements anymore (thanks Ed Floden!)
Version 2.2.2 ()
  • Fixed an issue that could cause the release notes to pop up on every launch (thanks Matt Neuburg!)
Version 2.2.1 ()
  • Fix for Facebook’s ever changing video player URL
Version 2.2 ()
  • The extension’s preferences are now on their own HTML page accessible through the shortcut menu
  • Simplified plug-in whitelisting system
  • Perfected plug-in detection system: takes into account the data: URI protocol and uses MIME type sniffing as a last resort, following WebKit’s internal mechanism
  • New blacklists to permanently hide plug-ins
  • Customizable keyboard and mouse shortcuts for media playback and other actions
  • HTML5 replacements for Facebook videos
  • Revamped playlist controls
  • Safari’s incomplete volume slider for HTML5 media elements can be used (you can see the finalized slider in the WebKit nightlies)
  • The title of the video can be shown in the controls
  • The HTML structure of the placeholder elements has been simplified using CSS3 flex boxes
  • Complete CSS overhaul
  • All localizations will now be bundled within the same extension
  • Fixed HTML5 video aspect ratio issues using shadow DOM styling
  • Fixed Megavideo and Veoh HTML5 replacements
  • The “Show text only” sIFR setting could cause web pages to display incorrectly
Version 2.1.4 ()
  • Fixed loading of embedded YouTube videos
Version 2.1.3 ()
  • Support for YouTube’s /e/ embeds
  • Revamped killer for generic Flash players
  • Can download a video by Option-clicking in the source selector
Version 2.1.2 ()
  • Fixed incorrect CSS that caused the labels to render incorrectly in recent versions of WebKit (thanks Jon Shier!)
Version 2.1.1 ()
  • Fixed Vimeo replacements
  • Support for Vimeo’s 1080p
  • New keyboard shortcut ⌃⌘A to load all Flash in the frontmost window
Version 2.1 ()
  • Much improved CSS for the source selector (thanks Roberto!)
  • The “Show preview image” setting is now hidden
Version 2.0 ()
  • Revamped whitelisting system for plug-ins
  • When several video sources are available, it is now possible to switch between them
  • Various killer fixes
  • Revamped settings
  • New shortcut menu item to temporarily disable ClickToPlugin
Version 1.6.2 ()
  • Broadcast Interactive Media and Megavideo killers
  • Fixed: Flash videos on collegehumor.com could be incorrectly replaced by Vimeo videos (thanks Josh Rafofsky!)
Version 1.6.1 ()
  • Fixed: YouTube’s iframe embeds were not replaced anymore (thanks Michael Wren!)
Version 1.6 ()
  • New killers: Blip.tv, Break, Metacafe, Tumblr, and more!
Version 1.5.7 ()
  • Worked around a bug in Safari 5.0.3 that broke video replacements when Flash was not installed
Version 1.5.6 ()
  • Fixed a placeholder layout issue affecting notably Google Street View (thanks Joe Strzemp!)
  • Fixed a typo affecting replacement of some embedded Vimeo videos
Version 1.5.5 ()
  • Some previously unreplaced Vimeo videos are now available in HTML5
  • All event listeners are registered using the addEventListener method, to avoid conflicts with other scripts (thanks Josh Rafofsky!)
Version 1.5.4 ()
  • Fixed a typo that caused videos to download needlessly in the background when there were several Vimeo videos on a page (thanks Pedro!)
Version 1.5.3 ()
  • Fixed a bug introduced in 1.5.2 that could cause whitelisted elements to be blocked
Version 1.5.2 ()
  • Added “Load Invisible Flash” shortcut menu item
  • Fixed a bug that could cause video elements to have size 0×0
Version 1.5.1 ()
  • Better plug-in detection based on WebKit’s internal mechanism
  • Fixed a bug that could cause the “Load All Flash” function to remove blocked elements
  • Fixed incorrect rendering of placeholder elements of size ≤ 1px that could break pixel-perfect layouts
  • Video replacement support for the SWFObject Flash player
Version 1.5 ()
  • Video files downloaded from YouTube are named by the title of the video
  • Removed download links in favor of an optional shortcut menu item (enabled by default)
  • Bumped version number because it was getting out of control!
Version 1.4.9 ()
  • Fixed loading of long playlists with missing tracks
Version 1.4.8 ()
  • Clicking a download link downloads the video directly
  • Displays the blocked element’s source as a tooltip when hovering a placeholder
  • Placeholders inherit CSS box model and positioning properties of the blocked element to preserve page layout
  • Fixed progressive loading of playlists
Version 1.4.7 ()
  • Does not block <applet> elements anymore
  • Eradicated all listeners to mutation events from the extension
  • Fixed broken CSS introduced in 1.4.6
Version 1.4.6 ()
  • Whitelists now use spaces as separators (they are automatically updated)
  • More successful video replacements for generic Flash players
  • Does not replace streaming YouTube videos by nonfunctional video elements anymore
  • Improved performance and correctness of whitelist parsing
  • Fixed Flash not being loadable on some websites that use placeholders for their Flash objects and listen to click events from parent elements
Version 1.4.5 ()
  • Fixed a bug introduced in 1.4.4 that could create several placeholder elements for the same blocked element
Version 1.4.4 ()
  • Fixed Flash elements not showing up or not behaving properly when restored, in particular in those instances where the original ClickToFlash plugin works but this extension did not
  • CSS has been completely rewritten to be more effective
  • Worked around a bug in Safari that changed the aspect ratio of the video element when using full-page zoom (thanks Adrian Luff!)
  • Fixed: some embedded Vimeo videos were not being replaced
Version 1.4.3 ()
  • Fixed a typo affecting source blacklisting (thanks Marc Saurfelt!)
  • Improved CSS to better override author stylesheets
Version 1.4.2 ()
  • Fixed: CSS of download links was broken in 1.4.1
Version 1.4.1 ()
  • Fixed handling of QuickTime objects calling QuickTime Player (regression introduced in 1.4)
Version 1.4 ()
  • Improved plug-in detection
  • Preview images on video placeholders
  • Direct link to the video at the bottom of video placeholders
  • The setting to load the video player automatically is now a whitelist
  • Lighter placeholders
  • Improved CSS of video elements (controls stay at the bottom)
  • Adding a location or source to the whitelist loads the targeted content at once
  • Support for YouTube’s future on-site player
  • Support for Vimeo’s new universal player
  • Higher-quality poster images for Dailymotion videos
  • Fixed Vimeo’s SD video URLs: they now correctly points to the 360p version in all cases
  • Fixed relative URL resolution
  • Fixed a vulnerability that would allow invalid HTML to bypass ClickToPlugin’s blocking
Version 1.3.3 ()
  • To download a video directly, move the mouse cursor up from the play/pause button to reveal a link
  • Added a slider to control the opacity of the placeholder elements
  • Most shortcut menu items are now optional
  • Added “View in QuickTime Player” shortcut menu item
  • Tweaked the CSS so that inline objects remain inline (thanks Roberto!)
Version 1.3.2 ()
  • The “Load All Flash” shortcut menu item is hidden if there is no blocked Flash on the page
  • “View on YouTube” works for playlists
  • Fixed a few unfortunate typos affecting playlist controls
  • Fixed: volume setting became ineffective in 1.3
Version 1.3.1 ()
  • Added a shortcut menu item to view an embedded video from YouTube, Vimeo, Dailymotion, or Veoh on the main website
  • Fixed more: some embedded YouTube videos were not being replaced
Version 1.3 ()
  • Playlist support for YouTube and the JW Player
  • Added a shortcut menu item to download the video file
  • Fixed: some embedded YouTube videos were not being replaced
Version 1.2.1 ()
  • Improved handling of QuickTime objects
Version 1.2 ()
  • Safari’s native MIME types are not blocked anymore
  • Can now replace Silverlight, QuickTime, and Windows Media content by HTML5 videos
  • Fixed invisible elements whitelisting
  • Code optimization made possible by the disappearance of a bug in Safari 5.0.1
Version 1.1.1 ()
  • Fixed a stupid typo in the code
Version 1.1 ()
  • Added support for Veoh videos (requires Perian)
  • Added a setting to use nonnative codecs only as a last resort
  • Fixed: some embedded Vimeo videos were not being replaced
  • Worked around the fact that Safari would load fallback content upon restoring an object if fallback content was being used when it was removed
Version 1.0.1 ()
  • Fixed potential compatibility issues by trying not to block objects created by other extensions
Version 1.0 ()
  • Initial release
  • Extension icon by Ast A. Moore