Firefox 3.6 開發者版

Firefox 3.6 提供了對新的和不斷發展的 Web 標準的支援、更高的效能,以及為 Web 使用者和開發者帶來了整體更好的體驗。此頁面提供了指向介紹 Firefox 3.6 新功能的文章的連結。

對於網站和應用程式開發者

CSS

使用漸變

Firefox 3.6 新增了對 background 屬性的提議的 -moz-linear-gradient-moz-radial-gradient 屬性的支援。

多重背景

background 屬性(以及 background-colorbackground-imagebackground-positionbackground-repeatbackground-attachment)現在支援多重背景。這允許你指定多個背景,它們以圖層形式彼此堆疊渲染。

Mozilla 特定的媒體特性

已添加了 Mozilla 特定的系統度量的媒體特性,以便可以使用 媒體查詢 更安全地檢查觸控支援等功能的可用性。

縮放背景影像

CSS 3 背景和邊框草案 中的 background-size 屬性現在以 -moz-background-size 的名稱獲得支援。

WOFF 字型支援

@font-face 現在支援 WOFF 可下載字型檔案格式。

指標事件

pointer-events 屬性允許內容指定元素是否可以是滑鼠指標事件的目標。

雜項 CSS 更改

HTML

使用 Web 應用程式中的檔案

Gecko 中新增了對新的 HTML5 檔案 API 的支援,使 Web 應用程式能夠訪問使用者選擇的本地檔案。這包括透過 input type="file" HTML 元素的新 multiple 屬性選擇多個檔案的支援。

HTML5 影片支援海報幀

現在 video 元素支援 poster 屬性,允許內容指定一個海報幀,在影片開始播放之前顯示。

複選框和單選按鈕支援 indeterminate 屬性

HTML input 型別為 checkboxradio 的元素現在支援 indeterminate 屬性,該屬性允許第三種“不確定”狀態。

畫布影像平滑可控

新的 mozImageSmoothingEnabled 屬性可用於在 canvas 元素中縮放時開啟和關閉影像平滑。

非同步指令碼執行

透過在 script 元素上設定 async 屬性,script 將不會阻止頁面其餘部分的載入或顯示。相反,script 在下載後立即執行。

JavaScript

Gecko 1.9.2 引入了 JavaScript 1.8.2,其中添加了來自 ECMAScript 5 標準 的許多語言特性

  • Date.parse() 現在可以解析 YYYY-MM-DD 格式的 ISO 8601 日期。
  • 函式例項的 prototype 屬性不再可列舉。

DOM

Web Worker 現在可以自我終止

Worker 現在支援 nsIWorkerScope.close() 方法,該方法允許它們自我終止。

拖放現在支援檔案

提供給拖動監聽器的 DataTransfer 物件現在包含被拖動的檔案列表。

檢查元素是否匹配指定的 CSS 選擇器

新的 Node.mozMatchesSelector 方法允許您確定元素是否匹配指定的 CSS 選擇器。請參閱 Firefox bug 518003

檢測裝置方向

如果裝置具有受支援的加速計,內容現在可以使用 MozOrientation 事件檢測裝置的方向。Firefox 3.6 支援 Mac 筆記型電腦中的加速計。

檢測文件寬度和高度變化

每當文件的 scrollWidth 和/或 scrollHeight 屬性發生變化時,都會分發新的 MozScrollAreaChanged 事件。

雜項 DOM 更改

  • getBoxObjectFor() 方法已被移除,因為它不符合標準,並且向 Web 暴露了更多不符合標準的內容。請參閱 Firefox bug 340571。這也影響了使用此呼叫進行 Gecko 檢測的 MooTools;此問題已在最新版本的 MooTools 中修復,因此請務必更新。
  • DOM 視窗上新增了 mozInnerScreenXmozInnerScreenY 屬性;這些屬性返回視窗視口左上角的螢幕座標。
  • nsIDOMWindowUtils 介面上的新 mozScreenPixelsPerCSSPixel 屬性(僅限於 Chrome 訪問)提供了 CSS 畫素和螢幕畫素之間的轉換因子;此值可能因內容的縮放級別而異。
  • 當頁面的 URI 的文件片段識別符號(“#”(雜湊)字元後面的部分)更改時,會向頁面傳送新的 hashchange 事件。有關更多資訊,請參閱 hashchange 事件。Firefox bug 385434
  • 現在支援屬性 document.readyStateFirefox bug 347174
  • 支援 HTML5 的 element.classList 以便更輕鬆地處理 class 屬性。Firefox bug 501257
  • HTML 文件中的 localNamenamespaceURI 現在行為與 XHTML 文件中的行為相同:localName 返回小寫,HTML 元素的 namespaceURI"http://www.w3.org/1999/xhtml"
  • element.getElementsByTagNameNS 不再將其引數轉換為小寫,因此引數中的大寫 ASCII 字母會導致與 HTML 元素的匹配失敗。document.getElementsByTagNameNS 也是如此。
  • 已新增對透過 nsIDOMGeoPositionAddress 介面和新增到 nsIDOMGeoPosition 的新欄位進行地理位置地址的支援。
  • window.getComputedStyle 函式現在返回 url() 值中的引號。

XPath

現在支援 choose() XPath 方法

我們的 XPath 實現現在支援 choose() 方法。

對於 XUL 和附加元件開發者

如果您是擴充套件程式開發者,應首先閱讀 更新 Firefox 3.6 的擴充套件程式,其中概述了哪些更改可能會影響您的擴充套件程式。外掛開發者應閱讀 更新 Firefox 3.6 的外掛

新功能

檢測裝置方向

如果裝置具有受支援的加速計,內容現在可以使用 MozOrientation 事件檢測裝置的方向。Firefox 3.6 支援 Mac 筆記型電腦中的加速計。

監視 HTTP 活動

您現在可以監視 HTTP 事務,即時觀察請求和響應。

使用 Windows 工作列

現在可以在 Windows 7 或更高版本的工作列中自定義視窗的外觀。這在 Firefox 3.6 中預設停用。

地點

  • Places 查詢現在可以在 nsINavHistoryQueryOptions 介面上使用 redirectsMode 屬性來指定是否在結果中包含重定向頁面。
  • nsIFaviconService 介面中添加了新的 nsIFaviconService.expireAllFavicons() 方法。

Storage

儲存 API 現在支援區域設定感知資料排序

Gecko 1.9.2 添加了幾個新的排序方法,以使用區域設定感知技術提供最佳化的結果排序(collation)。

現在可以列舉語句上的屬性

您現在可以使用 for...in 列舉來列舉語句上的所有屬性。

mozIStorageStatement 的 getParameterIndex 在 3.5 和 3.6 之間改變了行為。

有關詳細資訊,請參閱 Firefox bug 528166

非同步繫結多組引數並執行語句。

有關詳細資訊,請參閱 Firefox bug 490085。文件即將推出。

偏好

  • nsIContentPrefService 介面有兩個新方法:nsIContentPrefService.getPrefsByName()nsIContentPrefService.removePrefsByName()

主題

有關主題相關的更改列表,請參閱 更新 Firefox 3.6 的主題

輕量級主題

Firefox 3.6 支援輕量級主題;這些主題易於建立,可將背景應用於瀏覽器視窗的頂部(URL 欄和按鈕欄)和底部(狀態列)。這是將現有 Personas 主題架構整合到 Firefox 中。

雜項

  • Firefox 將不再載入安裝在其內部元件目錄中的第三方元件。這有助於透過阻止有錯誤的第三方元件執行來確保穩定性。以這種方式安裝元件的開發者必須將他們的元件重新打包為 XPI 包,以便它們可以作為標準附加元件安裝。
  • contents.rdf 不再支援在擴充套件程式中註冊 chrome。現在必須使用 chrome.manifest 檔案。請參閱 Firefox bug 492008
  • 添加了自動隱藏選單欄的支援。請參閱 Firefox bug 477256
  • 添加了對物件 container-live-role 屬性的支援。請參閱 Firefox bug 391829
  • tabs-closebutton 繫結已被移除。請參閱 Firefox bug 500971
  • nsISound 添加了根據已發生的事件播放聲音的支援。請參閱 Firefox bug 502799
  • nsITreeView 方法 nsITreeView.canDrop()nsITreeView.drop() 的語法已更改,以支援 Gecko 1.9 中引入的新拖放 API。請參閱 Firefox bug 455590
  • 添加了將滑鼠游標捕捉到 Windows 對話方塊或嚮導的預設按鈕的支援,請參閱 Firefox bug 76053。這由對話方塊和嚮導元素自動處理。但是,如果 XUL 應用程式使用 window 元素建立視窗,並且它具有預設按鈕,則需要在視窗的 onload 事件處理程式中呼叫 nsIDOMChromeWindow.notifyDefaultButtonLoaded
  • nsILocalFileMac 介面已移除兩個方法:setFileTypeAndCreatorFromMIMEType()setFileTypeAndCreatorFromExtension()
  • 新的 NetUtils.jsm 程式碼模組提供了一種易於使用的方法,用於非同步地將資料從輸入流複製到輸出流。
  • 新的 openLocationLastURL.jsm 程式碼模組使得讀取和更改“開啟位置”對話方塊中記住的 URL 的值變得容易,同時正確考慮了隱私瀏覽模式。
  • 在 Windows 上,當圖形驅動聲稱是 32 位時,nsIScreen 介面現在報告 24 位每畫素的顏色深度,因為 24 位更準確地表示實際使用的顏色畫素數量。
  • 選單欄現在可以在 Windows 上隱藏,使用 <xul:toolbar> XUL 元素上的新 autohide 屬性。
  • loadOneTabaddTab 方法現在接受一個新的 relatedToCurrent 引數,此外,還允許按名稱指定引數,因為幾乎所有引數都是可選的。
  • 安裝清單中不再支援“hidden”屬性;使用者不再可能阻止在附加元件管理器視窗中看到附加元件。
  • @mozilla.org/webshell;1 元件不再存在;您需要使用 @mozilla.org/docshell;1
  • 您現在可以使用 update-timer 類別註冊,以安排計時器事件,而無需例項化計時器最終將呼叫的物件;它將在需要時例項化。有關詳細資訊,請參閱 nsIUpdateTimerManager.registerTimer()
  • NPN_GetValue() 函式不再透過變數值 NPNVserviceManagerNPNVDOMelementNPNVDOMWindow 提供對 XPCOM 的訪問。這是為了使外掛在未來版本的 Gecko 中在單獨的程序中執行的工作的一部分。
  • 外掛不再可以透過 XPCOM (IDL) 介面進行指令碼編寫,NPRuntime 是用於使外掛可指令碼編寫的 API,並且不再使用 NPPVpluginScriptableInstanceNPPVpluginScriptableIID 值呼叫 NPP_GetValue()。這是為了使外掛在未來版本的 Gecko 中在單獨的程序中執行的工作的一部分。

對於 Firefox/Gecko 開發者

某些更改只有在您從事 Firefox 內部工作時才真正有趣。

介面合併

以下介面已合併

  • nsIPluginTagInfo2 已合併到 nsIPluginTagInfo 中。
  • nsIPluginInstanceInternalnsIPPluginInstancePeernsIPluginInstancePeer1nsIPluginInstancePeer2nsIPluginInstancePeer3 都已合併到 nsIPluginInstance 中。
  • nsIWindowlessPlugInstPeer 已合併到 nsIPluginInstance 中。
  • nsIPluginManagernsIPluginManager2 已合併到 nsIPluginHost 中。

介面已刪除

以下介面已完全移除,因為它們未被使用、未實現或已過時

  • nsIFullScreen
  • nsIDOMSVGListener
  • nsIDOMSVGZoomListener
  • nsIInternetConfigService
  • nsIDKey
  • nsIEventHandler
  • nsIJRILiveConnectPIPeer
  • nsIJRILiveConnectPlugin
  • nsIScriptablePlugin
  • nsIClassicPluginFactory
  • nsIFileUtilities

介面已移動

以下介面已從其以前的 IDL 檔案重新定位到新的 IDL 檔案中

  • nsIDOMNSCSS2Properties 現在位於其自己的 IDL 檔案中 (dom/interfaces/css/nsIDOMCSS2Properties.idl)。
  • nsIUpdateTimerManager 現在位於其自己的 IDL 檔案中。

大量介面已被移動。有關完整列表,請參閱 Firefox 3.6 中移動的介面

其他介面更改

已進行以下各種更改

  • nsIPlugin 介面現在繼承自 nsISupports 而不是 nsIFactory
  • nsIPluginHost 介面現在繼承自 nsISupports 而不是 nsIFactory
  • nsIFrame 介面現在繼承自 nsQueryFrame 而不是 nsISupports
  • nsIDeviceContext 方法 getPaletteInfo() 已移除,因為它從未實現。
  • nsIScriptContext 方法 reportPendingException() 已移除,因為它不再被使用。

無障礙程式碼更改

  • 當框架和 iframe 的子元素更改時,以及當主文件的子元素更改時,現在會發送 EVENT_REORDER 無障礙事件。請參閱 Firefox bug 420845
  • nsIAccessibleTable.selectRow() 現在在選擇指定行之前正確地移除了所有當前選擇。