Firefox 40 開發者釋出說明
要測試 Firefox 最新的開發者功能,請安裝 Firefox Developer Edition。Firefox 40 於 2015 年 8 月 11 日釋出。本文列出了對網頁開發者、Firefox 和 Gecko 開發者以及附加元件開發者都有用的關鍵更改。
面向網路開發者的變更
開發者工具
亮點
- 動畫檢視的改進
- 從 MDN 獲取 CSS 屬性語法幫助
- 在頁面檢查器中編輯過濾器
- Web 控制檯現在顯示來自 workers 的訊息
- 在網路監視器中按 URL 過濾請求
- 網路監視器中新增了許多上下文選單選項
- 顯示網路資源何時從瀏覽器快取中獲取
- 頁面檢查器中的過濾規則
更多
CSS
text-decoration-color、text-decoration-line和text-decoration-style的帶字首規則 (-moz-) 已被移除 (Firefox bug 1097922)。- 屬性
text-align現在支援match-parent值 (Firefox bug 645642)。 - 在怪異模式下,
empty-cells現在預設為show,與標準模式相同 (Firefox bug 1020400)。 - 用於設定
<meter>和<progress>元素樣式的非標準屬性-moz-orient已適應垂直書寫模式:auto值已移除,並添加了inline和block值,其中inline是新的預設值 (Firefox bug 1028716)。 - 屬性
font-size-adjust已修復,因此0被視為乘數(導致字型高度為0,從而隱藏字型),而不是none值(導致不進行調整,或值為1.0)(Firefox bug 1144885)。 - 修復了在垂直書寫模式下
text-overflow不工作的問題 (Firefox bug 1117227)。
HTML
無更改。
JavaScript
return語句之後無法到達的程式碼(包括 不帶分號的 return 語句 之後無法到達的表示式)現在將在控制檯中顯示警告 (Firefox bug 1005110, Firefox bug 1151931)。Symbol.match已新增 (Firefox bug 1054755)。- 將具有名為
Symbol.match且值為 truthy 的屬性的物件傳遞給String.prototype.startsWith、String.prototype.endsWith和String.prototype.contains現在會丟擲TypeError(Firefox bug 1054755)。 - 如果
RegExp函式在沒有new的情況下呼叫,並且模式物件具有名為Symbol.match且值為 truthy 的屬性,並且模式物件的constructor屬性等於RegExp函式,則返回模式本身。( Firefox bug 1147817 )。 - 對非標準 JS1.7 解構 for-in 的支援已被移除 (Firefox bug 1083498)。
for...in迴圈中的非標準初始化表示式現在被忽略,並會在控制檯中顯示警告。( Firefox bug 748550 和 Firefox bug 1164741 )。\u{xxxxxx}Unicode 碼點轉義序列已新增 (Firefox bug 320500)。String.prototype.contains已被String.prototype.includes替換,String.prototype.contains保留為別名 (Firefox bug 1102219)。- 如果
DataView建構函式在沒有new運算子的情況下作為函式呼叫,現在會根據 ES2015 規範丟擲TypeError。 - 在 Firefox 21 中出現的一個迴歸問題已修復,即沒有
get陷阱的代理陣列無法正常工作。如果Proxy中未定義get陷阱,Array.length返回0並且set陷阱不會被呼叫。一個解決方法是即使程式碼中不需要也新增get陷阱。此問題現已修復 (Firefox bug 895223)。 WeakMap.prototype和WeakSet.prototype已更新為普通物件,符合 ES2015 規範 (Firefox bug 1055473)。
介面/API/DOM
新 API
- 推送 API 已進行實驗性實現 (Firefox bug 1038811)。它由
services.push.enabled首選項控制,預設停用。
Web Animations API
我們的實驗性 Web 動畫實現有所改進,主要為了匹配最新的規範更改
AnimationPlayer.currentTime現在也可以設定 (Firefox bug 1072037)。- 在
Element上可用的Animatable.getAnimationPlayers()已重新命名為Element.getAnimations()(Firefox bug 1145246)。 Animation和AnimationEffect已合併到新建立的KeyframeEffectReadOnly中 (Firefox bug 1153734)。AnimationPlayer已重新命名為Animation(Firefox bug 1154615)。AnimationTimeline現在是一個抽象類,DocumentTimeline是其唯一的實現 (Firefox bug 1152171)。
CSSOM
- CSS 字型載入 API 現在在 Nightly 和 Developer Edition 版本中預設啟用 (Firefox bug 1088437)。在 Beta 和 Release 瀏覽器中它仍然預設停用。
CSSCharsetRule介面已移除,此類物件在 CSSOM 中不再可用 (Firefox bug 1148694)。這符合規範(最近已調整)和 Chrome 行為。
WebRTC
- WebRTC:
negotiationneeded事件現在也用於初始協商,而不僅僅是重新協商 (Firefox bug 1149838)。
DOM 和 HTML DOM
- 當無法解析
srcset時,HTMLImageElement.currentSrc方法不再返回null,而是返回"",符合最新規範的要求 (Firefox bug 1139560)。 - 與圖片一樣,Firefox 現在會限制不可見的
<iframe>的Window.requestAnimationFrame()(Firefox bug 1145439)。 Navigator.taintEnabled不再適用於 Web workers (Firefox bug 1154878)。
Web Audio API
Web Audio API 的新擴充套件
- 已新增
AudioContext.state和AudioContext.onstatechange屬性以及方法AudioContext.suspend()、AudioContext.resume()和AudioContext.close()(Firefox bug 1094764)。 AudioBufferSourceNode現在實現了AudioBufferSourceNode.detunek-rate 屬性 (Firefox bug 1153783)。
Web Workers
- 我們的 Service Worker API 略有改進:
update()方法已從ServiceWorkerGlobalScope移動到ServiceWorkerRegistration(Firefox bug 1131350)。 ServiceWorkerRegistration現在在 Web workers 中可用 (Firefox bug 1131327)。DataStore現在在 Web workers 中可用 (Firefox bug 916196)。
IndexedDB
IDBTransaction現在預設是非持久的 (Firefox bug 1112702)。這優先考慮效能而不是可靠性,並與其他瀏覽器保持一致。有關更多資訊,請閱讀我們的永續性定義。
開發者工具
- 已新增屬性
console.timeStamp()(Firefox bug 922221)。
MathML
無更改。
SVG
無更改。
音訊/影片
無更改。
網路
無更改。
安全
- 在 CSP 中使用星號 (
*) 在匹配源表示式時不再包含data:、blob:或:filesystem方案。因此,這些方案現在需要在相關頭部中明確定義以匹配 CSP (Firefox bug 1086999)。
面向附加元件和 Mozilla 開發者的變更
XUL
- 不再可能建立透明的頂級視窗 Firefox bug 1162649。
JavaScript 程式碼模組
- Dict.jsm 已移除 Firefox bug 1123309。請改用
Map。
XPCOM
nsIClassInfo.implementationLanguage屬性以及nsClassInfo::GetImplementationLanguage()函式已移除。- 以下 XPCOM 介面已移除;您應該改用標準 HTML 介面
nsIDOMHTMLBRElementnsIDOMDivElementnsIDOMHTMLHeadingElementnsIDOMHTMLTableCaptionElementnsIDOMHTMLTableElementnsIDOMHTMLTitleElement
其他
- Places 關鍵詞 API 已棄用,並將很快移除 (Firefox bug 1140395)。
- 自動化測試系統現在支援跳過單個測試函式。請參閱 XPCShell 測試中的執行條件測試。