科學(xué)上網(wǎng)
Blink項(xiàng)目頁面
Chromium項(xiàng)目(FAQ)
目錄
為什么Chrome會產(chǎn)生新的瀏覽器引擎?
我應(yīng)該從Chrome中獲得什么樣的東西?
這個(gè)新的瀏覽器引擎是否會更加分散Web平臺的兼容性?
支持,是不是更多瀏覽器共享WebKit以獲得兼容性?
這對Web標(biāo)準(zhǔn)有何影響?
我們現(xiàn)在會看到-chrome-供應(yīng)商前綴嗎?
那么我們有一個(gè)更加分散的移動(dòng)WebKit故事?
什么阻止Chrome發(fā)布專有功能?
這只是谷歌開發(fā)技術(shù)的一個(gè)詭計(jì)嗎?
在未來12個(gè)月內(nèi),我們應(yīng)該從Chrome和Blink中看到什么?長期呢?
這是開源嗎?
Opera最近宣布他們的瀏覽器采用了Chromium。他們的計(jì)劃是什么?
為什么這對我作為Web開發(fā)人員有好處?
1. 為什么Chrome會產(chǎn)生新的瀏覽器引擎?
我們做出這一改變有兩個(gè)主要原因。
主要原因是Chromium使用與其他基于WebKit的瀏覽器不同的多進(jìn)程架構(gòu)。因此,多年來,支持多種體系結(jié)構(gòu)導(dǎo)致WebKit和Chromium社區(qū)的復(fù)雜性日益增加,從而減緩了創(chuàng)新的集體速度。
此外,這使我們有機(jī)會對其他績效改進(jìn)策略進(jìn)行開放式調(diào)查。我們希望Web應(yīng)用程序盡可能快。因此,例如,我們希望盡可能多地使瀏覽器的職責(zé)并行運(yùn)行,因此我們可以為您的應(yīng)用程序代碼保留主線程。我們已經(jīng)在這里取得了重大進(jìn)展 - 例如通過減少JavaScript和布局對頁面滾動(dòng)的影響,并使得越來越多的CSS動(dòng)畫可以以60fps運(yùn)行,即使JavaScript正在做一些繁重的工作 - 但是這只是開始。
我們希望為V8為JavaScript做的網(wǎng)絡(luò),渲染和布局做些什么。還記得V8之前的JS引擎嗎?我們希望在所有瀏覽器上實(shí)現(xiàn)同樣的健康創(chuàng)新,使所有網(wǎng)絡(luò)用戶受益。
2. 我應(yīng)該從Chrome中獲得什么樣的東西?
在Blink Architectural Changes部分中,我們列出了一些可以提高Chrome平臺中網(wǎng)絡(luò)平臺速度和穩(wěn)定性的更改。同時(shí),還有更多改進(jìn),其可行性和性能優(yōu)勢我們很 高興調(diào)查:
提供更快速的DOM和JS引擎
針對V8的多進(jìn)程,以安全為中心,快速低開銷的DOM綁定
V8中的JIT DOM屬性getter。這將允許V8訪問div.id,div.firstChild等,而無需離開JIT代碼。Mozilla也在嘗試JIT DOM屬性getter。
在JS中實(shí)現(xiàn)DOM。這有可能使JavaScript DOM訪問速度更快,但是會涉及WebKit的DOM實(shí)現(xiàn)的大量重寫。IE已經(jīng)這樣做了,總的來說,這有助于提高GC的速度,加快DOM綁定速度
支持V8中的快照。這可以讓我們沒有先前加載的頁面的分析時(shí)間開銷和近乎即時(shí)的啟動(dòng)。
保持平臺安全
合成器線程更好的沙盒
進(jìn)程外iframe。使用渲染器進(jìn)程作為跨站點(diǎn)iframe之間的安全邊界。
重構(gòu)性能
減少綁定層開銷。通過簡化在JavaScriptCore和V8之間共享代碼的綁定層中的許多抽象(例如ScriptState,DOMRequestState等),我們可以使事情變得更快。
提高樣式分辨率的性能。
提高多核的利用率。
啟用更強(qiáng)大的渲染和布局
追求多線程布局
大修樣式重新計(jì)算和選擇器分辨率性能
停止為隱藏的iframe創(chuàng)建渲染器
當(dāng)插件設(shè)置為display:none時(shí),修復(fù)插件卸載等舊錯(cuò)誤。
允許生成的內(nèi)容可選擇并可復(fù)制粘貼。
重寫事件處理更加一致,并且具有更少的錯(cuò)誤,包括焦點(diǎn),鼠標(biāo),點(diǎn)擊等。
Fire 卸載事件異步以使removeChild更快。 <iframe></iframe>
3. 這個(gè)新的瀏覽器引擎是否會更加分散Web平臺的兼容性?
我們敏銳地意識到當(dāng)今開發(fā)人員面臨的兼容性挑戰(zhàn),并將與其他瀏覽器供應(yīng)商密切合作,推動(dòng)網(wǎng)絡(luò)向前發(fā)展,并保持互操作性,使其成為一個(gè)成功的生態(tài)系統(tǒng)。在過去的幾年里,我們還做了很多工作來減輕這種痛苦。獲取Web標(biāo)準(zhǔn)社區(qū)的巨大成功之一:HTML5 Parser。所有主要的瀏覽器引擎現(xiàn)在共享完全相同的解析邏輯,這意味著諸如破壞標(biāo)記,標(biāo)簽包裝塊元素和其他邊緣情況之類的東西都在瀏覽器中一致地處理。這種互操作性對Chrome非常重要,我們希望為其辯護(hù)。
我們的團(tuán)隊(duì)定期為記錄瀏覽器支持和差異的網(wǎng)站做出貢獻(xiàn),例如Mozilla的MDN,WebPlatform.org和Can I Use。我們想要的最后一件事是讓事情倒退。
我們將測試視為Web瀏覽器互操作性的關(guān)鍵部分。Chrome目前共享和運(yùn)行由Opera,Mozilla和W3C工作組撰寫的測試,我們將在未來做得更好。開發(fā)人員需要能夠依賴Chrome的標(biāo)準(zhǔn)實(shí)施,這是我們非常重視的事情。有關(guān)我們的計(jì)劃,請參閱測試部分。
4. 支持,是不是更多的瀏覽器共享WebKit更好的兼容性?
重要的是要記住,WebKit已經(jīng)不是開發(fā)人員的同質(zhì)目標(biāo)了。例如,WebGL和IndexedDB等功能僅在某些基于WebKit的瀏覽器中受支持。了解WebKit for Developers有助于解釋詳細(xì)信息,例如,為什么 <video>,字體和3D轉(zhuǎn)換實(shí)現(xiàn)因WebKit瀏覽器而異。</video>
今天Firefox使用Gecko引擎,它不是基于WebKit,但兩者具有高度的兼容性。我們通過一個(gè)獨(dú)特但兼容的開源引擎采用與Mozilla類似的方法。我們還將繼續(xù)提供開放式錯(cuò)誤跟蹤和 實(shí)施狀態(tài),以便您隨時(shí)查看并參與我們正在處理的工作。
從短期來看,單一文化似乎有利于開發(fā)人員的生產(chǎn)力。然而,從長遠(yuǎn)來看,單一文化不可避免地導(dǎo)致停滯不前。我們堅(jiān)信,渲染引擎的更多選擇將帶來更多創(chuàng)新和更健康的網(wǎng)絡(luò)生態(tài)系統(tǒng)。
5. 這對Web標(biāo)準(zhǔn)有何影響?
將新的瀏覽器引擎引入世界可以增加多樣性。雖然這本身不是我們的目標(biāo),但它具有確保存在可接受標(biāo)準(zhǔn)的多個(gè)可互操作實(shí)現(xiàn)的有益效果。每個(gè)引擎都將從不同的方向處理相同的問題,這意味著Web開發(fā)人員可以對最終結(jié)果的性能和安全特性更有信心。它還使得一個(gè)實(shí)現(xiàn)的怪癖成為事實(shí)上的標(biāo)準(zhǔn)的可能性降低,這對于開放的Web來說是有益的。
6. 我們-chrome-現(xiàn)在會看到供應(yīng)商前綴嗎?
我們已經(jīng)看到供應(yīng)商前綴的激增如何給開發(fā)人員帶來痛苦,我們不想加劇這種情況。截至今天,Chrome正在采用供應(yīng)商前綴政策,這與Mozilla最近公布的政策類似。
簡而言之:我們不會將供應(yīng)商前綴用于新功能。相反,我們將公開一個(gè)設(shè)置(in about:flags)以啟用實(shí)驗(yàn)性DOM / CSS功能,以便您查看即將發(fā)生的事情,玩游戲并提供反饋,就像我們今天使用“Experimental WebKit功能”/“ 啟用實(shí)驗(yàn)性Web”一樣平臺功能“ 標(biāo)志。只有當(dāng)我們準(zhǔn)備將這些功能發(fā)送到穩(wěn)定版時(shí),它們才會默認(rèn)啟用在開發(fā)/加拿大通道中。
對于傳統(tǒng)的供應(yīng)商前綴功能,我們將繼續(xù)使用前綴,因?yàn)閷⑺羞@些前綴重命名為其他內(nèi)容會導(dǎo)致開發(fā)人員不必要的痛苦。我們已經(jīng)開始研究 HTML5和CSS3功能的實(shí)際使用情況,并希望使用這樣的數(shù)據(jù)來更好地告知我們?nèi)绾呜?fù)責(zé)任地棄用前綴屬性和API。至于我們繼承的任何非標(biāo)準(zhǔn)功能(如),隨著時(shí)間的推移,我們希望根據(jù)具體情況幫助標(biāo)準(zhǔn)化或棄用它們。-webkit--webkit-box-reflect
7. 那么我們有一個(gè)更加分散的移動(dòng)WebKit故事?
我們真的不希望這樣; 花在差異上的時(shí)間是建立應(yīng)用程序功能所花費(fèi)的時(shí)間。我們將注意力集中在使Chrome for Android成為最佳移動(dòng)瀏覽器上。因此,您應(yīng)該期望在桌面Chrome中獲得相同的兼容性,快速發(fā)布計(jì)劃和超高的JS和DOM性能。
您的網(wǎng)站或應(yīng)用在移動(dòng)網(wǎng)絡(luò)上的成功取決于其運(yùn)行的移動(dòng)瀏覽器。我們希望看到整個(gè)移動(dòng)網(wǎng)絡(luò)平臺與您的應(yīng)用程序的抱負(fù)保持同步,甚至預(yù)期。Opera已經(jīng)發(fā)布了基于Chromium的瀏覽器的測試版,其功能和功能與Android上的Chrome非常相似。
8. 是什么阻止Chrome發(fā)布專有功能?
我們的目標(biāo)是推動(dòng)創(chuàng)新并改進(jìn)兼容的開放式網(wǎng)絡(luò)平臺,而不是增加大量功能并破壞與其他瀏覽器的兼容性。我們正在引入面向開發(fā)人員的強(qiáng)大政策,包括添加新功能,使用供應(yīng)商前綴,以及 何時(shí)應(yīng)將功能視為足夠穩(wěn)定以便發(fā)布。這標(biāo)準(zhǔn)化了我們關(guān)于深思熟慮地?cái)U(kuò)展平臺的政策,并且由于透明度是Blink的核心原則,我們希望這個(gè)過程對您來說同樣可見。我們最近介紹的Chromium功能儀表板提供了許多已實(shí)現(xiàn)和計(jì)劃的功能的標(biāo)準(zhǔn)和實(shí)施狀態(tài)視圖。
請隨時(shí)通過Gitiles觀看Blink的開發(fā),點(diǎn)擊blink-dev郵件列表,加入#blinkFreenode。
我們知道引入新的渲染引擎會對Web產(chǎn)生重大影響。在接下來的幾個(gè)月里,我們希望通過讓我們的行動(dòng)勝于雄辯,贏得更廣泛的開放網(wǎng)絡(luò)社區(qū)的尊重。
9. 這只是谷歌開發(fā)技術(shù)的一個(gè)詭計(jì)嗎?
不,完全沒有!我們針對強(qiáng)調(diào)標(biāo)準(zhǔn),互操作性和透明度的新功能制定了強(qiáng)有力的指導(dǎo)方針。我們希望能夠保持所有新的發(fā)布功能,這些功能會影響開放網(wǎng)絡(luò)上的Web開發(fā)人員,直至達(dá)到相同的審查級別。主要在Google內(nèi)部開發(fā)的技術(shù)和標(biāo)準(zhǔn)將遵循與其他標(biāo)準(zhǔn)相同的指導(dǎo)原則。
10. 在接下來的12個(gè)月里,我們應(yīng)該從Chrome和Blink中看到什么?長期呢?
我們的主要短期目標(biāo)是改善我們發(fā)布Chrome的所有平臺的性能,兼容性和穩(wěn)定性。從長遠(yuǎn)來看,我們希望能夠顯著改善Chrome并激發(fā)所有瀏覽器制造商的創(chuàng)新。我們將增加對一致性測試的投資(與W3C工作組共享),作為我們致力于成為開放網(wǎng)絡(luò)的優(yōu)秀公民的一部分。
11. 這是開源的嗎?
當(dāng)然是。Chromium已經(jīng)是開源的,Blink是該項(xiàng)目的一部分。透明度是我們的核心原則之一。開發(fā)Blink詳細(xì)介紹了這一點(diǎn)。
12. Opera最近宣布他們?yōu)樗麄兊臑g覽器采用了Chromium。他們的計(jì)劃是什么?
正如Bruce Lawson在他的博客中提到的那樣,Opera將采用Blink 。
13. 為什么這對我作為Web開發(fā)人員有好處?
改善用戶體驗(yàn)的關(guān)鍵之一是為開發(fā)人員提供他們所需的工具,功能,兼容性和性能,以充分利用平臺。雖然此舉取決于架構(gòu)的必要性,但它也使我們能夠優(yōu)先考慮在移動(dòng)設(shè)備和桌面設(shè)備上構(gòu)建下一代應(yīng)用程序所需的功能。與V8的推出類似,我們希望這將刺激創(chuàng)新,您可以并且應(yīng)該期望整個(gè)網(wǎng)絡(luò)平臺受益。
我們的雄心壯志,我??們?nèi)匀恍枰答伜拓暙I(xiàn),使Chrome成為今天的瀏覽器。您還應(yīng)該期望提高Blink開發(fā)過程的透明度,因此參與進(jìn)來將比以往更容易。請查看Chromium功能儀表板,試用Dev / Canary中的未來功能并提交您找到的任何錯(cuò)誤。
?由Paul Irish Relations團(tuán)隊(duì)的Paul Irish和Paul Lewis撰寫的常見問題解答