Firefox 31釋出,包含了ECMAScript 6的新特性
Mozilla釋出了Firefox 31。這個版本包括了ECMAScript 6的新特性、惡意檔案檢測以及為遊戲開發者提供的一些新特性。
ECMAScript 6是ECMAScript標準的下一個版本,代號“Harmony”或“ES.next”。在文章《Firefox 31開發者指南》中,Mozilla團佇列出了JavaScript方面的更新。這些改動是根據ECMAScript 6特性的更新而做出的。包括:
- 新的陣列內建函式:Array.prototype.fill(),這個函式將使用一個靜態值填充指定範圍的所有陣列元素。這個範圍由一個開始索引和一個結束索引給出。
- 新的數學函式:Math.clz32()返回一個數值,表示當一個數字用32位2進製表示時開頭0的個數。
- 新的字串內建函式:String.prototype.normalize(),對於Firefox桌面版可用。它將返回一個給定字串的Unicode標準化形式(如果給定的不是字串,它將先被轉成字串,然後再進行Unicode標準化)。
- 新的物件方法Object.setPrototypeOf(),將指定物件的原型(即物件中的[[Prototype]]屬性)設定為另一個物件或null。
- 新的數字常量:Number.MAXSAFEINTEGER表示JavaScript中最大的可用整數;Number.MINSAFEINTEGER表示JavaScript中最小的可用整數。
關於Firefox已經支援的ECMAScript 6的特性,可以在這裡找到一份詳細的列表。
除了JavaScript的更新,新的Firefox 31發行版也對開發者工具進行了改進,包括頁面控制檯(Web Console)中預設啟動警告、網路監視器(Network Monitor)中提供“copy as cURL”命令(把網路請求轉換成cURL命令並儲存到剪下板中,這樣你就可以用命令列的方式傳送這個請求),以及“保持網路監視器日誌的選項”。
Mozilla在《Firefox 31開發者指南》的後半部分進行了詳細闡述:
預設情況下,網路監視器將顯示一個列表,包含了載入當前頁面時所有的網路請求。列表中每一行顯示一個請求。
當你瀏覽一個新頁面或者重新整理當前頁面時,網路監視器將清除上一次的列表內容。從Firefox 31開始,為了使網路監視器不執行清除操作,你可以在配置中勾選“開啟保持日誌(Enable persistent logs)”選項。
Firefox 31也帶來了新的惡意檔案檢測功能。MozillaWiki對這個特性給出了高度的概括
無論何時,當一個二進位制檔案完成下載後,user-agent會進行本地查表,以判斷是否是惡意檔案。對於Windows,如果本地查表沒有結果,user-agent可能會執行一次遠端查表。
當一個二進位制檔案完成下載後,user-agent會提取檔案的一些後設資料,包括:
- 下載檔案的目標URL、引用URL以及重定向鏈中的任何URL。
- 通過SHA-256演算法對檔案內容進行計算得到的雜湊值。
- 任何通過Windows Authenticode API獲得的證照驗證資訊。
- 檔案長度。
- 下載時推薦儲存的檔名。
通過使用這些後設資料,user-agent在一個阻止列表中進行查詢。如果下載是允許的,它還會檢查一個允許列表。如果這個二進位制檔案被簽名了,那麼簽名資訊會和允許列表中的進行核對。
如果在阻止列表中被匹配,user-agent將不會儲存這個檔案。如果在允許列表中被匹配,user-agent可能會認為這個二進位制檔案是可信的,並跳過遠端查表的過程。如果沒有匹配,且這個二進位制檔案沒有簽名,user-agent可能會通過應用信譽服務(application reputation service)進行一次遠端查表。
Firefox 31的惡意檔案檢測特性在開發者社群引發了討論。一個匿名使用者在Slashdot上發表了一篇名為《Firefox 31釋出》的文章,評論到:“'對下載檔案進行惡意檔案檢查和阻止'是對隱私的嚴重侵犯。它工作時幾乎把每個下載檔案的URL都傳送給Google。”
在Hacker News上關於FireFox 31的討論中,也可以看到類似的觀點。
使用者 TheCraiggers 評論到:
我擔心這所牽涉到的隱私問題。尤其是這個特性是隱藏的,並且只有兩種方法關閉它。而其中一種需要進入到about:config。大多數人甚至都不知道about:config的存在。如果我沒有讀改動日誌的話,我甚至不知道這個檢測一直在執行著。
需要注意的是,在7月23日,Mozilla安全與隱私部門的高階工程經理Sid Stamm,釋出了一篇題為《Firefox惡意檔案檢測特性的改進》的文章。這篇文章介紹了惡意檔案檢測這個特性,並給出了關閉這個特性的操作步驟。完整的文章可參考MozillaWiki這裡。
Stamm告訴InfoQ:
任何時候,安全瀏覽會把相關資料傳回Google。比如一個可疑的釣魚網頁或者惡意檔案。這些資訊只是用來標記惡意行為,並且只在Google內部使用。兩週後,除URL外的其他資訊,如你的IP地址,將被刪除。
除了關心隱私方面的問題,Firefox 31發行版帶來了另一些特性。在文章《為HTML5遊戲開發者提供的資源》中,Mozilla的Hack團隊對這些特性進行了描述。他們將這些特性描述成“將幫助HTML5遊戲開發者編寫和除錯更高階的遊戲。”
在Firefox開發者工具的眾多改進中,包括了對以下工具的更新:JavaScript偵錯程式、樣式編輯器、頁面檢視器(Page Inspector)、程式碼片段速記器(Scratchpad)、分析器(Profiler)、網路監視器和頁面控制檯。
其他值得關注的改進還包括往瀏覽器中加入了一個Canvas偵錯程式(Canvas Debugger)。Mozilla的Hack團隊介紹到:
Canvas偵錯程式允許你對所有畫布中的呼叫進行跟蹤。這些呼叫用於生成一幀畫面的內容。特定的呼叫按不同的顏色顯示,比如繪畫元素或使用指定的著色器。
偵錯程式不僅能用於開發基於WebGL的遊戲,也能用於除錯使用Canvas 2D開發的遊戲。
當使用Canvas偵錯程式時,最常被報告的兩個問題是:在生成動畫時,使用setInterval代替requestAnimationFrame;檢查一個iFrame中的畫布元素。
關於Canvas偵錯程式的更多資訊,開發者可以閱讀《Firefox開發者工具中Canvas偵錯程式的介紹》。關於Firefox 31改動的完整清單,使用者和開發者可通過這裡的釋出記錄獲取。
InfoQ讀者可通過多種方式為Firefox貢獻力量,而且Mozilla歡迎這些想成為專案中一員的新人們。詳細資訊可以在Mozilla開發者網路上獲取。另外,開發者網路上也有一些關於如何做的指南。
英文原文:Firefox 31 Released; Includes New ECMAScript 6 features 翻譯:潘瑾瑜
相關文章
- ECMAScript 6中除類之外的OOP新特性OOP
- ECMAScript正規表示式6個最新特性
- Firefox 34 中的新開發者工具特性Firefox
- Firefox 34中的新開發者工具特性Firefox
- 種草ECMAScript2021新特性
- HP釋出QTP的新補丁支援FireFox3.5QTFirefox
- Firefox 37 釋出Firefox
- 正式釋出!VS Code 1.66新特性
- Git 2.1釋出:新特性預覽Git
- PHP6 中可能會出現的新特性PHP
- Firefox3.5釋出Firefox
- Java 11正式釋出,新特性解讀Java
- ECMAScript 2015正式釋出
- ECMAScript 2017(ES8)新特性簡介
- ECMAScript 2021(ES12)新特性簡介
- JDK 16 即將釋出,新特性速覽!JDK
- RDS釋出會解讀| AliSQL核心新特性SQL
- Java 8 正式釋出,新特性全蒐羅Java
- ECMAScript6.0新特性介紹第七篇
- ECMAScript 2016(ES7)新特性簡介
- ECMAScript 2019(ES10)新特性簡介
- ECMAScript 2018(ES9)新特性簡介
- ECMAScript 2020(ES11)新特性簡介
- JavaScript 6 的新特性介紹JavaScript
- ES6常用的新特性
- Fedora Core 6的新特性(轉)
- ES6新特性
- AIX 6:新特性概述AI
- 玩轉ECMAScript 6 ~
- ECMAScript 6 掃盲
- ECMAScript 6教程 (三)
- Laravel 8 正式釋出!來看看有哪些新特性Laravel
- Chrome 58測試版釋出,有哪些新特性?Chrome
- Node.js 8.5 正式釋出,新特性一覽Node.js
- ECMAScript 2017 語言規範釋出
- Firefox 119 正式釋出Firefox
- Mozilla Firefox 24.0 Beta 5 釋出Firefox
- Fedora 31 Beta 釋出