Firefox 29 pour les développeurs
================================

Firefox 29 est sorti le 29 Avril, 2014. Cet article répertorie les modifications clés qui sont utiles non seulement pour les développeurs Web, mais aussi pour es développeurs Firefox et Gecko ainsi que pour les développeurs d'add-on.

Changements pour les développeurs Web
-------------------------------------

### Outils de développement

Les principaux changements comprennent:

* Console web largement améliorée - Les tableaux sont affichés en lgne sans cliquer pour faire apparaître l'inspecteur de droite, les objets de fenêtre affichent leur URL, etc.
* Ajout de l'API console aux Web Workers (bug 620935). Vous pouvez désormais consigner les messages dans la console Web à partir de Web Workers.
* L'outil Moniteur réseau affiche désormais des statistiques de performances à l'aide de graphiques à secteurs (bug Firefox 846601).
* Sur l'inspecteur, des info-bulles d'aperçu des transformations CSS sont désormais disponibles (bug Firefox 726427).
* Les éléments DOM vus dans le débogueur et la console peuvent être supprimés ou inspectés directement, via les nouveaux boutons à droite de la liste des variables.
* Une carte source CSS est désormais prise en charge par l'éditeur de style (bug Firefox 926014).
* L'Autocompletion des propriétés et valeurs CSS a été ajoutée à l'éditeur de style (bug Firefox 717369).

*Consultez l'article du blog Mozilla Hacks pour plus de détails et d'autres changements mineurs.*

### CSS

* Des variables CSS ont été implémentées (bug Firefox 773296). L'article Mozilla Hacks peut être trouvé ici. Ils sont activés par défaut uniquement pour les versions non publiées (sur les versions publiées, retournez le pref `layout.css.variables.enabled` à `true` si vous voulez jouer avec).
* Les Flexbox prennent désormais en charge `visibility``: collapse` (bug Firefox 783470).
* La propriété `box-sizing` n'a pas de préfixe (bug Firefox 243412).
* La propriété `will-change`, un indice indiquant que quelque chose va s'animer a été ajoutée. La préférence `layout.css.will-change.enabled` doit être définie sur `true` pour l'activer. (bug Firefox 940842)
* La notation exponentielle scientifique, comme `3e1` ou `10e+0`, est désormais prise en charge pour les valeurs et les dérivés `<number>`, comme `<percentage>` et les valeurs unitaires, mais pas `<integer>` (bug Firefox 964529).
* Les images de type `<gradient>` sont désormais prises en charge dans `border-image` (bug Firefox 709587).
* La propriété `touch-action` a été mise en implémenté. Il n'est pas activé par défaut; le pref de `layout.css.touch_action.enabled` le contrôle. (bug Firefox 795567)
* Supprimez le style par défaut redondant pour l'élément <pre> de quirk.css (bug Firefox 948914).
* Les variables CSS ne sont pas correctement implémentées (cycles primaires) (bug Firefox 950497).
* @supports les conditions avec des jetons après que la propriété d'une déclaration doit être évaluée à false (bug Firefox 909170).
### HTML

* `<input type=color>` et `<input type=number>` sont disponibles par défaut.
* La prise en charge des `<pre cols>` non standard a été supprimée, ainsi que l'effet de mise en page de `<pre wrap>`. Les deux effets peuvent et doivent être obtenus en utilisant CSS. (bug Firefox 949879)
### JavaScript

* Nouvelles méthodes de chaîne ECMAScript 6 : `String.prototype.codePointAt()` et `String.prototype.fromCodePoint()` ont été implémentées (bug Firefox 918879).
* L'API d'internationalisation ECMAScript (ECMA-402) a été implémentée et est désormais activée par défaut dans Firefox Desktop (bug Firefox 853301):
    + Nouveaux objets dans le nouvel espace de noms d'objet `Intl` :
        - `Intl.Collator`
        - `Intl.DateTimeFormat`
        - `Intl.NumberFormat`
    + Les méthodes suivantes de `String`, `Number` et `Date` ont été mises à jour pour inclure les arguments `locales` et `options` selon ECMA-402:
        - `String.prototype.localeCompare()`
        - `Number.prototype.toLocaleString()`
        - `Date.prototype.toLocaleString()`
        - `Date.prototype.toLocaleDateString()`
        - `Date.prototype.toLocaleTimeString()`
* Pour correspondre au projet de spécification ECMAScript6 mis à jour, les objets `Map` et `Set` traitent désormais `-0` et `+0` comme étant identiques lors de la vérification de l'égalité des clés et des valeurs.
* La `Promise` a été activée par défaut (bug Firefox 918806).
* Les générateurs terminés renvoient maintenant un objet `IteratorResult` au lieu de lancer (bug Firefox 958951).
* Une chaîne JSON malformée analysée par `JSON.parse()` renvoie désormais un message d'erreur plus détaillé contenant le numéro de ligne et de colonne à l'origine de l'erreur d'analyse. Ceci est utile lors du débogage de données JSON volumineuses.
* La méthode `ArrayBuffer.isView()` a été ajoutée (bug Firefox 896105).
### Interfaces/APIs/DOM

* Un nouveau type de workers, `SharedWorker`, est désormais disponible par défaut (bug Firefox 924089).
* L'interface `URLUtils` prend désormais en charge la propriété `searchParams` renvoyant un objet `URLSearchParams`, permettant de modifier le paramètres de recherche d'une URL (bug Firefox 887836). Le constructeur `URLSearchParams` permet une analyse plus facile des chaînes de requête.
* La propriété `NavigatorOnLine.onLine` est désormais prise en charge sur `WorkerNavigator` (en-US), permettant de connaître l'état en ligne / hors ligne des workers (bug Firefox 925437).
* Dans le cadre de l'implémentation des composants Web, l'interface `HTMLShadowElement` a été implémentée derrière le `dom.webcomponents.enabled`. Retournez-le sur `true` si vous souhaitez l'utiliser. (bug Firefox 887538).
* La propriété en lecture seule `HTMLIFrameElement.sandbox` n'est plus un `string` mais un `HTMLSettableToken` (bug Firefox 845057).
* Sur `HTMLCanvasElement.getContext()`, la valeur `moz-webgl` n'est plus prise en charge. Utilisez la valeur standard `webgl` (bug Firefox 913597).
* Le constructeur de `ImageData` a été ajouté. Cette interface peut être utilisée danss un `Worker`. (bug Firefox 959958)
* La propriété `location.origin` (en-US) est désormais disponible dans les workers (via `WorkerLocation`) (bug Firefox 964148).
* La propriété `ValidityState.badInput` (en-US) a été implémentée (bug Firefox 827161).
* La propriété obsolète `Window.pkcs11` a été supprimée; il retournait `null` depuis Firefox 3.0.14. (bug Firefox 964964)
* Les méthodes `Node.cloneNode()` et `Document.importNode()` acceptent l'argument booléen `deep`. Jusqu'à présent, si elles étaient omises, ces méthodes agissaient comme si la valeur de `deep` était `true`. Mais ce comportement a été modifié selon la dernière spécification, et s'il est omis, les méthodes agiront comme si la valeur était `false`. (bug Firefox 937461)
* `Window._content` n'est plus disponible pour le contenu web (bug Firefox 946564).
* Le comportement de `URLUtils.port` a été légèrement modifié: définir sur `''` le définira sur le port par défaut associé au protocole, et `0` sur `0.` (bug Firefox 930450)
* `Document.referrer` est maintenant basé sur le script en place (bug Firefox 887928).
* L'API Gamepad API est activée par défaut (bug Firefox 878828).
* La méthode `CanvasRenderingContext2D.drawSystemFocusRing()` a été renommée en `CanvasRenderingContext2D.drawFocusIfNeeded()` (en-US) (bug Firefox 959820).
### MathML

*Pas de changement.*

### SVG

*Pas de changement.*

Sécurité
--------

* La directive expérimentale de `hash-source` CSP 1.1 a été implémentée. La préférence `security.csp.experimentalEnabled` doit être définie sur `true` pour activer cette fonctionnalité (bug Firefox 883975).
Modifications pour les développeurs d'add-on et Mozilla
-------------------------------------------------------

* Compatibilité Australis et add-on - Il s'agit d'un changement majeur de thème Firefox qui affecte la plupart des extensions impliquant l'interface utilisateur de Firefox.
* `nsISecurityCheckedComponent` a été supprimé (bug Firefox 794943). La plupart des consommateurs peuvent simplement supprimer nsISecurityCheckedComponent de leur définition d'interface et ils continueront à fonctionner.

Changements non-Australis à déterminer.

Voir aussi
----------

### Anciennes versions

* Firefox 28 pour les développeurs
* Firefox 27 pour les développeurs
* Firefox 26 pour les développeurs
* Firefox 25 pour les développeurs
* Firefox 24 pour les développeurs
* Firefox 23 pour les développeurs
* Firefox 22 pour les développeurs
* Firefox 21 pour les développeurs
* Firefox 20 pour les développeurs
* Firefox 19 pour les développeurs
* Firefox 18 pour les développeurs
* Firefox 17 pour les développeurs
* Firefox 16 pour les développeurs
* Firefox 15 pour les développeurs
* Firefox 14 pour les développeurs
* Firefox 13 pour les développeurs
* Firefox 12 pour les développeurs
* Firefox 11 pour les développeurs
* Firefox 10 pour les développeurs
* Firefox 9 pour les développeurs
* Firefox 8 pour les développeurs
* Firefox 7 pour les développeurs
* Firefox 6 pour les développeurs
* Firefox 5 pour les développeurs
* Firefox 4 pour les développeurs
* Firefox 3.6 pour les développeurs
* Firefox 3.5 pour les développeurs
* Firefox 3 pour les développeurs
* Firefox 2 pour les développeurs
* Firefox 1.5 pour les développeurs