chrome為何一來就有flash的支持?

flash是個獨立的運行環境,在IE下有專門的插件,FF也有,但chrome 第一個版本就可以支持flash了,這有點奇怪?難道是谷歌找過adobe開發過嗎?還是chrome採用的內核就已經有了flash的版本支持呢?

我的問題在於第一個版本chrome是通過何種辦法支持flash的呢?


這事兒說起來比較長,牽扯到很多歷史和個人恩怨……

既然已經有同學貼了圖,也介紹了NPAPI 和 https://code.google.com/p/ppapi/ , 我就可以省一些口舌了。

先回答主要問題:

第一個版本的chrome我不知道你說的是特指還是泛指,總之在 chrome 開發出PPAPI技術之前,當然是使用NSAPI來支持Flash插件的(一直到現在還是可以的)。

Flash Player插件是分平台和瀏覽器發布的。

Flash Player 插件的平台支持

平台看這個就比較清楚 Adobe Flash Player / Tech specs:(為方便我做了截圖)

請注意上面最後一句話,Adobe在Linux平台下對Flash的支持已經停止在了 11.2 版本。

這算是大事件了,我當時吐了一地:無力吐槽:觀近期Adobe Flash Platform戰略有感。

不過和 Adobe放棄Android上的FlashPlayer支持 被媒體大量誤讀成 Adobe放棄Flash(如果 Flash 死了,會怎麼樣?) 這件事來說,上面那件 Adobe放棄Linux平台 的事情就只是毛毛雨了。

你看,小眾平台用戶就是這麼慘。被放棄了之後放個屁都沒人知道。

Flash Player插件的瀏覽器支持

瀏覽器的支持看這個比較清楚 Flash Player Support Download:(也做了截圖)

在上圖中,請自行略過 帶有 projector 字樣的下載鏈接,那個是獨立播放器,一般用於開發者本機調試用的,它不是插件。

請注意上面的瀏覽器支持的紅線部分:

  • 在IE中,使用的是 ActiveX control 這個字眼,這是Windows平台的專用技術;
  • 在Firefox中,使用的是 Plugin 這個字眼,for Nescape-compatible browser 指的是網景兼容的瀏覽器,Opera和Chrome都可以使用這個插件。

這裡說的Plugin,指的就是使用NSAPI技術實現的瀏覽器插件。Opera和Chrome都是支持NSAPI技術的,所以它們都算作是 Netscape-compatible browser。

這就是為什麼沒有專用的Opera插件和專用的Chrome Flash插件,而只有專用的IE插件的原因。


Chrome 單飛


我上面說沒有專用的Chrome Flash 插件,其實是不對的。


準確的說,應該是Adobe沒有提供專用的Chrome Flash插件下載。這個「專用的Chrome Flash插件」,也就是Google基於PPAPI技術,與Adobe合作開發的Flash Player插件。

在某個版本之後(我記不清了,也許是18,也許是20),大約是2012年中旬的樣子,Chrome就開始內置PPAPI的Flash Player插件。這個插件的在瀏覽器中就自動包含,而且會和Chrom一起更新。


這篇文章Chromium Blog: Saying Goodbye to Our Old Friend NPAPI 講到Chrome會在2014年停止NSAPI插件的更新並希望在2014年底完全移除對NSAPI插件技術的支持。


擴展閱讀


有點虎頭蛇尾,但實在不想再思考那段悲慘的往事,發幾篇東西算作結束:

  • Chromium Blog: The road to safer, more stable, and flashier Flash
  • Blocked plug-ins
  • 有史以來關於Flash Player的最詳細說明
  • TNND,Adobe居然停止了AIR的Linux版本開發?
  • Adobe and Google Partnering for Flash Player on Linux

chrome 從某個版本開始預裝了 flash 而已,這是同 adobe 合作的。——這叫「預裝」。


其實Chrome對Flash的支持也是通過插件的形式。
在地址欄輸入:chrome://plugins/ 則見下圖:


Chrome對於flash的支持由兩個部分組成。

進入chrome://plugins/頁面,展開「詳細」,如下圖:

(圖片來自百度chrome吧)

其中ppapi是Chrome瀏覽器內置的flash插件,是Google和Adobe合作的產物,於Chrome21(win)或者Chrome20(Linux)加入,具有沙箱、GPU加速、多進程架構等新功能。早期經常會有一些兼容性問題,現在已經很少見到了。
參見:Chrome21新架構,減少Flash導致的Window崩潰

npapi是Adobe提供的外掛flash,這個並非Chrome專版,而是其他所有非IE瀏覽器公用的版本,也就是chrome一開始就支持的flash

事實上不止Chrome瀏覽器,Safari和Firefox都是一開始就支持flash


推薦閱讀:

jQuery 會成為下一個 Adobe Flash 嗎?
為什麼Windows 10 連 Flash 的支持都做不好?
如何評價卜樺的flash作品—「貓」?
目前做 webgame,Flash 還是主流嗎?
Flash 真的是「落後的技術」嗎?

TAG:GoogleChrome | AdobeFlash |