Π Π΅Π»ΠΈΠ· Chrome 74

Компания Google прСдставила Ρ€Π΅Π»ΠΈΠ· web-Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π° Chrome 74. ΠžΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ доступСн ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ выпуск свободного ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Chromium, Π²Ρ‹ΡΡ‚ΡƒΠΏΠ°ΡŽΡ‰Π΅Π³ΠΎ основой Chrome. Π‘Ρ€Π°ΡƒΠ·Π΅Ρ€ Chrome отличаСтся использованиСм Π»ΠΎΠ³ΠΎΡ‚ΠΈΠΏΠΎΠ² Google, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ модуля Flash ΠΏΠΎ запросу, Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ΠΌ систСмы ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΈ ΡƒΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠΉ Π² случаС ΠΊΡ€Π°Ρ…Π°, модулями для воспроизвСдСния Π·Π°Ρ‰ΠΈΡ‰Ρ‘Π½Π½ΠΎΠ³ΠΎ Π²ΠΈΠ΄Π΅ΠΎΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚Π°, систСмой автоматичСской установки ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΉ ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π΅ΠΉ ΠΏΡ€ΠΈ поискС RLZ-ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ². Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ выпуск Chrome 75 Π·Π°ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Π°Π½ Π½Π° 4 июня.

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ измСнСния Π² Chrome 74:

  • ΠŸΡ€ΠΈ наступлСнии события onUnload, Π²Ρ‹Π·Ρ‹Π²Π°Π΅ΠΌΠΎΠ³ΠΎ ΠΏΡ€ΠΈ Π·Π°ΠΊΡ€Ρ‹Ρ‚ΠΈΠΈ страницы, Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π·Π°ΠΏΡ€Π΅Ρ‰Π΅Π½ΠΎ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ Π²ΡΠΏΠ»Ρ‹Π²Π°ΡŽΡ‰ΠΈΠ΅ ΠΎΠΊΠ½Π° (блокируСтся Π²Ρ‹Π·ΠΎΠ² window.open()), Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ Π·Π°Ρ‰ΠΈΡ‚ΠΈΡ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ ΠΎΡ‚ ΠΏΡ€ΠΈΠ½ΡƒΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ открытия Ρ€Π΅ΠΊΠ»Π°ΠΌΠ½Ρ‹Ρ… страниц послС закрытия ΡΠΎΠΌΠ½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… сайтов;
  • Π’ JavaScript-Π΄Π²ΠΈΠΆΠΊΠ΅ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° появился Π½ΠΎΠ²Ρ‹ΠΉ Ρ€Π΅ΠΆΠΈΠΌ JIT-less (Ρ„Π»Π°Π³ «—jitless»), Π΄Π°ΡŽΡ‰ΠΈΠΉ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ JavaScript Π±Π΅Π· примСнСния JIT (ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€) ΠΈ Π±Π΅Π· выдСлСния исполняСмой памяти Π² процСссС выполнСния ΠΊΠΎΠ΄Π°. ΠžΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ JIT ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΌ для ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΡ бСзопасности ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ опасными web-прилоТСниями, Π° Ρ‚Π°ΠΊΠΆΠ΅ для обСспСчСния сборки Π½Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ…, Π·Π°ΠΏΡ€Π΅Ρ‰Π°ΡŽΡ‰ΠΈΡ… использованиС JIT (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π² iOS, Π½Π° Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Smart TV ΠΈ ΠΈΠ³Ρ€ΠΎΠ²Ρ‹Ρ… консолях. ΠŸΡ€ΠΈ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΈ JIT ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ выполнСния JavaScript сниТаСтся Π½Π° 40% Π² тСстС Speedometer 2.0 ΠΈ Π½Π° 80% Π² тСстС Web Tooling Benchmark, Π½ΠΎ ΠΏΡ€ΠΈ симуляции Ρ€Π°Π±ΠΎΡ‚Ρ‹ с YouTube ΠΎΡ‚ΠΌΠ΅Ρ‡Π΅Π½ΠΎ сниТСниС ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ лишь Π½Π° 6%. ΠŸΠΎΡ‚Ρ€Π΅Π±Π»Π΅Π½ΠΈΠ΅ памяти ΠΏΡ€ΠΈ этом ΡƒΠΌΠ΅Π½ΡŒΡˆΠ°Π΅Ρ‚ΡΡ Π½Π΅Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ, всСго Π½Π° 1.7%;
  • Π’ V8 Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½Π° большая порция Π½ΠΎΠ²Ρ‹Ρ… ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΉ. НапримСр, Π½Π° 60% ускорСно Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π²Ρ‹Π·ΠΎΠ²ΠΎΠ² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… число фактичСски ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² Π½Π΅ соотвСтствуСт ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΌΡƒ ΠΏΡ€ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ числу Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ². УскорСн доступ ΠΊ своСйствам DOM ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ get, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ повлияло Π½Π° ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ° Angular. УскорСна Ρ€Π°Π±ΠΎΡ‚Π° парсинга JavaScript: оптимизация Π΄Π΅ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Ρ‰ΠΈΠΊΠ° UTF-8 ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ»Π° ΠΏΠΎΠ΄Π½ΡΡ‚ΡŒ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ парсСра Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ streaming (Ρ€Π°Π·Π±ΠΎΡ€ ΠΏΠΎ ΠΌΠ΅Ρ€Π΅ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ) Π½Π° 8%, Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π»ΠΈΡˆΠ½ΠΈΡ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ Π΄Π΅Π΄ΡƒΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΠΈ Π΄Π°Π»ΠΎ прирост Π΅Ρ‰Ρ‘ Π½Π° 10.5%;
  • ΠŸΡ€ΠΎΠ²Π΅Π΄Π΅Π½Π° Ρ€Π°Π±ΠΎΡ‚Π° ΠΏΠΎ сниТСнию потрСблСния памяти Π΄Π²ΠΈΠΆΠΊΠ° JavaScript.
    Π”ΠΎΠ±Π°Π²Π»Π΅Π½ ΠΊΠΎΠ΄ для очистки кэша Π±Π°ΠΉΡ‚ΠΊΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ 15% ΠΎΡ‚ всСго Ρ€Π°Π·ΠΌΠ΅Ρ€Π° ΠΊΡƒΡ‡ΠΈ. Π’ сборщик мусора Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° стадия для вытСснСния ΠΈΠ· кэша Ρ€Π΅Π΄ΠΊΠΎ скомпилированного Π±Π°ΠΉΡ‚ΠΊΠΎΠ΄Π° для ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΈΠ»ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, Π²Ρ‹Π·Ρ‹Π²Π°Π΅ΠΌΡ‹Ρ… Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€ΠΈ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ. РСшСниС ΠΎ чисткС принимаСтся Π½Π° основании Π½ΠΎΠ²Ρ‹Ρ… счётчиков, ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°ΡŽΡ‰ΠΈΡ… послСднСС врСмя обращСния ΠΊ Π±Π°ΠΉΡ‚ΠΊΠΎΠ΄Ρƒ. Π£ΠΊΠ°Π·Π°Π½Π½ΠΎΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ»ΠΎ ΡΠ½ΠΈΠ·ΠΈΡ‚ΡŒ ΠΏΠΎΡ‚Ρ€Π΅Π±Π»Π΅Π½ΠΈΠ΅ памяти Π½Π° 5–15% Π±Π΅Π· Π½Π΅Π³Π°Ρ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ влияния Π½Π° ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ. Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ, Π² компиляторС Π±Π°ΠΉΡ‚ΠΊΠΎΠ΄Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½Π° гСнСрация Π·Π°Π²Π΅Π΄ΠΎΠΌΠΎ Π½Π΅ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ слСдуСт послС return ΠΈΠ»ΠΈ break (Ссли Π½Π° Π½Π΅Π³ΠΎ Π½Π΅Ρ‚ Jump-ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π°);

    Π Π΅Π»ΠΈΠ· Chrome 74

  • Для WebAssembly Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ² ΠΈ Π°Ρ‚ΠΎΠΌΠ°Ρ€Π½Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ (API WebAssembly Threads ΠΈ WebAssembly Atomics);
  • Для обособлСнной поставки скриптов Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° «#!», ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‰Π΅Π³ΠΎ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ для запуска. НапримСр, ΠΏΠΎ Π°Π½Π°Π»ΠΎΠ³ΠΈΠΈ с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ скриптовыми языками, Ρ„Π°ΠΉΠ» JavaScript ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Ρ‚Π°ΠΊ:

    #!/usr/bin/env node
    console.log(42);

  • Π’ CSS Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ Π½ΠΎΠ²Ρ‹ΠΉ media-запрос «prefers-reduced-motion«, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠΉ сайту ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ состояниС настроСк Π² ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмС, связанных с ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ Π°Π½ΠΈΠΌΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… эффСктов. ΠŸΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠ³ΠΎ запроса Π²Π»Π°Π΄Π΅Π»Π΅Ρ† сайта ΠΌΠΎΠΆΠ΅Ρ‚ ΡƒΠ·Π½Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΠ» Ρƒ сСбя Π°Π½ΠΈΠΌΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ эффСкты ΠΈ Ρ‚Π°ΠΊΠΆΠ΅ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ Π°Π½ΠΈΠΌΠ°Ρ†ΠΈΠΎΠ½Π½Ρ‹Π΅ возмоТности Π½Π° сайтС, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΡƒΠ±Ρ€Π°Ρ‚ΡŒ эффСкт дроТания ΠΊΠ½ΠΎΠΏΠΎΠΊ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… для привлСчСния внимания;
  • Π’ Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊ появившСйся Π² Chrome 72 возмоТности опрСдСлСния ΠΏΡƒΠ±Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΏΠΎΠ»Π΅ΠΉ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΏΠΎΠΌΠ΅Ρ‚ΠΊΠΈ ΠΏΠΎΠ»Π΅ΠΉ ΠΏΡ€ΠΈΠ²Π°Ρ‚Π½Ρ‹ΠΌΠΈ, послС Ρ‡Π΅Π³ΠΎ доступ ΠΊ ΠΈΡ… значСниям Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²Π½ΡƒΡ‚Ρ€ΠΈ класса. Для ΠΏΠΎΠΌΠ΅Ρ‚ΠΊΠΈ поля ΠΏΡ€ΠΈΠ²Π°Ρ‚Π½Ρ‹ΠΌ слСдуСт ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π΄ ΠΈΠΌΠ΅Π½Π΅ΠΌ поля Π·Π½Π°ΠΊ «#». Как ΠΈ Π² случаС с ΠΏΡƒΠ±Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ полями ΠΏΡ€ΠΈΠ²Π°Ρ‚Π½Ρ‹Π΅ свойства Π½Π΅ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ явного использования конструктора.
  • HTTP-Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ Feature-Policy, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠΉ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ΠΌ API ΠΈ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½Ρ‹Ρ… возмоТностСй (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ синхронный Ρ€Π΅ΠΆΠΈΠΌ Ρ€Π°Π±ΠΎΡ‚Ρ‹ XMLHttpRequest ΠΈΠ»ΠΈ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Geolocation API), Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ JavaScript API для ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π΅ активности Ρ‚Π΅Ρ… ΠΈΠ»ΠΈ ΠΈΠ½Ρ‹Ρ… возмоТностСй. Для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΎ Π΄Π²Π° Π½ΠΎΠ²Ρ‹Ρ… ΠΌΠ΅Ρ‚ΠΎΠ΄Π° document.featurePolicy ΠΈ frame.featurePolicy, ΠΏΡ€Π΅Π΄Π»Π°Π³Π°ΡŽΡ‰ΠΈΡ… Ρ‚Ρ€ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ:
    allowedFeatures() для получСния списка Ρ€Π°Π·Ρ€Π΅ΡˆΡ‘Π½Π½Ρ‹Ρ… для Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ Π΄ΠΎΠΌΠ΅Π½Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, allowsFeature() для Π²Ρ‹Π±ΠΎΡ€ΠΎΡ‡Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Ρ… возмоТностСй ΠΈ getAllowlistForFeature() для Π²Ρ‹Π²ΠΎΠ΄Π° списка Π΄ΠΎΠΌΠ΅Π½ΠΎΠ², для ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π½Π° Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ страницС Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½Π° указанная Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ;

  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΡΠΊΡΠΏΠ΅Ρ€ΠΈΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Π°Ρ («chrome://flags#enable-text-fragment-anchor») ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Ρ€Π΅ΠΆΠΈΠΌΠ° Scroll-To-Text, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π΅Π³ΠΎ Ρ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ссылки Π½Π° ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ слова ΠΈΠ»ΠΈ Ρ„Ρ€Π°Π·Ρ‹, Π±Π΅Π· явного указания Π² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π΅ ΠΌΠ΅Ρ‚ΠΎΠΊ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ Ρ‚Π΅Π³Π° «a name» ΠΈΠ»ΠΈ свойства «id». Для ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ ссылки прСдлагаСтся ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ «#targetText=», Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ тСкст для ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π°. ДопускаСтся ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ маски, Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‰Π΅ΠΉ Ρ„Ρ€Π°Π·Ρ‹, ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰ΠΈΠ΅ Π½Π° Π½Π°Ρ‡Π°Π»ΠΎ ΠΈ ΠΊΠΎΠ½Π΅Ρ† Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π° с использованиСм запятой Π² качСствС ΠΈΡ… раздСлитСля (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, «example.com#targetText=start%20words, end%20words»);
  • Π’ конструктор AudioContext Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° опция sampleRate, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π°Ρ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π΄Π΅Π»Π°Π΅ΠΌΡƒΡŽ частоту дискрСтизации для ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ со Π·Π²ΡƒΠΊΠΎΠΌ Ρ‡Π΅Ρ€Π΅Π· Web Audio API;
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° класса Intl.Locale, ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰Π΅Π³ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ для Ρ€Π°Π·Π±ΠΎΡ€Π° ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ выставляСмых локалью ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² языка, Ρ€Π΅Π³ΠΈΠΎΠ½Π° ΠΈ начСртания, Π° Ρ‚Π°ΠΊΠΆΠ΅ для чтСния ΠΈ записи Ρ‚Π΅Π³ΠΎΠ² Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠΉ Unicode, сохранСния ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… настроСк Π»ΠΎΠΊΠ°Π»ΠΈ Π² сСриализированном Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅;
  • ΠœΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ Signed HTTP Exchanges (SXG) Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ срСдствами для информирования распространитСлСй ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚Π° ΠΎΠ± ΠΎΡˆΠΈΠ±ΠΊΠ°Ρ… Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ подписанного ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚Π°, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ с Π²Π΅Ρ€ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠ΅ΠΉ сСртификатов. ΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ошибок производится Ρ‡Π΅Ρ€Π΅Π· Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ API Network Error Logging. Напомним, Ρ‡Ρ‚ΠΎ SXG позволяСт Π²Π»Π°Π΄Π΅Π»ΡŒΡ†Ρƒ ΠΎΠ΄Π½ΠΎΠ³ΠΎ сайта ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ Ρ†ΠΈΡ„Ρ€ΠΎΠ²ΠΎΠΉ подписи Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ размСщСния ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½Ρ‹Ρ… страниц Π½Π° Π΄Ρ€ΡƒΠ³ΠΎΠΌ сайтС, послС Ρ‡Π΅Π³ΠΎ Π² случаС обращСния ΠΊ этим страницам Π½Π° Π²Ρ‚ΠΎΡ€ΠΎΠΌ сайтС, Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ URL исходного сайта, нСсмотря Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ страница Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½Π° с Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ хоста;
  • Π’ класс TextEncoder Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ ΠΌΠ΅Ρ‚ΠΎΠ΄ encodeInto(), ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠΉ Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π·Π°ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½Π½ΡƒΡŽ строку Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ Π² ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π²Ρ‹Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ Π±ΡƒΡ„Π΅Ρ€. ΠœΠ΅Ρ‚ΠΎΠ΄ encodeInto() являСтся Π²Ρ‹ΡΠΎΠΊΠΎΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²ΠΎΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ encode(), Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‰Π΅Π³ΠΎ выполнСния ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ выдСлСния Π±ΡƒΡ„Π΅Ρ€Π° ΠΏΡ€ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠΈ.
  • Π’ Service worker обСспСчСна буфСризация Π²Ρ‹Π·ΠΎΠ²Π° client.postMessage() Π΄ΠΎ ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° готовности Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°. БообщСния, ΠΎΡ‚ΠΏΡ€Π°Π²Π»Π΅Π½Π½Ρ‹Π΅ Ρ‡Π΅Ρ€Π΅Π· client.postMessage(), Π±ΡƒΠ΄ΡƒΡ‚ ΡƒΠ΄Π΅Ρ€ΠΆΠ°Π½Ρ‹ Π΄ΠΎ стадии Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ события DOMContentLoaded, установки onmessage ΠΈΠ»ΠΈ Π²Ρ‹Π·ΠΎΠ²Π° startMessages();
  • Π’ соотвСтствии с Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ спСцификации CSS Transitions Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ события transitionrun, transitioncancel, transitionstart ΠΈ transitionend, Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Π΅ ΠΊΠΎΠ³Π΄Π° CSS-ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ ΠΏΠΎΠΌΠ΅Ρ‰Π΅Π½ Π² ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ, отмСняСтся, Π½Π°Ρ‡ΠΈΠ½Π°Π΅Ρ‚ ΠΈΠ»ΠΈ Π·Π°ΠΊΠ°Π½Ρ‡ΠΈΠ²Π°Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ.
  • ΠŸΡ€ΠΈ ΡƒΠΊΠ°Π·Π°Π½ΠΈΠΈ Ρ‡Π΅Ρ€Π΅Π· overrideMimeType() ΠΈΠ»ΠΈ MIME-Ρ‚ΠΈΠΏ Π½Π΅ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠΉ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠΈ символов для запроса XMLHttpRequest, Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ осущСствляСтся ΠΎΡ‚ΠΊΠ°Ρ‚ Π½Π° UTF-8 вмСсто Latin-1;
  • ОбъявлСно ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠΈΠΌ ΠΈ Π±ΡƒΠ΄Π΅Ρ‚ ΡƒΠ΄Π°Π»Π΅Π½ΠΎ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΈΠ· ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… выпусков свойство «allow-downloads-without-user-activation», Ρ‡Π΅Ρ€Π΅Π· ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΏΡ€ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ iframe. Π’ Π±ΡƒΠ΄ΡƒΡ‰Π΅ΠΌ ΠΈΠ½ΠΈΡ†ΠΈΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ² Π±Π΅Π· явного дСйствия ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°ΠΏΡ€Π΅Ρ‰Π΅Π½ΠΎ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ΠΎ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΠ»ΠΎΡΡŒ для Π·Π»ΠΎΡƒΠΏΠΎΡ‚Ρ€Π΅Π±Π»Π΅Π½ΠΈΠΉ, навязывания Π·Π°Π³Ρ€ΡƒΠ·ΠΎΠΊ ΠΈ подстановки частСй врСдоносного ПО Π½Π° ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ. Для Π½Π°Ρ‡Π°Π»Π° Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ потрСбуСтся ΠΊΠ»ΠΈΠΊ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Π½Π° Ρ‚ΠΎΠΉ ΠΆΠ΅ страницС. Π˜Π·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ свойство ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Π°Π»ΠΎΡΡŒ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ Π² Chrome 74, Π½ΠΎ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ Π±Ρ‹Π»ΠΎ ΠΎΡ‚Π»ΠΎΠΆΠ΅Π½ΠΎ Π΄ΠΎ Chrome 76.
  • Для ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ Windows ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½Π° ΠΎΠΏΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Π°Ρ тёмная Ρ‚Π΅ΠΌΠ° оформлСния интСрфСйса (Π² ΠΏΡ€ΠΎΡˆΠ»ΠΎΠΌ выпускС Ρ‚Ρ‘ΠΌΠ½ΠΎΠ΅ ΠΎΡ„ΠΎΡ€ΠΌΠ»Π΅Π½ΠΈΠ΅ Π±Ρ‹Π»ΠΎ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²Π»Π΅Π½ΠΎ для macOS). Π’Π°ΠΊ ΠΊΠ°ΠΊ Ρ‚Ρ‘ΠΌΠ½ΠΎΠ΅ ΠΎΡ„ΠΎΡ€ΠΌΠ»Π΅Π½ΠΈΠ΅ ΠΏΠΎΡ‡Ρ‚ΠΈ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ‡Π½ΠΎ ΠΎΡ„ΠΎΡ€ΠΌΠ»Π΅Π½ΠΈΡŽ Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ ΠΈΠ½ΠΊΠΎΠ³Π½ΠΈΡ‚ΠΎ, для выдСлСния ΠΏΡ€ΠΈΠ²Π°Ρ‚Π½ΠΎΠ³ΠΎ Ρ€Π΅ΠΆΠΈΠΌΠ° Ρ€Π°Π±ΠΎΡ‚Ρ‹ вмСсто ΠΏΠΈΠΊΡ‚ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ профиля ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΈΠ½Π΄ΠΈΠΊΠ°Ρ‚ΠΎΡ€;
  • Для ΠΊΠΎΡ€ΠΏΠΎΡ€Π°Ρ‚ΠΈΠ²Π½Ρ‹Ρ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Chrome Browser Cloud Management для управлСния настройками Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ΠΎΠ² ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ Ρ‡Π΅Ρ€Π΅Π· консоль Google Admin;

    Π Π΅Π»ΠΈΠ· Chrome 74

ΠšΡ€ΠΎΠΌΠ΅ Π½ΠΎΠ²ΠΎΠ²Π²Π΅Π΄Π΅Π½ΠΈΠΉ ΠΈ исправлСния ошибок Π² Π½ΠΎΠ²ΠΎΠΉ вСрсии устранСно 39 уязвимостСй. МногиС ΠΈΠ· уязвимостСй выявлСны Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ тСстирования инструмСнтами AddressSanitizer, MemorySanitizer, Control Flow Integrity, LibFuzzer ΠΈ AFL. ΠšΡ€ΠΈΡ‚ΠΈΡ‡Π΅ΡΠΊΠΈΡ… ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΠΎΠ±ΠΎΠΉΡ‚ΠΈ всС ΡƒΡ€ΠΎΠ²Π½ΠΈ Π·Π°Ρ‰ΠΈΡ‚Ρ‹ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π° ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΊΠΎΠ΄ Π² систСмС Π·Π° ΠΏΡ€Π΅Π΄Π΅Π»Π°ΠΌΠΈ sandbox-окруТСния, Π½Π΅ выявлСно. Π’ Ρ€Π°ΠΌΠΊΠ°Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΏΠΎ Π²Ρ‹ΠΏΠ»Π°Ρ‚Π΅ Π΄Π΅Π½Π΅ΠΆΠ½ΠΎΠ³ΠΎ вознаграТдСния Π·Π° ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ уязвимостСй для Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ Ρ€Π΅Π»ΠΈΠ·Π° компания Google Π²Ρ‹ΠΏΠ»Π°Ρ‚ΠΈΠ»Π° 19 ΠΏΡ€Π΅ΠΌΠΈΠΈ Π½Π° сумму 26837 Π΄ΠΎΠ»Π»Π°Ρ€ΠΎΠ² БША (Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ ΠΏΡ€Π΅ΠΌΠΈΠΈ $3000, Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ ΠΏΡ€Π΅ΠΌΠΈΠΈ $2000, ΠΎΠ΄Π½Π° прСмия $1337, Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ ΠΏΡ€Π΅ΠΌΠΈΠΈ $1000, Ρ‚Ρ€ΠΈ ΠΏΡ€Π΅ΠΌΠΈΠΈ $500). Π Π°Π·ΠΌΠ΅Ρ€ 4 Π²ΠΎΠ·Π½Π°Π³Ρ€Π°ΠΆΠ΄Π΅Π½ΠΈΠΉ ΠΏΠΎΠΊΠ° Π½Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: opennet.ru