Google 瀏覽器要禁止 Flash?你不是當真了吧

2024-03-15 02:10

本文主要是介绍Google 瀏覽器要禁止 Flash?你不是當真了吧,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

以下這種框,想必很多人都看到過了:

java_leiphone0728

事情的起因還需要追溯到 2013 年,Google 突然發了一個通告,說是 Chrome 瀏覽器會逐步的去掉對 NPAPI 外掛的支持。這個事情很快就過去了,因為 NPAPI 這種江湖黑話太不親民了,這個東西到底有啥用,廣大群眾也並不清楚。關於 Google 公告,可以點擊這裡察看。

但是其實蠻重要,因為除了 Java 以外,大家喜聞樂見的 Flash,也是 NPAPI 外掛。

時間已經到了 2015 年,這次可不是說說而已了, Google 正式推出時間表:

  • 2015 年 1 月開始,除了非常流行的 NPAPI 插件,其他一律屏蔽;
  • 2015 年 4 月開始,所有的 NPAPI 外掛默人都是關閉的,用戶需要在高級設定中手動打開;
  • 2015 年 9 月,所有基於 NPAPI 的外掛無法使用,不管你是 Java、支付寶或者是 Flash,或者百度雲。

其他瀏覽器廠商,比如 Opera、火狐,也紛紛表態會逐漸淘汰 NPAPI。

Opera NPAPI_leiphone0728

Opera:我早就說了啊!

Firefox NPAPI_leiphone0728

火狐:我還是會支持的,只是大家要一起來淘汰這個技術。

但是,NPAPI 到底是什麼?

NPAPI 全稱叫 Netscape plugin API, 聽到這個名字是不是有時光倒流的感覺, 沒錯,就是那個當年被微軟一棒子打死了好多年的 Netscape 瀏覽器發明的一種擴展瀏覽器功能的方式。

是不是覺得好拗口? 沒辦法,我們要從瀏覽器外掛本身開始說起。

HTML 作為在瀏覽器裡面承載展現內容的規範, 設計起來其實非常困難。 太簡單沒法用,太複雜了瀏覽器廠商實現起來又有困難。 一開始的時候 HTML 只是設計用於承載圖片,文字一類的主流內容。不過瀏覽器廠商很快就不滿意了,因為除了圖片文字以外,很多小眾內容,瀏覽器用戶實際上是有需求的。比如 PDF 文件以及影片、音樂。

為了解決這些問題而去要求 W3C 把相應的內容加入到 HTML 標準裡面是很不現實的,標準的制定非常繁複,週期也非常長,小眾內容到底有沒有必要加入 HTML 規範,這種哲學問題一旦討論起來誰都不知道什麼時候能結尾, 於是瀏覽器廠商們發明了外掛這樣一個機制, 這樣如果有一些內容不被 HTML 直接支援,用戶又確實有需要,那麼這部分內容就可以用外掛來處理。

所以,外掛本身對網路的發展,是有重大貢獻的, 沒有外掛,很多新的內容,比如影片,比如向量遊戲(Flash)可能早就胎死腹中了。

W3C (全球資訊網協會)非常識相地很快就把外掛機制正式納入 HTML4 標準裡。 W3C 畢竟不是一個強力部門,它更像各大瀏覽器廠商背後妥協的產物。

不過按照 W3C 的哲學,外掛畢竟只是對 HTML 的一個補充。而一旦某些外掛提供的內容,由於市場原因反而變為主流,那麼 W3C 就會馬上將其納入到 HTML 規範中去,讓瀏覽器原生就支持。

<video> 標籤就是一個典型的例子。 2007 年的時候,鑑於 YouTube 已經紅得一塌糊塗,網路影片既然已經變成主流內容,W3C 馬上就開始討論是否引入 video 標籤,以便把影片支持提高到瀏覽器原生這個水準。

這個提案是 Opera 提出來的, 我還記得 Hakon Wellium Lee 在 Opera 員工大會上面興致勃勃地討論這個標籤的場景。

這個提案現在還在這裡,大家有興趣可以看看這裡

看到這裡,外掛在瀏覽器這個領域的作用已經不言而喻了。

瀏覽器承載的內容 = HTML(主流內容)+ 外掛(小眾內容)

而 W3C 會時刻監視這個等式,動態調整 HTML 支持的內容以維持這個等式的動態平衡。

現在你知道為什麼 HTML5 會加入 video、audio 標籤了吧。其實嚴格意義上講也包括 svg、canvas 一類的標籤。

而 NPAPI 就是瀏覽器外掛架構的一種。事實上, NPAPI 外掛架構是個非常好的架構, 一共就 40 幾個 API,相對於另外一種瀏覽器外掛架構: ActiveX 來說,簡直就是業界良心。

這裡只有一個問題,它的發明時間是 1995,而在那個時候手機還可以砸死人,學校的電腦教室要穿鞋套才能進。

那個時代所有類似的 API(應用程式介面)設計者幾乎都非常自然的忽略掉了安全性問題。

你不信?我們來看看 NPAPI 外掛和瀏覽器的關係是什麼, 同時對比下和同樣執行網路下載程式碼的 Javascript 引擎的位置。

NPAPI Plugin_leiphone0728

看懂了吧, 你以為 NPAPI 是外掛嗎?其實它和瀏覽器是平行運作的,它甚至可以打開網頁,安裝一個木馬,然後隨手幫你關掉殺毒軟體。

可是,你說 NPAPI 不就 40 幾個 API 嘛?朋友,你想多了,NPAPI 不限制外掛自由讀取系統所有的 API。

而 Javascript 引擎的限制就多得多,事實上,Chromium 系列的瀏覽器 Javascript 引擎均是運行在沙盒之中,一舉一動都是被嚴密監視著的,敢有異常?瀏覽器分分鐘殺死你。

除了安全性以外,外掛們還質量參差不齊,一旦崩潰瀏覽器就得跟著一起崩掉, 於是各個瀏覽器又一把鼻涕一把眼淚地把外掛們放到另外一個進程中執行,既然惹不起難道還躲不起嘛。其他的耗電量、圖形效率、腳本效率一類的也差不多,這裡就不講了,多講了都是眼淚。

如果只是安全,那你把外掛放到沙箱裡面隔離起來不就行了嗎?

是的,Google 當年也是這樣想的,於是他們發明了 PPAPI, 然後在業界裡面振臂一呼,大家來看,我的這個新 API 好啊,外掛用起來更安全,還有沙箱。

這個是業界夥伴們的態度:

NPAPI support by Chrome_leiphone0728

Java 說:我最近聽說 Chrome 不支持我們了,大家請換瀏覽器,就這樣。

NPAPI Pepper_leiphone0728

火狐說:我們對 PPAPI 一點興趣都沒有。

(而且騙人的是, Google 的 PPAPI 鏈接居然指的是 Mozilla 的這個頁面。不知道是不是存心戳 Mozilla 一把)。

如果你是個軟體工程式又有一顆好奇的心,表示無法理解 PPAPI 為何如此不受重視,你可以去這裡看看 PPAPI 的說明檔 ,在這裡。

你一定會發現問題,其實不管你是不是軟體工程師你都會發現這個問題。因為,這個 PPAPI 官方說明檔連結裡面,幾乎沒有文件。

不過 Adobe 認輸了。 事實上 Adobe 很早就開始發表 PPAPI 的版本。

Adobe PPAI_leiphone0728

所以如果你這幾天再看到文章開始提到的對話框,如果上面寫的是 Flash,你只需要去下載一個最新的 PPAPI 的 Flash 外掛,或者下載一個新版的 Chrome。

因為目前 Chrome 已經開始內置 PPAPI 版的 Flash。其他的,就看廠商們如何跟進吧,據說支付寶已經有 PPAPI 版本了。

以上這些我用個簡單的故事方便理解:

如果把外掛比喻成各家請來的傭人,有一個叫 Flash 很能幹,不過所有的傭人開始都是穿比基尼上班,因為這是規定。但是 Chromium 覺得這個規定不好,說大家應該穿西裝,結果遭到了很多傭人的抵制,他們覺得西裝不方便。Chromium 說不穿西裝不準上班!於是 Flash 認輸換了西裝,其他人集體辭職,就是這樣一個情況。Chromium 不是對 Flash 這個傭人有問題,而是對穿比基尼上班這個陋習有意見。

所以,朋友,不要害怕,Flash 還在的。

如果你看到的是這個框:

Adobe Flash Player_leiphone0728

其實背後的原因還會更複雜一些。 這個是因為前期炒得沸沸揚揚的 Hacking team 被黑的事件中,Hacking team hacked 的一些非常嚴重的 Flash 漏洞被洩漏,於是 Chrome 把舊版本的 Flash 全部禁止了。

解決的方法也一樣,下載一個最新的 PPAPI 的 Flash 外掛,或者下載一個新版的 Chrome 就好。

以下總結:

各大瀏覽器,比如 Chrome 禁止了 NPAPI 外掛,但是依然有內置 PPAPI 版的 Flash,本質原因是 Google 覺得以前的外掛架構不合理。加上最近 HT 爆出的 Flash 嚴重漏洞,才會把低版本的 Flash 禁止了。而這與 Flash 本身沒有關係。

大家都知道,Flash 外掛有兩個功能,一個是影片,一個是遊戲。最近 HTML5 的確很熱門,HTML 現在代替影片是沒有問題,但是遊戲不行。畢竟是新興市場,還達不到完全取代 Flash 的地步。所以,瀏覽器不是禁止 Flash 外掛,只是出於安全考慮,對低版本的架構進行升級。

至於遊戲,無論什麼工具,只要適合項目需求的都是好工具,更何況 App Store 從來沒有用開發工具作為遊戲分類的條件。因為玩家是不關心用什麼工具和語言開發,最關心的恰恰是遊戲體驗。這也讓 Flash 有一定的生存空間。

網路上有不少人問:「如何評價 Google 瀏覽器禁止運行 Flash?」可以說,這只是一個美麗的誤解。

转自http://technews.tw/2015/07/29/google-chrome-interdict-flash/

这篇关于Google 瀏覽器要禁止 Flash?你不是當真了吧的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/810477

相关文章

禁止平板,iPad长按弹出默认菜单事件

通过监控按下抬起时间差来禁止弹出事件,把以下代码写在要禁止的页面的页面加载事件里面即可     var date;document.addEventListener('touchstart', event => {date = new Date().getTime();});document.addEventListener('touchend', event => {if (new

什么是 Flash Attention

Flash Attention 是 由 Tri Dao 和 Dan Fu 等人在2022年的论文 FlashAttention: Fast and Memory-Efficient Exact Attention with IO-Awareness 中 提出的, 论文可以从 https://arxiv.org/abs/2205.14135 页面下载,点击 View PDF 就可以下载。 下面我

禁止复制的网页怎么复制

禁止复制的网页怎么复制 文章目录 禁止复制的网页怎么复制前言准备工作操作步骤一、在浏览器菜单中找到“开发者工具”二、点击“检查元素(inspect element)”按钮三、在网页中选取需要的片段,锁定对应的元素四、复制被选中的元素五、粘贴到记事本,以`.html`为后缀命名六、打开`xxx.html`,优雅地复制 前言 在浏览网页的时候,有的网页内容无法复制。比如「360

STM32内部闪存FLASH(内部ROM)、IAP

1 FLASH简介  1 利用程序存储器的剩余空间来保存掉电不丢失的用户数据 2 通过在程序中编程(IAP)实现程序的自我更新 (OTA) 3在线编程(ICP把整个程序都更新掉) 1 系统的Bootloader写死了,只能用串口下载到指定的位置,启动方式也不方便需要配置BOOT引脚触发启动  4 IAP(自己写的Bootloader,实现程序升级) 1 比如蓝牙转串口,

消除安卓SDK更新时的“https://dl-ssl.google.com refused”异常的方法

消除安卓SDK更新时的“https://dl-ssl.google.com refused”异常的方法   消除安卓SDK更新时的“https://dl-ssl.google.com refused”异常的方法 [转载]原地址:http://blog.csdn.net/x605940745/article/details/17911115 消除SDK更新时的“

STM32 ADC+DMA导致写FLASH失败

最近用STM32G070系列的ADC+DMA采样时,遇到了一些小坑记录一下; 一、ADC+DMA采样时进入死循环; 解决方法:ADC-dma死循环问题_stm32 adc dma死机-CSDN博客 将ADC的DMA中断调整为最高,且增大ADCHAL_ADC_Start_DMA(&hadc1, (uint32_t*)adc_buffer, ADC_Buffer_Size); 的ADC_Bu

禁止 CTRL+ALT+DEL

在win98 里可以用   Public Declare Function SystemParametersInfo Lib "user32" Alias "SystemParametersInfoA" (ByVal uAction As Long, ByVal uParam As Long, ByRef lpvParam As Any, ByVal fuWinIni As Long)

com.google.gson.JsonSyntaxException:java.lang.IllegalStateException异常

用Gson解析json数据的时候,遇到一个异常,如下图: 这个异常很简单,就是你的封装json数据的javabean没有写对,你仔细查看一下javabean就可以了 比如:我的解析的代码是             Gson gson = new Gson();             ForgetJson rb = gson.fromJson(agResult.mstrJson, For

Google Earth Engine——高程数据入门和山体阴影和坡度的使用

目录 山体阴影和坡度 对图像应用计算 应用空间减速器 高程数据 通过从“重置”按钮下拉菜单中选择“清除脚本”来清除脚本。搜索“elevation”并单击 SRTM Digital Elevation Data 30m 结果以显示数据集描述。单击导入,将变量移动到脚本顶部的导入部分。将默认变量名称“image”重命名为“srtm”。使用脚本将图像对象添加到地图: Map

The import com.google cannot be resolved

The import com.google cannot be resolved,报错: 第一感觉就是缺少jar包,因为项目用maven管理,所以在pom.xml中添加: <dependency>  <groupId>com.google.code.gson</groupId>  <artifactId>gson</artifactId>  <version>2.3.1</ver