Firefox 63 開發者釋出說明
本文提供有關 Firefox 63 中將影響開發人員的變更資訊。Firefox 63 於 2018 年 10 月 23 日釋出。
Web 開發人員的變更
開發者工具
- 頁面檢查器中的“字型”選項卡現在包含一個編輯器,可以輕鬆檢視和編輯頁面上字型的設定。有關詳細資訊,請參閱編輯字型。
- 可訪問性檢查器現在預設啟用 (Firefox bug 1482454)。
- 當您將滑鼠懸停在可訪問性檢查器中的物件上時,該專案會高亮顯示,其角色和名稱將顯示在頁面上的資訊欄中 (Firefox bug 1473030)。
- Web 控制檯中的命令列現在緊隨控制檯輸出顯示 (Firefox bug 1136299)。
- 網路監視器中的內容已新增一個新圖示,用於指示 URL 何時屬於已知跟蹤器 — 請參閱安全圖示 (Firefox bug 1333994)。
devtools.aboutdebugging.showSystemAddons的預設值現在為false,這意味著系統附加元件不會列在about:debugging頁面上。您可以透過導航到about:config更改設定 (Firefox bug 1425347)。- 響應式設計模式工具欄已簡化,我們添加了將視口左對齊的選項。
- 頁面檢查器包含一個指向自定義元素類定義的連結。 (Firefox bug 1443923)。
HTML
- 已新增對
<img>元素的decoding屬性的支援 (Firefox bug 1416328);另請參閱HTMLImageElement.decoding。
移除
- 已移除對
sidebar連結型別 (rel="sidebar") 的支援。如果錨標記包含此屬性,它將被忽略 (Firefox bug 1452645)。
CSS
- 已新增對
:defined偽類的支援 (Firefox bug 1331334)。 - 在Flexbox 佈局中添加了對
row-gap、column-gap和gap的支援 (Firefox bug 1398483)。 - 重新啟用對 webkit-字首畫素密度 @media 查詢的支援 (Firefox bug 1444139)。
- 添加了對 CSS 彈性盒佈局 (Flexbox) 屬性
align-self、align-content和align-items以及justify-content屬性的支援 (Firefox bug 1472843)。 - 為
offset-path實現了path()函式 (Firefox bug 1429298)。 - 實現了 Media Queries Level 4 規範的語法改進,特別是巢狀布林表示式和範圍語法 (Firefox bug 1422225)。
- 將
offset-*屬性重新命名為inset-block-start、inset-block-end、inset-inline-start和inset-inline-end(Firefox bug 1464782)。 - 添加了對 prefers-reduced-motion 媒體功能的支援 (Firefox bug 1365045, Firefox bug 1475462)。
- 為
resize屬性添加了流相對值 (block,inline) (Firefox bug 1464786)。 - 在
align-self、align-content和justify-content中為safe和unsafe值實現了 flexbox 佈局 (Firefox bug 1297774)。 - 邏輯屬性 (在適當的情況下) 現在可以動畫化 (Firefox bug 1309752)。
移除
- 移除了
offset-block-start、offset-block-end、offset-inline-start和offset-inline-end;如上所述,這些屬性已重新命名為inset-*(Firefox bug 1464782)。
SVG
無更改。
JavaScript
- 已實現
Symbol.prototype.description屬性 (Firefox bug 1472170)。 - 已新增
Object.fromEntries()方法 (Firefox bug 1469019)。 - 當您嘗試訪問未定義物件的屬性時,錯誤訊息現在得到了很大改進。考慮
x未定義且您嘗試訪問x.y的情況,控制檯現在返回更具描述性的 x 未定義;無法訪問其“y”屬性,而不是“TypeError: x is undefined” (Firefox bug 1259822)。
移除
- 已移除實驗性 WebAssembly 模組 IndexedDB 序列化支援 (Firefox bug 1469395)。
API
新 API
- Shadow DOM (Firefox bug 1471947) 和 Custom Elements (Firefox bug 1471948) API 已預設啟用;有關詳細資訊,請參閱 Web 元件。
- 媒體功能 API 已實現 (Firefox bug 1409664)。
- 非同步剪貼簿 API 已實現並預設啟用所有通道 (Firefox bug 1461465)。與 Chrome 一樣,Firefox 目前僅實現
writeText()和readText()方法;但是,與 Chrome 不同,readText()僅在 瀏覽器擴充套件中可用。 - 現在支援
SecurityPolicyViolationEvent介面。它允許在違反Content-Security-Policy時傳送事件 (Firefox bug 1472661)。
DOM
-
以下Web 動畫 API 的部分已預設啟用 (參閱 Firefox bug 1476158)
Animation屬性ready和finished,指定Animation物件的ready和finishedPromise。Animation物件的effect屬性。- 介面
KeyframeEffect和AnimationEffect。
-
已實現
Element.toggleAttribute()方法 (Firefox bug 1469592)。 -
出於相容性目的,現在支援歷史的、以前非標準的
Event.returnValue屬性 (Firefox bug 1452569)。 -
我們實現了
Window.event屬性以提高 Web 相容性,因為它已成為標準 (Firefox bug 218415)。然而,由於一些 Web 相容性問題 (例如,Firefox bug 1479964),這在非 Nightly 渠道中很快被停用,隱藏在dom.window.event.enabled首選項之後 (Firefox bug 1493869)。 -
為了使 Firefox 與 Edge 和 Chrome 保持一致,即使在 64 位 Windows 上執行,
navigator.platform屬性現在也返回"Win32"(Firefox bug 1472618)。 -
在 Firefox 63 之前,開啟帶有
rel="noopener"的新視窗的連結,以及啟用noopener視窗功能的Window.open()呼叫,預設情況下會停用所有視窗功能,因此您必須明確重新啟用您想要的任何標準功能。現在,這些視窗具有與任何其他視窗相同的啟用功能集,您需要明確關閉任何您不想要的功能 (Firefox bug 1419960)。
DOM 事件
- 在 Windows 上,鍵盤右側
Alt鍵的處理得到了改進。如果使用者當前的鍵盤佈局將Alt鍵對映到AltGr修改鍵,則現在將KeyboardEvent.key的值報告為"AltGraph"。此行為與最近在 Chrome 中引入的行為匹配 (Firefox bug 900750)。
媒體、Web Audio 和 WebRTC
- 現在可以在多個選項卡中同時訪問麥克風,即使在同一個內容程序中也是如此 (Firefox bug 1404977)。
RTCDataChannel已更新以支援 sctp-sdp-21 資料格式,除了以前支援的 sctp-sdp-05 格式。- Web Audio API 的
ConstantSourceNode節點型別現在預設通道數為 2,而不是 1,以符合規範 (Firefox bug 1413283)。 - 當為節點開始時間指定負值時,Web Audio API 介面
AudioScheduledSourceNode(以及基於它的所有其他節點型別) 現在會丟擲正確的異常。該錯誤是RangeError(Firefox bug 1413284)。 AudioParam物件的value允許的最小值和最大值已分別更改為最小負單精度浮點值 (-340,282,346,638,528,859,811,704,183,484,516,925,440) 和最大正單精度浮點值 (+340,282,346,638,528,859,811,704,183,484,516,925,440) (Firefox bug 1476695)。SourceBuffer.changeType方法已預設啟用,它允許您在活動流期間更改編解碼器。這是媒體源擴充套件 API 的一部分 (Firefox bug 1481166)。AudioParam.setValueCurveAtTime()方法已更新,可以正確接受浮點值陣列,以指示引數值隨時間變化。以前,它需要一個Float32Array(Firefox bug 1421091)。AudioParam.setValueCurveAtTime()也已更新,以便在values陣列中找到非有限值時,正確返回適當的TypeError(Firefox bug 1472095)。- 此外,
setValueCurveAtTime()已更新,以確保當引數在持續時間結束後完成遵循指定的價值曲線時,引數的值設定為要透過的價值列表中的最後一個值 (Firefox bug 1308436)。 RTCRTPStreamStats字典已重新命名為RTCRtpStreamStats,以與其他 WebRTC 字典和規範保持一致 (Firefox bug 1480498)。- 已新增對
RTCRtpStreamStats字典的kind屬性的支援 (Firefox bug 1481851)。 RTCRtpStreamStats字典的isRemote屬性已棄用,並將在 Firefox 65 中刪除。現在訪問此屬性時會向控制檯輸出警告。有關詳細資訊,請參閱 WebRTC 部落格上的這篇博文 (Firefox bug 1393306)。
Canvas 和 WebGL
HTMLCanvasElement.getContext()中添加了一個新的powerPreference上下文屬性。在 macOS 上,這允許 WebGL 非效能關鍵型應用程式和小程式在多 GPU 系統中請求低功耗 GPU,而不是高功耗 GPU (Firefox bug 1349799)。
移除
- 已移除過時且非標準的僅 Firefox 方法
Window.back()和Window.forward()。請改用window.history.back()和window.history.forward()方法 (Firefox bug 1479486)。 - 由於它們可能引入記憶體洩漏,
URL.createObjectURL()和URL.revokeObjectURL()方法不再在ServiceWorker例項上可用 (Firefox bug 1264182)。 - 由於規範中已棄用,Web Audio API 已移除對
PannerNode多普勒效應的有限支援。AudioListener屬性dopplerFactor和speedOfSound已移除,同時移除了PannerNode方法setVelocity()(Firefox bug 1148354)。
CSSOM
無更改。
HTTP
- 已實現
Clear-Site-Data頭,不再隱藏在首選項之後 (Firefox bug 1470111)。
安全
- 如果站點配置了 內容安全策略,則站點圖示現在受其約束 (Firefox bug 1297156)。
- 在生成違規報告時,現在可以識別 CSP
script-src指令的'report-sample'表示式。此指令表示報告中應包含違規發生位置的簡短示例。以前,Firefox 總是包含此示例 (Firefox bug 1473218)。 - Firefox 現在使用 NSS 3.39 (Firefox bug 1470914)。
外掛
無更改。
WebDriver 符合性 (Marionette)
新功能
- Marionette 現在在
WebDriver:NewSession響應中返回一個setWindowRect功能,如果瀏覽器視窗可以重新定位和調整大小,則為 true,例如 Firefox 就是這種情況,但任何移動應用程式都不是 (Firefox bug 1470659)。 - 添加了對
unhandledPromptBehavior功能的支援,該功能允許定義 WebDriver 規範的特定提示行為 (Firefox bug 1264259)。 - 已將使用者提示處理新增到
WebDriver:ExecuteScript和WebDriver:ExecuteAsyncScript命令 (Firefox bug 1439995)。
API 更改
- 已移除沒有
WebDriver:字首的已棄用命令端點 (Firefox bug 1451725)。 WebDriver:NewSession命令為platformName返回 WebDriver 規範中定義的推薦字串 (linux,mac,windows) (Firefox bug 1470646)。
錯誤修復
- 當 Firefox 未作為最頂層應用程式執行時,元素互動時缺少焦點相關事件 (Firefox bug 1398111)。
- 在後續操作序列中執行
pointerDown和pointerUp操作可能會觸發雙擊,因為WebDriver:ReleaseActions沒有重置雙擊跟蹤器 (Firefox bug 1422583)。 - 重複執行
pause操作可能會導致無限掛起 (Firefox bug 1447449)。 - 修復了一個錯誤,該錯誤導致從
WebDriver:ExecuteScript和WebDriver:ExecuteAsyncScript返回元素集合時會產生迴圈引用錯誤 (Firefox bug 1447977)。 - 為防止競態條件,
WebDriver:AcceptAlert和WebDriver:DismissAlert命令現在都會等到使用者提示關閉 (Firefox bug 1479368)。 - 幀指令碼發出的日誌條目不再受
MarionettePrefs.logLevel限制,而是記錄所有內容 (Firefox bug 1482829)。 - 當擷取寬度或高度超過 32767 畫素的視窗截圖時,
WebDriver:TakeScreenshot會引發錯誤 (Firefox bug 1485730)。 - 如果傳送的文字為空字串,
WebDriver:SendAlertText沒有替換預設的使用者提示值 (Firefox bug 1486485)。
其他
- 更正了
PerformanceObserver.observe()的行為,如果指定的觀察條目型別陣列中沒有找到有效的條目型別,或者陣列為空或缺失,則不執行任何操作。以前,Firefox 錯誤地丟擲了TypeError(Firefox bug 1403027)。 - 在 OpenSearch 中,Firefox 現在接受
application/json作為搜尋 URL 型別,作為application/x-suggestions+json的別名 (Firefox bug 1425827)。
附加元件開發人員的變更
API 更改
主題
-
browserAction徽章的預設文字顏色現在會自動設定為黑色或白色,以最大化與背景的對比度 (Firefox bug 1474110)。 -
theme清單鍵的accentcolor和textcolor屬性現在是可選的 (Firefox bug 1413144)。 -
browserAction.getBadgeTextColor()和browserAction.setBadgeTextColor()允許您獲取和設定瀏覽器操作徽章的文字顏色 (Firefox bug 1424620)。 -
manifest.json中的主題colors鍵現在支援ntp_text屬性以在新選項卡中設定文字顏色,以及ntp_background屬性以設定新選項卡的顏色 (Firefox bug 1347204)。 -
主題現在可以定義側邊欄的顏色,例如書籤側邊欄 (Firefox bug 1418602)。相關屬性包括
sidebar:側邊欄的背景顏色。sidebar_text:側邊欄的文字顏色。sidebar_highlight:側邊欄中選定專案的背景顏色。sidebar_highlight_text:側邊欄中選定專案的文字顏色。
-
方法
management.install()允許 Web 擴充套件安裝和啟用已簽名的瀏覽器主題 (Firefox bug 1369209)。 -
引入了清單鍵 theme_experiment (Firefox bug 1472740)。此鍵允許定義 Firefox 介面的實驗性
theme鍵屬性。
搜尋
- 新的
searchAPI 允許您檢索已安裝的搜尋引擎列表並使用它們執行搜尋 (Firefox bug 1352598)。 topSites.get()現在接受一個options引數,允許您為返回的站點列表設定各種選項 (Firefox bug 1445836)。
標籤頁
tabs.onHighlighted現在支援多選 (Firefox bug 1474440)。tabs.highlight現在在highlightInfo物件中包含一個可選欄位 —populate— 預設為true。將其設定為false可阻止返回的windows.Window物件填充標籤頁列表,以提高效能 (Firefox bug 1489814)。tabs.update現在支援透過在updateProperties引數中包含highlighted: true來更改標籤頁的選定狀態 (Firefox bug 1479129)。tabs.update現在支援透過在updateProperties引數中同時包含highlighted: true和active: false來更改標籤頁的選定狀態而不更改焦點標籤頁 (Firefox bug 1486050)。tabs.query現在如果選擇了多個標籤頁,則返回一個tabs.Tab物件陣列 (Firefox bug 1465170)。tabs.Tab屬性現在正確反映瀏覽器視窗中哪些標籤頁被選中(高亮),並且tabs.highlight支援更改多個標籤頁的高亮狀態 (Firefox bug 1464862)。- 傳入
tabs.onUpdated的filter物件中的isarticle屬性已重新命名為isArticle。舊名稱保留但已棄用。此更改已升級到 Firefox 62 (Firefox bug 1461695)。 tabs.onUpdated事件可用於透過changeInfo物件的attention屬性跟蹤標籤頁何時引起使用者注意 (Firefox bug 1396684)。
選單
- 在
menusAPI 中添加了menus.getTargetElement()。該方法返回由targetElementId引數引用的元素,該引數標識單擊的元素。如果targetElementId不再有效,該方法返回 null (Firefox bug 1325814)。 menus.create()現在允許您建立不可見的選單項,menus.update()允許您切換選單項的可見性 (Firefox bug 1482529)。- 使用
menusAPI 建立的專案現在支援訪問鍵 (Firefox bug 1320462)。 menus.create()和menus.update()的targetUrlPatterns引數現在支援任何 URL 方案,即使是那些通常不允許在匹配模式中使用的方案 (Firefox bug 1280370)。- 當單擊標籤頁上下文選單項時,即使該標籤頁不是當前活動的標籤頁,也會為該標籤頁授予 "activeTab" 許可權 (Firefox bug 1446956)。
其他
commands.onCommand現在被視為使用者輸入 (Firefox bug 1408129)。webRequestAPI 現在允許您篩選推測性連線 (Firefox bug 1479565)。webRequest.SecurityInfo添加了兩個新屬性,keaGroupName和signatureSchemeName。此更改已升級到 Firefox 62 (Firefox bug 1471959)。cookies.Cookie現在包含一個指示 cookie 的 SameSite 狀態的屬性。cookies.SameSiteStatus列舉定義了 SameSite 狀態值 (Firefox bug 1351663)。- URL 的匹配模式現在明確匹配“data”URL 方案 (Firefox bug 1280370)。