Publikimi 74 i Chrome

Google prezantuar lëshimi i shfletuesit të internetit Chrome 74... Njëkohësisht në dispozicion lëshim i qëndrueshëm i një projekti falas Kromi, e cila shërben si bazë e Chrome. Shfletuesi Chrome tjetër përdorimi i logove të Google, aftësia për të shkarkuar një modul Flash sipas kërkesës, prania e një sistemi për dërgimin e njoftimeve në rast përplasjeje, module për luajtjen e përmbajtjes së mbrojtur video, një sistem për instalimin automatik të përditësimeve dhe transmetimit gjatë kërkimit Parametrat RLZ. Lëshimi tjetër i Chrome 75 është planifikuar për 4 qershor.

Kryesore Ndryshimet в krom 74:

  • Kur ndodh ngjarja onUnload, e cila thirret kur faqja mbyllet, tani është e ndaluar shfaqni dritare pop-up (thirrja window.open() është e bllokuar), e cila do t'i mbrojë përdoruesit nga detyrimi për të hapur faqe reklamimi pas mbylljes së faqeve të dyshimta;
  • Në motorin JavaScript zbatuar është shfaqur një regjim i ri JIT-pak (flamuri "—jitless"), i cili bën të mundur ekzekutimin e JavaScript pa përdorur JIT (përdoret vetëm interpretuesi) dhe pa alokuar memorie të ekzekutueshme gjatë ekzekutimit të kodit. Çaktivizimi i JIT mund të jetë i dobishëm për të përmirësuar sigurinë kur punoni me aplikacione uebi potencialisht të rrezikshme, si dhe për të siguruar ndërtime në platforma që ndalojnë përdorimin e JIT (për shembull, iOS, disa televizorë inteligjentë dhe konzola lojërash. Kur JIT është i çaktivizuar, ekzekutimi i JavaScript performanca ulet me 40% në testin Speedometer 2.0 dhe 80% në testin Web Tooling Benchmark, por gjatë simulimit të punës me YouTube, pati vetëm një rënie prej 6% në performancë, ndërsa konsumi i kujtesës u ul pak, me vetëm 1.7%;
  • V8 gjithashtu ofron një pjesë të madhe të optimizimeve të reja. Për shembull, ekzekutimi i thirrjeve të funksionit në të cilat numri i parametrave të kaluar në të vërtetë nuk korrespondon me numrin e argumenteve të specifikuara gjatë përcaktimit të funksionit është përshpejtuar me 60%. Qasja në vetitë DOM duke përdorur funksionin get është përshpejtuar, gjë që ka një ndikim pozitiv në performancën e kornizës Angular. Analiza e JavaScript është përshpejtuar: optimizimi i dekoderit UTF-8 bëri të mundur rritjen e performancës së parserit në modalitetin e transmetimit (analizimi ndërsa ngarkohet) me 8%, dhe eliminimi i operacioneve të panevojshme të çduifikimit dha një rritje prej 10.5% të tjera;
  • Është bërë punë për të reduktuar konsumin e memories së motorit JavaScript.
    U shtua kod për të pastruar cache-in e bajtkodit, i cili zë afërsisht 15% të madhësisë totale të grumbullit. Një fazë është shtuar në grumbulluesin e mbeturinave për të nxjerrë bajtkodin e përpiluar rrallë nga cache për funksionet që përdoren ose funksionet që thirren vetëm pas inicializimit. Vendimi për pastrimin merret në bazë të numëruesve të rinj që marrin parasysh herën e fundit që është aksesuar në bajtkod. Ky ndryshim uli konsumin e memories me 5–15% pa ndikuar negativisht në performancën. Për më tepër, përpiluesi i bytekodit përjashton gjenerimin e kodit dukshëm të papërdorur, për shembull, i cili pason kthimin ose prishjen (nëse nuk ka tranzicion Jump në të);

    Publikimi 74 i Chrome

  • Për WebAssembly zbatuar mbështetje për threads dhe operacione atomike (API WebAssembly Threads dhe WebAssembly Atomics);
  • Për shpërndarjen e veçantë të skripteve, është shtuar mbështetje për kokën "#!", e cila përcakton përkthyesin që do të ekzekutohet. Për shembull, ngjashëm me gjuhët e tjera të skriptimit, një skedar JavaScript mund të duket diçka si kjo:

    #!/usr/bin/env nyja
    konsol.log(42);

  • Një pyetje e re e medias është shtuar në CSS "preferon-reduktuar-lëvizje", duke lejuar faqen të përcaktojë gjendjen e cilësimeve në sistemin operativ në lidhje me çaktivizimin e efekteve të animuara. Duke përdorur kërkesën e sugjeruar, pronari i faqes mund zbuloni se përdoruesi ka çaktivizuar efektet e animuara dhe gjithashtu çaktivizon veçori të ndryshme të animacionit në sit, për shembull, hiqni efektin e tundjes së butonave të përdorur për të tërhequr vëmendjen;
  • Përveç aftësisë për të përcaktuar fushat publike të prezantuara në Chrome 72 mbështetja e zbatuar Shënimi i fushave si private, pas së cilës qasja në vlerat e tyre do të jetë e hapur vetëm brenda klasës. Për të shënuar një fushë si private, shtoni një shenjë "#" përpara emrit të fushës. Ashtu si me fushat publike, pronat private nuk kërkojnë përdorimin e qartë të një konstruktori.
  • Është shtuar titulli HTTP i Politikës së Veçorisë, i cili ju lejon të kontrolloni sjelljen e API-së dhe të aktivizoni disa veçori (për shembull, mund të aktivizoni modalitetin sinkron të funksionimit të XMLHttpRequest ose çaktivizoni API-në e gjeolokimit). JavaScript API për të kontrolluar veprimtarinë e mundësive të caktuara. Për zhvilluesit, ekzistojnë dy metoda të reja document.featurePolicy dhe frame.featurePolicy, duke ofruar tre funksione:
    allowFeatures() për të marrë një listë të veçorive të lejuara për domenin aktual, lejonFeature() për të kontrolluar në mënyrë selektive nëse veçoritë specifike janë aktivizuar dhe getAllowlistForFeature() për të kthyer një listë domenesh për të cilat lejohet një veçori e caktuar në faqen aktuale;

  • U shtua mbështetje eksperimentale ("chrome://flags#enable-text-fragment-anchor") për modalitetin Lëviz-Tek Tekst, i cili ju lejon të krijoni lidhje me fjalë ose fraza individuale, pa specifikuar në mënyrë eksplicite etiketat në dokument duke përdorur etiketën "një emër" ose veçorinë "id". Për të dërguar një lidhje, ofrohet një parametër i veçantë "#targetText=", në të cilin mund të specifikoni tekstin për tranzicionin. Lejohet të specifikohet një maskë që përfshin fraza që tregojnë fillimin dhe fundin e fragmentit duke përdorur një presje si ndarësin e tyre (për shembull, "shembull.com#targetText=start%20words, fund%20words");
  • Një opsion i është shtuar konstruktorit AudioContext norma e mostrës, i cili ju lejon të caktoni shkallën e marrjes së mostrave për operacionet audio nëpërmjet API-së së Uebit Audio;
  • Mbështetja e shtuar e klasës Lokal Ndërkombëtar, i cili ofron metoda për analizimin dhe përpunimin e parametrave të gjuhës, rajonit dhe stilit të vendosur nga lokalizimi, si dhe për leximin dhe shkrimin e etiketave shtesë të Unicode, duke ruajtur cilësimet e vendndodhjes së përdoruesit në një format të serializuar;
  • mekanizëm Shkëmbime të nënshkruara HTTP (SXG) i zgjeruar me mjete për duke informuar shpërndarësit e përmbajtjes në lidhje me gabimet në shkarkimin e përmbajtjes së nënshkruar, të tilla si problemet me verifikimin e certifikatës. Trajtimi i gabimeve bëhet përmes shtesave API Regjistrimi i gabimeve në rrjet. Kujtojmë se SXG Kjo i lejon pronari i një faqeje, duke përdorur një nënshkrim dixhital, autorizon vendosjen e faqeve të caktuara në një faqe tjetër, pas së cilës, nëse këto faqe arrihen në një sajt të dytë, shfletuesi do t'i tregojë përdoruesit URL-në e faqes origjinale, pavarësisht faktit se që faqja ishte ngarkuar nga një host tjetër;
  • Një metodë është shtuar në klasën TextEncoder encodeInto (), i cili ju lejon të shkruani një varg të koduar drejtpërdrejt në një buffer të paracaktuar. Metoda encodeInto() është një alternativë me performancë të lartë ndaj metodës encode(), e cila kërkon që të kryhet një operacion alokimi buffer sa herë që aksesohet.
  • Në punëtor shërbimi siguruar duke buferuar thirrjen e klientit.postMessage() derisa dokumenti të jetë gati. Mesazhet e dërguara nëpërmjet client.postMessage() do të mbahen derisa të ngrihet ngjarja DOMContentLoaded, të vendoset onmessage ose të thirret startMessages();
  • Siç kërkohet nga specifikimi i Tranzicioneve CSS shtuar transitionrun, transitioncancel, transitionstart dhe transitionend ngjarje të krijuara kur një tranzicion CSS është në radhë, anulohet, fillon ose përfundon ekzekutimin.
  • Kur specifikoni një kodim të pasaktë të karakterit nëpërmjet overrideMimeType() ose tipit MIME për një XMLHttpRequest, ai tani kthehet në UTF-8 në vend të Latin-1;
  • Vetia "lejoj-shkarkimet-pa aktivizimin e përdoruesit", përmes së cilës ishte e mundur shkarkimi automatik i skedarëve gjatë përpunimit të iframeve, është zhvlerësuar dhe do të hiqet në një version të ardhshëm. Në të ardhmen, nisja e shkarkimeve të skedarëve pa veprim të qartë të përdoruesit do të ndalohet, pasi është përdorur në mënyrë aktive për abuzim, shkarkime të detyruara dhe futje të pjesëve të malware në kompjuterin e përdoruesit. Një klikim i përdoruesit në të njëjtën faqe do të kërkohet për të filluar shkarkimin. Prona fillimisht ishte planifikuar të hiqej në Chrome 74, por heqja u bë shtyhet deri në Chrome 76.
  • Një temë e errët opsionale për dizajnin e ndërfaqes ofrohet për platformën Windows (në versionin e mëparshëm, një temë e errët u përgatit për macOS). Meqenëse dizajni i errët është pothuajse identik me modelin në modalitetin incognito, në vend të ikonës së profilit të përdoruesit është shtuar një tregues i veçantë për të theksuar modalitetin e funksionimit privat;
  • Është shtuar një mundësi për përdoruesit e korporatave Menaxhimi i resë kompjuterike të shfletuesit Chrome për të menaxhuar cilësimet e shfletuesit të përdoruesit përmes tastierës së Google Admin;

    Publikimi 74 i Chrome

Përveç risive dhe rregullimeve të gabimeve, versioni i ri eliminon 39 dobësi. Shumë nga dobësitë u identifikuan si rezultat i testimit të automatizuar me mjete Adresa Sanitizer, Dezinfektues i kujtesës, Integriteti i kontrollit të rrjedhës, LibFuzzer и AFL. Nuk është identifikuar asnjë problem kritik që do të lejonte të anashkalonte të gjitha nivelet e mbrojtjes së shfletuesit dhe të ekzekutonte kodin në sistem jashtë mjedisit të sandbox. Si pjesë e programit për të paguar shpërblime në para për zbulimin e dobësive për versionin aktual, Google pagoi 19 çmime në shumën prej 26837 dollarë (katër çmime 3000 dollarë, katër çmime 2000 dollarë, një çmim 1337 dollarë, katër çmime 1000 dollarë, tre çmime prej 500 dollarësh). Madhësia e 4 shpërblimeve nuk është përcaktuar ende.

Burimi: opennet.ru

Shto një koment