TWebbrowser in Windows 10: Microsoft Edge (formerly Spartan) / Internet Explorer legacy issues

前端 未结 2 1102
感情败类
感情败类 2021-01-06 02:58

We know Internet Explorer will be discontinued in Windows 10, being replaced by the new Microsoft Edge (formerly codenamed \"Project Spartan\").

There are millions o

相关标签:
2条回答
  • 2021-01-06 03:23

    (edit problem fixed, solution in the end)

    I have Delphi 2006(32bit) application using a WebBrowser OCX. I write FEATURE_BROWSER_EMULATION/myapp.exe = 0 registry value to have highest IE rendering mode. Worked fine through WinXP-Win7-Win8-Win10(before latest patches). Latest patches made changes somewhere, now webbrowser canvas is blank but no errors anywhere.

    It's still calling http request, so not completely broken just not rendering anything on screen. Myapp request is using Spartan useragent(Edge/12) which kind of makes sense I was requesting highest feature emulation.

    This is a list of useragents from standalone browsers and myapp before/after Win10 patch 10074->10131.

    IE Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; rv:11.0) like Gecko

    Spartan Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.135 Safari/537.36 Edge/12.9600

    myapp.exe (patch 10074) Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.71 Safari/537.36 Edge/12.0

    myapp.exe(patch 10131) Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.135 Safari/537.36 Edge/12.9200

    Win10_patch_10074 environment worked fine but patch_10131 renders blank but calls initial http request. It does not call any links in a response html page. Myapplication is not modified.

    I need to test lowering registry value if that helps but it's unfortunate to limit IE emulation level to a lower than available.

    ps: My Delphi2006 is really old but I am not going to upgrade it anymore, and it will create 32bit apps. Legacy issues but thats a software reality.

    This blog has more about feature_browser_emulation

    edit I took highest IE11 value from this Microsoft provided table and everything works now. I set 11001(0x2AF9) registry value.

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

    myapp(patch 10131, 11001 registry): Mozilla/5.0 (Windows NT 6.2; WOW64; Trident/7.0; rv:11.0) like Gecko

    0 讨论(0)
  • 2021-01-06 03:27

    According to IE Blog

    Internet Explorer 11 will remain fundamentally unchanged from Windows 8.1, continuing to host the legacy engine exclusively.

    So IE (and mshtml.dll) is not going to disappear, it will exist in Windows 10 for backward compatibility so TWebbrowser should still work in next version of Windows.

    0 讨论(0)
提交回复
热议问题