Firefox 42 for developers
=========================

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

### Outils de développement

Points forts:

* Débogage de Firefox pour Android via Wifi (en-US)
* Configuration de Firefox OS Simulator dans WebIDE
* Préréglages de filtre CSS

Tous les bogues devtools corrigés entre Firefox 41 et Firefox 42.

### CSS

* Vertical `writing-mode` est maintenant pris en charge avec les scripts rtl (bug Firefox 1131451).
* Les valeurs de `caption-side` sont désormais relatives à la table, et changent de signification réelle en fonction de sa valeur `writing-mode` bug Firefox 1202993.
* Les propriétés non standard comme `-moz-margin-start` sont maintenant des alias de leur homologue standard (`margin-inline-start`, …). Auparavant, c'était le contraire. Cela affecte la valeur renvoyée par `CSSStyleDeclaration.cssText` et l'itération des propriétés dans une règle de style et l'itération des propriétés dans une règle de style, qui utilisent toutes deux la forme canonical (bug Firefox 1118103).
* La version préfixée ds dégradés CSS peut être désactivée en définissant la préférence `layout.css.prefixes.gradients` sur `false`.
* Plusieurs anciens bogues avec `float` et le comportement de réduction des marges ont été corrigés (bug Firefox 478834, bug Firefox 538194, et bug Firefox 451791).
### HTML

* Prise en charge expérimentale de l'attribut `referrer` de `<img>` (bug Firefox 1166910), `<iframe>` (bug Firefox 1175736), `<a>` et `<area>` ont été ajoutés (bug Firefox 1174913). Il n'y a aucun effet par défaut, le `network.http.enablePerElementReferrer` étant `false` par défaut.
### JavaScript

* L'objet `Reflect` a été implémenté (bug Firefox 987514).
* La mise en œuvre de l'interruption `Proxy` `handler.ownKeys()` (en-US) a été mise à jour pour correspondre à la spécification finale ES2015 (bug Firefox 1049662).
* Appel de `Map`, `Set`, ou `WeakMap` sans `new`, va maintenant lancer un `TypeError` (bug Firefox 1083752).
### Interfaces/APIs/DOM

#### DOM & HTML DOM

* Les images avec une `id` ne sont plus répertoriées comme propriété de l'interface `Window` : `<img id="login">` n'est plus accessible en tant que `window.login`. Ce comportement a été introduit dans Firefox 26 et a été supprimé pour correspondre à une modification ultérieure de la spécification (bug Firefox 959992).
* `MouseEvent.offsetX` et `MouseEvent.offsetY` ont été ajoutés (bug Firefox 69787).
* L'interface `HTMLInputElement` a été étendue expérimentalement pour gérer le téléchargement des répertoires (bug Firefox 1164310). Ces quatre membres peuvent être exposés en définissant la préférence `dom.input.dirpicker` sur `true`:
    + `HTMLInputElement.directory`
    + `HTMLInputElement.isFilesAndDirectoriesSupported`
    + `HTMLInputElement.getFilesAndDirectories()`
    + `HTMLInputElement.chooseDirectory()`
* L'interface `Directory` a été étendue expérimentalement (bug Firefox 1177688). Les deux membres `Directory.path` et `Directory.getContents` peuvent être exposés en définissant la préférence `dom.input.dirpicker` sur `true`.
* Le `HTMLMediaElement.mozSrcObject` a été renommé dans `HTMLMediaElement.srcObject` (en-US) (bug Firefox 1175523).

#### Service Workers

* `Request.context` (en-US) a été supprimé (bug Firefox 1188062).
* L'API Push a été activée par défaut sur Firefox pour bureau (bug Firefox 1153499), mais uniquement sur les canaux Nightly/Dev Edition/Beta. Elle est désactivée par défaut dans le canal Release jusqu'à ce que l'UX grand public et les fonctionnalit"s de débogage aient été correctement implémentées (bug Firefox 1207875). Vous pouvez toujours l'activer en activant la préférence `dom.push.enabled` dans about:config.
* La méthode `PushManager.hasPermission()` (en-US) a été désapprouvée dans la spécification et remplacée par la méthode `PushManager.permissionState()`. Firefox a mis à jour son implémentation pour refléter cela (bug Firefox 1183853).
* Des ajouts liés au service worker de l'API Notifications ont été mis en œuvre (bug Firefox 1114554), mais sont désactivés dans cette version.

#### API Web Animations

Notre implémentation expérimentale de l'API Web Animations a été étendue pour prendre en charge:

* La propriété `AnimationPlayer.playbackRate` (en-US) (bug Firefox 1127380).
* Les interface `CSSAnimation` (en-US) et `CSSTransition` (en-US) (bug Firefox 1178186).
* La méthode `Animation.reverse()` (en-US) (bug Firefox 1150808).
* L'interface `AnimationPlaybackEvent` (en-US) a été ajoutée et `cancel` (en-US) et `finish` (en-US) sont maintenant déclenchés sur `Animation` (bug Firefox 1178664).

#### Composants Web

Notre implémentation expérimentale du Shadow DOM a été modifiée:

* Lorsque vous essayez d'appeler `Node.cloneNode()` sur un `ShadowRoot`, lance une exception `DataCloneError` (bug Firefox 1176757).
* En invoquant `Document.importNode()` avec un `ShadowRoot` comme argument, nous lançons maintenant une exception `NotSupportedError` (bug Firefox 1177914).
* En invoquant `Document.adoptNode()` avec un `ShadowRoot` comme argument, nous lançons maintenant une exception `HierarchyRequestError` (bug Firefox 1177991).

#### WebGL

* WebGL2 `WebGLTransformFeedback` (en-US) a été implémenté (bug Firefox 1048724).
* Pour obtenir un contexte WebGL2, `HTMLCanvasElement.getContext()` prend maintenant `webgl2` au lieu de `experimental-webgl2` (bug Firefox 1187174).

#### WebRTC

* Le `RTCICECandidatePairStats.mozPriority` a été renommé `RTCICECandidatePairStats.priority` (en-US) (bug Firefox 1184426).

#### Nouvelles API

* L'interface `ImageBitmap` (en-US) et la méthode `createImageBitmap()` (en-US) ont été implémentées. Ils sont disponibles sur les scripts de fenêtre standard et dans les Web workers et permettent un affichage efficace des images entre les contextes fenêtre et worker (bug Firefox 1044102).

#### Divers

* L'interface `IDBCursorWithValue` (en-US) est désormais disponible dans les Web workers (bug Firefox 1188115).
* Les événements d'erreur envoyés dans les Web workers ne bouillonnent plus (bug Firefox 1188141).
* Media Source Extensions (en-US) (MSE) a été activé pour tous les sites Web, et pas plus pour une liste blanche de sites (bug Firefox 1185611).
* Le `Window.mozRequestAnimationFrame()` (en-US) non standard et obsolète a été supprimé (bug Firefox 909154). Utilisez plutôt le standard `Window.requestAnimationFrame()`.
* La synthèse vocale (text-to-speech) a été implémentée dans Firefox Desktop pour Windows, cachée derrière l'indicateur `media.webspeech.synth.enabled` dans `about:config` (bug Firefox 1003457). Voir API Web Speech pour plus d'informations.
### MathML

*Pas de changement.*

### SVG

*Pas de changement.*

### Audio/Video

*Pas de changement.*

HTTP
----

* Firefox 41 et les versions antérieures acceptaient à tord les champs de pseudo-en-tête non définis ou non valides dans les réponses HTTP/2 . Ceci est maintenant corrigé et le seul champ pseudo-en-tête accepté depuis Firefox 42 est le : *statut* selon la spécification. Les en-têtes de réponse contenant des champs arbitraires sont considérés comme mal formés. (bug Firefox 1136727)
La mise en réseau
-----------------

* La directive `upgrade-insecure-requests` (en-US) du CSP a été implémentée (bug Firefox 1139297).
Sécurité
--------

* Les certificats EV d'une validité supérieure à 39 mois sont désormais considérés et traités comme des certificats DV (bug Firefox 1145679).
Changements pour les développeurs d'add-on et de Mozilla
--------------------------------------------------------

### Interfaces

#### nsIContentPolicy

* La constante **`TYPE_EMBED`** a été ajoutée à `nsIContentPolicy` pour permettre aux internes de Gecko et au code add-on de mieux différencier les différents types de requêtes. Auparavant, **`TYPE_OBJECT`** était utilisé pour ces cas (bug Firefox 1148030).
* De même, les constantes **`TYPE_SUBDOCUMENT`** ont été divisées en **`TYPE_FRAME`** et **`TYPE_IFRAME`** (bug Firefox 1148044).
### XUL

*Pas de changement.*

### Modules de code JavaScript

*Pas de changement.*

### XPCOM

*Pas de changement.*

### Autre

*Pas de changement.*

Anciennes versions
------------------

* Firefox 41 pour les développeurs
* Firefox 40 pour les développeurs
* Firefox 39 pour les développeurs
* Firefox 38 pour les développeurs
* Firefox 37 pour les développeurs
* Firefox 36 pour les développeurs
* Firefox 35 pour les développeurs
* Firefox 34 pour les développeurs
* Firefox 33 pour les développeurs
* Firefox 32 pour les développeurs
* Firefox 31 pour les développeurs
* Firefox 30 pour les développeurs
* Firefox 29 pour les développeurs
* 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