Firefox 41 開發者版發行說明
要測試 Firefox 最新的開發者功能,請安裝 Firefox Developer Edition。Firefox 41 於 2015 年 9 月 22 日釋出。本文列出了對網路開發者、Firefox 和 Gecko 開發者以及附加元件開發者都有用的主要更改。
面向網路開發者的變更
開發者工具
亮點
- 擷取 DOM 節點的螢幕截圖
- 複製為 HAR/儲存為 HAR
- “規則”檢視中的“新增規則”按鈕
- 在新標籤頁中檢視原始碼(預設停用)
- 複製 CSS 規則的更多選項
- 在“規則”檢視中將影像複製為 data: URL
- 在 GCLI 中添加了顯示 CSP 資訊的命令
Firefox 40 和 Firefox 41 之間修復的所有開發者工具 Bug:請注意,其中許多 Bug,特別是與效能工具相關的 Bug,已被移植到 Firefox 40 中。
CSS
-
預設已啟用垂直指令碼佈局支援 (Firefox bug 1138384)。這意味著以下 CSS 屬性現在可用:
- 選擇書寫方向:
writing-mode。 - 控制字元方向:
text-orientation。 - 獨立於方向的
width和height等效項:block-size和inline-size。 - 獨立於方向的
min-width和min-height等效項:min-block-size和min-inline-size。 - 獨立於方向的
max-width和max-height等效項:max-block-size和max-block-size。 - 獨立於方向的
margin-top、margin-right、margin-bottom和margin-left等效項:margin-block-start、margin-block-end、margin-inline-start和margin-inline-end。 - 獨立於方向的
padding-top、padding-right、padding-bottom和padding-left等效項:padding-block-start、padding-block-end、padding-inline-start和padding-inline-end。 - 獨立於方向的
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。 - 獨立於方向的
top、right、bottom和left等效項:offset-block-start、offset-block-end、offset-inline-start和offset-inline-end。
- 選擇書寫方向:
-
支援 SVG 中的
transform-origin屬性並實現transform-box屬性 (Firefox bug 923193)。
HTML
- 沒有
href屬性的<a>不再被歸類為互動式內容。在<label>內點選它將啟用標記內容 (Firefox bug 1167816)。 - 站點圖示(即收藏夾圖示和快捷方式圖示)現在支援 SVG (Firefox bug 366324)。
- <link rel='preconnect'> 現在支援
crossorigin屬性 (Firefox bug 1174152)。 - 圖片元素不再對 resize/viewport 更改作出反應 (Firefox bug 1135812)。
JavaScript
Date.prototype現在是一個普通物件,不再是Date例項 (Firefox bug 861219)。Date.prototype.toString現在是一個通用方法 (Firefox bug 861219)。- 已新增
Symbol.species(Firefox bug 1131043)。 - 已新增
Map[Symbol.species]和Set[Symbol.species]getter (Firefox bug 1131043)。 - 已放棄對非標準 let 表示式 的支援 (Firefox bug 1023609)。
- 現在支援 帶預設值賦值的解構引數 (Firefox bug 1018628)。
- 根據 ES2015 規範,方法定義 需要花括號。現在,沒有花括號的語法將失敗 (Firefox bug 1150855)。
- 方法定義(生成器方法除外)不再可構造 (Firefox bug 1059908 和 Firefox bug 1166950)。
- 作為 ES2015 規範合規性的一部分,帶括號的 解構 模式,例如
([a, b]) = [1, 2]或({a, b}) = { a: 1, b: 2 },現在被認為是無效的,並將丟擲SyntaxError。有關更多詳細資訊,請參閱 Jeff Walden 的部落格文章。 - 已新增
new.target語法 (Firefox bug 1141865)。
介面/API/DOM
HTML 編輯 API
- 剪下、複製和貼上命令處理已修改,現在允許從 JS 以程式設計方式複製和剪下 Web 內容
- 當以
'paste'命令作為引數時,如果許可權不足以實際執行操作,Document.queryCommandSupported()現在返回false(Firefox bug 1161721)。 - 當以
'cut'或'copy'命令作為引數時,如果在使用者發起或特權程式碼的上下文中呼叫,Document.queryCommandSupported()現在返回true(Firefox bug 1162952)。 - 當以
'cut'或'copy'命令作為引數時,Document.execCommand()現在可以工作,但僅限於使用者發起或特權程式碼的上下文 (Firefox bug 1012662)。 - 當命令不受支援或未啟用時,
Document.execCommand()不再丟擲異常 (Firefox bug 1027560)。
- 當以
事件
CloseEvent事件的非標準initCloseEvent()方法以及使用document.createEvent('CloseEvent')方法建立CloseEvent的能力已被移除;請改用標準建構函式CloseEvent()(Firefox bug 1161950)。- 在桌面版上,
PointerEvent現在在 Nightly 版本中預設啟用;它未在 Developer Edition、Beta 或 Release 版本中啟用,並且至少在一些版本中不會啟用 (Firefox bug 1166347)。 - 已新增
MouseEvent.movementX和MouseEvent.movementY的無字首版本;帶字首的版本已棄用,並將在未來某個時候移除 (Firefox bug 1164981)。
Web 加密
SubtleCrypto.importKey()和SubtleCrypto.exportKey()現在支援ECDH金鑰 (Firefox bug 1050175)。
Canvas API
- 已新增
HTMLCanvasElement.captureStream()和CanvasCaptureMediaStream,允許即時流式傳輸<canvas>的顯示內容 (Firefox bug 1032848)。 MediaStream.id現在返回流的唯一 ID (Firefox bug 1089798)。CanvasRenderingContext2D.filter的初始值現在正確設定為none(Firefox bug 1163124)。
Service Workers
-
我們對實驗性 Service Worker 實現的改進
- 已實現
ServiceWorkerGlobalScope.skipWaiting()(Firefox bug 1131352)。 - 已新增
Clients.claim()(Firefox bug 1130684)。 - Service Worker 的其他功能事件已繼承自
ExtendableEvent,使其能夠訪問waitUntil()方法 (Firefox bug 1160527)。
- 已實現
-
現在支援
CacheStorage和Cache介面 (Firefox bug 1110144)。
WebGL
- 已新增
failIfMajorPerformanceCaveatWebGL 上下文屬性,在透過HTMLCanvasElement.getContext()建立 WebGL 上下文時可以設定它,以指示如果系統性能低下是否應導致上下文建立失敗 (Firefox bug 1164970)。
WebRTC
- 在構造新的
RTCPeerConnection時,如果未指定 STUN 伺服器,Firefox 不再提供預設的 STUN 伺服器。您需要提供一個才能成功建立 WebRTC 連線。
雜項
- 在 OS X 和 Windows 上,
Navigator.onLine現在會根據網路連線情況而變化(以前它總是返回true,除非選擇了“離線工作”模式)(Firefox bug 654579)。 MessagePort和MessageChannel現在在 Web workers 中可用,並預設在所有上下文中啟用 (Firefox bug 952139) 和 (Firefox bug 911972)。- User Timing API 現在在 Web workers 中可用 (Firefox bug 1155761)。
- Notifications API 現在在 Web workers 中可用 (Firefox bug 916893)。
DOMRequest和DOMCursor現在在 Web workers 中可用 (Firefox bug 1167650)。- CSS Font Loading API 已完全實現,現在預設啟用 (Firefox bug 1149381)。
- 共享 Worker 不能再在私有(即在私有視窗中瀏覽)和非私有文件之間共享(參見 Firefox bug 1177621)。
URL.searchParams屬性現在是隻讀的 (Firefox bug 1174731)。HTMLAnchorElement.hash屬性不再解碼 URL 片段 (Firefox bug 1093611)。
MathML
新的預設和回退字型處理
數學公式需要特殊字型。到目前為止,這些字型硬編碼在 mathml.css 使用者代理樣式表(用於設定 <math> 標籤的 font-family)和首選項選項 font.mathfont-family(用於設定可拉伸和大型運算子的回退字型)中。Firefox 41 引入了一個內部 x-math 語言,該語言會自動設定在 <math> 標籤上,並引入了相應的首選項選項(例如 font.name.serif.x-math)。使用者代理樣式表現在將 <math> 標籤的 font-family 設定為 serif,並且首選項選項 font.mathfont-family 已替換為 font.name.serif.x-math。所有平臺現在基本使用相同的回退字型列表,其中“Latin Modern Math”是第一個。預設/回退字型可以從標準的每個語言字型首選項選單中配置。有關更多詳細資訊,請參見 Firefox bug 947654 和 Firefox bug 1160456。
SVG
- 站點圖示(收藏夾圖示、快捷方式圖示)現在支援 SVG (Firefox bug 366324)。
音訊/影片
media.autoplay.enabled首選項現在也適用於不受信任的HTMLMediaElement.play()呼叫,即來自非使用者啟用指令碼的呼叫 (Firefox bug 659285)。
網路
- 不再支援
X-Content-Duration頭部 (Firefox bug 1160695)。 - 不再支援 HTTP/2 協議的草稿版本 (Firefox bug 1132357)。
安全
- 現在支援 CSP 1.1
manifest-src指令 (Firefox bug 1089255)。 - 以前的 Firefox 版本錯誤地將 內容安全策略 referrer 指令的值
origin-when-cross-origin拼寫為origin-when-crossorigin。現在已糾正,加入了缺少的連字元。
面向附加元件和 Mozilla 開發者的變更
XUL
無更改。
JavaScript 程式碼模組
無更改。
XPCOM
介面
無更改。
其他
- 已新增一個新的、內部的、僅限 Chrome 上下文的 API,用於將視窗的根小部件渲染到
<canvas>中:CanvasRenderingContext2D.drawWidgetAsOnScreen()。此 API 使用作業系統將小部件螢幕快照。有關更多詳細資訊,請參見 Firefox bug 1167477。