TWebbrowser в Windows 10: устаревшие проблемы Microsoft Edge (ранее Spartan) / Internet Explorer

Мы знаем, что Internet Explorer будет прекращен в Windows 10, и его заменит новый Microsoft Edge (ранее известный под кодовым названием «Project Spartan»).

Существуют миллионы приложений, использующих TWebbrowser — компонент, использующий API Internet Explorer.

Есть ли у кого-нибудь информация о том, как эти приложения будут работать в будущих версиях Windows? Как мы можем быть готовы к тому, чтобы наши приложения работали в будущих версиях Windows?


person delphirules    schedule 07.04.2015    source источник


Ответы (2)


Согласно Блог IE

Internet Explorer 11 принципиально не изменится по сравнению с Windows 8.1, продолжая размещать исключительно устаревший движок.

Таким образом, IE (и mshtml.dll) не исчезнет, ​​он будет существовать в Windows 10 для обратной совместимости, поэтому TWebbrowser должен по-прежнему работать в следующей версии Windows.

person Mehrzad Chehraz    schedule 07.04.2015
comment
Теперь, когда Edge перешел на кодовую базу Chromium, кажется, что есть компонент WebVies2, который можно использовать для того же, что и компонент WebBrowser, который использовался раньше: docs.microsoft.com/en-us/microsoft-edge/webview2/gettingstarted/ - person Stijn Sanders; 01.07.2020

(проблема edit исправлена, решение в конце)

У меня есть приложение Delphi 2006 (32-битное), использующее WebBrowser OCX. Я пишу значение реестра FEATURE_BROWSER_EMULATION/myapp.exe = 0, чтобы иметь самый высокий режим рендеринга IE. Работал нормально через WinXP-Win7-Win8-Win10(до последних патчей). Последние патчи где-то внесли изменения, теперь холст веб-браузера пуст, но нигде нет ошибок.

Он все еще вызывает http-запрос, поэтому не полностью сломан, просто ничего не отображает на экране. Запрос Myapp использует спартанский пользовательский агент (Edge/12), который имеет смысл, я запрашивал эмуляцию максимальной функции.

Это список агентов пользователя из автономных браузеров и myapp до/после патча Win10 10074->10131.

IE Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; rv:11.0), например Gecko

Spartan Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, например Gecko) Chrome/42.0.2311.135 Safari/537.36 Edge/12.9600

myapp.exe (исправление 10074) Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, например Gecko) Chrome/39.0.2171.71 Safari/537.36 Edge/ 12,0

myapp.exe (исправление 10131) Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, например Gecko) Chrome/42.0.2311.135 Safari/537.36 Edge/ 12.9200

Среда Win10_patch_10074 работала нормально, но patch_10131 отображается пустым, но вызывает первоначальный HTTP-запрос. Он не вызывает никаких ссылок на HTML-странице ответа. Мое приложение не изменено.

Мне нужно проверить снижение значения реестра, если это поможет, но, к сожалению, ограничить уровень эмуляции IE ниже доступного.

ps: Мой Delphi2006 действительно старый, но я больше не собираюсь его обновлять, и он будет создавать 32-битные приложения. Устаревшие проблемы, но это реальность программного обеспечения.

Это блог содержит дополнительную информацию о feature_browser_emulation

изменить Я взял самое высокое значение IE11 из эта предоставленная Microsoft таблица и теперь все работает. Я установил значение реестра 11001 (0x2AF9).

HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION
myapp.exe = 11001(0x2AF9)

myapp (патч 10131, реестр 11001): Mozilla/5.0 (Windows NT 6.2; WOW64; Trident/7.0; rv:11.0), как Gecko

person Whome    schedule 22.05.2015