<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          【瀏覽器】Chrome 88 新功能解讀

          共 2923字,需瀏覽 6分鐘

           ·

          2021-02-14 02:10

          CSS aspect-ratio 屬性

          aspect-ratio 屬性對應(yīng)的就是 Aspect Ratio,它的意思就是寬高比,也常稱為 縱橫比,是幾何形狀在不同尺寸的比值。舉個例子,當矩形方向為橫向時的寬高比值,是其長邊與短邊的比率。常會用來描述圖像或屏幕的寬度和高度的比率。通常表示為 x:yx × y,其中的 冒號 和 乘號 表示中文的 比 之意。

          就拿 16:9 來說,第一個數(shù)字總是指 寬度,第二個數(shù)字是指 高度。如果圖像的比例與屏幕的比例不同,你可能無法看到整個圖像。如果屏幕比圖像窄,圖像就不能合適地放入。

          在以前,只有某些特定的元素具有長寬比,例如 image。這時我們僅指定寬度或高度,元素會根據(jù)固有長寬比自動計算另一個。


          <img?src="..."?style="width:?800px;">

          Chrome 88 中, aspect-ratio 屬性可讓你顯式指定寬高比,從而實現(xiàn)類似的行為。

          .square?{
          ??aspect-ratio:?1?/?1;
          }

          大幅限制鏈式 JavaScript 定時器

          Chrome 88 將在特定情況下大幅限制隱藏頁面的鏈式 JavaScript 計時器。這將減少CPU使用率,也將減少電池使用率。

          如果你在一個 setTimeout 里調(diào)用了同一個 setTimeout,這就相當于鏈式調(diào)用了:

          let?chainCount?=?0;

          function?setTimeoutChain()?{
          ??setTimeout(()?=>?{
          ????chainCount++;
          ????console.log(`This?is?number?${chainCount}?in?the?chain`);
          ????setTimeoutChain();
          ??},?500);
          }

          Chrome 88 中,當以下所有的條件都成立時,你的 setTimeout 調(diào)用就會被節(jié)流限制:

          • 該頁面已經(jīng)隱藏 5 分鐘以上(用戶當前打開了其他的頁面)
          • 你鏈式調(diào)用的計數(shù)是 5 或更多次
          • 該頁面已經(jīng)靜音 30 秒以上
          • 未使用 WebRTC

          在滿足這種情況下,瀏覽器將每分鐘檢查一次定時器,你定時器里的邏輯也會在每分鐘內(nèi)分批處理。Chrome 官方推薦使用 setInterval 來解決這個問題。

          默認啟用 noopener

          class=""?href="https://developers.tiktok.com/?refer=tiktok_web"?target="_blank">TikTok?for?Developers</a>

          如果你的 a 標簽只是有一個 target="_blank" 屬性,打開新窗口后,新頁面能通過 window.opener 獲取到來源頁面的 window 對象,如果跳轉(zhuǎn)到一個惡意頁面,它可能會惡意讀取你的一些信息,甚至進行釣魚攻擊。

          為了符合 HTML 標準的更改,默認情況下如果你的 a 標簽有 target="_blank",現(xiàn)在會默認開啟 rel="noopener"

          V8 支持非回溯 RegExp 引擎

          由于 V8 中的 RegExp 引擎默認使用的是 NFA引擎,NFA引擎是用表達式去匹配文本,而表達式又有若干分支和范圍,一個分支或者范圍匹配失敗并不意味著最終匹配失敗,正則引擎會去嘗試下一個分支或者范圍,NFA引擎的核心特點就是會發(fā)生回溯。

          回溯可不是個好東西。想象一下,面前有兩條路,你選擇了一條,走到盡頭發(fā)現(xiàn)是條死路,你只好原路返回嘗試另一條路。這個原路返回的過程就叫回溯,它在正則中的含義是吐出已經(jīng)匹配過的文本。

          你可以使用下面的正則在 Chrome 控制臺進行測試:

          document.cookie)/>/g);

          雖然只是簡單的一段正則,但是由于它的分支過多,會引起大量的回溯,從而導(dǎo)致你的瀏覽器卡死。

          為了解決這個問題,從 v8.8 開始,V8附帶了一個新的實驗性非回溯 RegExp 引擎,它可以保證在字符串長度變大的情況下保持線性的時間變化:

          你可以通過下面的方式配置新的 RegExp 引擎:

          • --enable-experimental-regexp_engine-on-excessive-backtracks:在過多的回溯上啟用對非回溯引擎的回退。
          • --regexp-backtracks-before-fallback N:(默認 N=50000)指定了多少回溯被視為過多,即何時進行回退。
          • --enable-experimental-regexp-engine 直接啟用非回溯 RegExp 引擎。

          Manifest v3

          Chrome 88 現(xiàn)在支持使用 Manifest v3 構(gòu)建的擴展程序,用戶可以將其上傳到 Chrome 網(wǎng)上應(yīng)用店。Manifest v3 是一個新的擴展平臺,默認情況下可使 Chrome 擴展更安全,更高效,更尊重隱私。

          Manifest v3 不允許使用遠程托管的代碼,這可以幫助 Chrome Web Store 審核人員更好地了解擴展程序帶來的風(fēng)險,并且應(yīng)該允許你更快地更新擴展。

          完全禁用 FTP

          從 86 版本開始,Chrome 開始了禁用 FTP 的過程,到 88 版本發(fā)布后,F(xiàn)TP 被完全禁用:

          • Chrome 86:默認情況下,大多數(shù)用戶仍啟用 FTP,但對于 pre-release channels 禁用了 FTP,并且將對穩(wěn)定用戶的百分之一進行實驗性關(guān)閉。在此版本中,用戶可以使用 --enable-ftp 命令或 --enable-features=FtpProtocol ?從命令行重新啟用它 。

          • Chrome 87:默認情況下,百分之五十的用戶將禁用 FTP 支持,但可以使用上面列出的 flag 啟用 FTP 支持。

          • Chrome 88FTP 支持被完全禁用

          完全禁用混合內(nèi)容下載

          如上面的過程,從 81 版本開始, Chrome 開始阻止混合內(nèi)容的下載,并在各個版本開啟不同文件類型的阻止,到 Chrome 88 版本,所有文件類型的混合內(nèi)容下載被完全阻止。

          當用戶正在訪問一個以 HTTPS 開頭的網(wǎng)頁,但文件是從一個以 HTTP 開頭的 URL 下載的。Chrome 將這些情況視為 “混合”和 “不安全”下載。

          完全禁用 flash

          Chrome83 版本對用戶使用 flash 開啟了進一步提示,比如如果提示激活 Flash 插件時并導(dǎo)致狀態(tài)更改,將會再次給予警告。

          2020 年 12 月 31 日,F(xiàn)lash 達到了正式的生命終點,Adobe 正式停止支持該軟件。1 月 12 日,Adobe 開始直接阻止 Flash 內(nèi)容播放。

          移除 Web Components v0 支持

          從 Chrome 88 版本開始,不再支持 Web Components v0 ,Chrome 使用 Web Components v1 API 替代了 Web Components v0,并且 Safari、Firefox、Edge 都支持了這項改動。


          歡迎關(guān)注「前端雜貨鋪」,一個有溫度且致力于前端分享的雜貨鋪

          關(guān)注回復(fù)「加群」,可加入雜貨鋪一起交流學(xué)習(xí)成長


          瀏覽 78
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  免费看操逼逼 | 激情五月俺也去 | 菲儿操逼视频播放 | sese国产 | 91午夜理论 |