Firefox 12 for developers 發行說明
Firefox 12 已於 2012 年 4 月 24 日釋出。本文件總結了 Firefox 12 中影響開發者的更改。本文件提供了有關此版本中新功能和已修復的關鍵 Bug 的資訊,以及供 Web 開發者和外掛開發者使用的更詳細文件的連結。
面向網路開發者的變更
HTML
title屬性現在支援換行符,以便顯示多行工具提示。- 如果停用了 JavaScript,
<canvas>元素會被渲染,而不是像 規範那樣顯示備用內容。現在,備用內容會被渲染。 crossorigin屬性現在受<video>支援。
CSS
- 已新增對
text-align-last屬性的支援(已新增字首)。
JavaScript
- 已刪除對 Sharp Variables(Netscape 非標準擴充套件)的支援。
- 已實現
ArrayBuffer.prototype.slice()。
DOM
DOMParser現在支援解析 HTML 文件片段。XMLHttpRequest現在支援使用timeout屬性和“timeout”事件,以及XMLHttpRequestEventTarget介面上的ontimeout事件處理器來進行超時設定。XMLHttpRequest現在可以從data:URL 載入。- 在下載大量資料時,
XMLHttpRequest的進度事件處理程式現在會定期呼叫,此時responseType設定為“moz-blob”,響應為包含迄今為止已接收到的所有資料的Blob。這使得進度處理程式可以在不必等待所有資料全部到達的情況下開始處理資料。 - Gecko 現在支援 Android 上的多點觸控(而不是一次只支援單點觸控)。
- 在使用 IME 編輯文字時,每當正在編輯的元素的內容發生更改時,都會發送
input事件;這發生在傳送compositionupdate事件以指示 IME 的文字已更改之後。因此,您可以使用input事件處理器來監視元素實際內容的變化。 - 已實現 DOM 4 規範中定義的
DOMError。 Document.createNodeIterator()方法已更新,以匹配 DOM4 規範。這使得whatToShow和filter引數成為可選引數,並移除了非標準的第四個引數entityReferenceExpansion。Blob介面的slice()方法受到一個 Bug 的影響,該 Bug 阻止其正確接受超出有符號 64 位整數範圍的start和end值;該 Bug 已被修復。element.getBoundingClientRect()方法現在在計算元素的邊界矩形時會考慮CSS transforms的影響。crossOrigin屬性現在受HTMLMediaElement支援。
新的 WebAPI
- 網路資訊 API:已新增對
window.navigator.connection的實驗性支援(已新增字首)。 - WebTelephony API:已實現
window.navigator.mozTelephony,併為撥打、接聽和管理裝置上的電話提供了支援。 - WebSMS API:現在 Mobile 裝置可以使用
window.navigator.mozSms來發送 SMS 簡訊。 - 螢幕亮度 API:已新增
window.screen.mozEnabled和window.screen.mozBrightness以控制裝置的螢幕。
SVG
- Firefox 現在實現了
SVGTestsDOM API,請參閱 Firefox Bug 607854。 SVGStringListDOM 介面支援非標準的length屬性,請參閱 Firefox Bug 711958。
MathML
- 為了控制 MathML 公式方向,
dir屬性現在受<math>、<mrow>和<mstyle>元素以及 MathML Token Elements 支援。這對於某些 阿拉伯數學表示法尤其重要。 - 已為
<munder>、<mover>和<munderover>實現 MathML3 中定義的對齊屬性align。
網路
- 以前,當 WebSocket 通道因意外錯誤而關閉,或者因規範未涵蓋的錯誤條件而關閉時,Gecko 會報告關閉程式碼
CLOSE_NORMAL。現在,改為報告CLOSE_GOING_AWAY。
開發者工具
Web Console現在會快取使用console.log()新增的錯誤訊息和日誌條目(如果控制檯當前未開啟),並在開啟控制檯時顯示它們。- 您現在可以透過按“r”鍵來重置
3D view中的縮放級別、平移和旋轉。 - 您現在可以透過在
3D view中選擇節點後按“x”鍵來隱藏節點。 Source editor具有多項新的編輯功能和鍵盤快捷鍵;有關詳細資訊,請參閱 使用原始碼編輯器。
Mozilla 一直致力於整合其自主開發的 Web 開發者工具,以補充流行的 Firebug 外掛。您可以在此瞭解有關這些工具的更多資訊,以及檢視有助於您進行 Web 開發的 Firefox 外部資源列表。整個列表位於 Web 開發者工具。
雜項更改
- GEOSTD8 字元集,之前並未完全支援,現在已不再支援。
Mozilla 和附加元件開發者的更改
JavaScript 程式碼模組
source-editor.jsm
- 已新增
resetUndo()方法;這允許您清除撤銷堆疊。 - 原始碼編輯器現在提供用於提供搜尋功能的方法:
find()、findNext()和findPrevious()。
XUL
chromemargin屬性的值定義已略作更改,以便更容易地在不同預設視窗邊框寬度的平臺上製作跨平臺的 XUL 程式碼,使其看起來美觀。
XPCOM
- 不再支援
nsISupports代理。您應該使用 runnables 代替。 - Firefox 11 更改了
Components.utils.getWeakReference()的行為,使其在物件引用為 null 時丟擲異常;已恢復之前的靜默失敗行為。
XPConnect
PRUint64資料型別在使用 XPConnect 時,實際上與PRint64相同,這是不正確的。此問題已修復。
介面更改
nsIScreen_MOZILLA_2_0_BRANCH介面已合併到nsIScreen中。該介面中定義的 API(用於控制最小螢幕亮度)之前未被記錄,但現在已記錄。nsIScriptError2介面已合併到nsIScriptError中。nsIDownloadManager.addDownload()現在以非同步方式而不是同步方式處理。imgIContainerObserver.frameChanged()方法現在接收一個imgIRequest物件作為其第一個引數,該物件標識相應的請求。- 已新增
nsIDOMWindowUtils.sendTouchEvent()方法,以允許合成觸控事件。 - 現在,您可以透過在呼叫
nsISelectionController.scrollSelectionIntoView()時指定SCROLL_CENTER_VERTICALLY作為滾動常量,將指定的內容滾動到檢視的垂直中心。 - 已新增新的
nsIMemoryMultiReporter.explicitNonHeap屬性;這是一種更有效的方式來獲取多報告器測量值的總和,這些測量值的路徑以“explicit”開頭並且型別為KIND_NONHEAP。 - 已新增
nsIDOMWindowUtils.paintingSuppressed屬性;此布林值指示視窗當前是否抑制了繪製。這在移動裝置上用於防止在開始繪製頁面之前內容不足而導致的彈性渲染。 nsIDocCharset和nsIDocumentCharsetInfo介面已合併到nsIDocShell中。作為此工作的一部分,已移除舊的forcedDetector屬性;它之前從未起作用。
SpiderMonkey
- 已移除
JSThread。 JSThreadData已合併到JSRuntime中。
構建
- 在 Windows 上構建時,必須安裝 Windows 7 SDK。
其他更改
- 編輯器元件(稱為 Midas)現在只接受特權程式碼的事件。