Выпуск Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π½ΠΎΠ³ΠΎ Π΄Π²ΠΈΠΆΠΊΠ° Servo 0.1.0, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ доступСн Π² Ρ„ΠΎΡ€ΠΌΠ΅ crate-ΠΏΠ°ΠΊΠ΅Ρ‚Π°

ΠžΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½ выпуск Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π½ΠΎΠ³ΠΎ Π΄Π²ΠΈΠΆΠΊΠ° Servo 0.1.0 ΠΈ Ρ€Π°Π·Π²ΠΈΠ²Π°Π΅ΠΌΠΎΠ³ΠΎ вмСстС с Π½ΠΈΠΌ дСмонстрационного Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π° ServoShell, написанных Π½Π° языкС Rust. Π“ΠΎΡ‚ΠΎΠ²Ρ‹Π΅ сборки сформированы для Linux, Android, macOS ΠΈ Windows. Помимо ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… сборок Servo Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ поставляСтся ΠΈ Π² Ρ„ΠΎΡ€ΠΌΠ΅ crate-ΠΏΠ°ΠΊΠ΅Ρ‚Π°, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΄Π²ΠΈΠΆΠΎΠΊ Π² Ρ„ΠΎΡ€ΠΌΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ.

Servo 0.1.0 стал ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ выпуском, для ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ обСспСчСн Π΄Π»ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ Ρ†ΠΈΠΊΠ» ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ (LTS). НовыС LTS-Π²Π΅Ρ‚ΠΊΠΈ Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π°Π· Π² 6 мСсяцСв Π½Π° основС ΠΎΡ‡Π΅Ρ€Π΅Π΄Π½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½ΠΎΠ³ΠΎ выпуска. ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° LTS-выпусков Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²Π»ΡΡ‚ΡŒΡΡ 9 мСсяцСв (3 мСсяца даётся для ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π° Π½Π° Π½ΠΎΠ²ΡƒΡŽ LTS-Π²Π΅Ρ‚ΠΊΡƒ). ΠžΡ‚ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Ρ… выпусков LTS-Π²Π΅Ρ‚ΠΊΠ° отличаСтся ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠ΅ΠΉ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΉ с исправлСниями уязвимостСй Π² Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅ servo, JavaScript-Π΄Π²ΠΈΠΆΠΊΠ΅ ΠΈ зависимостях. ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅Ρ‚ΡΡ, Ρ‡Ρ‚ΠΎ LTS-Π²Π΅Ρ‚ΠΊΠ° Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠ»Π΅Π·Π½Π° для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ², Π²ΡΡ‚Ρ€Π°ΠΈΠ²Π°ΡŽΡ‰ΠΈΡ… Servo Π² свои ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹ ΠΈ Π½Π΅ ΠΆΠ΅Π»Π°ΡŽΡ‰ΠΈΡ… СТСмСсячно ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ Π½Π° ΠΎΡ‡Π΅Ρ€Π΅Π΄Π½ΠΎΠΉ ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½Ρ‹ΠΉ выпуск с Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹ΠΌΠΈ измСнСниями Π² API.

Выпуск Servo 0.1.0 LTS построСн Π½Π° основС сформированной нСсколько Π΄Π½Π΅ΠΉ Π½Π°Π·Π°Π΄ ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½ΠΎΠΉ вСрсии 0.0.6, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π±Ρ‹Π»ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ‹ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Π½ΠΎΠ²Ρ‹Π΅ возмоТности:

  • Π’ HTML-элСмСнтe Β«buttonΒ» Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ‹ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ Β«commandΒ» ΠΈ Β«commandforΒ», ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² ΠΊΠ½ΠΎΠΏΠΊΠ°Ρ… вмСсто Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ² Β«popovertargetactionΒ» ΠΈ Β«popovertargetΒ» для Π΄Π΅ΠΊΠ»Π°Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ настройки взаимодСйствия с мСню, Π²Ρ‹Π·Ρ‹Π²Π°Π΅ΠΌΡ‹ΠΌ ΠΏΡ€ΠΈ Π½Π°ΠΆΠ°Ρ‚ΠΈΠΈ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡƒ.
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½ CSS-сСлСктор Β«:modalΒ», ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠΉ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π΄ΠΈΠ°Π»ΠΎΠ³, созданный Ρ‡Π΅Ρ€Π΅Π· элСмСнт <dialog>, являСтся ΠΌΠΎΠ΄Π°Π»ΡŒΠ½Ρ‹ΠΌ.
  • Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ΠΎ CSS-ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ @property, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π΅Π΅ Ρ€Π΅Π³ΠΈΡΡ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ собствСнныС CSS-свойства.
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ CSS-свойства Β«alignment-baselineΒ» ΠΈ Β«baseline-shiftΒ» для выравнивания тСкста ΠΏΠΎ Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΠΈ.
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° Β«Content-Security-Policy: base-uriΒ», ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ²Π°ΡŽΡ‰Π΅Π³ΠΎ URL, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π² HTML-элСмСнтС <base>.
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° частичная ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΎΡ‚Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠΉ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ iframe-Π±Π»ΠΎΠΊΠΎΠ², ΠΏΡ€ΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ содСрТимоС, находящССся Π²Π½Π΅ Π²ΠΈΠ΄ΠΈΠΌΠΎΠΉ области, Π½Π΅ загруТаСтся Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π½Π΅ ΠΏΡ€ΠΎΠΊΡ€ΡƒΡ‚ΠΈΡ‚ страницу Π² мСсто, нСпосрСдствСнно ΠΏΡ€Π΅Π΄ΡˆΠ΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π΅ элСмСнту. Π’ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΎΡ‚Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠΉ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ страниц осущСствляСтся Ρ‡Π΅Ρ€Π΅Π· Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ Β«loading=lazyΒ» Π² Ρ‚Π΅Π³Π΅ iframe (<iframe loading=lazy>).
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° частичная ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° CSS-свойства Β«transform-style: preserve-3dΒ» для позиционирования Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΡ… элСмСнтов Π² 3D-пространствС.
  • Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ‹ события pointermove, pointerdown, pointerup ΠΈ pointercancel.
  • ΠžΠ±Π΅ΡΠΏΠ΅Ρ‡Π΅Π½ ΠΏΠΎΠ²ΠΎΡ€ΠΎΡ‚ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ Π½Π° основС ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Ρ… EXIF.
  • ΠžΠ±Π΅ΡΠΏΠ΅Ρ‡Π΅Π½ΠΎ использованиС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ окруТСния LANG для Π²Ρ‹Π±ΠΎΡ€Π° языка ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ для Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° Β«Accept-LanguageΒ» ΠΈ свойства navigator.language.
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ API Pointer Events ΠΈ UserActivation.
  • Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ‹ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ import.meta.resolve(), formData(), toJSON(), createIndex(), deleteIndex() ΠΈ index().
  • Π’ дСмонстрационном Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅ servoshell для измСнСния настроСк Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ‹ страницы servo:preferences (GUI ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ‚ΠΎΡ€) ΠΈ servo:config (ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² Π² стилС about:config). Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΏΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ страницы ΠΏΡ€ΠΈ Π½Π°ΠΆΠ°Ρ‚ΠΈΠΈ F5.
     Выпуск Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π½ΠΎΠ³ΠΎ Π΄Π²ΠΈΠΆΠΊΠ° Servo 0.1.0, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ доступСн Π² Ρ„ΠΎΡ€ΠΌΠ΅ crate-ΠΏΠ°ΠΊΠ΅Ρ‚Π°
  • Π’ инструмСнтах для web-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ инспСктирования Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° рСдактирования Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ² DOM, Π² web-консоли обСспСчСн прСдпросмотр ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Π΅ΠΌΡ‹Ρ… Ρ‡Π΅Ρ€Π΅Π· console.log(), Π² ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊΠ΅ появилась Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ приостановки ΠΈ возобновлСния выполнСния скриптов.
  • Π Π°ΡΡˆΠΈΡ€Π΅Π½ API для встраивания Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π½ΠΎΠ³ΠΎ Π΄Π²ΠΈΠΆΠΊΠ° Π² прилоТСния.

Π”Π²ΠΈΠΆΠΎΠΊ Servo ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ развивался ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠ΅ΠΉ Mozilla, Π½ΠΎ Π·Π°Ρ‚Π΅ΠΌ ΠΏΠ΅Ρ€Π΅ΡˆΡ‘Π» ΠΏΠΎΠ΄ ΠΏΠΎΠΊΡ€ΠΎΠ²ΠΈΡ‚Π΅Π»ΡŒΡΡ‚Π²ΠΎ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ Linux Foundation. Servo отличаСтся ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡ‚ΠΎΡ‡Π½ΠΎΠ³ΠΎ Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΠ½Π³Π° web-страниц, распараллСливаниСм ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ с DOM (Document Object Model) ΠΈ задСйствованиСм прСдоставляСмых языком Rust ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠΎΠ² бСзопасного программирования. Servo ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ создан с ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ разбиСния ΠΊΠΎΠ΄Π° DOM ΠΈ Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΠ½Π³Π° Π½Π° Π±ΠΎΠ»Π΅Π΅ ΠΌΠ΅Π»ΠΊΠΈΠ΅ ΠΏΠΎΠ΄Π·Π°Π΄Π°Ρ‡ΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎ ΠΈ Π±ΠΎΠ»Π΅Π΅ эффСктивно ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ рСсурсы многоядСрных CPU. Π’ Firefox ΡƒΠΆΠ΅ ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ части Servo, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡ‚ΠΎΡ‡Π½Ρ‹ΠΉ CSS-Π΄Π²ΠΈΠΆΠΎΠΊ ΠΈ систСма отрисовки WebRender.

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

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ