Firefox 38 面向開發者的釋出說明
Firefox 38 於 2015 年 5 月 12 日釋出。本文列出了對 Web 開發者、Firefox 和 Gecko 開發者以及附加元件開發者都有用的主要變化。
面向網路開發者的變更
開發者工具
亮點
CSS
-
已新增並預設支援
ruby-position和ruby-align(Firefox bug 1055676、Firefox bug 1123917 和 Firefox bug 1039006)。 -
已為自定義元素實現了
:unresolved偽類(Firefox bug 1111633)。 -
預定義的樣式
ethiopic-numeric現在使用空格而不是點作為字尾,以匹配最近的規範更改(Firefox bug 1120721)。 -
生成的內容上的 CSS 過渡(帶
::before和::after),在內聯元素和分隔它們的塊元素上,現在都按規範預期開始(Firefox bug 1110277)。 -
CSS 邏輯屬性的實現取得了很大進展。以下屬性在
layout.css.vertical-text.enabled標誌(預設false)後可用- 與
width和height等效的與方向無關的屬性:block-size和inline-size(Firefox bug 1117983)。 - 與
min-width和min-height等效的與方向無關的屬性:min-block-size和min-inline-size(Firefox bug 1117983)。 - 與
max-width和max-height等效的與方向無關的屬性:max-block-size和max-block-size(Firefox bug 1117983)。 - 與
margin-top、margin-right、margin-bottom和margin-left等效的與方向無關的屬性:margin-block-start、margin-block-end、margin-inline-start和margin-inline-end(Firefox bug 649142)。 - 與
padding-top、padding-right、padding-bottom和padding-left等效的與方向無關的屬性:padding-block-start、padding-block-end、padding-inline-start和padding-inline-end(Firefox bug 649142)。 - 與
border-top、border-right、border-bottom和border-left及其 width、style 和 color 的長手屬性等效的與方向無關的屬性:border-block-start、border-block-start-width、border-block-start-style、border-block-start-color、border-block-end、border-block-end-width、border-block-end-style、border-block-end-color、border-inline-start、border-inline-start-width、border-inline-start-style、border-inline-start-color、border-inline-end、border-inline-end-width、border-inline-end-style和border-inline-end-color(Firefox bug 649142)。 - 與
top、right、bottom和left等效的與方向無關的屬性:inset-block-start、offset-block-end、offset-inline-start和offset-inline-end(Firefox bug 1120283)。
- 與
-
CSS 過渡的開始方式已修改,以匹配規範的最新更改,旨在在瀏覽器之間實現互操作行為(Firefox bug 960465)。
HTML
- 如果事件目標和標籤之間存在互動式內容,則
<label>元素不再向標籤目標元素分派事件(Firefox bug 229925)。 <picture>元素已預設啟用(Firefox bug 1017875)。- 支援透過上下文選單或滑鼠中鍵導航的
<meta name="referrer">(Firefox bug 1113431)。
JavaScript
-
帶有剩餘引數的
Setter現在是一個SyntaxError(Firefox bug 1089632)。 -
函式的
name屬性現在是可配置的(Firefox bug 1084019)。 -
of()和from()方法(Firefox bug 896608)。forEach()方法(Firefox bug 1107645)。filter()和map()方法(Firefox bug 1121936)。slice()方法(Firefox bug 1121935)。
-
當存在剩餘引數時,不再允許重複的引數名(Firefox bug 1096376)。
-
箭頭函式中不再允許重複的引數名(Firefox bug 1096377)。
-
簡潔方法定義中不再允許重複的引數名(Firefox bug 1096378)。
-
當
Map/Set/WeakMap建構函式在沒有new的情況下呼叫時,會顯示警告(Firefox bug 1108930)。 -
WeakMap物件的get、has和delete方法在key引數不是物件時不再丟擲錯誤(Firefox bug 1127827)。 -
WeakMap.prototype.get()的可選且非標準的第二個fallback引數已移除(Firefox bug 1127827)。 -
定義 生成器方法 時,
set和get不再是無效名稱(Firefox bug 1073809)。 -
現在,對於空正則表示式,
RegExp.prototype.source返回 "(?:)" 而不是空字串(Firefox bug 1130798)。 -
RegExp.prototype.source和RegExp.prototype.toString()現在可以正確轉義正則表示式模式(例如,行終止符,"\n")(Firefox bug 1130860)。 -
Regexp的global、ignoreCase、multiline和sticky屬性現在是原型訪問器屬性,而不是RegExp例項的自有資料屬性(Firefox bug 1120169)。 -
RegExp.prototype.source屬性現在是原型訪問器屬性,而不是RegExp例項的自有資料屬性(Firefox bug 1120169)。由於 Firefox bug 1150297,此功能僅在非發行版本中可用。 -
現在,
Function.prototype.toString()會對Proxy物件丟擲錯誤(Firefox bug 1100936)。
介面/API/DOM
- 已實現 Fetch API 的
fetch()方法(Firefox bug 1039846)。 - 已實現
BroadcastChannelAPI,並可在 Web Worker 中使用(Firefox bug 966439 和 Firefox bug 1121420)。 - Console API 現在可在 Web Worker 中使用。
- 已實現
CanvasRenderingContext2D.clearHitRegions()(Firefox bug 1119527)。 KeyboardEvent.location的常量DOM_KEY_LOCATION_MOBILE和 DOM_KEY_LOCATION_JOYSTICK 已移除,因為它們已從 DOM Level 3 規範中移除(Firefox bug 936313)。KeyboardEvent.code現已可用;以前它只在預釋出版本中可用。(Firefox bug 1126673)KeyboardEvent.code現在支援 Linux、Android 和 Firefox OS 上 Sun 鍵盤的特殊鍵。(Firefox bug 1020139)TextEncoder()建構函式已更改以匹配規範:當傳遞無效引數時,現在丟擲RangeErrorDOMException,而不是錯誤的TypeError(Firefox bug 1125766)。- 已實現 User Timing API,增加了
Performance.mark()、Performance.clearMarks()、Performance.measure()和Performance.clearMeasures()(Firefox bug 782751)。 Window.indexedDB的字首版本mozIndexedDB已移除(Firefox bug 975699)。DOMContentLoaded事件不再可取消(Firefox bug 1134559)。- 您現在可以在 Worker 中使用 WebSockets(Firefox bug 504553)。
- 現在可以在呼叫
XMLHttpRequest.open()之前設定XMLHttpRequest.responseType和XMLHttpRequest.withCredentials屬性(Firefox bug 707484)。
MathML
無更改。
SVG
無更改。
音訊/影片
無更改。
網路
無更改。
安全
- 在 Firefox 中,處理登入表單時,
autocomplete=false屬性現在被忽略(Firefox bug 1025703)。這是為了透過允許密碼管理器工具更可靠地工作來鼓勵使用更安全的密碼。 - 現在在使用 TLS 時停用 RC4,除了少數明確允許的網站。此白名單是一項臨時措施,直到這些網站得到修復(Firefox bug 1124039)。此回退由
security.tls.unrestricted_rc4_fallback首選項控制,目前預設為true(Firefox bug 1138882)。 - 需要回退到不安全 TLS 版本才能工作的網站現在已列入硬編碼白名單,該白名單將隨著時間推移而縮小(Firefox bug 1114816)。透過將
security.tls.insecure_fallback_hosts.use_static_list設定為false可以停用白名單。
面向附加元件和 Mozilla 開發者的變更
附加元件 SDK
亮點
sdk/context-menu@2已實現(Firefox bug 1070952)。sdk/addon/bootstrap已實現(Firefox bug 1075541)。sdk/windows/loader已移除(Firefox bug 970135)。- 修復了 Linux 上的預設語言檢測問題(Firefox bug 1114712)。
toolkit/loader現在具有選擇加入的模組相容性檢查,所有 jpm 附加元件都啟用了此功能(Firefox bug 1037235)。
Electrolysis (E10s) 更新
sdk/page-workere10s 更新(Firefox bug 1116004)。sdk/content/workere10s 更新(Firefox bug 1116544)。sdk/tabse10s 更新(Firefox bug 1033838)。
詳情
XUL
無更改。
JavaScript 程式碼模組
Downloads.jsm
DownloadTarget物件現在具有exists和size屬性,允許您確定下載目標檔案在磁碟上的存在性和大小,以及一個新方法refresh(),它要求更新這些值。
XPCOM
- 如果傳遞
PR_APPEND而沒有PR_TRUNCATE,則"@mozilla.org/network/atomic-file-output-stream;1"和"@mozilla.org/network/safe-file-output-stream;1"現在會丟擲異常(Firefox bug 1117580)。 nsICompositionStringSynthesizer和nsIDOMWindowUtils.sendCompositionEvent()已移除。請改用nsITextInputProcessor。(Firefox bug 917322)nsIDOMWindowUtils.sendKeyEvent()現已棄用。請改用nsITextInputProcessor(Firefox bug 1119609)。