Site Compatibility for Firefox 23

Firefox 23 was released on . While it has been developed to maintain compatibility as much as possible, the new version includes some changes affecting backward compatibility aimed at improving interoperability with the other browsers or following the latest Web standards. Here's the list of such changes — Hope this helps whenever you test your sites or applications.

This article only explains the changes that may affect backward compatibility for Websites. For the other new features and changes, please read the following documents:

Follow @FxSiteCompat on Twitter for further updates.


Firefox previously supported the Netscape-derived blink effect with the blink keyword for the CSS text-decoration property as well as the HTML <blink> element and the DOM String.blink method. Starting with Firefox 23, the blink effect no longer works. While text-decoration:blink continues to be supported by the CSS parser and the DOM APIs, the HTML parser has dropped the <blink> element support, thus the element will be treated as an unknown element. Internet Explorer, Chrome and Safari haven't supported the effect. Opera may also drop the support once it switches to the Blink rendering engine.


The ability to add a sidebar panel has been dropped

window.sidebar.addPanel and window.sidebar.addPersistentPanel are no longer supported. These methods were a part of a Netscape-derived API which allowed Web publishers to integrate their contents as sidebar panels of the browser. They were not standardized, rarely used, and not very well supported. No other browsers have implemented these.

There is also a plan to remove window.sidebar itself in the future.

As alternatives to those API, you can create a sidebar extension or utilize the Social API.

requestAnimationFrame and cancelAnimationFrame have been unprefixed

requestAnimationFrame, the unprefixed version of mozRequestAnimationFrame, has been added. This unprefixed method passes a DOMHighResTimeStamp to callbacks. It has microsecond precision and can be compared to

On the other hand, the prefixed method, which will be removed in the future, continues to pass an epoch-based DOMTimeStamp to callbacks. The passed-in value has millisecond precision and can be compared to mozAnimationStartTime.

The unprefixed cancelAnimationFrame method has also been added. It has the same behavior as the prefixed mozCancelAnimationFrame method. Those moz-prefixed methods will be removed in the future.

Cross-origin contentDocument returns null

The contentDocument property on frames now returns null if the caller doesn't subsume the document. This change affects the contentDocument property on the <frame>, <iframe> and <object> elements as well as the getSVGDocument method on the <embed>, <iframe> and <object> elements.

window.defaultStatus has been removed

The window.defaultStatus property is no longer available. Setting this property has had no effect in Firefox because the default preference has disallowed changes to the status text by Web pages. Recently, the Firefox UI dropped support for enabling that pref. Also, this property is not specified in the HTML5 spec. window.status is still available.

The creation of AnimationEvent and TransitionEvent using Document.createEvent() is no longer allowed

The support for obsolete document.createEvent("AnimationEvent"), document.createEvent("TransitionEvent"), AnimationEvent.initAnimationEvent, and TransitionEvent.initTransitionEvent has been removed. Only the standard constructors, AnimationEvent() and TransitionEvent() are now allowed.

Regression: watch() throws a TypeError on some interfaces

Since Firefox 23, the non-standard watch method, which allows developers to observe changes made to object properties, throws a TypeError if the object is Document, HTMLSelectElement or probably some other DOM element interfaces. A workaround is to use a Proxy. Note that watch and unwatch may be removed in the future, and you should avoid using those Firefox-specific methods. This regression has been fixed with Firefox 27.

Video & Audio

HTMLMediaElement.initialTime has been removed

HTMLMediaElement's initialTime property is no longer available, due to the removal from the spec.

Security & Privacy

Non-SSL active content on SSL pages is blocked by default

Firefox 18 introduced preferences to block loading content from non-SSL (http) sites on SSL (https) pages. One of those preferences, security.mixed_content.block_active_content is now enabled by default in order to enhance user security. That means insecure scripts, stylesheets, plug-in contents, <iframe>, XMLHttpRequest, Web fonts (@font-face) and WebSockets are blocked on secure pages, and a notification is displayed instead. It will not block "display content" like images, videos or audio. See Tanvi Vyas' blog post for details.

Mozilla is tracking mixed content issues found on major sites as well as its own properties.

The CSP implementation has been updated for the final spec

Content Security Policy (CSP) 1.0 spec has been implemented. The existing parser will be used when a policy is served via the X-Content-Security-Policy header, and the new parser that follows the 1.0 spec will be used when a policy is served via the officially spec'd Content-Security-Policy header. See the post on the Mozilla Security Blog for details. Consult the latest spec if you'd like to implement CSP on your site. The documents on MDN will be updated sometime soon.

Document Tags and Contributors

Contributors to this page: teoli, kohei.yoshino, TanviVyas, ethertank, DaveG, Jesse, evilpie, Norbert
Last updated by: teoli,