Комментарии 47
А зачем такие сложности, учитывая, что нативный IE можно запустить даже в самых последних редакциях Windows 11?
Или если хочешь "одно окно", то режим совместимости в Edge тоже работает без проблем, используя любые Activex компоненты.
Чтобы человек использовал браузер от Яндекса вместо Edge.
Так и там, и там хромой внутри.
А если нет разницы, зачем две проблемы вместо одной?
Но ведь движок не равно браузер. Функционально.
Да, Эдж поудобнее, но там нету перевода видео на живую, например.
В остальном, в конкретике отличия есть, но в функционале - нет.
Из частного случая. Есть один непубличный сайт, который разрабы пилят под Хром, но в Эдже он работает корректно, а в Яндексе половина полей в таблицах пропадает, например. Это табличная система учёта в браузере, типа.
PS: Ещё в Я постоянно бесит возвращение автозапуска и некоторых настроек, которые множат бесполезные окна у пользователей, при каждом обновлении.
Сколько раз устанавливал, настраивал, никогда он никакие настройки не возвращал. Не знаю что вы делаете не так)
При парке машин в пару сотен штук и за 3 года работы минимум, первый раз слышу чтобы возвращался автозапуск.
Вот потеря паролей в простом "Я" - это да, неоднократно, но для этого есть "ЯдО".
Эдж поудобнее, но там нету перевода видео на живую
перевод вообще прикручивается к любому браузеру на хромиуме с помощью tampermonkey и скрипта
Зачем это Яндексу понятно - расширение пользовательской базы, что в конце концов как то монетизируется. Зачем это пользователю - пусть Яндекс объясняет )
Это сделано для корп пользователей.
Для организаций где ЯБраузер стоит по умолчанию, чтобы сотрудники кому нужно это, могли работать в одном окне браузера, а не открывать в довесок EDGE. Ещё проверю групповые политики, как прописывается сайт, который должен открыться в режиме ie в Я. В edge это прям творчески сделано, очень в стиле microsoft.
Да, именно так.
Плюс операционки на "линуксе" - там как бы и "эджа" нет по умолчанию.
как работать в хрени, которая регулярно предлагает или поставить какую-нибудь другую хрень или рекламу какой-нить хрени?
ЯБраузер корп - платный, вроде, для корп? Или это кастомизация платная только?
А в нем вроде бы все это ГОСТ шифрование/сертификаты встроенные, для госов нужно.
Ну надо ж как-то этого слона продавать?
У майкрософта на сайте даже готовый образ виртуальной машины есть с установленной Windows и выбранной версией Internet Explorer.
Ну хотя бы по той причине что большинство компаниям которым нужна данная функция по всем известным причинам переходят на "отечественные ОСи" по типу ALT, Astra и на прочие linux производные дистрибутивы в которых yandex браузер иногда чуть ли не по умолчанию идёт.
Под "старые задачи" проще поднимать изолированную виртуальную среду. Однозначно будет меньше проблем, чем все это будет жить на реальном железе пользователей.
Подтверждаю, у нас так в одной из виртуалок установлена среда разработки Visual FoxPro. Иногда пригождается (в основном, чтобы посмотреть старый код)
Это не про старые задачи, это про дремучее legacy, переписывать которое никто не хочет, так как это будет стоить конских денег, а текущего функционала итак хватает. Этим текущим legacy может пользоваться и половина сотрудников и вся организация.
Вызвать IE из WinAPI - простое и логичное решение, но сейчас же всё идёт под флагом перевода на РедОСы, Астра Линуксы, и т.д. То есть текущее решение существует сугубо под Windows и режима совместимости IE в Линуксе внутри Я.Б. нет. Это предполагается решать?
Не думаю.
Это надо целый движок под устаревшие технологии написать с нуля, вряд-ли МелкоМягкие исходниками поделятся.
Да и не факт, что АктивИкс не защищён патентом каким.
Если только заворачивать ослика (он-же бесплатный был?) в вайн и запихивать в Я.Браузер всё это. Но не факт, что лицензии такое позволяют, опять-же.
мы находимся в тесном взаимодействии с разработчиками российских ОС и пробуем различные варианты эмуляции. Но пока работоспособность режима совместимости без использования виртуализации возможен только под Windows
Иллюстрацией тут надо вставить картинку с костлявой рукой, поднимающейся из могилы.
По своему опыту могу сказать, что виртуалка лучше, так как древние ActiveX , ради которых и нужен IE, тоже часто не работают на новых ОС.
Сталкиваюсь с видеорегистраторами/камерами и от топовых брендов, и от левых ноунеймов. Что в тех, что в других всё работает на компонентах Activex. Не было прецендента, чтобы или в эдж, или в самом IE, открывающемся хитрожопо из окна "Свойства браузера", что-то не завелось. Но допускаю, что есть что-то уж очень хитрое.
В статье расскажем, как Яндекс Браузер для организаций помогает избавиться от этой головной боли и выиграть время для перехода на более актуальные технологии. С его помощью можно запускать современные веб‑приложения и наследие эпохи IE — всё в одном окне.
Считаю что "вместо выигрыша времени для перехода", происходит обратное и это решение на самом деле этот переход будут максимально оттягивать: <если и так работает, то зачем что-то менять?>
Скорее другое - переход уже в плане, финансирование выделено, ТЗ пишется, то есть вопрос остался чисто технический - в реализации.
Но пока то-сё, пока пятое-десятое, в общем когда работать нужно "ещё вчера", то конечно такая работа - на вес золота.
Это не оттягивает, а скорее облегчает миграцию.
Никто не собирается менять — неважно, будет в «ЯБ» поддержка IE или нет, это очень дорого, те, у кого деньги были, уже куда-либо перешли. Остальные будут сидеть на старом софте вечность.
До сих пор есть ребята, которые запускают всякие важные программы под MS-DOS — исходников нет, разобраться как оно там считает и переписать — нужны очень недешёвые спецы.
Яндекс Браузер для организаций помогает избавиться от этой головной боли и выиграть время для перехода на более актуальные технологии. С его помощью можно запускать современные веб‑приложения и наследие эпохи IE — всё в одном окне.
«И на что только эти русские не пойдут — лишь бы нормальные дороги не строить!» ©
И почему было не воспользоваться objref-моникерами вместо огорода с пайпами и ручным маршаллингом?
Вообще, мне «нравится», как технологию, на этот раз COM/OLE/ActiveX клеймят устаревшей, такой, сякой нехорошей, но причины оказываются не очень-то объективными, а именно:
Она появилась не вчера (и поэтому на модных курсах про неё ничего не рассказывают, и поэтому приходится довольствоваться обрывками информации, где-то услышанными)
Мы нифига её толком не знаем, поэтому наступаем на всевозможные грабли, например, неправильно инициализируем аппартамент.
CLSID_WebBrowser — это глобальный идентификатор объекта.
Это уникальный идентификатор класса, а не объекта. А уже объект это экземпляр класса. А вот глобальным идентификатором объекта мог бы стать тот самый OBJREF-моникер, приведённый к строковому предсавлению, про которой я написал выше.
Но увы, в реестре у CLSID_WebBrowser нет записи
LocalServer32
. Есть только записьInProcServer32
, которая указывает на DLL. То есть Internet Explorer не работает как отдельный EXE‑сервер — в Microsoft не предусмотрено такого сценария.
Это не правда. В Microsoft как раз-таки предусмотрели такой сценарий.
Такой сценарий, когда COM-сервер, реализованный в виде DLL, не должен попасть в адресное пространство клиентского процесса, а должен работать в рамках отдельного процесса (как если бы COM-сервер сам был реализован в виде EXE) предусмотрен.
Техника называется COM Surrogate. Более того, Microsoft предусмотрела, что вы можете воспользоваться встроенной системной реализацией процесса-суррогата (исполняемый файл называется %windir%\System32\dllhost.exe — знакомое имя, не так ли?) либо написать свой кастомный.
Using system-supplied surrogate
Вы написали свой собственный, но назвали его Proxy, и не следовали тем правилам и соглашениям, которые установил Microsoft.
Internet Explorer работает внутри 32-битного процесса — по сути, это окно (
hwnd
), созданное в этом же процессе. А значит, все сообщения, связанные со взаимодействием с веб‑страницей (например, когда она в фокусе), будут приходить именно в наш прокси‑процесс. И чтобы они обрабатывались корректно, прокси обязан иметь свой собственный цикл обработки сообщений.
То есть, если бы он был не окном (hwnd), и если бы он вообще никак не связан был бы с пользовательским интерфейсом и каким бы то ни было взаимодействием с пользователем, а речь шла бы о какой-нибудь библиотеке, которая делает FFT, то цикл проачки оконных сообщений был бы не нужен?
Как бы не так: раз вы сделали CoMarshall/CoUnmarshall и создали пару proxy/stub объектов, то всё ваше межпроессное RPC как раз и работает под капотом за счёт обмена оконными сообщениями. Поэтому, в первую очередь, именно по этому вам нужен цикл обработки оконных сообщений. А не потому что IE это по сути окно.
Любопытно, помню в Maxthon была похожая технология: переключение между webkit и trident
Уже лет 10 обслуживаю парк из 100 машин с софтом только под ИЕ. LTSC винда вам в помощь с отключенным защитником. Проблемы исключены уже длительное время.
На astra linux работает? А на Винде проблем с ie то и нет
Когда-то давно пришлось делать "склейку" из двух desktop-приложений: одно на C#, второе на Delphi. В каждом из них были реализованы определенные формочки, которые вызывали друг друга по бизнес-сценариям (посредством несложного обмена файликами). Создавалось впечатление, что это одно приложение, просто стиль окошек разный. Иногда вызовы формировали цепочки, например C# -> Delphi -> C# -> Delphi. Самая большая сложность была с модальностью - нужно было сделать так, чтобы модальное окно на одном языке перекрывало все окна на другом языке. Та еще задачка! Вдруг кому-то интересно поломать голову, поэтому спрячу решение за спойлер: помогла функция SetWindowLongW с параметром GWL_HWNDPARENT.
К чему это я: сложно это все, большая исследовательская работа проделана, за это респект! Стоило ли оно того или виртуальные среды действительно лучшее решение - вопрос.
Не скажу, что это подвиг, но вообще что-то героическое в этом есть... (с)
Прочитал статью, много интересного, но не увидел самого главного: как ЯдО сказать что этот сайт открывать в режиме совместимости с IE???
В Edge есть кнопочка, а что делать здесь?
P.S. Увидел, что только за деньги (
Как мы встроили 32-битный Internet Explorer в 64-битный Яндекс Браузер для организаций