none
Internet Explorer 11 always runs in IE7-Compatibility mode when integrated within an Eclipse Application via SWT Browser Widget RRS feed

  • Question

  • We implemented a Eclipse-based desktop application which uses the SWT Browser Widget to display some Javascript. At least for Windows users, the SWT browser widget uses the Internet Explorer under the hood.

    One of our clients is using the app in a windows environment (Windows 7, 64 bit) and whenever the client opens the app, the browser widgets uses the IE7 compatibilty mode and the page is broken, since our JavaScript code is not working in the IE7 compatiblity mode. When the client navigates to the site with the standalone Internet Explorer, it uses the normal IE11 mode and everything works.

    Changing the FEATURE_BROWSER_EMULATION value  in the registry  (HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\MAIN\FeatureControl\FEATURE_BROWSER_EMULATION) is possible,  but has no effect on the clients machine. In our windows machine, we can control the used IE version with this setting.

    So, we assume there are some group policies which can be set to always open websites in IE7-compatibility mode when using the Internet Explorer within an application and not as standalone browser. But we have really no idea about the policies and where to start investigating.

    Any help and suggestion how to solve this issue, is very much appreciated.

    Thanks a lot in advance! :)

    Thursday, March 8, 2018 3:46 PM

All replies

  • Hi Jan,

    what value is in

    (HKEY_CURRENT_USER\SOFTWARE\Microsoft\Internet Explorer\MAIN\FeatureControl\FEATURE_BROWSER_EMULATION)

    test by logging on to her machine as administrator.

    By default a desktop app that hosts the WBC assumes IE7 emulation. Custom FEATURE_CONTROL settings are usually applied by the application installer package. There are no GPO settings that control the emulation mode that is used by a hosted WBC, it is only from the HKCU and HKLM registry entries for BROWSER_EMULATION.

    How do you know it (the desktop app) is using IE7 emulation?

    (Usually, this can only be found out by adding a script to a web page or using the f12>Emulation tab. f12 is not available to WBC desktop apps unless WBC context menu extensions are also enabled.) 

    Calipso is an IDE (Integrated development environment).. do you mean your desktop app, using the IE WBC, opens web pages from an internal (or external) website....

    test by using the normal IE browser with the address of the resource. eg. https://host/default.jsp. Then select the File>Properties menu to determine which IE security zone the host is mapped to (expected Intranet or Internet), then f12>Emulation tab, to determine which IE emulation mode IE is using and how it was established. eg. IE7 - Display Intranet sites in Compatibility View, IE7 - User Compatibility View List.

    Questions about FEATURE_CONTROL settings for WBC desktop apps may be posted to the IE Extension development forum.

    Regards.


    Rob^_^

    Thursday, March 8, 2018 8:04 PM
  • Hi Rob,

    thanks a lot for your fast reply!

    Our desktop app indeed applies a specific value to the HKCU registry entry for BROWSER_EMULATION and we verified it, that it is set correctly after the app hast been started. We made sure that there is the value 11001 for the .exe file of our app.

    We can also debug the Java code which initializes the SWT browser widget and thus also the IE, and we made sure that the browser got initialized with the correct version string "11001".

    Nevertheless, we open the WBC in the desktop app and print the navigation.useragent infos via javascript and it shows the following string:

    userAgent --> value: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/7.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E)

    In the emulated IE7 version, our javascript code is not working as expected. But if we run our Javascript within the standalone IE11, everything works as expected, and also the user agent infos are showing no IE7 compatible mode.

    I think it is very helpful that you mention, the only way to control the emulation mode of the WBC is via the HKCU and HKLM registry entries for BROWSER_EMULATION. We can observe that these are correctly set, when the desktop app is starting. Could it be possible that some other GPO settings do allow a single user to change registry entries for his/her machine, but actually these registry entries have no effect?

    Are therre any settings that say when you open a webpage or some javascript code inside a WBC within any application, only use the IE7 emulation mode, but when you open the page in the standalone IE it uses not the emulation mode?

    Best regards,

    Jan



    Friday, March 9, 2018 1:18 PM
  • @Jan,

    thx for the details.

    "In the emulated IE7 version, our javascript code is not working as expected. But if we run our Javascript within the standalone IE11, everything works as expected, and also the user agent infos are showing no IE7 compatible mode."

    We need to know how the IE7 Emulation mode is being applied to your local website (intranet) and which IE security zone it is mapped to.

    1. Open your local website in IE.

    2. Select the File>Properties menu to find out the IE security zo ne. expected Intranet or Internet.

    3. f12>Emulation tab, post back with the Emulation Mode(IE7) AND how it is being established. expected: Display Intranet sites in compatibility view.

    ...you can troubleshoot compatibility issues by using the Emulation tab, documentMode dropdown.

    try changing the documentMode to IE11... I expect your website will not work in normal IE.

    navigator.userAgent (browser sniffing) is not a trustworthy compatibility indicator.

    I think the solution for you is to force your custom WBC app to use IE7 Emulation mode by setting

    the BROWSER_EMULATION value to 7.0000 (or just delete the registry key and it will default to using IE7 emulation mode.)

    Regards.

    Questions regarding Internet Explorer 8, 9 and 10 and Internet Explorer 11 for the IT Pro Audience. Topics covered are: Installation, Deployment, Configuration, Security, Group Policy, Management questions.

    see docs.microsoft.com for technical documentation.


    Rob^_^

    Saturday, March 10, 2018 7:52 PM
  • @Jan,

    also, what bitness (x86 or x64) is your desktop app please?

    you can determine the bitness of an IE frame by typing javascript:alert(navigator.platform); in an address bar.


    Rob^_^

    Sunday, March 11, 2018 4:59 AM