Привет, Хабр!

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

Всем привет!
Всем привет!

На абордаж!

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

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

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

Разведка боем

Перемещаемся в установочную папку Chrome на виртуалке с Windows 10:

C:\Program Files\Google\Chrome\Application

и копируем её без изменений на виртуалку под управлением Windows 7 в любое свободное место (хоть в папку C:\Windows, но не обязательно).

Обзор файлов internet-браузера Google Chrome 114.0.5735.134
Обзор файлов internet-браузера Google Chrome 114.0.5735.134

Прежде всего, интересуемся исполняемым PE COFF форматом файлов. В смысле файлы с расширениями .exe и .dll. Под подозрение попадают три PE файла:

  • chrome.exe - основной исполняемый PE-файл, расположенный в корневой установочной директории;

  • 114.0.5735.134\chrome_elf.dll - на него ссылается таблица экспорта (export table) в chrome.exe;

  • chrome.dll - судя по внушительному размеру в 210 Мегабайт, он может быть защищен DENUVO это и есть основной движок браузера. Как выяснилось чуть позже - который подгружается с помощью обычного вызова WinAPI LoadLibrary. В одной папке с chrome.dll находилась библиотека d3dcompiler_47.dll, что немного намекало на то, что движок браузера основан на рендеринге через DirectX. Но это так к слову о чём пришлось вспомнить в самом конце работы - в качестве ответа на вопрос «почему эта балалайка до сих пор не заводится??»;

Шаг 1. WinAPI calls

Самая опасная миссия этой операции. Выполнима ли она? Несмотря на разницу между цифрами 7 и 10, которая равняется всего навсего трём - количество недостающих WinAPI явно на порядок больше! Впрочем если поразмыслить чисто технически - большинство нововведений будет связано или с безопасностью или с энергопотреблением или с уникальными feature, которые нужны лишь для Windows 10/11 и не тарахтели для «семёрки» в принципе.

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

Dependency Walker. Первичный осмотр chrome.exe
Dependency Walker. Первичный осмотр chrome.exe

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

  • реализация отдельных WinAPI в существующих системных PE dll;

  • реализация целых системных библиотек, которые попросту изначально не предусмотрены для Windows 7;

Ну ладно бы с chrome.exe или с chrome_elf.dll, которые занимают небольшой размер и не играют основной роли. Наиболее весомый, во всех смыслах, вклад вносит chrome.dll (напонимаю, что её размер свыше 200 Мегабайт, что естественно очень много для PE COFF формата в целом).

В итоге, получился следующий расклад для WinAPI:

Компонент браузера

Affected system dlls

Need WinAPI

chrome.exe

KERNEL32.DLL

4

USERENV.DLL

2

chrome_elf.dll

KERNEL32.DLL

1

chrome.dll

KERNEL32.DLL

7

USERENV.DLL

2

WINHHTP.DLL

4

USER32.DLL

5

MFPLAT.DLL

4

NETAPI32.DLL

2

И недостающих system dlls:

API-MS-WIN-CORE-WINRT-ERROR-L1-1-0.dll

API-MS-WIN-CORE-WINRT-L1-1-0.dll

API-MS-WIN-CORE-WINRT-STRING-L1-1-0.dll

API-MS-WIN-POWER-BASE-L1-1-0.dll

API-MS-WIN-SHCORE-SCALING-L1-1-1.dll

Первые три dll «отлетели» в Visual Studio сразу - из-за отсутствия AppX (MS Store) в Windows 7 писать какой либо вразумительный С/С++ код было попросту незачем. С power и shcore пришлось за несколько минут добавить фукнционал до нативного кода в NTDLL и масштабирования дисплея (DPI), соответственно.

А вот с WinAPI пришлось повозиться несколько больше. Во-первых мы явно остаёмся без новой песочницы (параметр --no-sandbox), ибо митигаций (GetProcessMitigationPolicy/SetProcessMitigationPolicy) в 7ке (минимум требуется Windows 8) действительно нет кроме DEP и ASLRP policy. С этим придётся чинить хромиумные worker'ы в mojom.

Во-вторых, всё остальное, в большинстве своём чинится банальным NOP без какой либо потери в функциональности браузера.

В третьих, почему-то после всего этого Chrome 114 запустился на Windows 7 и сразу же браузер грохнулся. В отладчике наблюдается, что окно «Новая вкладка» как-бы создаётся, но это максимум обычная верхняя часть окна Windows, ну разве что с добавленной адресной строкой. В смысле рендеринга тела страницы попросту не происходит - в лучшем случае пользователь будет набирать запросы в адресной строке, которые отображаются где-то в /dev/null:

Это первое, что увидел с помощью отладчика (выполнение процесса остановлено).
Это первое, что увидел с помощью отладчика (выполнение процесса остановлено).

Казалось бы... всё плохо? Да нет конечно! Не просто так написал за d3dcompiler_47.dll - определенно и очевидно, что именно придётся поправить в обращении Chrome с Microsoft DirectX. Опуская большое количество технологических реализаций, разработанную методику отладки ошибок в браузере и остальных технических деталей, предоставляю публике готовый Chrome 114 под Windows 7 (который необходимо запускать с ключом -no-sadnbox):

chrome://version
chrome://version
chrome://gpu
chrome://gpu

Шаг 2. Правка Major/Minor OS number

На самом деле, всегда это первое, что делают для разблокирования возможности запуска PE COFF на более ранних версиях Microsoft Windows. А именно понижают значение version number в PE Header.Optional Header, иначе системный загрузчик Windows попросту не запустит PE-файл. Но вспомнил за это уже после успешного запуска Chrome 114 на Windows 7, т.е. банально правка версии не потребовалась.

Чисто логически, линкер в Google должен был изначально ввести значения 0xA и 0x0, соответственно (Windows 10 же минимальная ось для запуска Chrome, как бы по официальному заявлению).

PETools. Редактирование значений Major/minor в Image Optional Header для одного из PE COFF файлов.
PETools. Редактирование значений Major/minor в Image Optional Header для одного из PE COFF файлов.

Вместо этого открываем замечательную утилиту PeTools и видим ... что там вообще находится Windows Server 2003. Сделав соответствующие выводы, просто закрыл PeTools.

WebGPU for Windows 7

Добавить параметры в строку запуска (флаг unsafe WebGPU и выбрать DirectX 11 в качестве рендера):

--enable-unsafe-webgpu --use-webgpu-adapter=d3d11

В самом браузере после запуска проверить:

chrome://flags/#enable-webgpu-developer-features

chrome://flags/#ignore-gpu-blocklist

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

P.S.

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

Ограничусь лишь следующим утверждением: Microsoft Windows 7 до сих пор пользуются миллионы пользователей и она по праву считается одной из лучших ОС. И в один прекрасный момент кто-то из менеджеров некой корпорации G решил в прямом смысле «забить» на них, спустив указание выкинуть часть кода для исключения совместимости. Тем самым - оставив множество пользователей без обновлений функционала и безопасности. Благо не все конкуренты так поступают.

И вот спустя несколько месяцев возникают «пираты», которые демонстрируют абсолютно рабочий вариант браузера 114.0.5735.134 (114.0.5735.199) для Windows 7 (SP1). Т.е. пираты играют роль добрых самаритян, которые больше заботятся о пользователях, чем сама мистическая корпорация G.

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

А потом жалуются что весь технический прогресс скатился к банальному инкременту циферок в версии ПО.

Спасибо за внимание!

Комментарии (102)


  1. ky0
    05.08.2023 15:34
    +14

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

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


    1. diakin
      05.08.2023 15:34

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


      1. dartraiden
        05.08.2023 15:34
        +40

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


        1. wataru
          05.08.2023 15:34
          +13

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


          1. zzzzzzzzzzzz
            05.08.2023 15:34

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


            1. wataru
              05.08.2023 15:34
              +1

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


              1. zzzzzzzzzzzz
                05.08.2023 15:34

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

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


                1. wataru
                  05.08.2023 15:34

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


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


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

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


      1. Kosmos131010
        05.08.2023 15:34

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


    1. K0styan
      05.08.2023 15:34
      +5

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


    1. PuerteMuerte
      05.08.2023 15:34
      +4

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

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


      1. ky0
        05.08.2023 15:34
        +16

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


    1. korvint
      05.08.2023 15:34
      -2

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

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


    1. Blaukovitch Автор
      05.08.2023 15:34
      -1

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

      для 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 защитят (и это не смешно будет) :)


      1. wataru
        05.08.2023 15:34

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


        Если бы 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. Потому что целый ворох относительно безопасных эксплоитов становятся очень опасными.


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

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


        1. Blaukovitch Автор
          05.08.2023 15:34

          поспорить

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

          Чем 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 не было (в современной реализации) и как-то жили же, без эпидемий причём.

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

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


    1. DeskundigeICT
      05.08.2023 15:34
      +1

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

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

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

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

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

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

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

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


  1. apro
    05.08.2023 15:34
    +50

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

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


    1. Grrr5
      05.08.2023 15:34

      Вот! Да!

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


  1. mm3
    05.08.2023 15:34
    +40

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


    1. PuerteMuerte
      05.08.2023 15:34
      +1

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

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


      1. mm3
        05.08.2023 15:34
        +4

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


      1. hapcode
        05.08.2023 15:34
        +3

        Хромиум умеет и в 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 для работы с сервисами гугла.


    1. rust3
      05.08.2023 15:34

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


  1. forthuse
    05.08.2023 15:34
    -2

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

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


    1. sleirsgoevy
      05.08.2023 15:34
      +3

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


      1. ivanrt
        05.08.2023 15:34

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


  1. CoolCmd
    05.08.2023 15:34
    +43

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

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


  1. wataru
    05.08.2023 15:34
    +5

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

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


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


    1. Vestibulator-1
      05.08.2023 15:34
      -2

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

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

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


    1. SinsI
      05.08.2023 15:34
      +5

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

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

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


      1. wataru
        05.08.2023 15:34

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


        1. RiseOfDeath
          05.08.2023 15:34

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


          1. wataru
            05.08.2023 15:34
            +2

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


  1. CheGevara
    05.08.2023 15:34

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


    1. Grey83
      05.08.2023 15:34
      +1

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


      1. CheGevara
        05.08.2023 15:34

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


        1. Grey83
          05.08.2023 15:34

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


  1. wataru
    05.08.2023 15:34
    +45

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


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

    Потом,


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

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


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

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


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


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

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


    1. Fhann
      05.08.2023 15:34

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


      1. fddima
        05.08.2023 15:34
        +1

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


  1. perfect_genius
    05.08.2023 15:34

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


    1. Vasjen
      05.08.2023 15:34
      +5

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


    1. wataru
      05.08.2023 15:34
      +1

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


    1. me21
      05.08.2023 15:34
      +1

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


      1. ivanrt
        05.08.2023 15:34
        +2

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


        1. me21
          05.08.2023 15:34
          -1

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


          1. wataru
            05.08.2023 15:34
            +1

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

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


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


            1. grishkaa
              05.08.2023 15:34
              +1

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


              1. wataru
                05.08.2023 15:34
                +1

                С другими обновлениями наверняка точно так же можно.

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


  1. stalinets
    05.08.2023 15:34
    +1

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


    1. Grey83
      05.08.2023 15:34
      +5

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

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


      1. djalin
        05.08.2023 15:34
        +1

        И еще
        https://ftp.mozilla.org/pub/firefox/releases/
        https://archive.mozilla.org/pub/seamonkey/releases/
        https://www.slimjet.com/en/dlpage.php

        На семерке много чего еще работает, с ХР вот сложнее


    1. MountainGoat
      05.08.2023 15:34
      +5

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


    1. vindy123
      05.08.2023 15:34
      +2

      Загуглите new pale moon. Регулярно свежие сборки под все, включая ХР.


      1. Qwentor
        05.08.2023 15:34
        +1

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


        1. Retapich
          05.08.2023 15:34
          +1

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

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

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

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

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

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


          1. Qwentor
            05.08.2023 15:34

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


    1. metric_ghost
      05.08.2023 15:34
      +2

      Для 7 есть ФФ 115 - https://support.mozilla.org/en-US/kb/firefox-users-windows-7-8-and-81-moving-extended-support# , обновления официально будут приходить до сентября 2024.


    1. HackcatDev
      05.08.2023 15:34
      +2

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


      1. stalinets
        05.08.2023 15:34
        +9

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

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


        1. metric_ghost
          05.08.2023 15:34
          +9

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


          1. perfect_genius
            05.08.2023 15:34
            +1

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


            1. ajijiadduh
              05.08.2023 15:34
              +2

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


              1. PuerteMuerte
                05.08.2023 15:34

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


            1. metric_ghost
              05.08.2023 15:34
              +1

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


      1. DiMuGe
        05.08.2023 15:34

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

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


    1. diogen4212
      05.08.2023 15:34
      +1

      для ХР есть MyPal 68, основанный на Firefox, или 360 Browser из Китая


  1. Sanctuary_s
    05.08.2023 15:34
    -3

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

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


    1. diogen4212
      05.08.2023 15:34
      +5

      интересно, что такого напридумали на сайте Гитхаба и ВК, что не может отрендериться в Windows XP (а видимо и в 7-ке со временем будет то же самое). И почему нельзя сделать полностью портабельный браузер со всеми dll, чтобы он работал в этих системах. Не нужна мне 10-ка в виртуалке, которая жрёт диск на 100% своими системными процессами и у которой нужно выключать обновления через кучу костылей..


      1. grishkaa
        05.08.2023 15:34
        +2

        Не обязательно это делать через кучу костылей, всё-таки. Я в своей виртуалке с 11 сделал это достаточно радикально: просто удалил defender и переместил DLLки, которые реализуют обновления (C:\Windows\system32\wua*.dll). Если что-то ведёт себя как малварь, то и обращаться с этим надо как с малварью.

        интересно, что такого напридумали на сайте Гитхаба и ВК, что не может отрендериться в Windows XP (а видимо и в 7-ке со временем будет то же самое)
        Всякие там grid и CSS-переменные, например.

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


      1. wataru
        05.08.2023 15:34
        +6

        И почему нельзя сделать полностью портабельный браузер со всеми dll

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


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


        1. diogen4212
          05.08.2023 15:34

          Я наивно считаю, что всё можно рендерить на сервере, а клиенту отдавать обычный текст (в случае с нейросетевым ассистентом точно). С видео сложнее, хотя и тут не очень понятно, что мешает использовать кодек, прекрасно работающий на вин7 хотя бы для видео до 4К. Проблема не в новых системах, а в прогрессе для конечного пользователя, которого по факту нет или почти нет. Гитхаб - странички с картинками и гиперссылками, Ютуб - страничка с видео, и какие они были лет 5 назад, такие и остались по фукнционалу и назначению.

          Я могу принять, что новое железо использует новые драйверы с новыми возможностями, и для этого нужна новая система, которая их реализует (скажем, разные типы ядер в процах Интел или команда TRIM в SSD), но что такого принципиально невозможного в отрисовке веб-страниц на Windows7, всё равно не понятно.


          1. wataru
            05.08.2023 15:34
            +1

            что мешает использовать кодек,

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


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


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

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


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

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


            1. PuerteMuerte
              05.08.2023 15:34
              +1

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

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


              1. wataru
                05.08.2023 15:34

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


                1. sim31r
                  05.08.2023 15:34

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

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

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


                  1. wataru
                    05.08.2023 15:34

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


                    1. sim31r
                      05.08.2023 15:34

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

                      Стандарт 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/


                    1. Grey83
                      05.08.2023 15:34
                      -1

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

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


                    1. Ndochp
                      05.08.2023 15:34

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


                      1. wataru
                        05.08.2023 15:34

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


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


                      1. Grey83
                        05.08.2023 15:34

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


                      1. wataru
                        05.08.2023 15:34

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


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


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


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


            1. diogen4212
              05.08.2023 15:34
              +1

              тут возникает вопрос, а какую роль во всём этом играет версия Windows на компьютере пользователя? Ну хорошо, обновились веб-стандарты, добавились новые функции в движок — это должно рассчитываться внутри самого браузера (chrome.exe с набором dll и других файлов, которые изменятся при обновлении), обновился кодек на сайте — у пользователя 7-ки этот сайт ожидаемо будет показывать пустые квадраты вместо видео — так зачем вообще запрещать запуск браузера и его обновление? Ну не будет работать Ютуб с новым кодеком, или не будет открываться какой-то новый хитрый pdf — печаль, но остальными функциями вполне можно было бы пользоваться на той же 7-ке и хотя бы оставить возможность обновления браузера и установки его новых версий.
              Если придумают что-то принципиально новое, чего просто не было в 7-ке — вместо exe с dll например какой-нибудь WinApk сделают, или какую-то хитрую компиляцию под конкретное железо, и все программы сразу на неё перейдут — вот тогда и можно говорить, что 7-ке пора на покой. А на данный момент это просто искусственное ограничение.


              в 2013 году прекрасно смотрел летсплеи по играм, всё уже было в 1080 или 720р, только скачивать на комп приходилось, т.к. скорости DSL-интернета не хватало.


              1. wataru
                05.08.2023 15:34

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


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


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


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


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


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

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


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


                1. sim31r
                  05.08.2023 15:34

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

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

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

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

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


                  1. PuerteMuerte
                    05.08.2023 15:34
                    +3

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

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


                    1. wataru
                      05.08.2023 15:34

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

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


                      1. PuerteMuerte
                        05.08.2023 15:34

                        D3D11_RESOURCE_MISC_SHARED_NTHANDLE

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


                      1. wataru
                        05.08.2023 15:34
                        +1

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


                        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 вообще.


                      1. Blaukovitch Автор
                        05.08.2023 15:34

                        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.


                      1. wataru
                        05.08.2023 15:34

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


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

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


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


            1. taishi-sama
              05.08.2023 15:34

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

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


  1. Araki_Satoshi
    05.08.2023 15:34
    +1

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


  1. sergio_nsk
    05.08.2023 15:34
    +1

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


  1. sYsTem1337
    05.08.2023 15:34

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


  1. Retapich
    05.08.2023 15:34
    +3

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

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

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


  1. Berskiy90
    05.08.2023 15:34
    +1

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


    1. firehacker
      05.08.2023 15:34

      На XP пробовали?


      1. Grey83
        05.08.2023 15:34

        там максимум виста заявлена:

        A Chromium-based browser for Windows Vista (exkernel), 7 and 8.x.


  1. QZMTCH
    05.08.2023 15:34
    +2

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