Компания KDAB объявила о разработке компонента Servo WebView для Qt, использующего браузерный движок Servo вместо модуля Qt WebEngine (на базе Chromium) для отображения web-контента в QML-приложениях. Предполагается, что проект поможет сократить поверхность атак на Qt-приложения, использующие API WebView, за счёт применения компонента, в котором благодаря языку Rust минимизировано возникновение уязвимостей, вызванных ошибками при работе с памятью. Код Servo WebView для Qt распространяется под лицензией MPL-2.0...Подробнее: https://www.opennet.dev/opennews/art.shtml?num=60961
Вот так всё у моззилы - что-то там создает, а потом не использует: раст, серво... браузер
Оно как и вейленд никогда не готово для десктопа.
а я арканом пользуюсь что-ли?
А я Таро раскладываю и блюдечко кручу.
браузер вполне рабочий, и это с учетом того, что инетом владеет гугл.
Каким-то чудом вопреки всем усилиям мозиллы.
Это громкое меньшинство орет что мозилла портит браузер, им вообще никакие изменения не нравятся, а на самом деле браузер вполне себе нормальный, особенно на фоне его популярных конкурентов типа Chrome и Яндекс которые вообще являются проприетарными продуктами.
> Это громкое меньшинство орет что мозилла портит браузерДействительно - громкое теперь уже меньшинство орёт, что мурзилла портит браузер. А молчаливое большинство уже просто свалило на хромоиумы.
И, в отличиии от истеричныъх комментов парочки оставшихся фанбоев, это подтверждается вполне реальными и проверяемыми цифрами: рыночной долей. Тихое большинство уже свалило.
Мозилла выложила раст для всех . А раз пользоваться будут все - с какой стати Мозилле в одиночку над ним вкалывать ? И в браузере использует , всё больше . Но у хромоюзеров "бревно в глазу" .
https://chromium.googlesource.com/chromium/src/+/refs/heads/.../Типичные хромоюзеры же.
Судя по опеннетовским коментам (особенно отмодерированным) к растоновостям - подавляющее число наездов на раст связано не с ним самим , а с авторством мозиллы .
Чем вы там читаете новости, филеем?"В Firefox уже интегрированы некоторые части Servo, такие как многопоточный CSS-движок и система отрисовки WebRender."
у аналитегов вывод: "ничего не использует"
>за счёт применения компонента, в котором благодаря языку Rust минимизировано возникновение уязвимостей, вызванных ошибками при работе с памятьюТо есть, по факту, причина выбора как всегда - отсутствие желания нести ответственность и проектировать своими руками и головой корректно работающий код без ошибок? Объясните пожалуйста, почему в любом проекте где используется Rust, его использование оправдывают "отсутствием уязвимостей, вызванных ошибками при работе с памятью", если это должно быть ответственностью пишущего?
Пиши на чём-угодно, тебя кто-то заставляет писать на Rust?
Потому что по данным MS (и не только их) ошибки памяти - это процентов 70 ошибок, которые совершают разрабы. Вот они и хотят решить проблему кардинально. Читаешь здесь про CVE в ядре, иксах и прочем и видишь одно и то же: use after free, double free, выход за границу буфера, так что скорее всего статистика верна.
И? Если нет кода то будет 0 процентов ошибок.
Ну расскажи MS, гуглу и прочим дискордам, вконтактам и дропбоксам что кода на расте нет.
Объясните мне доходчиво, как при индексации массива, зная длину буфера, когда счетчик достигнет нуля, впринципе возможно выйти за границы?
Вот где здесьwhile(--i) {
// do stuff
}возможно за границы выйти?
Или вот
free(ptr);
ptr=nullptr;решает абсолютно все проблемы
У меня просто в голове не укладывается, это же элементарные языковые конструкции, чтобы их не использовать или использовать неправильно, нужно быть хз кем
*вернее, даже так
while(--i != 0)
> *вернее, даже такwhile(--i != 0)
Поздравляю, ты уже вышел за пределы буфера, если i изначально 0.
Еще более доходчивые объяснения нужны?
> Объясните мне доходчиво, как при индексации массива, зная длину буфера, когда счетчик
> достигнет нуля, впринципе возможно выйти за границы?
> while(--i) {
> // do stuff
> }
> возможно за границы выйти?А ты обращайся не в цикле, а просто к элементу.
Или вычисляй i в условной конструкции которая зависит от десятка условий и фазы луны.> free(ptr);
> ptr=nullptr;А если у тебя несколько потоков? И объекто создается где-то в одном месте, а умирает в совершенно другом
> решает абсолютно все проблемы
Но пограммисты на си-шке их так и не смогли решить.
> У меня просто в голове не укладывается, это же элементарные языковые конструкции,
> чтобы их не использовать или использовать неправильно, нужно быть хз кемНужно быть разрабом ядра)
> А ты обращайся не в цикле, а просто к элементу.
> Или вычисляй i в условной конструкции которая зависит от десятка условий и
> фазы луны.Как здесь, например
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2023-28448
?> А если у тебя несколько потоков? И объекто создается где-то в одном
> месте, а умирает в совершенно другомкак здесь например
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-32810
?>> решает абсолютно все проблемы
> Но пограммисты на си-шке их так и не смогли решить.как видим, раста-мани тож нишмагли.
> Нужно быть разрабом ядра)
или ржавым сектантом)
Ну так пусть M$ Винду на Rust и переписывает, раз в ней столько ошибок.
Так они ж - уже!
Переписькивали-переписькивали и даже переписькали цельный кусок GDI.
И он по слухам даже включен в сборки реальной винды.Чтобы им попользоваться, нужно скачать insider build, принести в жертву рыжую девственницу, произнести главное демоническое заклинание и перезагрузиться строго в ночь на ивана купалу, но это немного неточно - всех кто это пытались сделать, на следующее утро находили мертвыми с перегрызенным острыми зубами горлом.
>Читаешь здесь про CVE в ядре, иксах и прочем и видишь одно и то же: use after free, double free, выход за границу буфера, так что скорее всего статистика верна.Уже придумали решение на уровне CPU - CHERI.
У интел давно есть инструкция bound, но накладные расходы таковы, что оно того не стоит. Делать одну проверку один раз за цикл или даже один раз за несколько циклов оказалось сильно дешевле. Программисты только не могут никак научится правильно писать эти проверки. А компиляторы правильно кидать warning в таких местах.
> То есть, по факту, причина выбора как всегда - отсутствие желания нести ответственность и проектировать своими руками и головой корректно работающий код без ошибок?Неа, ошибка по факту в том, что СИ это устаревших хлам, созданный для отстрела ног.
И написать на нем что-то без ошибок просто не возможно, если это слегка больше хеллоуворда.А еще большая проблема это сами СИшники, которые из года в год уде десятки лет делают одни и те же ошибки с памяьтью, но если предложить им использовать санитайзеры, то слышны ЧСВшные крики, что они профи и моугт сами писать хороший код (что не правда).
> Объясните пожалуйста, почему в любом проекте где используется Rust, его использование оправдывают "отсутствием уязвимостей, вызванных ошибками при работе с памятью", если это должно быть ответственностью пишущего?
Так пишущие любители дыряшки на себя такую ответственность не берут.
Приходится исправлять это другими методами.Вот тебе аналогия.
Водитель на ЗИЛе должен уметь переключать мешалку без синхронизаторов, настраивать карбюратор и определять обороты по вою мотора и коробки, тк тахометр умер еще в 86 году.
Но зачем?! Водитель должен следить за дорогой.
Так что тут предлагается мерседес с коробкой автомат, датчиками слепых зон и удержанием в полосе.
Потому что инструменты должны быть качественные и современные, а не овно из прошлого века.
У этого мерседеса колеса квадратные.Особенно когда есть C++. Особенно C++ через 20 лет когда войдут в обиход модули и прочее из нынешних стандартов.
К сожалению из-за одного диктатора (великодушного, но тем не менее) у нас в ядре С++ нету.
И не будет. Судя по всему принципиально.
Так что тут выбирать особо не из чего.C++23, очень крут, но все равно не избавляет от проблем памяти полностью.
Даже использование miraclePtr не стало панацеей, хотя некоторые надеялись.
По-моему недавно поднималось обсуждение насчет использования плюсов в ядре. Наверно кончилось ничем, так что да, в ядре выбор невелик.
Тут обсуждалось opennet.ru/opennews/art.shtml?num=60436> Наверно кончилось ничем
Это было немного предсказуемо, не так ли))
С другой стороны аргументы у них не очень сильные. Схожесть синтаксиса это не плюс.
Потому что сишники будут писать на "с с классами".Concepts слишком новая фича.
Напомню, что ядро только недавно перешло на с11 с с89 что ли))
А тут сразу хотят C++14 или C++20!
>Потому что сишники будут писать на "с с классами".Так по рукам бить надо за использования сырых указателей.
Раст с его ансейфами не избавляет от проблем с памятью.
Не избавляет, но сокращает их количество. https://www.opennet.dev/opennews/art.shtml?num=59044 как пример.
> Раст с его ансейфами не избавляет от проблем с памятью.раст и без ансейфа не избавляет от проблем с памятью:
https://cve.mitre.org/cgi-bin/cvekey.cgi?keyword=rust
Вы ссылкой ошиблись :-) По вашей ссылке отлично видно, что избавляет.
> Вы ссылкой ошиблись :-) По вашей ссылке отлично видно, что избавляет.use-after-free, buffer-overflow, segmentation-fault отлично доказывает, да.
Панацеей не стало, однако по данным Google [1] внедрение MiraclePtr предоставило защиту от 57% уязвимостей класса use-after-free. То есть достигнута половина того что дает Rust всего лишь введением одного небольшого приема программирования, без переписывания проекта.[1] https://www.silkway.news/ru/otsenka-effektivnosti-primeneniy.../
> Панацеей не стало, однако по данным Google [1] внедрение MiraclePtr предоставило защиту
> от 57% уязвимостей класса use-after-free.Ты забыл добавить что там возросло и потребление памяти и нагрузка на процессор)
Ну и это касается только use-after-free, а ведь еще есть double-free, out-of-bounds и тд
> То есть достигнута половина того что дает Rust всего лишь введением одного небольшого приема программирования, без переписывания проекта.Неа, там гораздо сложнее.
И ссылки лучше давать на первоисточники (ну или на пенек, чисто из уважания)))
security.googleblog.com/2024/01/miracleptr-protecting-users-from-use.htmlReaching this level of effectiveness, however, required additional work. For instance, we not only rewrote class fields to use MiraclePtr, as discussed in the previous post, but also added MiraclePtr support for bound function arguments, such as Unretained pointers.
Т.к уже не "всего лишь введение одного небольшого приема"Смотрм дальше
The main cost of MiraclePtr is memory. Specifically, the memory usage of the browser process increased by 5.5-8% on desktop platforms and approximately 2% on Android.
И это только борьба с одной из ошибок, которые позволяет избежать Раст.
С которой "успешно" поборолись на чуть выше 50 процентов)
Тэкс, а сколько оверхед у Раста с включенной runtime-проверкой?
ЕМНИП там таки есть вариант компиляции с runtime-проверкой, и без.ЗЫ. У старущего турбо-паскаля runtime-проверка выхода за границы массива тоже включалась. Можно было орать, что безопасный язык, аж с начала 90-х годов.
Если всё настолько плохо, что ты готов соглашаться с рантайм стоимостью решения, то miracleptr довольно странный выбор. Есть сборка мусора, есть swift с его счётчиками ссылок. Если твоего энтузиазма уже не хватает на статическое управление памятью, то тебе туда.
> Особенно C++ через 20 лет когда войдут в обиход модули и прочее из нынешних стандартов.будучи плюсовиком, в гробу видал попытки мелкомягких запроприетарить исходники
>То есть, по факту, причина выбора как всегда - отсутствие желания нести ответственностьНаоборот, ответственный подход к разработке, а не тяп-ляп — AS IS всё спишет.
Хотят переложить ответственность на компьютер.
> отсутствие желания нести ответственность и проектировать своими руками и головой корректно работающий код без ошибок?У тебя странное представление о том, зачем пишут программы. Цель - не «нести ответственность» и не «своими руками». Цель - сделать что-то нужное и полезное. Не ломом асфальт подметать как вас в армии учили, а решать задачу с наилучшим балансом «затраты / результат».
Это называется свидетельство канарейки. После внедрения раста все ошибки работы с памятью и гонки не случайны.
Как уже достали со своим растом, ей богу, из каждого утюга про него слышно
И если пару лет назад лично у меня к этому языку было скорее нейтральное отношение, то сейчас меня уже хорошо так триггерит, и в целом язык вызывает отвращениеХотя умом я понимаю что, наверное, язык то неплохой, НО! Психика так работает
зы: тоже самое у меня с го было, когда он был на хайпе, как же меня бесил этот синий гофер, а сейчас норм, думаю в недалеком будущем что-то написать на го
Просто плюсы видать мало кому интересны на опеннете, вот и не пишут про них
Сишка уже легаси
d - маргинальщина для 1.5 землекопов
И получается, Раст - самый популярный язык системного программирования на опеннете.
> Просто плюсы видать мало кому интересны на опеннете, вот и не пишут про нихНа с++ не так много приложений, которые интересны местной аудитории.
Навскидку могу вспомнить KDE, kodi, opencv, openoffice..> Сишка уже легаси
Но тем не менее новости об уязвимостях появляются постоянно, и читать, а особенно комментить их весело))
> И получается, Раст - самый популярный язык системного программирования на опеннете.
Именно! вот поэтому он достоен быть в главных новостях)
> На с++ не так много приложений, которые интересны местной аудитории.
> Навскидку могу вспомнить KDE, kodi, opencv, openoffice..Ты такой забавный...
А как же vlc? telegram? 2gis? mysql/mariadb? postgres? mongo? oracle db? tensorflow? все приложения autodesk? apple osx/ios? ms windows? firefox? thunderbird? chrome? safari? старая opera? organic maps (бывший maps.me)? symbian? qt?
все игры на плюсах (кроме тех, от которых раскручиваются кулера - эти на unity3d), половина торрент-клиентов и компиляторов
> Ты такой забавный...
> А как же vlc? telegram? 2gis? mysql/mariadb? postgres?
> все приложения autodesk? apple osx/ios? ms windows? firefox? thunderbird? chrome? safari? старая opera? organic maps
> (бывший maps.me)?
> все игры на плюсах (кроме тех, от которых раскручиваются кулера - эти на unity3d), половина торрент-клиентов и компиляторовЧувак, мы на сайте OpenNet, а на ProprietaryNet
Я прекрасно знаю, что большая часть винды это плюсы, но попробуй еще раз внимательно прочитать фразу "которые интересны местной аудитории".
Можешь попробовать начать писать новости про винду, или игры на unreal/crytech, посмотрим что тебе в комментах напишут и как быстро новость удалят.
В каждой новости про яблоко и их опенсорск бухтят "зачем оно здесь?"Из всего что ты перечислил mariadb/postgres, и моззиловские приложения тут считаются опенсорсными.
Местные поехавшие даже хром и хромось считают проприетарными.
> Местные поехавшие даже хром и хромось считают проприетарными.так они малость проприетарные
>> Местные поехавшие даже хром и хромось считают проприетарными.
> так они малость проприетарныеКод открытый? Открытый.
Опенсорс? Явно опенсорс!
Лицензия позволяет менять код под себя? Да, есть хромиум на котором куча проектов.Тебе послушать, так ядро тоже проприетарное, тк 80% кода пишут корпы.
> Код открытый? Открытый.у кого код открытый, у хрома с хромоосью? если это вброс, то он очень странный в плохом смысле
> vlc?это (по мнению местной ылитки) "глючное поделие рассыпающееся на квадраты"
можешь заглянуть в тему про последний релиз vlc> telegram?
"шпионящее нeнyжнo, используй ..."
> 2gis?
проприетарь
> mysql/mariadb?
"для админов локалхоста!"
> postgres?
а вот про эту забыл
> все приложения autodesk? apple osx/ios? ms windows?
проприетарь, их тут только хейтят
> safari? старая opera? organic maps (бывший maps.me)?
и этих тоже
> firefox? thunderbird? chrome?
у этих неправильная лицензия!
Ты читай внимательно
"приложений, которые интересны МЕСТНОЙ аудитории"
МЕСТНОЙТ.е. это должно быть что-то гнутое, с вырвигланым дизайном, обязательно без монетизации, без телеметрии, без смысла и полезности. Зато с запахом и привкусом чвободки.
Так вот такого на с++ не так уж много.
vlc на сишке написан
гуй на c++/qtхотя про кору на си не знал, прикольно
> Как уже достали со своим растом, ей богу, из каждого утюга про него слышноЛюди работают, пишут код, почему бы не рассказать об этом другим?
> И если пару лет назад лично у меня к этому языку было скорее нейтральное отношение, то сейчас меня уже хорошо так триггерит, и в целом язык вызывает отвращение
Сочувствую тебе.
> Хотя умом я понимаю что, наверное, язык то неплохой, НО! Психика так работает
Неа) Как обычно говорят на форумах лапчатых УМВР))
Наверное психика другая. А может у тебя просто стресс, и в такой момент даже пакетик может выбесить.> зы: тоже самое у меня с го было, когда он был на хайпе, как же меня бесил этот синий гофер, а сейчас норм, думаю в недалеком будущем что-то написать на го
Ну, краб некоторых бесит еще с 2012 года, а некоторые еще и раньше.
Думаю тебе просто надо в отпуск))
Особого прогресса последнее время не видно ни в продвижении Rust, ни в написании прог на нем. Это говорит о том, что большинство фанатов Rust пишут в основном комментарии про него, а не программы на нем ))
Ну а людям надоедает любая тема, о которой говорят слишком долго, как бы интересна она не была изначально. Это естественное свойство человеческой психики. Лучше побеспокоится о том, что выгорание мэинтейнеров проектов на Rust принимает массовый характер, о чем уже бьют в колокола на популярных зарубежных ресурсах. Оказывается, переписать все на свете оказалось не такой уж простой задачей, да и не особо благодарной ))
> НО! Психика так работаетМы тут инженеры которые руководствуются логикой или девочки-истерички?
> Хотя умом я понимаю что, наверное, язык то неплохой, НО! Психика так работаетЕсли у тебя психика так работает, что простое упоминание раста вызывает приступы необоснованной неконтролируемой ненависти, то проблема совсем не в расте, я думаю.
> Как уже достали со своим растом, ей богу, из каждого утюга про него слышноА бесконечный поток новостей о сишных дыренях тебя не достал, правильно?
> Как уже достали со своим растом, ей богу, из каждого утюга про него слышноЭто ты ещё опоздал родиться, чтобы послушать как из каждого утюга про Яву рассказывают. А до неё — про Си. Так уж вышло, что люди любят радоваться хорошему. Так что вопрос скорее к тебе: почему ты такой угрюмый?
А xml? Вот реально прям из каждого утюга.
Если uBlock прикрутят то появится нормальный бровсер на Qt
Он, хотя бы для начала, просто появился даже без uBlock.
это нонсенс, сейчас браузер не имеет смысла без uBlock, тупо ресурсов при работе тратится в 10 раз больше
Ladybird уже можно пользоваться, хоть и сжав булки. Разработчики на него уже начали пересаживаться - не столько потому что готов, а чтобы эту готовность поскорее приблизить. Но сам факт показателен.
даже отдельной репы нету, всё в общей помойке...
Иным проектам не помешало бы ориентироваться на эту "помойку" в плане структурированности и понятности.
Ура! Это всё для того, чтобы Google заплатила им 1 миллион, который они пообещали тем, кто сделает хорошую совместимость между кодом на C++ и кодом на 🩸 bleeding edge технологиях! Потому что это действительно 🕹️ paradigm-changing переворот игры (никакого больше небезопасного кода)! Теперь в Qt веб-содержимое переписывается, чтобы стать безопаснее не только при помощи неуловимости Джо, но и потом что это будет 🔥 Blazingly быстро! 💡 Easy для использования! Обязательно надо чтобы на странице документации 🏆 вся информация сопровождалась 👋 достаточно 2️⃣ большим количеством 🤯 жмоджи во всех 📖 примерах 🔥 🦀 💨! Хромой движок теперь не хромой, а клешне-рукий и ржавой! 🦀
Какой-то эзопов язык в новости. Они это написали уже, или как всегда у растоманов, только собираются?
исходя из того, что это раст, думаю, такой проект уже есть на нормальном языке, и теперь они громко на весь интернет пишут, что собираются переписать его на расте
ну как тебе сказать... Coc.md уже готов. Остальное - в процессе, но уже вот вот почти окончательно готово.
Напоминает мне хакатон, где у 8 из 10 команд уже было несколько менеджеров и маркетологов, но ищут хотя бы одного программиста.
Только собираются это как всегда относится скорее к жителям болот
Одобряю. Если сумеют заменить вебкит, вебэнджин или что там монструзное было на движок ФФ,то Кедами даже пользоваться можно будет. Хоть раз жопарукам пришла в голову достойная идея.
Движок ФФ это геко. Серво это нерабочий бред фанатиков.
А может перед тем как заменять и переписывать попробовать доделать то что уже и так довольно неплохо работает?
> А может перед тем как заменять и переписывать попробовать доделать то что
> уже и так довольно неплохо работает?а вот ТАКИХ кодеров - уже почти не осталось. Уцелевшие заняты 24x7 (зарабатывают себе на пиццерию и early retirement, конечно)
Подождите, но ведь Servo - сырой. Зачем он qt?
Ну для тебя серво - сырой.
Для инжинеров qt, выходит, что нет.
Думаю они если что, допилят и серво станет еще лучше.
А может они выделят команду и научат их работать с Растом.
> Ну для тебя серво - сырой.Покажи мне браузер на нем?
> Для инжинеров qt
Этим занимается другая контора.
Ты бы хоть посмотрел что это за KDAB.
На их описание "The KDAB Group is a leading force in the Qt community through its Qt expert services, contributions to the Qt Project"
На их блог
kdab.com/kdab-contributions-qt-5-7/
kdab.com/kdab-contributions-qt-5-9/И да, это люди которые разрабатывали QT
Ну раз KDAB Group написали что "The KDAB Group is a leading force in the Qt community through its Qt expert services, contributions to the Qt Project" то как можно в этом сомневатся.
KDAB не врут. Qt разрабатывает компания The Qt Company и сообщество. И у KDAB (среди всего сообщества) наибольший вклад.
Огонь! Надеюсь, доведут до юзабельного состояния.
Неужели теперь оно будет собираться быстрее?
Конечно, если в зависимостях помимо всего прочего появится еще и Rust с парой сотен пакетов то собиратся станет ну может не быстрее, но точно веселее.
> Конечно, если в зависимостях помимо всего прочего появится еще и Rust с
> парой сотен пакетов то собиратся станет ну может не быстрее,
> но точно веселее.Там сейчас в qt уже есть зависимость от nodejs. Но растом веселее будет, да.
Успехов проекту, а исполнителям — лучей благоденствия.
Для ясности нужно отметить что KDAB Group не имеет отношения к официальным разработчикам Qt, они только что-то коммитят в него и оказывают консультационные услуги. В свете этого данный проект почти наверняка останется в неофициальном статусе и желающие будут подключать его из отдельного репозитория. Это если он вообще когда-либо будет готов к использованию.
тобеж до простой идеи не использовать js в qml они додуматся не могли.
Как думаете, будут ли на Servo переходить браузеры тот же Firefox?
В доминировании одного движка ничего хорошего нет. Лучше бы не переходили, а развивалось несколько разных движков, а веб был более строго стандартизирован, что бы не было что на одном движке так, а на другом не так и нужно тестировать работу сайта на каждом движке отдельно.
Вообще жаль что разработчики Qt не пошли по пути модульности в вопросе встраиваемого веб-компонента. Был Webkit, у него была замечательная возможность QWebElement с помощью которого можно было модифицировать DOM напрямую. Зачем-то перешли на WebEngine без этой возможности. А могли бы просто сделать унифицированный интерфейс (как драйвер баз данных, или картинок) и оставить оба движка.