Firefox 42 開發者發行說明
要測試 Firefox 最新的開發者功能,請安裝 Firefox Developer Edition。Firefox 42 於 2015 年 11 月 3 日釋出。本文列出了對網頁開發者、Firefox 和 Gecko 開發者以及附加元件開發者都有用的主要變化。
面向網路開發者的變更
開發者工具
亮點
- 透過 Wi-Fi 除錯 Firefox for Android
- WebIDE 中的 Firefox OS 模擬器配置
- CSS 濾鏡預設
CSS
- 現在支援帶 rtl 指令碼的垂直
writing-mode(Firefox bug 1131451)。 caption-side的值現在是相對於表格的,並且根據其writing-mode值改變實際含義 Firefox bug 1202993。- 非標準屬性(如
-moz-margin-start)現在是其標準對應項(margin-inline-start等)的別名。以前,情況正好相反。這會影響CSSStyleDeclaration.cssText返回的值以及樣式規則中屬性的迭代,兩者都使用規範形式(Firefox bug 1118103)。 - 可以透過將
layout.css.prefixes.gradients首選項設定為false來關閉 CSS 漸變的字首版本。 - 已修復
float和外邊距摺疊行為的幾個舊 bug(Firefox bug 478834、Firefox bug 538194 和 Firefox bug 451791)。
HTML
- 已新增對
<img>(Firefox bug 1166910)、<iframe>(Firefox bug 1175736)、<a>和<area>(Firefox bug 1174913)的referrer屬性的實驗性支援。預設情況下沒有效果,network.http.enablePerElementReferrer預設值為false。
JavaScript
- 已實現
Reflect物件(Firefox bug 987514)。 Proxyhandler.ownKeys()trap 的實現已更新,以匹配最終的 ES2015 規範(Firefox bug 1049662)。- 在沒有
new的情況下呼叫Map、Set或WeakMap現在將丟擲TypeError(Firefox bug 1083752)。
介面/API/DOM
DOM 和 HTML DOM
-
帶有
id的影像不再作為Window介面的屬性列出:<img id="login">不再能透過window.login訪問。此行為是在 Firefox 26 中引入的,為了與規範的後續更改保持一致而被刪除。(Firefox bug 959992) -
已新增
MouseEvent.offsetX和MouseEvent.offsetY(Firefox bug 69787)。 -
HTMLInputElement介面已實驗性地擴充套件以處理目錄上傳(Firefox bug 1164310)。透過將dom.input.dirpicker首選項設定為true,可以公開這四個成員HTMLInputElement.directoryHTMLInputElement.isFilesAndDirectoriesSupportedHTMLInputElement.getFilesAndDirectories()HTMLInputElement.chooseDirectory()
-
Directory介面已實驗性地擴充套件(Firefox bug 1177688)。透過將dom.input.dirpicker首選項設定為true,可以公開Directory.path和Directory.getContents這兩個成員。 -
HTMLMediaElement.mozSrcObject已更名為HTMLMediaElement.srcObject(Firefox bug 1175523)。
Service Workers
Request.context已被移除(Firefox bug 1188062)。- Push API 已預設在 Firefox for Desktop 上啟用(Firefox bug 1153499),但僅限於 Nightly/Dev Edition/Beta 渠道。在釋出渠道中,它預設處於停用狀態,直到正確實現消費者使用者體驗和除錯功能(Firefox bug 1207875)。您仍然可以透過在
about:config中啟用dom.push.enabled首選項來啟用它。 PushManager.hasPermission()方法已在規範中棄用,並替換為PushManager.permissionState()方法。Firefox 已更新其實現以反映此更改(Firefox bug 1183853)。- 已實現與 Service Worker 相關的 通知 API 附加功能(Firefox bug 1114554),但在此版本中已停用。
Web Animations API
我們的 Web 動畫 API 實驗性實現已擴充套件以支援
AnimationPlayer.playbackRate屬性(Firefox bug 1127380)。CSSAnimation和CSSTransition介面(Firefox bug 1178186)。Animation.reverse()方法(Firefox bug 1150808)。- 已新增
AnimationPlaybackEvent介面,現在在Animation上觸發cancel和finish事件(Firefox bug 1178664)。
Web Components
我們的 Shadow DOM 實驗性實現已修改
- 當嘗試在
ShadowRoot上呼叫Node.cloneNode()時,會丟擲DataCloneError異常(Firefox bug 1176757)。 - 當以
ShadowRoot作為引數呼叫Document.importNode()時,我們現在會丟擲NotSupportedErrorDOMException(Firefox bug 1177914)。 - 當以
ShadowRoot作為引數呼叫Document.adoptNode()時,我們現在會丟擲HierarchyRequestErrorDOMException(Firefox bug 1177991)。
WebGL
- WebGL2
WebGLTransformFeedback已實現(Firefox bug 1048724)。 - 要獲取 WebGL2 上下文,
HTMLCanvasElement.getContext()現在接受webgl2而不是experimental-webgl2(Firefox bug 1187174)。
WebRTC
RTCPeerConnection.createOffer()的選項資料型別RTCOfferOptions已更新,以更密切地匹配規範。除其他更改外,它現在基於RTCOfferAnswerOptions字典,該字典提供voiceActivityDetection選項。- 已新增
RTCAnswerOptions字典。這是用於createAnswer()的options引數的型別。 RTCICECandidatePairStats.mozPriority已更名為RTCICECandidatePairStats.priority(Firefox bug 1184426)。
新 API
ImageBitmap介面,Window.createImageBitmap()和WorkerGlobalScope.createImageBitmap()方法已實現。它們在常規視窗指令碼和 Web Worker 中可用,並允許在視窗和 Worker 上下文之間高效地釋出影像(Firefox bug 1044102)。
雜項
IDBCursorWithValue介面現在可在 Web Worker 中使用(Firefox bug 1188115)。- 在 Web Worker 中傳送的錯誤事件不再冒泡(Firefox bug 1188141)。
- 媒體源擴充套件 (MSE) 已針對所有網站啟用,而不再僅限於白名單網站(Firefox bug 1185611)。
- 非標準且已棄用的
Window.mozRequestAnimationFrame()已被移除(Firefox bug 909154)。請改用標準的Window.requestAnimationFrame()。 - 語音合成(文字到語音)已在 Windows 版 Firefox Desktop 中實現,隱藏在
about:config中的media.webspeech.synth.enabled標誌後面(Firefox bug 1003457)。更多資訊請參閱 Web Speech API。
MathML
無更改。
SVG
無更改。
音訊/影片
無更改。
HTTP
- Firefox 41 及更早版本錯誤地接受了 HTTP/2 響應中未定義或無效的偽標頭欄位。現在已修復此問題,根據規範,從 Firefox 42 開始,唯一接受的偽標頭欄位是 :status。包含任意欄位的響應標頭被視為格式錯誤。(Firefox bug 1136727)
網路
- 已實現 CSP
upgrade-insecure-requests指令(Firefox bug 1139297)。
安全
- 有效期超過 39 個月的 EV 證書現在被視為並作為 DV 證書處理(Firefox bug 1145679)。
面向附加元件和 Mozilla 開發者的變更
介面
nsIContentPolicy
- 已將
TYPE_EMBED常量新增到nsIContentPolicy,以允許 Gecko 內部和附加元件程式碼更好地區分不同型別的請求。以前,在這些情況下使用TYPE_OBJECT(Firefox bug 1148030)。 - 同樣,
TYPE_SUBDOCUMENT常量已拆分為TYPE_FRAME和TYPE_IFRAME(Firefox bug 1148044)。
XUL
無更改。
JavaScript 程式碼模組
無更改。
XPCOM
無更改。
其他
無更改。