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 規範。這使得 whatToShowfilter 引數成為可選引數,並移除了非標準的第四個引數 entityReferenceExpansion
  • Blob 介面的 slice() 方法受到一個 Bug 的影響,該 Bug 阻止其正確接受超出有符號 64 位整數範圍的 startend 值;該 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.mozEnabledwindow.screen.mozBrightness 以控制裝置的螢幕。

SVG

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 屬性;此布林值指示視窗當前是否抑制了繪製。這在移動裝置上用於防止在開始繪製頁面之前內容不足而導致的彈性渲染。
  • nsIDocCharsetnsIDocumentCharsetInfo 介面已合併到 nsIDocShell 中。作為此工作的一部分,已移除舊的 forcedDetector 屬性;它之前從未起作用。

SpiderMonkey

  • 已移除 JSThread
  • JSThreadData 已合併到 JSRuntime 中。

構建

  • 在 Windows 上構建時,必須安裝 Windows 7 SDK。

其他更改

  • 編輯器元件(稱為 Midas)現在只接受特權程式碼的事件。