面向開發者的 Firefox 3.5

Firefox 3.5於 2009 年 6 月 30 日釋出)引入了許多新功能,併為各種 Web 標準提供了更多改進的支援。本文提供了一份詳盡的列表,其中包含指向介紹主要改進的文章的連結。

Firefox 3.5 中新增的開發者功能

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

HTML 5 支援

HTML 影片和音訊

Firefox 3.5 增加了對 HTML 5 的 audiovideo 元素的支援。

Firefox 中的離線資源

Firefox 3.5 現在完全支援 HTML 5 離線資源規範。

拖放

HTML 5 拖放 API 允許在網站內部和網站之間拖放專案。這還為擴充套件和基於 Mozilla 的應用程式提供了一個更簡單的 API。

新增支援的 CSS 功能

可下載字型支援

新的 @font-face @規則允許網頁提供可下載字型,以便網站能夠完全按照頁面作者的預期進行渲染。

CSS 媒體查詢

Firefox 3.5 現在支援 CSS 媒體查詢,這增強了對媒體相關樣式表的支援。

::before::after 更新到 CSS 2.1

::before::after 偽元素已更新為完全支援 CSS 2.1,增加了對 positionfloatlist-style-* 和某些 display 屬性的支援。

ch 長度單位

ch 單位現在可以在任何接受 長度 的地方使用。1ch 是“0”(零)字元的寬度。

opacity

CSS 的 -moz-opacity Mozilla 擴充套件已被移除,取而代之的是標準的 opacity 屬性。

text-shadow

現在支援 text-shadow 屬性,它允許網頁內容指定應用於文字和文字裝飾的陰影效果。

overflow-wrap

這個新支援的屬性允許內容指定是否可以在單詞內部斷行,以防止當一個不可斷開的字串太長而無法在一行中容納時發生溢位。

white-space 屬性支援 pre-line

white-space 屬性現在接受 pre-line 值。

-moz-box-shadow, -moz-border-image, -moz-column-rule, -moz-column-rule-width, -moz-column-rule-style, -moz-column-rule-color

Firefox 3.5 增加了對這些 Mozilla CSS 擴充套件的支援。

-moz-nativehyperlinktext 顏色值

這個新的顏色值表示使用者系統的預設超連結顏色。

-moz-window-shadow 屬性和 :-moz-system-metric(mac-graphite-theme) 偽類

這些新的 CSS 功能旨在方便主題化。

-moz-appearance 的新值

-moz-win-glass-moz-mac-unified-toolbar 值已新增到 -moz-appearance

使用 CSS 變換

Firefox 3.5 支援 CSS 變換。詳情請參閱 -moz-transform-moz-transform-origin

:nth-child, :nth-last-child, :nth-of-type, :nth-last-of-type, :first-of-type, :last-of-type, :only-of-type

這些選擇器在 Firefox 3.5 中都得到了新支援。

新增 DOM 功能

localStorage

Firefox 3.5 增加了對 Web 儲存 localStorage 屬性的支援,它為 Web 應用程式提供了一種將資料本地儲存在客戶端計算機上的方法。

使用 Web Worker

Firefox 3.5 支援 Web Workers,以方便 Web 應用程式中的多執行緒支援。

使用地理定位

Firefox 3.5 支援地理定位 API,如果安裝並啟用了該資訊的提供程式,它允許 Web 應用程式獲取有關使用者當前位置的資訊。

使用選擇器定位 DOM 元素

選擇器 API 允許查詢文件以定位與給定選擇規則匹配的元素。

滑鼠手勢事件

Firefox 3.5 支援滑鼠手勢事件,例如觸控板滑動。

NodeIterator 物件

NodeIterator 物件支援遍歷 DOM 子樹中的節點列表。

MozAfterPaint 事件

這個新的 DOM 事件在視窗中的繪製更新後傳送。

MozMousePixelScroll 事件

這個新的 DOM 事件允許檢測基於畫素的滑鼠滾輪事件,而不是基於行的滾動事件。

新增 JavaScript 功能

JavaScript 1.8.1 中的新特性

JavaScript 1.8.1 中所有更改的概述。

Object.getPrototypeOf()

這個新方法返回指定物件的原型。

使用原生 JSON

Firefox 3.5 原生支援 JSON

String 物件上的新 trim 方法

String 物件現在具有 trim()trimLeft()trimRight() 方法。

網路

HTTP 的跨域訪問控制

在 Firefox 3.5 中,如果伺服器支援,HTTP 請求(包括透過 XMLHttpRequest 發出的請求)現在可以跨域工作。

XMLHttpRequest 的進度事件

現在提供進度事件,以使擴充套件能夠監視請求的進度。

改進的同步 XMLHttpRequest 支援

在同步 XMLHttpRequest 期間,DOM 超時輸入事件現在被抑制。

控制 DNS 預取

Firefox 3.5 提供了 DNS 預取功能,它會提前解析當前頁面中包含的連結的域名,以便在實際點選連結時節省時間。本文介紹瞭如何調整您的網站以停用預取或調整預取操作方式。

新增 Canvas 功能

canvas 元素的 HTML 5 文字 API

Canvas 元素現在支援 HTML 5 文字 API。

canvas 中的陰影效果

現在支援 Canvas 陰影效果。

createImageData()

現在支援 canvas 方法 createImageData(),允許程式碼專門建立一個 ImageData 物件,而無需自動完成。透過防止其他 ImageData 方法建立物件,這可以提高它們的效能。

moz-opaque 屬性

添加了 moz-opaque 屬性,它讓 canvas 知道是否會有半透明度。如果 canvas 知道沒有半透明度,則可以最佳化繪製效能。另請參閱 HTMLCanvasElement.mozOpaque

新增 SVG 功能

將 SVG 效果應用於 HTML 內容

您現在可以將 SVG 效果應用於 HTML 和 XHTML 內容;本文介紹瞭如何實現。

其他新功能

Firefox 中的 ICC 顏色校正

Firefox 3.5 現在支援帶標籤影像的 ICC 顏色校正。

script 元素現在支援 defer 屬性

此屬性指示瀏覽器可以選擇繼續解析和渲染頁面,而無需等待指令碼執行完成。

其他改進

  • 已實現 Text 節點的 wholeText 屬性和 Text.replaceWholeText() 方法。
  • 已新增屬性 element.children。它返回給定元素的子元素集合
  • 現在支援屬性 HTMLElement.contentEditable,以支援可編輯元素。
  • DOM Element 物件現在支援 Element Traversal API。
  • 現在可以使用 cloneNode() 克隆 HTML 文件節點。
  • 已移除非標準的 getBoxObjectFor() DOM 方法。您應該改用 getBoundingClientRect()
  • 已分派的 DOM 事件現在可以重新分派。這使得 Firefox 3.5 透過 Acid 3 測試的第 30 項。
  • DOM 2 Range 處理已得到改進。
  • 在非 chrome 範圍內,異常中捕獲的物件現在是實際丟擲的物件,而不是包含丟擲物件的 XPConnect 包裝器。
  • SVG ID 引用現在是即時的。
  • SVG 濾鏡現在適用於 foreignObject
  • 為了相容性,已將 GetSVGDocument() 方法新增到 objectiframe 元素。
  • 物件和陣列初始化器中屬性的隱式設定不再執行 JavaScript 中的 setter。
  • gDownloadLastDir.path 變數已重新命名為 gDownloadLastDir.file,因為它指的是 nsIFile,而不是路徑。
  • gDownloadLastDirPath 變數已重新命名為 gDownloadLastDirFile,因為它指的是 nsIFile,而不是路徑。
  • 從 Firefox 3.5 開始,您不能再在獲取 XPCNativeWrapper 自動化的 chrome 包中使用 data: 繫結。

面向 XUL 和附加元件開發者

如果您是擴充套件開發者,您應該首先閱讀 更新 Firefox 3.5 的擴充套件,它提供了可能影響您擴充套件的更改的有用概述。

新元件和功能

支援隱私瀏覽模式

Firefox 3.5 提供了隱私瀏覽模式,它不記錄使用者的活動。擴充套件可以按照本文提供的指南支援隱私瀏覽。

Firefox 3.5 中的安全更改

本文涵蓋了 Firefox 3.5 中與安全相關的更改。

Firefox 3.5 中的主題更改

本文涵蓋了 Firefox 3.5 中與主題相關的更改。

監控 Wi-Fi 接入點

具有 UniversalXPConnect 許可權的程式碼現在可以監視可用接入點列表,獲取有關其 SSID、MAC 地址和訊號強度等資訊。這可以與地理定位結合使用,以提供基於 Wi-Fi 的位置服務。

顯著更改和改進

  • XUL textbox 小部件現在提供 search 型別,用於搜尋欄位。
  • 為了支援在視窗之間拖放標籤頁,browser 小部件現在具有 swapDocShells() 方法。
  • panel 元素添加了 level 屬性;這指定了面板是出現在其他應用程式之上,還是僅出現在包含面板的視窗之上。
  • XUL 元素現在支援 clientHeightclientWidthscrollHeightscrollWidth 屬性。
  • keyset 現在包含 disabled 屬性。
  • 此外,keyset 現在可以使用節點的 removeChild() 方法移除。
  • mozIStorageStatementinitialize() 方法已被移除;使用者應改用 createStatement() 方法來獲取新的語句物件。
  • Storage API 現在支援非同步請求。
  • nsICookie2 介面現在在其新的 creationTime 屬性中公開了 cookie 的建立時間。
  • 已向 nsIProtocolHandler 添加了一個標誌(URI_IS_LOCAL_RESOURCE),該標誌在 chrome 註冊期間進行檢查,以確保允許註冊協議。
  • Firefox 現在在 Linux 上也會在 /usr/lib/mozilla/plugins 中查詢外掛,以及之前支援的位置。
  • 外掛 API 已更新,以支援隱私瀏覽模式;您現在可以使用 NPN_GetValue() 透過變數 NPNVprivateModeBool 查詢隱私瀏覽模式的狀態。

面向終端使用者的新功能

使用者體驗

位置感知瀏覽

如果您選擇,可以允許 Firefox 3.5 與網站共享有關您當前位置的資訊。Firefox 3.5 可以使用有關您所連線網路的資訊來共享您的位置。當然,它會在這樣做之前徵求您的許可,以確保您的隱私。

開放的音訊和影片支援

Firefox 3.5 支援使用開放的 Ogg 格式嵌入影片和音訊,以及音訊的 WAV。無需外掛,也沒有關於需要安裝某些東西(結果在您的平臺上無法使用)的令人困惑的錯誤訊息。

本地資料儲存

Web 應用程式現在可以使用 Web 儲存的本地儲存功能在您的計算機上儲存資料。這對於從網站偏好設定到更復雜的資料的任何內容都非常有用。

安全和隱私

隱私瀏覽

需要使用別人的電腦?開啟隱私瀏覽模式,您的會話不會記錄任何內容,包括 cookie、歷史記錄和任何其他可能涉及隱私的資訊。

更好的隱私控制

隱私偏好設定面板經過了重新設計,為使用者提供了對其私人資訊的更多控制。使用者可以選擇保留或丟棄任何內容,包括歷史資訊、cookie、下載和表單欄位資訊。此外,使用者可以指定是否在位置欄的自動建議中包含歷史記錄和/或書籤,這樣您就可以避免在位置欄中鍵入時意外彈出私人網址。

效能

更快的 JavaScript 效能

JavaScript,即“AJAX”中的“J”,在 Firefox 3.5 中使用新的 TraceMonkey JavaScript 引擎得到了顯著加速。Web 應用程式比 Firefox 3 中快得多。

更快的頁面渲染

由於“推測性解析”等技術,Web 內容在 Firefox 3.5 中繪製速度更快。您的使用者無需知道這意味著什麼,只需知道“它使繪製速度更快”。