Firefox 6 is here
by louisremi
at 2011-08-16 23:02:25
original http://hacks.mozilla.org/2011/08/firefox6/
What’s new in Firefox 6?
The most notable addition to this new release are the <progress> element, touch events, Server-Sent Events as well as the return of WebSockets.
The <progress> element
This element can be used to give a visual cue of something in progress in the page. System progress bars are being used, which means that users of MacOS and Linux will see something different than what is pictured here.
Touch events
The standard Touch events are now available on both Firefox “desktop” and mobile, enabling users to interact with web pages using their fingers on a touch screen.
Try this minimalistic touch demo.
Server Sent Events
Server Sent Events are a mean for a server-side script to generate client-side events accompanied with data.
Messages generated on the server-side with a text/event-stream
mime-type and consist of a list of events data.
data: data generated by the server
data: this line will generate a second event
Have a look at the Twitter-like timeline built with server-sent events.
WebSockets are back!
WebSockets can be used to create an interactive communication channel between a browser and a server. They are already used to build “HTML5” chats, multiplayer games, and much much more.
Note that this API will be temporarily namespaced in prevision of upcoming changes to the specification.
Other changes
HTML
- The HTML5
<progress>
element, which lets you create a progress bar, is now supported. - The parsing of the HTML5
<track>
element, which specifies text tracks for media elements, is now supported. This element should appear in the DOM now, though its behavior is still not implemented. - The
<iframe>
element is now clipped correctly by its container when the container’s corners have been rounded using theborder-radius
property. <form>
elements’ text<input>
fields no longer support the XULmaxwidth
property; this was never intentional, and is in violation of the HTML specification. You should instead use thesize
attribute to set the maximum width of input fields.- The
<canvas>
CanvasRenderingContext2d
propertiesfillStyle
andstrokeStyle
used to ignore garbage included after a valid color definition; now this is correctly treated as an error. For example, “red blue” as a color used to be treated as “red”, when it should have been ignored. - The width and height of
<canvas>
elements can now properly be set to 0px; previously, these were getting arbitrarily set to 300px when you tried to do that. - When a
<textarea>
element receives focus, the text insertion point is now placed, by default, at the beginning of the text rather than at the end. This makes Firefox’s behavior consistent with other browsers.
CSS
-moz-text-decoration-color
- This new property lets you set the color used by text decorations, such as underlines, overlines, and strikethroughs.
-moz-text-decoration-line
- This new property lets you set the kind of text decorations added to an element.
-moz-text-decoration-style
- This new property lets you set the style of text decorations, such as underlines, overlines, and strikethroughs. Styles include single-strokes, double strokes, wavy lines, dotted lines, and so forth.
-moz-hyphens
- This new property lets you control how hyphenation of words during line wrapping is handled.
-moz-orient
- A new (currently Mozilla-specific) property which lets you control the vertical or horizontal orientation of certain elements (particularly
<progress>
). ::-moz-progress-bar
- A Mozilla-specific pseudo-element that lets you style the area of an
<progress>
element representing the completed portion of a task.
Other CSS changes
- The
@-moz-document
property has a newregexp()
function, which lets you match the document’s URL to a regular expression. - The
azimuth
CSS property is no longer supported, as we have removed what little code we had for theaural
media group. It was never significantly implemented, so it made more sense to remove the crufty implementation for the time being rather than try to patch it up. - In the past, the
:hover
pseudoclass was not applied to class selectors when in quirks mode; for example,.someclass:hover
did not work. This quirk has been removed. - The
:indeterminate
pseudo-class can be applied to<progress>
elements. This is non-standard, but we hope it will be adopted by other browsers, because it will be useful.
DOM
- Using media queries from code
- You can now test the result of a media query string programmatically using the
window.matchMedia()
method and theMediaQueryList
interface. - Touch events
- Firefox 6 adds support for W3C standard touch events; these make it easy to interpret one or more touches at a time on touch-sensitive surfaces such as touch screens and trackpads.
- Server-sent events
- Server-sent events make it possible for a web application to ask a server to send events just like any locally-created DOM event.
navigator.securityPolicy
, which has returned an empty string for a long time, has been removed outright.BlobBuilder
is now implemented, although for now it’s prefixed (so you need to useMozBlobBuilder
).- The
document.height
anddocument.width
have been removed. bug 585877 - The
DocumentType
object’sentities
andnotations
properties, which were never implemented and always returnednull
, have been removed, since they’ve been removed from the specification anyway. - The
DOMConfiguration
interface and thedocument.domConfig
property that used it have both been removed; they were never supported and have since been removed from the DOM specification. - The
hashchange
event now correctly includes thenewURL
andoldURL
fields. - The
FileReader
interface’sabort()
method now throws an exception when used if no file read is in progress. - The
window.postMessage()
method now uses the structured clone algorithm to let you pass JavaScript objects instead of just strings from one window to another. - The
window.history
API now uses the structured clone algorithm to serialize the objects you pass to thepushState()
andreplaceState()
methods; this lets you use more complex objects (including those that contain cyclic graphs of references). - You can now detect when printing has been initiated and has completed by listening for the new
beforeprint
andafterprint
events. - The
document.strictErrorChecking
property has been removed, since it was never implemented and was removed from the DOM specification. - The standard
event.defaultPrevented
property is now supported; you should use this instead of the non-standardgetPreventdefault()
method to detect whether or notevent.preventDefault()
was called on the event. - The
window.top
property is now properly read only. - DOM views, which we never documented, have been removed. This was a bit of implementation detail that was unnecessarily complicating things, so we got rid of it. If you notice this change, you’re probably doing something wrong.
- The
EventTarget
functionaddEventListener()
‘suseCapture
parameter is now optional, as it is in WebKit (and as per the latest version of the specification). - The
mozResponseArrayBuffer
property of theXMLHttpRequest
object has been replaced with theresponseType
andresponse
properties. - The
element.dataset
property has been added to theHTMLElement
interface allowing access to thedata-*
global attributes of an element. - The
customEvent
method has been implemented. (see bug 427537 ) - For security reasons,
data:
andjavascript:
URIs no longer inherit the security context of the current page when the user enters them in the location bar; instead, a new, empty, security context is created. This means that script loaded by enteringjavascript:
URIs in the location bar no longer has access to DOM methods and the like, for example. These URIs continue to work as before when used by script, however.
JavaScript
- In the past, it was possible to use the
new
operator on several built-in functions (eval, parseInt, Date.parse…) that should not have allowed it, according to the specification. This behavior is no longer supported. Using thenew
operator in this way was never officially supported and was not widely done, so it’s unlikely that this change affects you. - ECMAScript Harmony WeakMaps have been added as a prototype implementation.
SVG
- The
pathLength
attribute is now supported. - SVG patterns, gradients, and filters now work correctly when loaded from
data:
URLs.
MathML
- The implementation of
<mstyle>
has been corrected.
Accessibility (ARIA)
- A state change event is now correctly sent when the value of
aria-busy
changes. - An attribute change event is now correctly sent when
aria-sort
occurs.
Net
- WebSockets
- WebSockets was updated to protocol version 07 for Firefox 6.
- Parsing of the
Content-Disposition
header has been fixed to properly interpret backslash-escaped ASCII characters as just that character itself. Previously it was incorrectly replacing that character with an underscore (“_”). - The value of the path field on
Set-Cookie
headers is now interpreted correctly when quotes are used; previously, they were being treated as part of the path string instead of as delimiters. This change may affect compatibility with some web sites, so authors should check their code. - The
Upgrade
request header is now supported; you can request an upgrade of an HTTP channel to another protocol by callingnsIHttpChannelInternal.HTTPUpgrade()
.
Other changes
- Support for microsummaries has been removed; these were never widely used, were not very discoverable, and continuing to support them was making improvements to the Places (bookmark and history) architecture difficult.
- WebGL now supports the
OES_texture_float
extension.
You can help us improve those changelogs by telling if you find the level of details appropriate.