Chrome Release 74

Google бар берилген веб браузер чыгаруу Chrome 74... Ошол эле учурда жеткиликтүү бекер долбоорду туруктуу чыгаруу ChromiumChrome'дун негизи болуп саналат. Chrome браузери башка Google логотиптерин колдонуу, суроо-талап боюнча Flash модулун жүктөп алуу мүмкүнчүлүгү, авария болгон учурда эскертмелерди жөнөтүү тутумунун болушу, корголгон видео контентти ойнотуу үчүн модулдар, жаңыртууларды автоматтык түрдө орнотуу жана издөө учурунда берүү системасы RLZ параметрлери. Chrome 75тин кийинки релизинин чыгышы 4-июнга пландаштырылган.

негизги өзгөрүүлөр в Chrome 74:

  • Барак жабылганда чакырылган onUnload окуясы болгондо, азыр Ал тыюу салынган калкыма терезелерди көрсөтүү (window.open() чалуу бөгөттөлгөн), бул колдонуучуларды шектүү сайттарды жапкандан кийин жарнамалык баракчаларды ачууга мажбурлоодон коргойт;
  • JavaScript кыймылдаткычында ишке ашырылган жаңы режим пайда болду JIT-кем («—jitless» желекчеси), бул JavaScriptти JIT колдонбостон (бир гана котормочу колдонулат) жана коддун аткарылышы учурунда аткарылуучу эстутумду бөлбөстөн аткарууга мүмкүндүк берет. JITти өчүрүү кооптуу веб-тиркемелер менен иштөөдө коопсуздукту жакшыртуу, ошондой эле JITти колдонууга тыюу салган платформаларда түзүүнү камсыз кылуу үчүн пайдалуу болушу мүмкүн (мисалы, iOS, кээ бир акылдуу сыналгылар жана оюн консолдору. JIT өчүрүлгөндө, JavaScript аткарылат. Speedometer 40 тестинде өндүрүмдүүлүк 2.0% га жана Web Tooling Benchmark тестинде 80% га төмөндөйт, бирок YouTube менен иштөөдө 6% гана төмөндөшү байкалды, ал эми эстутум керектөө бир аз азайып, болгону 1.7% га төмөндөдү;
  • V8 ошондой эле жаңы оптималдаштыруунун чоң бөлүгүн сунуш кылат. Мисалы, иш жүзүндө өтүп кеткен параметрлердин саны функцияны аныктоодо көрсөтүлгөн аргументтердин санына туура келбеген функцияларды чакыруулардын аткарылышы 60% га тездетилген. Get функциясын колдонуу менен DOM касиеттерине жетүү тездетилди, бул Angular алкактын иштешине оң таасирин тийгизет. JavaScript талдоо тездетилди: UTF-8 декодерин оптималдаштыруу агымдык режимде талдоочу өндүрүмдүүлүгүн (ал жүктөөдө талдоо) 8% га жогорулатууга мүмкүндүк берди, ал эми керексиз дедупликация операцияларын жок кылуу дагы 10.5% га өсүштү;
  • JavaScript кыймылдаткычынын эстутум керектөөсүн азайтуу боюнча иштер жасалды.
    Байтекоддун кэшин тазалоо үчүн код кошулду, ал жалпы үймөктүн көлөмүнүн болжол менен 15% ээлейт. Таштанды жыйгычка колдонулган функциялар же инициализациялоодо гана чакырылган функциялар үчүн кэштен сейрек түзүлүүчү байт кодду чыгаруу үчүн этап кошулду. Тазалоо чечими байткодго акыркы жолу киргенин эске алган жаңы эсептегичтердин негизинде кабыл алынат. Бул өзгөртүү аткарууга терс таасирин тийгизбестен, эстутум керектөөнү 5–15% га кыскартты. Кошумчалай кетсек, байт-коддун компилятору ачык колдонулбаган коддун жаралышын жокко чыгарат, мисалы, кайтуудан же үзүүдөн кийинки (эгерде ага Jump өтүү жок болсо);

    Chrome Release 74

  • WebAssembly үчүн ишке ашырылган жиптерди жана атомдук операцияларды колдоо (API WebAssembly Threads жана WebAssembly Atomics);
  • Скрипттерди өзүнчө жеткирүү үчүн котормочу иштей турганды аныктаган “#!” башын колдоо кошулду. Мисалы, башка скрипт тилдерине окшош, JavaScript файлы төмөнкүдөй көрүнүшү мүмкүн:

    #!/usr/bin/env түйүнү
    console.log(42);

  • CSS'ке жаңы медиа суроо кошулду "артык-кыскартылган кыймыл", сайтка анимацияланган эффекттерди өчүрүүгө байланыштуу операциялык тутумдагы орнотуулардын абалын аныктоого мүмкүндүк берет. Сунушталган суроо-талапты колдонуу менен, сайт ээси алат колдонуучу анимацияланган эффекттерди өчүрүп, ошондой эле сайтта ар кандай анимация функцияларын өчүрүп койгонун билиңиз, мисалы, көңүл буруу үчүн колдонулган баскычтардын титирөө эффектин алып салуу;
  • Chrome 72де киргизилген коомдук талааларды аныктоо мүмкүнчүлүгүнө кошумча колдоо ишке ашырылды Талааларды купуя катары белгилөө, андан кийин алардын баалуулуктарына кирүү класстын ичинде гана ачылат. Талааны купуя катары белгилөө үчүн талаанын аталышынын алдына “#” белгисин коюңуз. Коомдук талаалардагыдай эле, жеке менчиктер конструкторду ачык колдонууну талап кылбайт.
  • API'нин жүрүм-турумун көзөмөлдөөгө жана белгилүү бир функцияларды иштетүүгө мүмкүндүк берүүчү Feature-Policy HTTP аталышы кошулду (мисалы, XMLHttpRequestтин синхрондуу иштөө режимин иштете аласыз же Geolocation APIди өчүрө аласыз) JavaScript API айрым мумкунчулуктердун активдуулугун контролдоо. Иштеп чыгуучулар үчүн документ.featurePolicy жана frame.featurePolicy эки жаңы ыкма бар, алар үч функцияны сунуштайт:
    allowFeatures() учурдагы домен үчүн уруксат берилген функциялардын тизмесин алуу үчүн, allowFeature() конкреттүү функциялардын иштетилгендигин тандап текшерүү үчүн жана getAllowlistForFeature() учурдагы баракта көрсөтүлгөн функцияга уруксат берилген домендердин тизмесин кайтаруу үчүн;

  • Режим үчүн эксперименталдык колдоо кошулду ("chrome://flags#enable-text-fragment-anchor") Текстке жылдыруу"a name" теги же "id" касиетин колдонуу менен документте энбелгилерди так көрсөтпөстөн, айрым сөздөргө же сөз айкаштарына шилтемелерди түзүүгө мүмкүндүк берет. Шилтемени жөнөтүү үчүн “#targetText=” атайын параметри сунушталат, анда өтүү үчүн текстти көрсөтүүгө болот. Бөлүүчү катары үтүрдү колдонуу менен фрагменттин башталышын жана аягын көрсөткөн фразаларды камтыган масканы көрсөтүүгө жол берилет (мисалы, “example.com#targetText=start%20words, end%20words”);
  • AudioContext конструкторуна опция кошулду sampleRate, бул сизге Web Audio API аркылуу аудио операциялары үчүн тандоо ылдамдыгын коюуга мүмкүндүк берет;
  • Класстык колдоо кошулду Intl.Locale, бул тилди, аймакты жана локалдык тил тарабынан коюлган стилдин параметрлерин талдоо жана иштетүү, ошондой эле Юникод кеңейтүү тегдерин окуу жана жазуу, колдонуучунун тил жөндөөлөрүн серияланган форматта сактоо ыкмаларын камсыз кылат;
  • механизм Кол коюлган HTTP алмашуулар (SXG) үчүн куралдар менен кеңейтилген маалымдоо кол коюлган мазмунду жүктөөдөгү каталар жөнүндө, мисалы, сертификатты текшерүүдөгү көйгөйлөр жөнүндө контент таратуучулар. Ката менен иштөө API кеңейтүүлөрү аркылуу ишке ашырылат Тармак катасы. Эске салсак, SXG Бул берет бир сайттын ээси, санариптик кол тамганы колдонуу менен, башка сайтка белгилүү бир барактарды жайгаштырууга уруксат берет, андан кийин бул барактар ​​экинчи сайтка кирсе, браузер колдонуучуга баштапкы сайттын URL дарегин көрсөтөт. барактын башка хосттон жүктөлгөндүгүн;
  • TextEncoder классына метод кошулду encodeInto(), бул сизге коддолгон сапты түздөн-түз алдын ала бөлүнгөн буферге жазууга мүмкүндүк берет. encodeInto() методу encode() методуна жогорку натыйжалуу альтернатива болуп саналат, ал ар бир кирген сайын буферди бөлүштүрүү операциясын аткарууну талап кылат.
  • Кызматта иштеген кызматкер камсыздалган Документ даяр болмоюнча client.postMessage() чалуу буферлөө. client.postMessage() аркылуу жөнөтүлгөн билдирүүлөр DOMContentLoaded окуясы көтөрүлүп, onmessage орнотулмайынча же startMessage() чакырылмайынча сакталат;
  • CSS Transitions спецификациясы талап кылгандай кошулду transitionrun, transitioncancel, transitionstart жана transitionend окуялары CSS өтүүсү кезекке коюлганда, жокко чыгарылганда, аткарууну баштаганда же аяктаганда түзүлөт.
  • XMLHttpRequest үчүн overrideMimeType() же MIME түрү аркылуу туура эмес символ коддоосун көрсөткөндө, ал эми Латын-8дин ордуна UTF-1ге кайра түшөт;
  • Iframe файлдарын иштетүүдө файлдарды автоматтык түрдө жүктөө мүмкүн болгон "колдонуучунун активдештирүүсүз жүктөөлөргө уруксат берүү" касиети эскирген жана келечектеги чыгарылышта алынып салынат. Келечекте, колдонуучунун ачык аракети жок файлдарды жүктөө иштерин баштоого тыюу салынат, анткени ал кыянаттык менен пайдалануу, жүктөөлөрдү мажбурлоо жана зыяндуу программанын бөлүктөрүн колдонуучунун компьютерине киргизүү үчүн жигердүү колдонулган. Жүктөөнү баштоо үчүн колдонуучу ошол эле баракты басышы керек. Башында бул мүлктү Chrome 74те алып салуу пландаштырылган, бирок алынып салынды кийинкиге калтырылды Chrome 76 чейин.
  • Windows платформасы үчүн интерфейстин дизайны үчүн кошумча караңгы тема сунушталат (мурунку чыгарылышта macOS үчүн караңгы тема даярдалган). Караңгы дизайн инкогнито режиминдеги дизайнга дээрлик окшош болгондуктан, жеке иштөө режимин бөлүп көрсөтүү үчүн колдонуучу профилинин сөлөкөтүнүн ордуна атайын индикатор кошулду;
  • Корпоративдик колдонуучулар үчүн мүмкүнчүлүк кошулду Chrome браузеринин булутту башкаруусу Google Admin консолу аркылуу колдонуучунун серепчи жөндөөлөрүн башкаруу;

    Chrome Release 74

Жаңылыктардан жана мүчүлүштүктөрдү оңдоодон тышкары, жаңы версия жок кылат 39 кемчилик. Көптөгөн алсыздыктар автоматташтырылган тестирлөө куралдарынын натыйжасында аныкталган Дарек Санитизатор, MemorySanitizer, Агымдын бүтүндүгүн көзөмөлдөө, LibFuzzer и AFL. Браузердин коргоосунун бардык деңгээлдерин айланып өтүүгө жана кумдук чөйрөдөн тышкары системада кодду аткарууга мүмкүндүк бере турган эч кандай олуттуу көйгөйлөр аныкталган жок. Учурдагы релиздин кемчиликтерин тапкандыгы үчүн акчалай сыйлыктарды төлөө программасынын алкагында Google 19 26837 доллар өлчөмүндө 3000 сыйлык (төрт $ 2000 1337 сыйлык, төрт $ 1000 500 сыйлык, бир $ 4 XNUMX сыйлык, төрт $ XNUMX XNUMX сыйлык, үч $ XNUMX сыйлык) төлөгөн. XNUMX сыйлыктын өлчөмү азырынча аныктала элек.

Source: opennet.ru

Комментарий кошуу