Your Search Results

    Site Compatibility for Firefox 18

    Firefox 18 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.


    The initial value for min-width and min-height has been changed to auto

    The min-width and min-height properties now take the auto keyword as their initial value. For the flexible boxes (flexbox), that has been introduced in Firefox 18 but disabled by default, this auto keyword indicates the minimum item (min-content) in a flexbox. For the other elements, it has no effect as it resolves to 0 as before.


    The MozTouch events were removed in favor of the standard touch events

    The experimental, deprecated MozTouch* API (the MozTouchDown, MozTouchMove, MozTouchUp events) has been removed. The W3C standard touch events should be used instead.

    To maintain site compatibility, on Windows, Firefox detects whether touch input is supported and disables touch events on incompatible computers. According to a comment in the bug, compatible computers are only a few percent for now. On Android, touch events are enabled by default. On Mac and Linux, touch events are not implemented yet.

    Compatibility issues with touch events have been found on many sites. If your site or application has supported touch events for mobile, please test with desktop browsers including Firefox to ensure it works as expected.

    The Page Visibility API has been unprefixed

    The prefixed mozvisibilitychange event and the mozHidden, mozVisibilityState properties of the Page Visibility API are now deprecated. The unprefixed visibilitychange event and the hidden, visibilityState properties should be used instead.

    mozallowfullscreen has been unprefixed

    The mozallowfullscreen attribute, that allows content in inline frames (<iframe>) to be fullscreen, has been unprefixed. The HTML5 allowfullscreen attribute is actually used for YouTube's embedded players.

    BlobBuilder has been removed

    The deprecated BlobBuilder (MozBlobBuilder) interface has been removed. From now on, use the Blob constructor to create a Blob object.

    The localStorage quota has been limited to 5 MB

    Previously Web pages with the offline storage enabled can save the own data up to 200 MB. Unfortunately localStorage causes performance issues as it requires synchronous IO. For that reason, the quota has been changed to 5 MB. Also, from now the data in a localStorage will be deleted at the same time user deletes Cookies. You're recommended to use the IndexedDB async API instead.

    The value of XHR.getResponseHeader() has been changed to redundant UTF-8 byte characters

    Following the latest XMLHttpRequest spec, the XMLHttpRequest.getResponseHeader method now returns value expressed in redundant encoding. For example, "" will be "\xE2\x80\xA6".

    Event listener objects are no longer accepted as values of on* properties on XMLHttpRequest, FileReader, WebSocket, and EventSource objects (Added on )

    With this change, handlers in the form of an object with a handleEvent property, e.g. xhr.onreadystatechange = { handleEvent: function() { ... } }, don't work anymore on XMLHttpRequest, WebSocket, FileReader and EventSource objects, just like the already didn't work on the element, document, and window objects. In Firefox (Gecko), such code will be treated as equivalent to xhr.onreadystatechange = null, thus it won't be executed while no error causes. This is a step to comply with standards and improve interoperability; it will be the same behavior as Internet Explorer and Opera. WebKit browsers like Google Chrome still accept such forms.

    Note that xhr.onreadystatechange = function() { ... } continues to work, though using addEventListener instead is generally recommended.


    The Proxy API has been updated for the new spec

    The Direct Proxy of ECMAScript 6 (Harmony) has been implemented. You have to modify your code if you've used the old API.

    Function.length no longer counts default parameters (Added on )

    The Function.length property, indicating the number of arguments the function expects, has previously included parameters with default values. This was fixed not to include those parameters. So (function (a, b, c = false) {}).length will be 2 instead of 3.

    When undefined is passed as an argument, the default parameter will be used if any (added on )

    The default parameter is an ECMAScript 6 feature implemented Firefox 15. Previously, when undefined was passed as an argument, the value became undefined. The implementation has been changed to be the default value just like no argument was passed.

    Mootools 1.2.x is not compatible with Firefox 18 and newer

    Firefox 18 adds the ECMAScript 6 function String.prototype.contains. Unfortunately, old version of Mootools assume there is no such function, and fail to work when it exists. This problem is fixed in Mootools 1.3 and newer.


    MOZ_EXT_texture_filter_anisotropic has been unprefixed

    The deprecated MOZ_EXT_texture_filter_anisotropic has been removed. Use the unprefixed EXT_texture_filter_anisotropic extension instead.


    The quality factor in request headers can now have 2 decimal places

    Previously Firefox has been clamped the quality factors to one decimal place. The quality factors are numerical values following q=, specified in HTTP request headers like Accept-Language. With such implementation, multiple items may have the same value, thus it has been changed to reflect 2 decimal places to make those values explicit.

    The Proxy-Connection header has gone

    The Proxy-Connection request header, that has been sent when HTTP proxy is enabled, has been removed. This header was non-standard and hasn't worked properly.


    FYI: Preferences to prevent non-SSL contents on SSL pages from loading have been added

    2 preferences have been added to block loading contents from non-SSL (http) sites on SSL (https) pages. Scripts, stylesheets, plug-in contents, inline frames, Web fonts and WebSockets can be blocked with security.mixed_content.block_active_content, and other static contents like images, audios and videos can be blocked with security.mixed_content.block_display_content.

    Though both are disabled (false) by default for now, such contents won't be loaded if a user enables those preferences. Note that the former preference security.mixed_content.block_active_content will be enabled by default in a future version of Firefox. Webmasters should make sure not to mix non-SSL contents on SSL pages.

    Document Tags and Contributors

    Contributors to this page: teoli, kohei.yoshino, Bzbarsky
    Last updated by: teoli,