Thursday, November 5, 2009

Internet Explorer 8 on Linux with Wine

About Internet Explorer 8

Windows Internet Explorer 8 (abbreviated IE8) is the latest web browser developed by Microsoft in the long running Internet Explorer browser series. The browser was released on March 19, 2009 for Windows XP, Windows Server 2003, Windows Vista and Windows Server 2008, and Windows 7. Both 32-bit and 64-bit builds are available. It is the successor to Internet Explorer 7, released in 2006, and is the default browser for Windows 7 and Windows Server 2008 R2 operating systems except in Europe. IE8's global market share is estimated to be about 18-20%.

According to Microsoft, security, ease of use, and improvements in RSS, Cascading Style Sheets, and Ajax support were its priorities for Internet Explorer 8.

Standards mode

Internet Explorer 8's main rendering mode, known as standards mode, has improved support for various web standards, especially CSS, compared to Internet Explorer 7 and earlier versions.

The web standards supported by IE8 include the following:
  • HTML, including the HTML object fallback and the abbr and elements
  • Data: URIs
  • CSS level 1 is fully supported. CSS level 2 is mostly supported however the CSS level 2 implementation does diverge from the CSS2 specification on over 50 counts. CSS level 3 is partially supported.
  • DOM storage
  • Partial HTML 5 support, including cross-document messaging
  • Selectors APIs
  • DOM, that brings it in line with implementations in other browsers. Attributes and properties in DOM objects are now handled differently, and the behavior of the getAttribute, setAttribute and removeAttribute modifiers have been changed to match the behavior of other browsers.
  • Accessible Rich Internet Applications (ARIA) specification for enhanced accessibility in Ajax-based rich Internet applications.
However, IE8 does not support some other W3C standards.

Wine configuration

This is with a clean configuration directory, with no other applications or games installed.

Linux Distribution: Ubuntu 8.04
Windows version emulated: XP
Wine version tested: 1.1.32

" browseui="native, builtin"
"crypt32"="native, builtin"
"gdiplus"="native"
"hhctrl.ocx"="native, builtin"
"hlink"="native, builtin"
"iernonce"="native, builtin"
"iexplore.exe"="native, builtin"
"itircl"="native, builtin"
"itss"="native, builtin"
"jscript"="native, builtin"
"mlang"="native, builtin"
"mshtml"="native, builtin"
"msimtf"="native,builtin"
"msxml3"="native,builtin"
"riched20"="native,builtin"
"riched32"="native,builtin"
"secur32"="native, builtin"
"shdoclc"="native, builtin"
"shdocvw"="native, builtin"
"shlwapi"="native, builtin"
"url"="native, builtin"
"urlmon"="native, builtin"
"usp10"="native, builtin"
"uxtheme"="native,builtin"
"wininet"="builtin"
"wintrust"="native, builtin"
"xmllite"="native, builtin"

DLL Overrides can be set in winecfg, just run winecfg from your favorite terminal and then go to Libraries and set the above DLL's as shown above.


You will also need to copy a number of DLL's from a Windows XP machine and place them in /system32 as winetricks doesn't provide these DLL's at this time.

msctf.dll
msimtf.dll
uxtheme.dll

Winetricks

Now download winetricks if you don't already have it and install the following Windows redistributables.

corefonts
gdiplus
msls31
msxml3
riched20
riched32
tahoma

IE 8 install in Wine

Download Windows Internet Explorer 8 for Windows XP from Microsoft and save it to your home directory.

Now open a terminal and run $ wine IE8-WindowsXP-x86-ENU.exe

The IE 8 install should now start, I didnt select the Windows security updates in my install.

IE 8 on Wine Screen Shots

Here's a few Screen Shots of IE 8 running on my Ubuntu 8.04 laptop.

Wine-Review.net rendered with Internet Explorer 8
Internet Explorer 8 Internet options
Google searh and about Internet Explorer 8
Internet Explorer 8 Developer Tools


Conclusion and known problems

While IE 8 will run and render web pages just fine there is still a large number of problems/bugs that remain to be resolved before you will want to use the browser on Linux on a daily basis.

Bookmarks and RSS feeds don't currently work and their is a number of problems related to comctl32.dll for example the forward and backward buttons background isn't painted and even worse if you select Help the browser will lock up. I also had a number of lock ups when trying to save Internet options.

Their are also major problems with comdlg32.dll the address and search bars don't accept input at this time, so what ive done is set Google as my homepage and then go from there.

You can easily do this in the user.reg file, just change the start page to what you want your home page to be. Here is what I have as a example :

[Software\\Microsoft\\Internet Explorer\\Main]
"Start Page"="http://www.google.com/ncr"

You can however view web pages, and navigate around a site to see how well it renders with IE 8 if your a web developer.

One way to help support further development of Internet Explorer is to purchase CrossOver Office and then vote for IE 8 as the app that you would most like to see supported in a future release.

You can use ( WeaveMe ) as your Promo Code in CodeWeavers store you will save 25% off CrossOver for Mac or Linux!

42 comments:

Anonymous said...

Why would anyone want to use IE8 anyway? Even if you run Windows, IE8 is far from the best choice for a web browser!!!

Anonymous said...

Why?? Whats the point in running Internet Explorer in Linux, I cannot fathom one single reason.

. . . said...

I tried installing it here but it said my computer NEEDS the update. If I uncheck the "Install updates" box, setup closes. If I leave it checked, setup fails. Any clues? I am using wine-1.1.31, Ubuntu 9.10.
I've installed only riched20, because winetricks says it already includes riched32. riched30 is a separate download, tough.

Anonymous said...

Interesting post, i can understand why you might want to do this from a web development perspective (to have multiple browsers to test with). however you may not have read the IE8 eula which says:
"You may not use it if you do not have a license for the software. You may use this supplement with each validly licensed copy of the software." (software being a legal copy of windows) so installing on linux/wine is prohibited as you are not using IE8 with windows.

I imagine you just pressed "I agree" without reading the eula
(many of us do that), but you may want to at least put a disclaimer in the post for people who do worry about licensing issues.

FewClues said...

Unless you want to run a Virus Honeypot why would you install IE on a computer that already has the leading browser on it? This is just plain stupid day dreaming on the part of Windows developers.

Eric said...

One of the reason to install IE on Linux is that some websites (like my bank website in China) require IE with some specific activeX.
Maybe there are some solution with Firefox to trick the website but so far I did not find it...
And I really need to be able to access my internet banking!

Anonymous said...

Eric: post the link to the China bank..

Anonymous said...

There are some very logical reasons why a person may want to run IE8 on linux. There are some large web-based payroll applications, and web-based legal invoicing services to Fortune 500 companies, and web-based vendor accounting services that will only function with IE. Basically, many insurance, legal, and accounting services where huge amounts of money gets moved and reported in thousands of transactions per days, may all require IE.

Eric said...

Here is the link of the Chinese bank :
https://mybank.icbc.com.cn/icbc/enperbank/index.jsp

mfuhrer said...

I run Internet Explorer on Linux in order to use my company's OWA (Outlook Web Access) website for email. I can use this site in Firefox, but not surprisingly, many features are disabled unless you access it in Internet Explorer. Unfortunately, OWA requires https access, which does not yet work for me under wine 1.1.29 when running Internet Explorer 7 (and presumably IE8, unless someone can confirm otherwise). IE6 under wine can access https sites fine, so I'm still stuck using this older version.

Claudiu said...

Some stupid fscking banks in Romania also require IE for Internet Banking. I wonder whether the EU Council is aware of this limitation to the customers. This is the main reason I looked for an IE on linux solution in the first place. I could ditch Windows if I had IE on my linux laptop.

Philippe said...

Have you found a solution to the problem of the require update ? I'm facing the same issue, the setup ask for an update of the system and either fail or ask for manual update. Any solution ?

Thank you

Timothy Madden said...

On slackware, after compiling from source, I get

Setup could not verify the integrity of the files needed for
installation. Make sure the Cryptographic service is running on this
computer


Looks like it does not happen on all systems. How do I get past this ?

Sivatheja said...

Hi,

I got a couple of problems while proceeding with the above post. Fist was that the 'exe' files could not be downloaded, and I've downloaded and placed them manually in '.winetricks' folder. The installation successfully completed, but when IE8 is started at terminal, am receiving the following error.

fixme:ntdll:NtConnectPort (0x5ada1170,L"\\ThemeApiPort",0x33f2fc,(nil),(nil),(nil),0x33f30c,0x33f308),stub!

Am stuck here. Any clues?

Thankyou,
Sivatheja.

Cycron said...

I run the .exe file and it has an "extracting files" window, then it pops up and says:
Setup could not verify the integrity of the files needed for installation.
Make sure the Cryptographic service is running on this computer.


Help! I'm on Ubuntu 9.10.

AccesInterzis said...

I run "wine IE8-WindowsXP-x86-ENU.exe" in the terminal and I get this message "wine: could not load L"C:\\windows\\system32\\IE8-WindowsXP-x86-ENU.exe": Module not found
". Any suggestions?

twickline said...

AccesInterzis, This looks like a typo. Make sure your in the directory where the installer is and it's spelled correctly.

Anonymous said...

The reason you might want to install IE is because some commercial software will only run on IE. That is the only reason for me to want to install it.

Stormware Studios said...

This is a fantastic tutorial, and invaluable to any web developers out there who (1) *must* consider all browsers when developing websites for clients, and (2) are not yet committed to switching to Linux.

memo said...

thank you for this cool tutorial ..
however, not all files do exist in wine, i mean the list of files at the begining of this tutorial, like the file iexplore does not exist .. I tried to copy/paste these missing files from my usb drive (Which contains these files from a windows xp installation) but the lib/wine folder does not accept paste, how can i add missing files. thanx so much in advance

twickline said...

memo :

You would copy the files to $USER/.wine/drive_c/* not to lib/wine

Cheers,
Tom

memo said...

hi Tickline,
thank you for your reply,
I can't find the path you're talking about, instead I can find this one :
/home/administrator/.wine/dosdevices/c:/windows/system32
i'm at it now, should I copy the missing Dlls into this path or not ?
thank you for your efforts ..

twickline said...

Yes thats the correct directory, if their is a wine dll there already its a good idea to just rename it, to say .bak as a backup.

memo said...

Tom,
are you sure that I should place the missing files into $USER/.wine/drive_c/* ?
because I have noticed that other files which exist in the (New override for library) drop down box, these files locates inside /usr/lib/wine folder (with a name like this : browseui.dll.so) so these files do not reside in $USER/.wine/drive_c/* folder, this path that you provided contains the three files you've listed above (msimtf.dll, uxtheme.dll and msctf.dll) but not the ones that exist in the library override drop down box in wine. so I found out that I should copy the files to /usr/lib/wine , I'm sorry for bothering you, correct me if I'm wrong !

twickline said...

memo,

Your wrong, /usr/lib/wine dlls are the builtin wine dlls,

$USER/.wine/drive_c/* is where native windows dlls go...

If you copy them into /usr/lib/wine and overwrite the dlls there you will not have any builtin dlls.. They will only be native. OK?

Thats why you have native, builtin, and disable... disable is if you dont want the app to use a dll :)

Tom

memo said...

Hi Tom,
I did exactly what you told me, but I faced this error message :
"Setup
could not verify the integrity of the files needed for installation. Make sure
the Cryptograp" I googled a lot and I found this patch for this bug :
http://bugs.winehq.org/show_bug.cgi?id=21893
how can i apply this patch for my wine (the version I have is 1.0.1 ) ?
there is no single instruction of this page on how to apply the patch !!

twickline said...

memo,

use a newer version of Wine and the patch isnt needed. :)

Tom

memo said...

hi Tom,
I have installed the latest version of Wine (1.1.41) followed the instructions exactly, however, when I run the command : wine IE8-WindowsXP-x86-ENU.exe a small loading box comes up and starts to load until it stops and displays the message: windows internet explorer 8 is required in order to run this installation ...
this is so weird :( I tried everything possible ... what the hell is going on !!

twickline said...

Hello,

You have three other options, this is for IE 7 not IE 8 BTW...

1) purchase CodeWeavers CrossOver for $69.95 and install IE 7

2) purchase Bordeaux for $20.00 and install IE 7

3) install IE 7 with winetricks, but with this option your on your own.. No support.

Leif_Bork said...

You need it e.g. if you make webapps where most customers are customers from all over the world that mostly use IE and you can't force them to change their browser.

Microsoft ignores standards with IE, and therefore, if the previous applies, even when you have tested stuff thoroughly in other browsers, everything has to be retested specifically in IE, if the webapp should have some chance of working.

Brandon said...

Why would someone want to run IE8, I'll give one to you. Testing, majority of computer users worldwide use IE. Given the fact that IE doesn't completely comply with w3 makes it even more important to test on it.

Ferchope said...

I encountered this error "Call from 0x7bc4afa0 to unimplemented function msvcrt.dll.??_U@YAPAXI@Z, aborting".any ideas

Gary Broughton said...

Harking back to the question as to why anybody would want to use IE8 on Linux...

I've been working with UNIX since 1985 as an administrator and programmer, but have also been working with Windows since the early 90s. Windows has, traditionally, been far more user friendly than UNIX. Just setting up X-Windows on UNIX was, once, a challenge and certainly no task for the average user. It was not ideal for a desktop machine unless you were a geek (I'm putting my hand up here).

This is no longer the case. Ubuntu 10.04 is quite a sophisticated implementation. I would much rather use Ubuntu than Windows, but the reality is that my bread and butter is earned through my work with Oracle's Siebel CRM. This is a three tiered system with a DB, Application and Web server. The client is Microsoft IE, and only Microsoft IE, versions 5.5, 6, 7 and 8. The interactivity is heavily dependent on Active X components. Any other browser provides only very low interactivity for the user (in my implementation, low interactivity is not supported anyway). So, in my world, I would love to run IE8 on Wine and clearly have good reasons for it. But, alas, the EULA does not allow it in the first instance and in the second instance, from what I've read here, IE8 on Wine is far too buggy. The best I can hope for at this time is IE8 on Windows in a virtual machine hosted by Linux. But then, I might as well just use Windows 7.

Jakub Łukomski said...

Regarding reasons to use IE under Linux, one more very important one is web development - being able to check how the site looks and behaves in ALL browsers (and unfortunately this includes IE) is very important.

Anonymous said...

If you have a legal copy of 2003 or xp you can just load that in VirtualBox OSE. Some gotchas I found in the install on the latest Debian, but after poking around I found the virtualbox-ose-modules guest package for my kernel and it worked. With 128 MB alloted for memory and a 5G virtual disk I got IE8 plus Winamp and Norton AV running just fine. Sure beats fighting all the stuff listed here. Wine is great for Sol and Freecell and Quicken and a bunch of stuff I haven't done lately. For some reason no one has been able to duplicate the card appearance for Windows Solitaire and the other versions hurt my eyes.

Mysterious Stranges said...

I need IE8 to test on it, this is a common developer need

I am also unable to execute the installer (kubuntu-10.04), as during install it forces me to install updates, which it cannot install.

Mysterious Stranges said...

@AccesInterzis: run winecfg , it osuynds liek you wine is unitialized and doesn't have any drives defined. This seemed to me to be a result of a change in syntax for drives drom drive_c to c:/ in the wine structure

Anonymous said...

To the people asking why anyone would want to run IE8 in Linux, you are clueless.

Websites and apps don't build themselves. Developers build them and they need to test them so they run on IE8 for ignoramuses like you! And most developers don't develop on Windows cause it's a terrible OS and far from the production environment where their code will run.

Any questions? I think not!

Ayesha Sadiq said...

You have done a marvelous job! I am really inspired with your work.

Kefas said...

Being able to run Internet Explorer on GNU/Linux or Unix systems would mean "even Microsoft native programs can be run outside of Windows". This will shut up those people who claim that GNU/Linux have very limited softwares that it can run. And I hope Wine becomes more and more capable of running Windows games and other programs, so that Windows become less and less usefull. I have nothing against Windows other than the fact it stands for monopoly/hegemony/ignorance/restriction/vendor-lockin.

Preston said...

Look at all these people who can't fathom why anyone would want to use IE8. It doesn't really take much though to figure it out. Web developers need to test their applications in Internet Explorer. I setup AWStats on one of my web applications and it says that over 60% of our clients are using IE and 80% of the clients who use IE are using IE6. The reason I found this page is that my company bought a time reporting web application that does not work in Firefox, Chrome, Opera, or Safari. Now that was definitely a mistake but it's a mistake that I have to deal with and to deal with it, I'm installing IE on Fedora. So those out there who say, "There's no reason for this because my way is the right way and there is no reason to do it differently", your reality is small, boring, and not real at all.

bkef said...

I have a reason for the installation of IE8 on Linux, ActiveX! Understand that these objects could potentially present security risks, but some people (myself included) have to use webpages that use ActiveX and to my knowledge there aren't too many other alternatives. :(