Pull to refresh

Comments 123

Прекрасно понимая, что данное решение было продиктовано в наибольшей
степени корыстными побуждениями (а не реальной технической
необходимостью)...

Расшифруйте, пожалуйста, для неосведомлённых - какова выгода для Гугла от того, что кто-то обновит свою Win7 до 10 и выше?

MS Гуглю доплачивает за каждое обновление до Win10?

Разумеется, нет, для Google это минус расходы на поддержку (впиливание костылей для устаревших ОС, обход проблем устаревших драйверов на устаревших ОС), минус расходы на тестирование.

Не только расходы на поддержку, но и расходы на развитие. Это легаси дико мешает.

Судя по тому, что у автора оно всё же заработало, в данном случае либо не мешает, либо не дико.

От последней версии прошло еще чуть больше полугода. Много чего выпилить не успели. Потом, автор вон уже отрубил почти всю безопасность, webgpu и еще что-то. Ну и, "заработало" — это громко сказано. Он хром лишь запустил. Отчета о том, сколько сайтов у него заработало как надо, и сколько было вылетов — нет.

Помимо "запустилось же" есть ещё соображения, что это кроссплатформенное ПО. Мне кажется странным, если прога умеет работать и в Линуксах, и на Маке, и на фиг знает чём ещё, но вот Винда нужна позарез конкретной версии. Тем более, если существует форк Хромиума, который под 7-ку успешно компилится.

А насчёт отчёта - это да. Он бы в статье не помешал. А то подход отдаёт грязным хакерством, соответственно, вызывает подозрения, что там не всё гладко может пройти. Равно как и детали реализации в статье хотелось бы видеть.

Поддержка каждой из системы дается не бесплатно. Часть старых версий со временем надо отбрасывать.


Потом, вряд ли оно вообще не любом линухе запустится. Вот тут тоже какие-то ограничения по версиям указаны и всего лишь 4 дистрибутива.


Тем более, если существует форк Хромиума, который под 7-ку успешно компилится.

Это пока он не особо разошелся с актуальной версией по фичам. Потом можно будет с тем же успехом запускать хром 109.

WebGPU автор наоборот, не отрубил, а врубил -- а отрубил только песочницу.

Он говорит больше о Недостающие WinAPI в системных PE-библиотеках dll отмечены красной карточкой справа. Такие dll так-же подсвечены красным цветом в самой утилите слева. Визуально отмечаем, что кроме отдельных WinAPI не достают целые системные библиотеки типа API-MS-WIN-POWER-BASE-L1-1-0.DLL (обозначены желтым цветом с восклицательным знаком). Убедившись, что API-MS-WIN-POWER-BASE-L1-1-0.DLL действительно отсутствует изначально в комплектации «семёрки», приходим к неутешительному

Человекочасы тестирования на каждой платформе тоже денег стоят.

какова выгода для Гугла от того, что кто-то обновит свою Win7 до 10 и выше?

Никакой, но сэкономят на сборке, на тестировании, на часах саппорта.

Ну, это сложно назвать "корыстным побуждением", согласитесь. Вполне естественный процесс отмирания легаси - а совсем не какой-то коварный умысел, как это пытается в экспрессивной манере представить ТС.

А Вы считаете, что нет никакой связи между соответствующими ТНК?

Тут на хабре в публикации пробегала инфа, что Google отстегнул 15 млрд$ Apple, чтобы те ставили на всех IPhone Goole поиском по умолчанию. Почему бы не быть подобной связи между Google и Microsoft?

Хабр, спасибо!
Не ожидал вообще что статью выпустят в таком "откровенном" виде. Приступаю к ответам на Ваши вопросы! (Постарался всё в одном охватить, гайз.)

для Google это минус расходы на поддержку, минус расходы на тестирование.

Бедный несчастный Google, "эффективные менеджеры" последний хлеб без соли доедают. Доходы резко упали. Сейчас всплакну.

впиливание костылей для устаревших ОС,

Какие там могут быть костыли?? DirectX 2D/3D он и в Африке (XP) DirectX 2D/3D. DXVA есть в Windows 7.

legacy

Леди и джентельмены, сэры и пэры! Не понимал никогда этот странный термин. Если бы Google тащила код с 95 винды ещё, тогда понятно - это реально legacy. Но здесь не то, абсолютно.
У вас какое-то слишком перековерканное воображение насчёт возможностей добавление кода корпорацией Microsoft за последние лет 15. Или это какой-то культ или "форс" терминологии с псевдовозможностями самого Microsoft (который уже не торт после ухода Билла Гейста).
Для любого реверса, кто копается в винде с XP, нет такого понятия как legacy. Существуют базовые вещи, такие как COM, DirectX, kernel32/ntdll, CreateFileA/CreateFileW, реестр Windows, NTFS... Это всё составляет ~95% кода Widnows (и того же Google Chrome).

Чем explorer.exe который в Windows 11 отличается от своего собрата в Windows XP? По сути, только скругленными углами! Всё то же (извините за выражение) "задротство" интерфейса (IID) IShellFolder/COM, которые с того же XP существуют. Вот и всё! Вот и вся Ваша хваленая Microsoft. Не говоря уже о реестре Windows, который не смогли ничем заменить.
Нет, конечно, винда меняется, но изменения касаются по большей части добавления функцонала изоляции процессов от внешней среды. Но это не значит, что, например, в том же XP (лучше Windows 2003 Server) нельзя серфить по интернету в 2023 году. Например, часть дырок, которые нашли в 10ке, не работает чисто физически на XP (CVE-2021-40444). Не говоря уже о том, что большинство вирусописателей забывает за major/minor linker ... в 2023 году.

Никакого legacy в Chrome сейчас нет! Подавляющее большинство API и технологий тащится с Windows XP. Что добавили нового с Windows 7 (DXGI, DXVA pack, контейнеры безопастности) - есть точно так-же на 10ке и 11й.

Потом, автор вон уже отрубил почти всю безопасность

Это чересчур преувеличение! Из безопасности только sanbox через митигации. Остальное всё так-же функционирует БЕЗ изменений. Точно так-же без митигаций работало оно с самого начала и даже в 2023 году в официальной 109 версии.

webgpu

Он изначально как бы в тестовом режиме идёт и его нужно уметь включать - тем более для DirectX 11, который является крайним для Windows 7. Об этом и написано у самой Google для deveoper'ов..

API-MS-WIN-POWER-BASE-L1-1-0.DLL действительно отсутствует изначально в комплектации «семёрки», приходим к неутешительному

Условно, недостающие API делятся на две части:

  • новые обвертки над уже 100500 лет существующими legacy в нативном коде (NTDLL, как самый очевидный пример);

  • реально что-то новое написанное, но такого крайне мало (те же митигации с Windows 8);

    Условно

Флаги командной строки --enable-unsafe-webgpu --use-webgpu-adapter=d3d11 небезопасны,

А разве есть другие варианты включения WebGPU?!? Причем WebGPU сам по себе предоставляет низкоуровневый доступ к ресурсам "железа", чтобы работало без лишних "прослоек" (wrapper). Как бы это и отличие от WebGL/WebGL2, навскидку. Если есть вариант включения WebGPU другим способом - мне самому интересно.

? Когда есть chromium исходные коды которого открыты

Этим занимаются другие парни (supermium).

лучшая шутка месяца

Более тонкий юмор.

Отчета о том, сколько сайтов у него заработало как надо, и сколько было вылетов — нет.

Всё работает точно так-же, как и у Chrome 114, который будет запущен в 10ке (Microsoft Windows 10). Мы же НЕ патчили сам движок Blink/V8 и его составные потроха. Даже НЕ представляю чем отчитываться - одинаково абсолютно. В этом и вся суть!

аппаратного ускорения почти всего. Не заработают всякие web api вроде
GetUserMedia, декодирование видео будет не аппаратно ускорено скорее
всего

Вы плохо смотрели картинки в статье. Есть скриншот chrome://gpu. Проверьте у себя на виртуалке для Windows 7, если уж нотариально заверенные скриншоты не помогут. Аппаратное ускорение работает (DXVAVDA это называется). Кстати, на раздаче в рутрекере некоторые пользователи рапортуют о более быстрой работе по сравнению с предыдущими версиями Chrome. Speedometer (виртуалка Windows 7) показал 110.

Не надо строить иллюзий - за исключением sanbox с митигациями (было описано выше) это обычный рабочий браузер Chrome со всем функционалом. Собственно, это и есть один из главных посылов статьи ("Вам лапшу вешают и всячески палками гонят на следующие версии по номерам ПО, а по факту - ничего принципиально не меняется в самом ПО").

чтобы улучшить жизнь сотням миллионов пользователей на более новых
системах. Ну не дается поддержка вот этого старого кода бесплатно.

В том числе из-за постоянно растущего легаси современный софт и работает все медленнее и медленее

Оно не будет в принципе работать медленнее, чем на 10ке, т.к. hardware acceleration использует тот же DirectX (DXGI, DXDVA), что упомянуто выше.

Из всего что было видно в отладчике или исходном коде Chromium (как аналог, без части функционала) не вижу, какой участок кода Google должна "активно поддерживать", чтобы оно работало и на Windows 7 и на Windows 10. Там буквально несколько if() нужно вставить - вот и вся РАЗНИЦА. НЕСКОЛЬКО СРАНЫХ if() с кусками кода с десяток (максимум сотню) килобайт.

а с XP уже туго

supermium вроде обещали Chromium на XP. Хотя много чего переделать нужно. Но в принципе это реально - DirectX 9 никуда с исходного кода не делся. Вообще с XP отдельная, ещё более в сотни раз сложная тема, если Chrome патчить. Лучше переписать часть кода Chromium/Firefox и допилить реализацию bcrypt.dll. Или в крайнем случае, вместо DirectX 11/12 делать всё через OpenGL 4.5, как на линухах (Linux).

--no-sandbox вместо использования 109.0.5414.75 - так себе решение.

109 с кучей непофикшенных CVE и отсутствующим фукнционалом, добавленным начиная с 110 версии.

официальная ссылка и всё такое

на лабе, как обычно. Есть конечно риск, что гит забанят после таких умошокирующих статей.

Статье чертовски не хватает технических деталей.

Ваш намёк понял! Но не прям сейчас. Однако есть оправданные опасения, что после прочтения этой статьи в самой Google, chrome.dll реально DENUVO/SecuROM защитят (и это не смешно будет) :)

Ох, со скольким тут можно поспорить… Выделю только самое основное.


Если бы Google тащила код с 95 винды ещё, тогда понятно — это реально legacy

Чем 3 года не поддерживаемая производителем ОС принципиально отличается от такой же, но не поддерживаемой 23 года?


Из безопасности только sanbox через митигации. Остальное всё так-же функционирует БЕЗ изменений.

Нет! вы в статье написали "параметр --no-sandbox". Вообще, вы итоговые параметры так и не привели, но я так понял, что этот параметр вы используете (как вы иначе митигации-то отключили?). Он вырубает всю песочницу. Множа на ноль практически всю безопасность в хроме. Если для какого-то эксплоита нужен этот параметр, например, то гугл не будет за такой эксплоит платить ни копейки, насколько я понимаю.


Существуют базовые вещи, такие как COM, DirectX, kernel32/ntdll, CreateFileA/CreateFileW, реестр Windows, NTFS...

А еще существуют MediaFoundation, Directx 11.2+, Directx 12 и черт знает что еще.


Всё работает точно так-же, как и у Chrome 114, который будет запущен в 10ке (Microsoft Windows 10).

Нет. Вы же сами написали "Работает нестабильно или до первого креша отдельного процесса gpu рендера." Потом, может у вас камера в браузере не работает. Или микрофон. Или webgpu вы хоть и похакали, но вон на тех амд-шных процессорах оно будет рисовать зеленые квадраты вместо чайников.


109 с кучей непофикшенных CVE и отсутствующим фукнционалом, добавленным начиная с 110 версии.

Даже 114 без сандбокса нисколько не безопаснее 109. Потому что целый ворох относительно безопасных эксплоитов становятся очень опасными.


Однако есть оправданные опасения, что после прочтения этой статьи

Ой, не переживайте. Инженеры гугла разве что брови нахмурят со словами: "вот человеку делать нечего. Есть же исходники..."

поспорить

Цель публикации статьи не для "поспорить".

Чем 3 года не поддерживаемая производителем ОС принципиально отличается от такой же, но не поддерживаемой 23 года?

Странный и риторический вопрос.

--no-sandbox

DEP Policy остаётся не тронутым.

В superium так-же в первой версии он был отключен. В следующей было поправлено. В случае данного патча аналогично будет работать - НЕТ никаких проблем пофиксить это в следующих выпусках.

Множа на ноль практически всю безопасность в хроме.

В 99,99% это делают сами пользователи скачивая исполняемый файл с просторов интернета и запуская его у себя на компьютере.

MediaFoundation, Directx 11.2+, Directx 12

Что-то я не видел, чтобы Google активно развивала вышеперечисленное в выпусках своего продукта.

Directx 11.2+, Directx 12

До сих пор в коде DirectX 9 используется, который в июле 2010 года крайним разом обновлялся.
DirectX 11.0 по дефолту.
По Вашему пользователи должны каждый раз покупать новые видеокарты для следующего выпуска браузера?!?

Потом, может у вас камера в браузере не работает. Или микрофон

А может и работает.

"Работает нестабильно или до первого креша отдельного процесса gpu рендера."

Не знаю сколько раз одно и тоже писать - для DirectX 11 экспериментальная поддержка, о чём они сами пишут и заодно дописывают код. Даже для Windows 10 в крайней на данный момент версии 115.0.5790.170 демки не все открываются.

вон на тех амд-шных процессорах оно будет рисовать зеленые квадраты вместо чайников.

Драйвера AMD/ATi не патчил сейчас.

Даже 114 без сандбокса нисколько не безопаснее 109

sandbox не является панацей. Тем более во времена Windows XP, 2003 Server, Vista никаких sanbox не было (в современной реализации) и как-то жили же, без эпидемий причём.

Инженеры гугла разве что брови нахмурят со словами:

Вы инженер гугла? :)
Что они будут делать конкретно, в моём случае виднее в отладчике будет.

Что-то я не видел, чтобы Google активно развивала вышеперечисленное в выпусках своего продукта.

Это системные АПИ. С чего вы взяли, что на этой странице будут перечислены все используемые хромом АПИ?


До сих пор в коде DirectX 9 используется, который в июле 2010 года крайним разом обновлялся.

Угадаете, почему? Потому что гугл заботится о пользователях и не бросает старые системы, как только может, а еще несколько лет тянет. Со временем DX9 выпилят (Ух, скорее бы!).


По Вашему пользователи должны каждый раз покупать новые видеокарты для следующего выпуска браузера?!?

Нет. Хотя бы обновится до ОС, официально поддерживаемой разработчиком. Хотя бы в позапрошлом году.


Не знаю сколько раз одно и тоже писать — для DirectX 11 экспериментальная поддержка,

Это лишь про поддержку для WebGPU. Сам хром когда все рендерит уже давно использует DX11 везде, где может. Местами даже DX12


sandbox не является панацей.

Нет, но это важная часть защиты. Любой эксплоит должен будет еще помучатся, чтобы выбраться из непривелегированного процесса. Плюс там нет большинства библиотек уже в памяти, поэтому целый класс уязвимостей не проэксплуатировать.


Вы инженер гугла?

Внезапно, да. Описал свою реакцию.

С чего вы взяли, что на этой странице будут перечислены все используемые хромом АПИ?

Как-бы улучшения перечисленных API Directx 11.2+, Directx 12 это достаточно весомая новость для информирования целевой аудитории. Так почитаешь roadmap - из значимого только WebGPU бросается в глаза. А потом ничего удивительно, что новость о следующей версии Chrome (115) здесь же безо всяких эмоций со стороны пользователей.

Потому что гугл заботится о пользователях и не бросает старые системы, как только может, а еще несколько лет тянет.

Эт типа rolf какой-то сейчас был??

Так заботится, что Chrome 109 объявил крайней версией для Windows 7. Пришлось "спиратить" насчастный Chrome 114 и эту статью писать. Ну Вы собственно уже в курсе :)

При этом цена вопроса поддержки: всего навсего несколько блоков условий if()(в худшем случае - чуть больше сотни килобайт ассемблерного кода). Если Windows 7 то, например, вместо WInAPI PrefetchVirtualMemory() вызываем WInAPI VirtualAlloc(), или пропускаем вызов митигаций. Вот и всё!
"Эффективным менеджерам Google" жалко сотню килобайт в chrome.dll, которая 220 Мегабайт "весит"???

Со временем DX9 выпилят (Ух, скорее бы!).

Разработчики игр в прошлом (Half-Life 1) держали несколько рендеров сразу (Software, OpenGL, DirectX) в одной упаковке и ещё OpenAL (Creative X-Fi) вдобавок для звука и не ныли (в хорошем-дружелюбном смысле произношу).
У Вас это целая проблема мирового уровня с поддержкой DirectX 9. Тем более, ну сколько там она занимает по бинарному коду: 10-20 Мегабайт от более чем 220 Мегабайтной chrome.dll. Выведите DirectX 9 render в отдельную PE dll и грузите при необходимости (если d3d11, d3d12 недоступен по какой-то причине).

Хотя бы обновится до ОС, официально поддерживаемой разработчиком

Мне даже как-то и на Windows Server 2003 SP2 в 2023 году недурно! Всякого (извините за выражение) "говнища", "хламища", "брокеров-шмокеров" и "телеметрии" там нет. Работает гораздо быстрее, чем современные индусские (ничего не имею против индусов) поделки с перековерканьем меню "Пуск" и "скругленными углами". Открываешь taskman и тихо офигеваешь от количества процессов, количества потоков и открытых дескрипторов - а потом Вы же сами изобретаете костыли типа "экономии памяти" или "game mode", который выгружает весь этот чудовищный и никому не нужный "говнокод". И не надо мне тут "фазана заряжать" про безопасность и прочее: при наличии виртуалки, отладчика, предыдущих версий ПО, VisualStudio и знаний как это всё работает - никаких критических проблем не возникает. Закрытие известных портов, которые используются для внешних атак, давным давно осуществляется с помощью известной утилиты WWDC (или аналогичной правкой в реестре).

Просто выражаю своё техническое мнение, что последние версии популярного ПО - это настоящая халтура по большей части (с инкрементом номеров и не более). Потому что: "Эффективные менеджеры" не хотят платить заслуженные деньги профессионалам - профессионалы уходят - получается "текучка" - приходят ничем немотивированные "новые кадры", которым платят "копейки" (или платят ниже среднего, но повышение оклада это болезненная тема) - "эффективные менеджеры" требуют от "новых кадров", как от профессионалов - "кадры" работают максимум полгода и сваливают - качество кода низкое, инноваций нет - работают только одни "пиарщики". Уверен, что описанная порочная цепочка примерно так и работает в настоящее время для крупных корпораций типа Microsoft, Blizzard и тд. А потом все пользователи искренне удивляются, почему "Винда жрёт много ресурсов в простое" или "Warcraft III Reforged такое гэ..."

Это лишь про поддержку для WebGPU.

Да, естественно.

это важная часть защиты.

Да, не отрицаю что sandbox нужен (хотя, возможно без него несколько быстрее сам браузер будет работать, не проверял с секундомером) и является важной частью. Но в качестве первого выпуска Chrome 114 на Windows 7 никакой эпидемии точно не случиться из-за отсутствия митигаций.

Внезапно, да. Описал свою реакцию.

Было несложно догадаться.
В таком случае, подумайте,пожалуйста, над выпуском актуальной версии своего браузера Chrome для Windows 7 - в нескольких местах вставить (читай вернуть обратно) условия if(version == Windows 7), простая задача для инженера Google. Отреверсить Ваш браузер Chrome и пропатчить в нужных местах без потери функционала задача была несколько сложнее.

Как-бы улучшения перечисленных API Directx 11.2+,

Там описываются фичи браузера, а не фичи ОС, которые браузер использует. Что там браузер использует сам ни пользователей ни веб-разработчиков не должно волновать. Их должны волновать только минимальные системные требования.


Эт типа rolf какой-то сейчас был??

Нет. Гугл 3 года тянул не поддерживаемую MS операционку.


При этом цена вопроса поддержки: всего навсего несколько блоков условий if()(в худшем случае — чуть больше сотни килобайт ассемблерного кода)

Если бы это была цена поддержки, то никто бы win7 не отрезал. Там мегабайты ассемблерного кода и тысячи if по всему коду. Потому что разные АПИ часто несовместимы и растекаются по всему коду.


Вот лично мой пример: В MediaFoundation можно попросить драйвер камеры загрузить видео фрейм в тексуру DX и можно текстуру передавать между процессами (в прошлых версиях апи нельзя текстуру передать между процессами никак). Поэтому есть очень эффективный, новый способ для захвата видео — Video Capture Service получает DXGI handle для текстуры и его передает всем ренедерам и GPU процессу для отрисовки. Это новый (пятый!) тип представления видео в хроме. И все ~50 классов, которые участвуют в media pipeline теперь получили еще один if(). Количество случаев, которые надо обрабатывать возрасло почти на 25% (а их и так много).


И эта проблема не решается наймом еще программистов. Каждый из 50 классов разрастается до монстра, в котором чуть что тронешь — с другой стороны что-то отвалится. Или классов становится не 50, а 100 и уже никто не может разобраться, как эта махина работает вместе.


Разработчики игр в прошлом (Half-Life 1) держали несколько рендеров сразу

так и хром их несколько штук тянет. Но когда их становится 5 штук, и один нужен только для систем, которые даже разработчики бросили N лет назад, то его пора бы и выкинуть.


Но в качестве первого выпуска Chrome 114 на Windows 7 никакой эпидемии точно не случиться из-за отсутствия митигаций.

Не понял? вы предлагаете хрому самому отключать сандбокс, подвергаю риску все сотни миллионов пользователей, потому что доли процента пользователей не хотят обновлять операционку?


В таком случае, подумайте, пожалуйста, над выпуском актуальной версии своего браузера Chrome для Windows 7 — в нескольких местах вставить (читай вернуть обратно)

Я выше уже описал. Так думает только тот, кто никогда не разрабатывал действительно большой продукт и не тянул легаси.


Ваш браузер Chrome и пропатчить в нужных местах без потери функционала задача была несколько сложнее.

Вы врете. Вы потеряли кучу функционала, сделали нестабильного, постоянно падающего инвалида. Более лучшую работу проделали разработчики supremium. Там целая команда колдует над исходниками "возвращая if()". И то у них постоянно что-то отваливается.

Там описываются фичи браузера, а не фичи ОС, которые браузер использует

Некоторые фичи браузера завязаны на фитчах ОСи. При этом не упомянуто в принципе, что тот-же WebGPU может в поддержку DirectX 11 экспериментально и когда именно будет полноценная поддержка вообще не понятно из roadmap.
Ньюсмейкеры интересуются roadmap, чтобы более развернуто описать о нововведениях в следующей версии браузера.

Гугл 3 года тянул не поддерживаемую MS операционку.

Mozilla в рамках Extended Support Release и Long-term Support будет выпускать обновления безопасности до конца 2024 года. Google так не может? Денег не хватает?

в котором чуть что тронешь — с другой стороны что-то отвалится. Или
классов становится не 50, а 100 и уже никто не может разобраться, как
эта махина работает вместе.

Уже описал всю ситуацию выше с монстроузацией кода на примере taskman в Windows. Обучите ChatGPT, чтобы он разобрался за Вас.

Это типа Вы сейчас оправдания пытайтесь найти, чтобы не выпускать обновление для 7ки, которой ещё большое количество народа пользуется в 2023 году?

Но когда их становится 5 штук

Пользователей Windows 7 далеко не 5 штук в 2023 году. В этом изначально суть статьи была заложена.

Так думает только тот, кто никогда не разрабатывал действительно большой продукт

Но кто ломал большой продукт и сумел разобраться структуре кода через отладчик.

вы предлагаете хрому самому отключать сандбокс, подвергаю риску все сотни миллионов пользователей,

Предлагаю Вам выпустить обновление (на полном серьезе) для Windows 7, чтобы не мучать больше себя вопросом про песочницу. Текущая крякнутая версия 114 потихоньку качается с github и с rutracker. Далее эта новость будет распространяться на большую аудиторию с ОС Windows 7 и дальше и дальше..
Если Google реально важна безопасность миллионов пользователей (повторяю лишь Ваше утверждение выше), то почему бы один раз не пойти против каких-то устоявшихся правил и не выпустить текущую 115/116 или следующую версию 117 для Windows 7, чтобы "перебить" ломанную 114?!?

Вы врете. Вы потеряли кучу функционала, сделали нестабильного, постоянно падающего инвалида.

Врать это удел больших корпораций. - ломанная Chrome 114 вполне себе работает и открывает сайты на Windows 7. Можно подумать, что в Windows 10/11 текущая версия Chrome не падает, иначе зачем Вам нужен был бы сбор телеметрии?!?

Более лучшую работу проделали разработчики supremium. Там целая команда колдует над исходниками "возвращая if()".

Наверное потому что в отличие от Google им есть какое-то дело до безопасности обычных пользователей, даже когда прошло более 3 лет?!

Некоторые фичи браузера завязаны на фитчах ОСи. При этом не упомянуто в принципе

Еще раз, на этой странице используемые фичи ОС не перечислены. Вообще. Это никому, кроме разработчиков, не интересно. Приводить эту ссылку в качестве аргумента, что Directx12 в хроме не используется (что вы сделали) — некорректно. Я вам привел ссылку код на рендерер на dx12 в репозитории хрома. На этом эту ветку спора считаю закрытой.


Но когда их становится 5 штук

5 рендереров, не пользователей! Как можно было прочитать там пользователей?


Но кто ломал большой продукт и сумел разобраться структуре кода через отладчик.

Ой да ладно. Разобрались вы. Найти в коде вызовы нескольких вин-апи функций да поиграться с ключами запуска для отключения фич наугад — это не "разобрались в структуре кода". Это делается механически и не требует никакого понимания "структуры кода". При этом вы упустили все динамически загружаемые библиотеки.


Если Google реально важна безопасность миллионов пользователей (повторяю лишь Ваше утверждение выше), то почему бы один раз не пойти против каких-то устоявшихся правил и не выпустить текущую 115/116 или следующую версию 117 для Windows 7, чтобы "перебить" ломанную 114?!?

Потому что это идет в разрез целями принятого решения (контроль разрастания кодовой базы). Если не отсечь релиз и в будущем когда-то выпускать еще и версию для старых ОС — из кода НИЧЕГО УДАЛЯТЬ НЕЛЬЗЯ. А именно в этом цель. Не в том, чтобы пересадить пользователей на 10-ку. А в том, чтобы избавиться от легаси и упрастить разработку.

Directx12 в хроме не используется

На этом эту ветку спора считаю закрытой.

Нет. Говорил за DirectX 11 для WebGPU. DirectX 12 не интересен, т.к. используется в 10ке. О чём и речь изначально.

на этой странице используемые фичи ОС не перечислены

А где перечислены? Именно такой-же roadmap для WebGPU того же. Этот вопрос уже несколько раз был задан.

5 рендереров

Каждый рендер завязан на определенную аудиторию пользователей. Пусть даже DirectX 9, это так-же какой-то весомый процент, у которого некорректно работают остальные 4.

Найти в коде вызовы нескольких вин-апи функций да поиграться с ключами запуска для отключения фич наугад

Как минимум пришлось с mojom повозиться. Просмотреть, какой функционал несут функции, подвязанные на WinAPI. Разобраться DXDVA и реднерингом под DirectX. Включить логгирование ошибок - прочекать возможные проблемы в логах. Это так навскидку. С другой стороны, с Ваших же слов о таком "простом" подходе - ломанный браузер успешно запустился на Windows 7, открывает сайты, что уже сам по себе результат. Для Вас целая проблема разобраться со своим кодом в корпорации (с Ваших же слов).

Потому что это идет в разрез целями принятого решения (контроль разрастания кодовой базы)

Пять минут назад Вы сами написали:
"Потому что гугл заботится о пользователях и не бросает старые системы, как только может, а еще несколько лет тянет".
Быстро в Вашей компании приоритеты меняются.

Само собой кодовая база будет расти (хотя с таким объемом 220 Мегабайт вряд-ли супер кардинально уменьшится уже - DXGI, DXDVA, appcontainer это всё и так 7ки тащится и вряд-ли в ближайшее время куда-то денется). С другой стороны, все эти проблемы контроля кода решаются грамотным подходом в его организации (хранении, разметке #ifdef, назначении отдельных сотрудников и тд). В конце концов разделите чисто физически выпуски для Windows 7 и остальных ОС, как и рендер DirectX 9 в отдельную dll.

Не в том, чтобы пересадить пользователей на 10-ку.

Как показал взлом 114 - крайней версией для Windows 7 спокойно могла быть и она.

При этом что-то мне подсказывает: WebGPU специально презентовали в version 113 из расчёта чтобы работало only Windows 10, хотя на деле есть экспериментальная поддержка DirectX 11 (Windows 7). Это факт!

А в том, чтобы избавиться от легаси

Ещё раз сделаю акцент, что не видел там никаких "legacy". Большая часть технологий, которые использует текущая версия хрома - была впервые представлена в Windows 7 (SP1) и актуальна сейчас, т.к. используется в более поздних выпусках Windows.

При этом даже после 109 версии (Only Windows 10/11) размер chrome.dll кардинально никак не уменьшился.

упрастить разработку.

И так инкременты major версий, как "горячие" пирожки штампуются (и прочтите, пожалуйста, сразу первый комментарий от нормального здравомыслящего человека). Исходя из этого логически можно предположить, что "разработка" уже "упрощена" до невозможности, а количество реально полезных нововведений стремиться к нулю.

что по итогу

Не вижу реальных причин прекращения поддержки Windows 7 после 109 версии браузера Chrome. Из нашего с Вами разговора абсолютно очевидно, что таких весомых причин нет. Есть какие-то надуманные "legacy" и нежелание разбираться в собственном коде, в отличие от конкурента в лице Mozilla Corp (предоставил расширенную поддержку ещё на год).
Необходимость в актуальной версии браузера Chrome для 7 существует до сих пор - начиная с проекта supremium (которые за Вас делают же Вашу работу) и заканчивая "пиратской" версией №114, которую постепенно и активно качают, как более свежую альтернативу официальной 109, которая без поддержки WebGPU.

Нет. Говорил за DirectX 11 для WebGPU.

Вот что вы писали, когда привели эту ссылку:


"MediaFoundation, Directx 11.2+, Directx 12"
Что-то я не видел, чтобы Google активно развивала вышеперечисленное в выпусках своего продукта.

Скопированный вами кусок моего комментария был ответом на ваш текст:


Существуют базовые вещи, такие как COM, DirectX, kernel32/ntdll, CreateFileA/CreateFileW, реестр Windows, NTFS...

Нигде не было ничего про webgpu.


Мне надоело с вами спорить. Если вы не способны даже в пределах 5 коменнатриев контекст удержать.

Нигде не было ничего про webgpu.

с самого начала важна была информацию по развитию WebGPU в следующих выпусках. И на DirectX 11 в частности - для Windows 7.

Мне надоело с вами спорить.

ЗАМЕТЬТЕ, что не я начал этот спор.
Моя задача проста - наглядно продемонстрировать работоспособную версию Вашего браузера Google Chrome 114 в Windows 7 (несколько if(), hardware accelerated и более-менее рабочим WebGPU).

Если вы не способны даже в пределах 5 коменнатриев контекст удержать.

Возможно, у корпорации Google попросту нет вразумительных ответов на поставленные тезисы в конце статьи?! Лишнее подтверждение корыстных целей и наплевательского отношения к миллионам пользователей (Windows 7). Всё как с TRON: Evolution, но эти по башке уже получили давно.

"Warcraft III Reforged такое гэ..."

На публику не совсем публичные откровения выносить не хочется, но:

  • даже изначальная игра была писана через одно место

  • помимо вникания в кодовую базу приходилось фиксить самолет на ходу

  • сеть построена на принципе lockstep, шаг в сторону - рассинхрон

  • в команде были индивиды, которые хотели и новый функционал делать череж тяп-ляп (уверен, местами своего добились)

  • команде не хватало времени даже для базового функционала

  • за малым не зарезали ночных эльфов на релизе (о кранч)

  • после ухода одного из ветеранов, который тянул Reforged через менеджмент, новый менеджмент зарезал бюджет

Остальные откровения знающим английский и имеющим много времени на руках

Reforged

Ключевая ошибка абсолютно всех Reforged – пишется оно для современных систем Windows 10, что не нужно ВООБЩЕ от слова СОВСЕМ. Какая-то шиза, считать, кто играл раньше, повально компы за 15-20 лет поменяли. Особенно те, кто играет в эти игрушки до сих пор.

Как-бы смысл «Reforged»/«Remastered» - подтянуть оригинальную графику можно до самого возможного уровня DirectX 9 на ОС для которой игрушка изначально писалась (в 99% случаев XP/2003) и максимум добавить DirectX 10/11 для реиграбельности на более поздних ОС and...

  • Пофиксить самые вырвиглазные баги.

  • Чуть добавить что-то новое в логику и механики.

  • Добавить SSE2 при компиляции и новые оптимизации.

А по факту это всё пересирается на корню поделками под современный лад, да ещё и на коленке халтурится. В конечно итоге оно не нужно по факту никому. Так для галочки сделали и вроде норм.

Тем более, всякие вещи типа Creative EAX уже по дефолту сразу отсутствуют (Diablo, Warcraft III) в таком сраном ремастере, что неправильно. В Diablo II мало кто знает, что была 3D графика – довольно примитивно натягивалось одной текстурой на большой прямоугольник и показывалось под определенным углом. Получше, чем дефолтный 2D. Однако, чтобы активировать – необходимо было патчить D2VidTst.exe

пересирается на корню поделками под современный лад

Я очень удивился, узнав что ремастеры GTA готовятся на Unreal Engine. Потому можно поделить аудиторию на две категории:

  1. Аутентичность, те которые играли и помнят старое и им это важно (по сути, за счет сарафанного радио кого строится реклама ремастера?)

  2. "Приобщиться": применительно к играм, нечто столь популярное, что надо обязательно самому попробывать для галочки.

Только именно что для галочки. Обыгрывая ваш каммент: " я поиграл в д2/вар3 "... да только ту калеченную переработанную версию. И не поиграл, а после первой миссии забросил, ведь в другой mp/f2p игре 2023 г. надо было добивать недельные квесты и баттл-пассы.

Но касательно "телеметрии" оказалось, что большинство игроков именно в кампанию Reforged и играло. А старые игроки и сообщество, которое не дало игре умереть на протяжении 10 лет до ре-релиза получилось статистически громким меньшинством.

За ссылку спасибо, веб все больше превращается в deep, а поисковики становятся бесполезными.

старые игроки и сообщество, которое не дало игре умереть на протяжении
10 лет до ре-релиза получилось статистически громким меньшинством.

Всё правильно - для олд-фагов это пересратый "оригинал" с завышенными в сотню раз системными требованиями.
Наиболее шикарно например с Heroes III HD получилось - в прямом смысле Reforged.

ремастеры GTA готовятся на Unreal Engine

Хотели за 5 минут на коленке склепать и наняли соответствующего уровня программистов. Не к тому что сам UE плох, а к тому что для разбора оригинального кода игры нужны профессионалы у которых есть желание этим заниматься.

пишется оно для современных систем

Для современных систем по-умолчанию пишется всё.

играл раньше

Тем, у кого был оригинал, ремастер выдали бесплатно. Т.е. подстраиваться под таких людей бессмысленно, денег они не принесут.

на ОС для которой игрушка изначально писалась

С учётом предыдущего, эта цель становится бессмысленной, т.к. у новых потенциальных игроков, в подавляющем большинстве, будут новые системы и ОС.

А ещё это увеличит стоимость разработки (банально тестировать нужно). Т.е. игра либо хуже, либо дороже, либо без поддержки старых систем. Выбор предсказуем.

Creative EAX уже по дефолту сразу отсутствуют

EAX в современном мире отсутствует везде, начиная с винды. Да, неприятно. Но ещё раз вспоминаем вышенаписанное, и понимаем, что новые игроки банально этого не заметят. За звук стратегию в реальном времени ругать вряд ли будут, т.ч. можно и не делать. Мне в Starcraft II было ок.

Ничего из этого кривоту ремастера W3, безусловно, не оправдывает, но ваши ожидания от ремастеров всё равно мне не понятны.

Для меня ремастер - это переделка оригинальной игры до технического состояния актуальных игр жанра. Это в идеальном случае.

Обычно просто делают hd текстуры и настройки из оригинальной пк версии. Цель подобной халтурки - продать игру на новых консолях.

Для современных систем по-умолчанию пишется всё.

Кого знаю и себя в том числе - оригиналы всегда запускаю именно на XP/2003. 10ку только на работе вижу и сижу с закрытыми глазами фактически за ней.

Тем, у кого был оригинал, ремастер выдали бесплатно.

Там-же вроде как-то подтвердить надо было?! Так-то люди в 90% случаев с торрента тянут и не морочат себе голову.

т.к. у новых потенциальных игроков, в подавляющем большинстве, будут новые системы и ОС.

Так игрушка ведь всё равно запустится, что на XP, что на 10ке. Чисто физически из-за строения самой Windows - DirectX 9 везде есть и дефолтные WinAPI никуда не делись. Это очевидно для любого реверсера. Собственно так раньше на переходах между XP <> 7 и работали всякие Crysis и S.T.A.L.K.E.R.

(банально тестировать нужно)

Ну вон таже Micro$oft распустила тестеров и теперь свой говнокод на пользователях сразу тестит, и пофигу же всем что оно постоянно через одно место работает и BSOD показывает. Вот уж действительно "мыши плакали, кололись...", хотя такого треша не было во времена XP.

новые игроки банально этого не заметят

Новые может да, а когда играешь постоянно с EAX в тот-же Warcraft III / Battlefield 2, сразу понимаешь насколько убога реализация звука в современных играх, даже самых последних ААА.
Новые нынче не знают, что такое слышать шаги по воде вражеских войск в тумане войны (Warcraft III).

Цель подобной халтурки - продать игру на новых консолях.

Это печально.

Флаги командной строки `--enable-unsafe-webgpu --use-webgpu-adapter=d3d11` небезопасны, поскольку позволяют веб-сайтам получать доступ к аппаратным ресурсам вашего компьютера без вашего разрешения. Это может привести к краху вашего браузера, утечке данных или даже выполнению вредоносного кода на вашем компьютере.

Флаг `--enable-unsafe-webgpu` позволяет веб-сайтам использовать WebGPU, API, который позволяет веб-сайтам взаимодействовать с аппаратным ускорением графики. Флаг `--use-webgpu-adapter=d3d11` заставляет WebGPU использовать Direct3D 11 в качестве адаптера графики. Direct3D 11 - это старая версия API, которая известна своими уязвимостями безопасности.

Если вы используете эти флаги командной строки, вы подвергаете свой компьютер риску. Вам следует использовать их только в том случае, если вы знаете, что делаете, и осознаете связанные с ними риски.

Вот некоторые из потенциальных рисков использования этих флагов командной строки:

* Ваш браузер может упасть.

* Ваши данные могут быть украдены.

* Вредоносный код может быть выполнен на вашем компьютере.

Если вы не уверены, следует ли вам использовать эти флаги командной строки, лучше всего не использовать их.

Опуская большое количество технологических реализаций, разработанную методику отладки ошибок в браузере и остальных технических деталей

Не знаю как остальным, а мне лично интересны именно что конкретно изменено,
как это отлаживали и т.д. И не только касательно DirectX, но и с недостающими функциями WinAPI.
Статье чертовски не хватает технических деталей.

Вот! Да!

и про нопы и про отлетание в студии - где мясо?

Вопрос «зачем?» возникает но немного по другому поводу. Зачем заниматься реверс инженирингом именно google chrome? Когда есть chromium исходные коды которого открыты, достаточно добавить к ним патчи восстанавливающие работоспособность и скомпилировать под целевую платформу.

Когда есть chromium исходные коды которого открыты

Ну так хромиум сам по себе достаточно куцый по функционалу. Видео h.264 не умеет, pdf не умеет и т.д. С другой стороны, даже несмотря на опенсурсность хромиума, все равно вряд ли переписывать хромиум так, чтобы он не дёргал новые функции, это было бы проще, чем нашлёпать заглушки для отсутствующих винапи-функций. Тем более что второй способ будет работать и с последующими версиями.

С удивлением для себя узнал, что chromium отличается от google chrome не только более глубокой интеграцией с сервисами гугла, но и добавлением некоторых лицензируемых технологий. Что в принципе логично.
С другой стороны даже просто собрать такой большой проект как хромиум это целый челлендж. Но вот работоспособность с последующими версиями видится всё таки на стороне изменения кода, так как позволяет более корректно обрабатывать отсутствие всё новых и новых винапи-функций.

Хромиум умеет и в h.264 и в pdf, если собирать его с нужными параметрами:


$ gn gen out/Default '--args=is_debug=false is_component_build=false dcheck_always_on=false symbol_level=0 enable_nacl=false enable_stripping=true is_official_build=true proprietary_codecs=true ffmpeg_branding="Chrome"'
$ autoninja -C out/Default chrome

И туда же можно добавить google_api_key для работы с сервисами гугла.

Вдруг кто-то пользуется синхронизацией с гуглом?

Задача проста и одновременно сложна: заставить запуститься сие поделие под управлением Microsoft Windows 7 SP1… желательно за один вечер.

А, не проще ли это запустить под Linux?

Ну вы ещё предложите wine.exe собрать под Cygwin и в нём запускать.

Можно поднять виртуальную машину с Линукс и в нёй chrome :) И sandbox будет многослойный ;)

chrome.dll — судя по внушительному размеру в 210 Мегабайт, он может быть защищен DENUVO

лучшая шутка месяца

продиктовано в наибольшей степени корыстными побуждениями (а не реальной технической необходимостью)

Какими же, на ваш взгляд?


Моя версия — не тащить легаси, которое замедляет разработку и тормозит выполнение программы. Не такие уж и "корыстные" побуждения. Все забота о пользователях (99.95% их).

А нельзя ли сделать чтобы заботой о пользователях занимались у себя там собственники сайтов, у них есть высокооплачиваемые сотрудники и баснословные бюджеты, зачем перекладывать груз забот на пользователей которые об этом и не просили.

Полиция не раздаёт же людям танки чтобы они обеспечивали свою безопасность и никто не заставляют покупать новую квартиру чтобы туда поместилась пожарная машина и скорая, оправдывая это заботой.

И если гугл сделал 115 версий, и все она оказались небезопасными, может гуглу лучше заняться чем-то другим если не получается никак, 116-я попытка будет тоже небезопасной, зачем тогда что-то обновлять если это одна сплошная неудача.

Как вариант - чтобы не тратить своё время на исправление багов, вызванных багами OS.

Например, у QT в Vista падает совершенно банальный и 100% стандартный диалог открытия файлов - потому что есть какие-то проблемы с загрузкой значков для сетевых дисков в русской кодировке. При этом на семёрке и выше баг исправлен.

Если цена обхода таких чужих багов оказывается выше прибыли от дополнительных клиентов то самостоятельная поддержка старой OS становится экономически нецелесообразной.

Это как раз то "замедляет разработку" о котором я говорил.

Эти доп проблемы выливается в банальные расходы на зарплаты разработчиков и тестеров. Меньше работы- меньше нужно сотрудников- меньше расходы на зарплаты

Вы из тех, кто считает, что 9 девушек смогут родить ребенка за один месяц?
Просто найм еще тысячи сотрудников проблемы не решит. Потому что весь этот лишний код — лишняя сложность. И как это не абстрагируй, не декомпозируй, оно все-равно расползается по всему проекту.

Таки вопрос «А зачем?» — чисто из интереса, так как для простых смертных проще поставить другой chomium-base браузер и пользоватся

В других хромых браузерах точно такая же фигня.
Опера и вивальди обновили хромиум и тоже забили на совместимость с 7-кой.
Опера после версии 95.0.4632 (но мне больше нравится 94.0.4597, так как там работу спиддиала ещё не испортили), Iron — после 109.0.5550, вивальди — после 5.6.2867.62 (у двух последних хоть на оф.сайте есть ссылка с отдельной версией для 7-ки и 8-ки, которые больше не обновляются).
Про прочие не скажу, т.к. не пользуюсь.

вроде ЯндексБраузер ещё поддерживает 7ку

хз, я его очень давно пробовал, емнип
тогда о 10-ке и слухов ещё не было

Вообще, половину ваших находок можно найти, просто поковырявшись в исходном коде. Не надо даже копаться в екзешнике.
Например вот это:


немного намекало на то, что движок браузера основан на рендеринге через DirectX

Потом,


Для визуальной оценки масштабов недостающих WinAPI для Microsoft Windows 7 проще всего воспользоваться бесплатной утилитой

Вы тут упустили целую кучу библиотек, подгружаемых динамически.


вот спустя несколько месяцев возникают «пираты», которые демонстрируют абсолютно рабочий вариант браузера 114.0.5735.134

Нет. Вы отказались от безопасности (сандбокс), аппаратного ускорения почти всего. Не заработают всякие web api вроде GetUserMedia, декодирование видео будет не аппаратно ускорено скорее всего. Даже если часть перечисленного пока работает в 114, через десяток релизов, когда все нужное только для поддержки win 10 выпилят, оно работать перестанет.


Гораздо более лучшего результата вы бы добились просто поставив верию 109 и сидя на ней.


кто-то из менеджеров некой корпорации G решил в прямом смысле «забить» на них, спустив указание выкинуть часть кода для исключения совместимости

Нет, это делается не для того, чтобы испортить жизнь конкретно вот этим миллионам пользователей, а чтобы улучшить жизнь сотням миллионов пользователей на более новых системах. Ну не дается поддержка вот этого старого кода бесплатно. В том числе из-за постоянно растущего легаси современный софт и работает все медленнее и медленее (ведь длина истории увеличивается).

Отказались от безопасности какой? И для кого? Если у пользователя установлена девственно чистая винда и онли хром. Какой смысл?

UFO just landed and posted this here

Надеюсь, Гугл хотя бы критические патчи безопасности будет выпускать на старушку, когда такие объявятся. Нет возможности перейти на десятку.

Уверен, что нет. Новые версии будут базироваться на какой-то своей ветке и потенциальное исправленное обнаруженной уязвимости на 120+ версии вряд ли можно применить к 107 версии.

Скорее всего нет. Очень старые версии не обновляются никак.

Браузер это вам не операционная система)

С начала года Микрософт не делает никаких обновлений к Windows 7 (по заявлению Микрософта). А общая поддержка W7 закончилась ещё 8 лет назад.

Это да, но сколько её поддерживал MS, и сколько поддерживает Гугл определённую версию браузера?

Гугл определённую версию браузера?

А сколько МС поддерживал определенную версию винды? Был ли хоть один патч на win7 без всяких SP, после их выхода? Была ли возможность поставить какой-то патч безопасности не ставя всех остальных обновлений? Нет, единственный способ был поставить всякие обновления автоматически, которые обновляли версию на что-то более свежее. Можно было как-то хакерствовать, но это не факт что работало.


Анология оботала бы, если бы гугл выпустил какой-то другой браузер, но продолжил выпускать новые версии хрома. Но у гугла только один браузер, его гугл поддерживает и обновляет все время.

Была ли возможность поставить какой-то патч безопасности не ставя всех остальных обновлений? Нет
Вообще-то была. Я точно помню, что я так по отдельности ставил обновление часовых поясов. Скачивал с сайта майкрософта установщик и ставил. С другими обновлениями наверняка точно так же можно.
С другими обновлениями наверняка точно так же можно.

Не всегда и не везеде. Довольно часто обновление требует какое-то предыдущее, в итоге получается почти всю систему обновлять.

Очень хотелось бы иметь надёжный источник, где можно всегда скачать более-менее свежий браузер для старых систем - семёрки и XP. Для семёрки пока варианты есть, а с XP уже туго. Для Win98 вроде единственный хоть какой-то вариант - это Opera на движке Presto. А для старого железа возможность выхода в интернет важна.

У вивальди есть отдельная версия под ХР и висту: 1.0.435.46
По ссылке в выпадающем списке можно выбрать под какую ОСь качать: vivaldi.com/ru/download

Ещё у оперы с сервера на можно любую версию скачать. Даже под ХРюшку (по ссылке хромая): get.geo.opera.com/ftp/pub/opera-winxpvista
Ну и последняя на престо тоже имеется: get.geo.opera.com/ftp/pub/opera/win
Но на офсайте оперы доступен для скачивания только Б~гопротивный онлайн-установщик. =(

Старое железо может выходить в Интернет с Линукса. А вот старые Винды... - случаев, когда необходима и старая винда, и полностью работающий браузер, конечно можно напридумывать. Но всё равно какая-то редкая экзотика получается.

Не гуглится. Нахожу обычный Pale Moon без поддержки XP в новых версиях. Дайте ссылку, пожалуйста

Вот где публикуются бинарники⤵️

https://rtfreesoft.blogspot.com/search/label/serpent

Там нужно будет найти надпись "NM28XP build:" в выбранном посте, под которым будут ссылки на скачивание.

Также советую попробовать Serpent, он более современный в сравнении с New Moon. Он как раз в том самом посте самый первый.

И ещё - если нужен современный Chromium (а не 109 версию) под Win7, держите ⤵️

https://github.com/win32ss/supermium/releases

Спасибо, и то и другое пригодится

Это насколько плохи должны быть дела, чтобы не купить на барахолке самую простую железку для работы с современными обновляемыми ОС за 70$? 98, 2000, XP и даже Vista - это уже устаревший хлам, даже если он кому-то очень нравится. Не нужен он уже в 2023 году. А если очень уж хочется сохранить такой компьютер, то выставлять его в интернет - это просто глупо. Вместо решения проблемы люди почему-то занимаются самостоятельным изобретением костылей, жалобами на отсутствие поддержки их древних ОС (о которых большая часть команды разработки Гугла даже не слышала) и продвигают старый и небезопасный софт. Неужели больше вообще нечем заняться?

Не проблема купить свежий комп, но обидно, что проблема создаётся искусственно. Ну вот мощности поздних 1-ядерных процессоров в целом хватает для нетяжёлых сайтов, если не смотреть ютуб. А вот современные ОС плохо работают на одном ядре, семёрке уже желательно 2 потока, десятке - 4. Потом, XP и семёрка достаточно шустро грузятся с HDD, а десятке уже очень нужен SSD. При том, что задача решается одна и та же - полазить по инету, для старой ОС для этого хватит старого компьютера, а для свежей подавай свежий. А если старый комп работает и пользователя всё устраивает, менять его на новый неправильно, это трата денег и ресурсов планеты впустую. Так что всё упирается в браузер для старых ОС, потому что интернет сейчас - основной сценарий использования компа. Линукс? Да, но не все хотят к нему привыкать.

К тому же новые винды следят за пользователями, невовремя, принудительно и слишком часто ставят обновления. Поэтому я буду сидеть на семёрке до последнего, хотя у меня и 12 ядер и 32 Гб памяти. А ещё у меня есть небогатые знакомые и коллеги, у которых нет лишней копейки, а комп нужен. Я им собирал всякие Core2Duo из того, что было, почти за бесплатно, и для такого компа (2 слабых ядра на 775 или AM2 сокете, 3-4 Гб DDR2 RAM, HDD) - десятка слишком тяжёлая. Только семёрка. Это в Москве мажоры выкидывают 4-ядерные иви бридж, а в регионах люди и на четвёртых пнях сидят порой)

А к чему привыкать в линуксе, если задача полазить по инету? Иконка браузера та же самая, нажать на неё и ввести запрос в строку ничем не отличается.

Компоненты Линукса автоматически не обновляются что ли? И поэтому нет проблем, что обновилось и сломалось?

не обновляются. как настроишь, так и будет

Ну т.е. как и в винде, только меньше назойливых напоминаний.

Это зависит от желания пользователя. Плюс настройки по умолчанию в разных дистрибутивах линукса различны, тут нет единого линукс 7, 8, 10 или 11, дистрибутивов очень много.

Что делать с пенсионерами которые привыкли работать на ХР, и уже не в какую не воспринимают 8/10/11?

Зачастую таким людям нужно совсем не много от компьютера и интернета, например проверить данные в электронном дневнике, посмотреть рецепт, или какой-нибудь ролик на Ютубе. Но к сожалению сайты сейчас начинают ругаться на версию браузера, отказывают в доступе к ресурсу.

UFO just landed and posted this here

К тому, что если завтра корпорация G внезапно прекратит поддержку Windows 10, насильно погнав всех вениками на следующую по инкременту циферку 11 - все также повинуясь (извиняюсь за выражение) «стадному принципу» скажут «О! Великий гугол, слушаемся и повинуемся»?!? При том что различий по WinAPI между 10 и 11 в разы меньше, чем между 10 и 7 для рассматриваемого случая.

Господи, что за бредятина написана?! Пора уже узнать, зачем legacy-код отбрасывают, а не кичиться, что WIndows 7 можно сидеть еще 100 лет без ущерба для здоровья.

UFO just landed and posted this here
Не обязательно это делать через кучу костылей, всё-таки. Я в своей виртуалке с 11 сделал это достаточно радикально: просто удалил defender и переместил DLLки, которые реализуют обновления (C:\Windows\system32\wua*.dll). Если что-то ведёт себя как малварь, то и обращаться с этим надо как с малварью.
интересно, что такого напридумали на сайте Гитхаба и ВК, что не может отрендериться в Windows XP (а видимо и в 7-ке со временем будет то же самое)
Всякие там grid и CSS-переменные, например.

Самая большая проблема браузеров же в том, что они не могут остановиться. Их предметная область постоянно расширяется. Никто в принципе не может сказать, в какой момент веб-стандарты будут «доделаны» и «готовы».
И почему нельзя сделать полностью портабельный браузер со всеми dll

Можно! Это хром версии 109. Запускайте себе на здоровье! Хоть на win7, хоть на win11, хоть на линуксе. Вы сидите на старой версии системы, так почему бы вам не сидеть и на старой версии браузера?


Со временем, когда сайты будут переходить на использование новых фич браузеров, у вас что-то будет отваливаться. Например, выпустят новый кодек, поддержка которого будет только в каком-нибудь последнем MediaFoundation, которого тупо нет на Win7, и поддержка которого будет только в драйверах под новые системы. И у вас видео во вконтакте отвалится или будет тормозить. Или какой-нибудь ассистент нейросетевой на гитхабе запилят, которому будет нужен webgpu, который в статье у автора уже отвалился. Работа этих новых фич требует работы с новыми системными АПИ. Поддерживать одновременно и новые и старые версии — очень тяжело. Да и софт от этого торомозит.

UFO just landed and posted this here
что мешает использовать кодек,

Это не разработчику браузера решать. Вот, допустим, придумали новый h267, который на 20% эффективнее сжимает и поддерживается большинством современных процессоров. И по счастливой случайности не надо платить 100500$ за его использование. Хозяева условного вконтакте или ютуба могут решить использовать этот кодек для всего видео на платформе и так сэкономить кучу ресурсов на хранение и передачу видео. Это их право. Гугл может ради заботы о 1% пользователей, сидящих на несколько лет неподдерживаемой системе не реализовывать этот кодек, но это сделают конкуренты и у них будет приемущество.


Именно так практически все кодеки и появляются и захватывают рынок.


Проблема не в новых системах, а в прогрессе для конечного пользователя, которого по факту нет или почти нет

Опять же про видео: много 1080p видео вы смотрели в интеренете 10 лет назад? Т.е. все таки прогресс какой-то есть, наверное?


но что такого принципиально невозможного в отрисовке веб-страниц на Windows7, всё равно не понятно.

Вот отрисовка буковок в блокноте — это просто. А веб-страниц — вообще нет. Современные браузеры практически операционные системы уже. Там должны работать сложные мультимедиа приложения и должны поддерживаться 100500 веб стандартов. А отрисовка всего это безобразия бытсро делает их сложнее многих 2d игр.

Опять же про видео: много 1080p видео вы смотрели в интеренете 10 лет назад? Т.е. все таки прогресс какой-то есть, наверное?

Вот, кстати, хороший пример: 10 лет назад, это 2013-й год. 1080р уже смотрел много, и на ютубе уже несколько лет не было ограничений на длину ролика. И не могу сказать, что с тех пор сайты в интернетах стали качественнее/функциональнее с программной точки зрения, то же самое не могу сказать и про ОС.

Да, ошибся. 15 лет назад 1080p еще не было, 10 лет назад уже было.

Кодек .h264, Xvid, Divx, Mjpeg не потянул бы 1080p ? У меня в 2012 году компьютер не тянул такие фильмы (CPU на сокете 478), сделал апгрейд и всё начало работать. Сокет 1155, до сих пор работает и пишу с этого компа, только процессор поменял на 4х ядерный, они по 50$ на Алиэкспрессе. И HDD на SSD, и видеокарту и памяти в 4 раза больше, чем было. В целом согласен с консервативным взглядом, принципиально ничего не поменялось ни в кодеках, ни в интернете со стороны пользователя. И сижу на Windows 7 с 2012 года, она работает просто и всё ПО что нужно тоже работает в ней.

Сайты как показывали данные из базы данных, так и показывают.

Что самое интересное, самым удобным просмотрщиком форумов для меня был софт сети FIDO 2000 года, была программа что форумы древообразной структурой формировало. Можно было удобно серфить цепочку ответов. Плюс была культура цитирования, чтобы было понятно ответ на что, но и без лишнего цитирования, каждый байт экономился в прямом смысле. И ни какой анонимности, каждый под своим ФИО и по инвайту друга, атмосферу несколько иную это давало. В интернете многие форумы и сейчас хуже структурируют информацию. Телеграмм вообще откат в каменный век, особенно в чатах где несколько сообщений в минуту, полный хаос.

Потянул бы. Только расход процессора будет не 1% а 20% и пользователи будут ругаться, что хром — тормознутое говно, жрущее память и цпу. Поэтому надо реализовывать новые кодеки, например.

Новые кодеки сложнее для процессора, но жмут лучше.

Стандарт H.265/HEVC (High-Efficiency Video Coding — высокоэффективное кодирование видео) — это самый последний стандарт видеокодека, разработанный совместно Международным союзом электросвязи ITU-T и ISO/IEC. Цель этого стандарта — повысить эффективность сжатия и снизить потери данных. H.265/HEVC, по сравнению с предыдущим стандартом H.264/AVC, обладает вдвое более высокой степенью сжатия при равном субъективном качестве изображения. Технология HEVC позволяет поставщикам видео передавать высококачественные видеоматериалы с меньшей нагрузкой на сеть.

H.265/HEVC налагает исключительно высокие требования по вычислительной мощности и на клиентские устройства, и на внутренние серверы транскодирования.

https://habr.com/ru/companies/intel/articles/242781/

пользователи будут ругаться, что хром — тормознутое говно, жрущее память и цпу
А это не так, что ли?

Хромые браузеры жрут ресурсов побольше многих игр. И чем больше вкладок открыто, тем больше жрёт (даже если включен перевод неактивных вкладок в пассивный режим). Да и каждое включенное расширение можно считать ещё одной работающей вкладкой.

Кому надо? Взять кодек из ОС нельзя чтоли? А в окошке с неподдерживаемым кодеком написать текстом "поставьте кодек такой-то и все заиграет" при чем тут браузер вообще?
И дальше уже проблема пользователя, где искать h999 под семерку.

Надо поддерживать новые кодеки на новых системах, которые есть у 95%+ пользователей => Надо использовать новые АПИ => Использовать одновременно и новые и старые АПИ — сильно усложняет код, замедляет разработку, работу браузера => Отказ от АПИ на уже несколько лет не поддерживаемой майкрософт ОС — логичный шаг.


Это вы, как не разработчик всей этой радости думаете, что пользователь найдет h999, воткнет его в семерку и все само заработает. Или вот МС выпустила какой-то патч и на 10-ке тот же код браузера вдруг стал работать с новым кодеком. Но мы не в идеальном мире живем. Чтобы использовать этот h999 надо переписать почти целиком всю подсистему видео кодеков, потому что этот кодек вообще никак и никогда не заработет через устаревший интерфейс directx, а заработает только через отсносительно новый MediaFoundation (потому что MS, intel и другим тоже не охота тянуть все версии всех АПИ бесконечно долго). И даже только в новой системе каждый раз появляется куча новых флагов и методов, которые нужно в нужной последовательности применить, иначе оно не заработает. И эти флаги чисто для нового АПИ надо тянуть через все уровни абстракции.

Чтобы использовать этот h999 надо переписать почти целиком всю подсистему видео кодеков
VLC Media Player (да и не только он) смотрит на это утверждение с удивлением.

А то там практически одно и то же по нескольку раз не реализовано. Посмотрите на файлы modules/codec/mft.c и modules/codec/avcodec/directx_va.c


Вот две разные реализации под разные АПИ. Часть кодеков не заработает через avcodec, а часть фич с mft не заработает на win7.


Но им проще, у них только декодирование. Хром должен уметь еще и кодировать видео.


В видео плеере уровней абстракции поменьше чем в браузере, поэтому они эту лямку легаси еще могут тянуть. Но не факт. что смогут и всегда. Вот выпустит MS в windows 11 SP2 какое-нибудь новое апи, не совместимое со старыми и рано или поздно и VLC Player решит что для старых версий винды качайте старую версию.

UFO just landed and posted this here

Еще раз: это буковки в блокноте можно рисовать не заботясь особенно об операционке и ее библиотеках. С веб-страницами хуже.


На старой версии нельзя запустить новый кодек, нельзя использовать новую версию directx (а без нее рисование страниц с новомодными, но обязательными к поддержке свойствами css будет тормозить). И еще куча примеров, вроде webgpu, новыми фичами GetUserMedia webapi и т.д.


Поддерживать в коде одновременно новые системные АПИ для новых фич и старые АПИ, чтобы все запускалось на старой системе — очень тяжело. Фактически, надо многие подсистемы реализовывать в двух видах — под каждую версию АПИ. Часто вообще разные из-за разного подхода в каждом АПИ. И по всему остальному коду обрабатывать все возможные варианты. Помимо того, что все это безобразие тормозит все больше и больше, это очень сложно поддерживать и развивать.


Вот пример по моей части: видео фреймы могут храниться в пяти разных форматах. Выкинув нафиг старые версии directx, можно было бы отказаться от нескольких из них.


Это не лечится даже заливанием проблемы деньгами и наймом еще 100500 разработчиков (для продукта, который сам денег не приносит, кстати). Потому что сложность кода все-равно растет почти равномерно почти везде.


у пользователя 7-ки этот сайт ожидаемо будет показывать пустые квадраты вместо видео

Потому что пользователи будут жаловаться "а что вы такие сякие, у вас баг в браузере". Журналисты будут писать "вот, хром не работает: криворукие разработчики из гугла!". И при этом остаются все те же проблемы с поддержкой и развитием.


И если кому-то очень уж надо запускать хром на 7-ой винде — всегда есть старая версия хрома. Вот там все, как вы ожидатете. Браузер работает. Если сайт использует какие-то новые фичи, они не отображаются корректно.

С веб-страницами хуже.

Чем? Без ява скриптов html не сильно сложнее блокнота. Добавляется разметка которая по факту уже стандарт.

Вот тут мысль развернута

https://habr.com/ru/companies/first/articles/653771/

Ожирение всего вокруг приобретает какие-то космические масштабы. Такое чувство, что все вокруг сошли с ума и начали изобретать «революционные новые способы» делать привычные вещи. И люди добавляют новые и новые уровни сложности в существующий технологический стек. В итоге всё начинает работать медленнее и медленнее.

Чем? Без ява скриптов html не сильно сложнее блокнота.

HTLM5 с CSS3 уже хорошо так посложнее. Движок рендеринга сего добра по функционалу представляет что-то среднее между MS Word и 3D Studio Max. Слои, условное позиционирование, прозрачности, канва для рисования и т.д., и почти все атрибуты должны уметь в трансформации с анимашечками. Ну т.е. завязывать сие на DirectX или другие движки аппаратного рендеринга вполне логично, другое дело, что как по мне, необходимости требовать самые последние версии вершинных и пиксельных шейдеров всё-таки нет.

необходимости требовать самые последние версии вершинных и пиксельных шейдеров всё-таки нет

Тут дело не в шейдерах, а во всяких типах текстур, например. Ну вот не завезли D3D11_RESOURCE_MISC_SHARED_NTHANDLE текстуры в Win7, например. А хрому с его многопроцессовой архитектурой это помогает.

D3D11_RESOURCE_MISC_SHARED_NTHANDLE

Судя по названию, это из DirectX 11, ну т.е. по идее, завезли :)

Неа вот тут написано:


Note Starting with Windows 8, we recommend that you enable resource data sharing between two or more Direct3D devices by using a combination of the D3D11_RESOURCE_MISC_SHARED_NTHANDLE and D3D11_RESOURCE_MISC_SHARED_KEYEDMUTEX flags instead.

А вот тут про функцию, которая этими хендлами и пользуется:


Windows 8 and Platform Update for Windows 7 [desktop apps | UWP apps]

Т.е. не на всех версиях win7. И там на семерки всякие проблемы с драйверами, поэтому это не используется для 7 вообще.

D3D11_RESOURCE_MISC_SHARED_NTHANDLE

"Плохо, но не смертельно"(С) comrade Dyatlov

С другой стороны, опять же - могут оценить пользователи Windows 8/8.1, где крайней так-же официально считается 109 версия Chrome.

win7.

Чисто Windows проблемы разве что для XP драйверов, где у AMD оптимизация была через Ж... одно место и, судя по всему, /O2 с поддержкой SSE2 по умолчанию забыли включить.

И там на семерки всякие проблемы с драйверами,

В сравнении с fglrx на Linux или конкретно Catalyst на Ubuntu, это не проблемы. Так, очень мелкие косяки AMD/ATi с NVIDIA.

Ну, это не единственная новая штука. А лишь лично мне знакомый пример.


Чисто Windows проблемы разве что для XP драйверов, где у AMD оптимизация была через Ж...

Вы даже не представляете, сколько проблем с драйверами на всех системах: https://habr.com/ru/companies/infopulse/articles/424369/


Может это и мелочи по сравнению с catalyst на убунту, но когда у пользователей окно мигает черным цветом или какие-то розовые артефакты вылезают где-то — это баг, который надо фиксить.

Вот отрисовка буковок в блокноте — это просто.

Даже это в современном мире не просто, потому что в Unicode есть как множество очень интересных символов(кодовых точек), которые даже в monospace шрифтах в разы шире большинства других символов(такая проблема с некоторыми арабскими символами, например), так и множество символов, которые модифицируют отображение предыдущего и следующего символа, но сами "ширину" строки не увеличивают (в первую очередь диакритические знаки, очень ходовая вещь)

Работа уважительная, но смысла действительно в ней нет... Система больше не поддерживается самим разработчиком, конечно сторонняя компания уж тем более не станет тянуть и без того столь важный компонент безопасности системы как веб браузер.

--no-sandbox вместо использования 109.0.5414.75 - так себе решение.

Пользователи не останутся без браузера, не переживайте за них. Есть порталы вполне старенькие где лежат все версии софта которые будут работать на семерке. Всегда можно скачать версию которая будет работать у пользователя. В целом рынок браузеров переполнен, проблем с браузером нет. Если вы реально заботитесь о юзерах, скольким людям вы помогли своей "работой"?) Просто развлеклись своеобразно и похвалились в интернет.)

Вообщем то достаточно было установить форк Chromium-а с соответствующими патчами, который под названием "Supermium"⤵️

https://github.com/win32ss/supermium/releases

Есть даже сборка для древних процессоров, которые без SSE4 инструкций

А зачем всё это, когда уже есть проект supermium - браузер собранный из chromium, откатывающий патчи поддержки Windows 10? Пользуюсь на восьмёрке, всё прекрасно работает без твоих костылей.

там максимум виста заявлена:
A Chromium-based browser for Windows Vista (exkernel), 7 and 8.x.

зачем пиратить если на гитхабе есть версия 117(win32ss/supermium) работающая на win7? бери да изучай (в 115 версии с первым релизом так и было с ключом --no-sandbox) сейчас уже без

>Итак, исходя из публично имеющейся информации мы знаем, что Google официально объявила версию своего браузера Chrome под номером 109 (109.0.5414.75) самой последней для операционной системы Windows 7 (8, 8.1, 2012, 2019).

109.0.5414.75 не последняя. Если пройтись с приведенной ссылки чуть далее, то в https://support.google.com/chrome/a/thread/185534987 можно увидеть ссылки на скачивание патченых 109 версий, для сервера 2012(R2), которые просто работают на Win7, до октября 2023.
Актуальня версия 109.0.5414.149. https://chromereleases.googleblog.com/2023/06/stable-channel-desktop-update.html
Использовать 109.0.5414.75 я бы не рекомендовал из за CVE-2023-2033
Google is aware that an exploit for CVE-2023-2033 exists in the wild.

Вопрос: как технически исправлялись проблемы с несуществующими API? Ну... в самом екзешнике браузера nop'ились обращения к функциям и выкидывал из таблиц импорта? Или какую-то прослойку с заглушками делал? Тогда интересно, как?

как технически исправлялись проблемы с несуществующими API?

какую-то прослойку с заглушками делал

Условно задача делится на три части:

  1. Стандартная реализация на общеизвестных WinAPI со времён WinXP и которые никуда не делись до сих пор. Например GetDpiForMonitor() можно очень просто реализовать через дефолтную связку GetMonitorInfo/CreateDC/GetDeviceCaps() и таким образом получить корректное скалирование (DPI).

  2. Как разновидность первого, в новых версиях Windows банально добавили оберток (wrappers) над более низкоуровневыми ntdll calls, которые так-же де-факто существуют со времён WinXP, но вызывать их через kernel32 попросту не было необходимости на тот момент. Например, PowerDeterminePlatformRoleEx()

  3. Вещи, которые не "тарахтели" для Windows 7 в принципе. Типа AppX приложений (из Windows Store), которых там попросту нет и всё что с ним связано - реализация HSTRING. Это всё успешно NOP'ится и глушится банальным возвратом ошибочных кодов.

выкидывал из таблиц импорта?

Менял non-windows7 на общеизвестные world-famous WinAPI со времен WinXP: GetProcessMitigationPolicy, SetThreadInformation менял на Beep() и тд.

А в коде, в зависимости от реализации: NOP или изменение jz/jnz или вызов аналогичной WinXP реализации (VirtualAlloc очень выручил).

Казалось бы… всё плохо? Да нет конечно! Не просто так написал за d3dcompiler_47.dll — определенно и очевидно, что именно придётся поправить в обращении Chrome с Microsoft DirectX. Опуская большое количество технологических реализаций...

А там нужно что-то править? Смотрю на все последние (официальные) версии FireFox выпущенные для Wiindows 7 там просто эта самая библиотека для работы с DirectX положена в папку с самим FireFox. И он вызывает ее вместо системной (которая кстати тоже присутствует везде где положено в C:\Windows\System32, C:\Windows\SysWOW64, C:\Windows\winsxs....\ — прилетает с какими-то из официальных апдейтов от MS, но там она более старой версии). Причем разработчиками в комплект FireFox положена версия именно из Win10, конкретно в последнем (официально поддерживаемом) FireFox 115 — положен d3dcompiler_47.dll версии 10.0.19041.685 от 2 ‎декабря ‎2020 ‎г. 16:30:42 (по дате цифровой подписи MS если судить)


MyPal 68 для работы на Windows XP тоже просто кладет версию d3dcompiler_47.dll из Win10 к себе в рабочую папку программы.
И Telegram и многое другое ПО таскает ее за собой.

d3dcompiler_47.dll

Да, всё так. С самой либой всё в порядке.
Фокус именно во взаимодействии Chrome с DirectX 9/11/12. В одном месте chrome.dll требуется подправить, что render корректно работал именно с 11 версией, а не 12й, которая отсутствует в 7ке.

Sign up to leave a comment.

Articles