Firefox 44 開發者發行說明
要測試 Firefox 最新的開發者功能,請安裝 Firefox Developer Edition。Firefox 44 於 2016 年 1 月 26 日釋出。本文列出了對網頁開發者、Firefox 和 Gecko 開發者以及附加元件開發者都有用的主要更改。
面向網路開發者的變更
開發者工具
亮點
HTML
<link rel="prefetch">現在遵循crossorigin屬性 (Firefox bug 1214819)。
CSS
-
position: fixed;現在總是建立一個新的堆疊上下文 (Firefox bug 1179288)。 -
預設啟用對
unicode-range的支援 (Firefox bug 1119062)。 -
我們的 CSS 書寫模式實驗性實現已更新以反映最新規範
- 已實現
text-orientation屬性的sideways值,並使sideways-right成為其別名 (Firefox bug 1193488)。 writing-mode屬性的sideways-rl和sideways-lr值 (Firefox bug 1193488 和 Firefox bug 1193519)。
- 已實現
-
非標準屬性
-moz-math-display和-moz-window-shadow不再可從 Web 內容中獲得 (Firefox bug 1207002、Firefox bug 1211040 和 Firefox bug 1212607)。 -
當兩種變體都可用時,
font-style屬性現在區分oblique和italic(Firefox bug 543715)。 -
儘管不受支援,但屬性
marks、orphans、page、size和widows被解析,並且@supports錯誤地報告它們受支援;這已得到修復,並且這些屬性不再被解析,也不再標記為受支援 (Firefox bug 1215702)。 -
內部值
-moz-mac-unified-toolbar已從appearance屬性的可能值中刪除 (Firefox bug 1206468)。 -
為了 Web 相容性,在首選項
layout.css.prefixes.webkit(預設為false)之後添加了幾個-webkit字首屬性和值 (Firefox bug 837211)-webkit-animation-webkit-animation-delay-webkit-animation-direction-webkit-animation-duration-webkit-animation-fill-mode-webkit-animation-iteration-count-webkit-animation-name-webkit-animation-play-state-webkit-animation-timing-function-webkit-text-size-adjust-webkit-transform-webkit-transform-origin-webkit-transform-style-webkit-transition-webkit-transition-delay-webkit-transition-duration-webkit-transition-property-webkit-transition-timing-function-webkit-border-radius-webkit-border-top-left-radius-webkit-border-top-right-radius-webkit-border-bottom-left-radius-webkit-border-bottom-right-radius-webkit-appearance-webkit-background-clip-webkit-background-origin-webkit-background-size-webkit-border-image-webkit-box-shadow-webkit-box-sizing-webkit-user-select-webkit-linear-gradient()Firefox bug 1210575-webkit-radial-gradient"()Firefox bug 1210575-webkit-repeating-linear-gradient()Firefox bug 1210575-webkit-repeating-radial-gradient()Firefox bug 1210575
JavaScript
新 API
- 已實現
Symbol.toPrimitive、Symbol.prototype[Symbol.toPrimitive]()和Date.prototype[Symbol.toPrimitive]()(Firefox bug 1054756)。
變更
- 全域性級別的
let和const繫結已符合 ES2015 語義。請參閱 Firefox bug 589199 和部落格文章 "Firefox Nightly 44 中 let 和 const 的重大更改"。此外,let現在可用於預設 Web JavaScript(嚴格模式和非嚴格模式),並且不再需要版本選擇加入 (Firefox bug 932517)。 - 如果 型別化陣列(如
Int8Array)和ArrayBuffer的建構函式在沒有new運算子的情況下作為函式呼叫,現在會丟擲TypeError,這符合 ES2015 規範 (Firefox bug 980945, Firefox bug 1214936)。 RegExp的 sticky 標誌現在遵循 ES2015 標準的錨定 sticky 正則表示式 (Firefox bug 773687)。- JavaScript shell (SpiderMonkey 的 REPL) 現在預設為預設的、Web 相容的 JS 版本(不再是 JS1.7+)(Firefox bug 1192329)。
移除
- 對非標準
let塊 的支援已刪除 (Firefox bug 1167029。 - 非標準和已棄用的屬性
Object.prototype.__noSuchMethod__已刪除 (Firefox bug 683218)。
介面/API/DOM
DOM 和 HTML DOM
- 為了與某些現有網站相容,
Document.charset屬性已作為Document.characterSet的別名實現 (Firefox bug 647621)。 - 對
window.sidebar.addSearchEngine()方法的支援已刪除,該方法允許網頁呼叫 Sherlock 外掛的安裝,現在它只在 Web Console 中記錄一個警告 (Firefox bug 862148)。 - 為了打擊不必要的彈出視窗,對於尚未互動的頁面中
beforeunload事件請求的提示不再顯示 (Firefox bug 636905)。 - 已棄用的方法
MessageEvent.initMessageEvent()已為向後相容性重新實現 (Firefox bug 949376)。 - 已移除過時的屬性
DocumentType.internalSubset(Firefox bug 801545)。 - 為了與現有網站相容,已實現
Window.orientation屬性和orientationchange事件 (Firefox bug 920734)。 - 顯式全屏請求的
<iframe>不應隱式退出全屏 (Firefox bug 1187801)。 - 現在,
mouseover、mouseout、mouseenter、mouseleave、pointermove、pointerover、pointerout、pointerenter和pointerleave事件會為停用的表單元素觸發 (Firefox bug 218093)。 - 為了提高互操作性,已新增方法
Element.webkitMatchesSelector()(Firefox bug 1216193)。 - 為匹配規範,
Document.createAttribute()方法現在將輸入轉換為小寫 (Firefox bug 1176313)。 Window.open()的非標準dialog功能不再可用於 Web 內容。它仍然可用於具有 chrome 許可權的擴充套件和其他程式碼 (Firefox bug 1095236。
Canvas
- 一個新的實驗性
OffscreenCanvasAPI 已經實現,它允許渲染上下文(如 WebGL)在 Web Workers 中執行。要使用此實驗性 API,請在 about:config 中將gfx.offscreencanvas.enabled設定為true(Firefox bug 709490)。此 API 包括OffscreenCanvas介面,HTMLCanvasElement.transferControlToOffscreen(),以及WebGLRenderingContext.commit().- 當此 API 啟用時,幾個 WebGL 介面現在也可在 worker 上下文中使用。
WebGL
- 已實現統一緩衝區物件 (Firefox bug 1048747)。
IndexedDB
IDBIndex.getAll()和IDBIndex.getAllKeys(),以及它們在IDBObjectStore上的對應項現在預設可用 (Firefox bug 1196841)。
Service Workers
- 已實現
ServiceWorkerMessageEvent和ExtendableMessageEvent介面 (Firefox bug 1143717 和 Firefox bug 1207068)。 Headers物件現在支援對迭代器,這意味著方法Headers.entries()、Headers.keys()和Headers.values()現在可用;Symbol.iterator現在也為它們返回預設迭代器 (Firefox bug 1108181)。- 在 Service Workers 上已停用
XMLHttpRequestAPI (Firefox bug 931243)。 FetchEvent介面現在擴充套件了ExtendableEvent,使其能夠訪問ExtendableEvent.waitUntil()方法。 (Firefox bug 1214772)。- 根據規範的最新更改,
FetchEvent.client已被刪除 (Firefox bug 1218135)。 - 為了匹配最新規範,
ServiceWorkerContainer.onreloadpage已被刪除 (Firefox bug 1218139)。 - 事件處理程式
ServiceWorkerGlobalScope.onbeforeevicted和ServiceWorkerGlobalScope.onevicted已被刪除,因為它們不符合規範。它們將在未來重新引入,但它們的刪除將允許功能檢測按預期工作 (Firefox bug 1218142)。 - 在
FetchEvent()建構函式中,如果選項字典中不存在isReload成員,它現在預設為false(Firefox bug 1216401)。 Client.frameType屬性現在在正確的介面上實現;之前它在WindowClient上 (Firefox bug 1218146)。- 當 AppCache 用於為頁面提供離線支援時,現在會在控制檯中顯示警告訊息,建議開發者改用 Service workers (Firefox bug 1204581.)
- Service workers 已在 Gecko 中預設啟用。
WebRTC
-
WebRTC 介面已移除字首 (Firefox bug 1155923)。特別是
mozRTCPeerConnection現在是RTCPeerConnection。mozRTCIceCandidate現在是RTCIceCandidate。mozRTCSessionDescription現在是RTCSessionDescription。
-
已實現
RTCDataChannel.bufferedAmountLowThreshold屬性,以及bufferedamountlow事件及其事件處理程式 (Firefox bug 1178091)。 -
已新增屬性
RTCPeerConnection.canTrickleIceCandidates,並移除了非標準方法RTCPeerConnection.updateIce()(Firefox bug 1209744)。 -
MediaStream介面現在支援MediaStream.addTrack()和MediaStream.removeTrack()方法 (Firefox bug 1103188)。 -
已實現建構函式
MediaStream()(Firefox bug 1070216)。 -
已刪除對
RTCOfferOptions的非標準約束樣式選項列表的支援。
新 API
- Workers 中 Canvas API 的實驗性實現已落地:
OffscreenCanvas和HTMLCanvasElement.transferControlToOffscreen()在gfx.offscreencanvas.enabled首選項後可用,目前預設停用 (Firefox bug 709490)。 - Web Speech API 的 Text2Speech API 現在有一個 OS X 後端。但這預設是停用的 (Firefox bug 1003452)。
雜項
URLSearchParams物件現在支援對迭代器,這意味著方法URLSearchParams.entries()、URLSearchParams.keys()和URLSearchParams.values()現在可用;Symbol.iterator現在也為它們返回預設迭代器 (Firefox bug 1085284)。FormData物件現在支援對迭代器,這意味著方法FormData.entries()、FormData.keys和FormData.values()現在可用;Symbol.iterator現在也為它們返回預設迭代器 (Firefox bug 1127703)。- 當
XMLHttpRequest.send()與 HTML 文件一起使用時,它現在使用text/html而不是application/xml(Firefox bug 918771)。 - 文字轉語音 (text-to-speech) 已在 Mac 和 Linux 上的 Firefox 桌面版中實現,隱藏在
about:config中的media.webspeech.synth.enabled標誌後面 (Firefox bug 1003452, Firefox bug 1003464)。有關更多資訊,請參閱 Web Speech API。 - 在
<frame>或<object>內部的元素不再能設定為全屏 (Firefox bug 1212299)。 - WOFF 字型的清理變得更加嚴格,導致更多不正確的字型被拒絕,此清理在 Firefox 46 中變得稍微不那麼嚴格 (Firefox bug 1193050 和 Firefox bug 1244693)。
MathML
無更改。
SVG
無更改。
音訊/影片
無更改。
HTTP
- 已新增對 Brotli 演算法的支援,並且
Accept-Encoding和Content-Encoding標頭現在都支援br值 (Firefox bug 366559 和 Firefox bug 1211916)。 - 已刪除對包含換行符 (
'/n') 的 HTTP/2 標頭的不正確支援,因為規範不允許這樣做,不像 HTTP/1 (Firefox bug 1197847)。
網路
無更改。
安全
- RC4 現在也在瀏覽器的 Beta 和 Release 版本中預設停用 (Firefox bug 1201025),並且白名單現在預設為空 (Firefox bug 1215796)。
面向附加元件和 Mozilla 開發者的變更
介面
無更改。
XUL
無更改。
JavaScript 程式碼模組
- 向 Sqlite.jsm 添加了
LIKE支援 (Firefox bug 1188760)。 - 將 Snackbars.jsm 模組新增到 Firefox for Android (Firefox bug 1215026)
XPCOM
nsIDOMWindow介面現在是空的。其內容要麼不再使用,要麼已移至其他位置,要麼僅從 C++ 使用。現在可從 C++ 程式碼訪問的專案位於 nsPIDOMWindow 介面中 (Firefox bug 1216401)。
其他
- 由於 Firefox 44 中的重大更改 (bug 1202902),使用 cfx 打包的附加元件將不再工作。要使您的附加元件再次相容,請使用 jpm。請參閱 cfx 到 jpm 遷移指南。