Browsers

FEB 3 2006

IE 7 beta 2 standalone
Author: Joe Maddalone

  1. Download the IE7 Beta 2.
  2. Extract the executable to it's own directory with winRar
  3. Delete or rename shlwapi.dll
  4. Create empty file named IEXPLORE.exe.local
  5. Run iExplore.exe from that directory.


13 Comments

SEP 14 2005

Content-Disposition over HTTPS
Author: Joe Maddalone

I had to do a bit of research on this, but think I have it resolved.
If you have ever tried to deliver a dynamically generated file in realtime over SSL, you've seen this problem. Not something everyone deals with, but I know I had a lot of trouble finding a solution so I thought I'd give it a quick write up.

This is apparently a bug in IE since IE 4.0, and as of yet still not patched.

Anyways – here’s an MS article documenting the problem, Clicky

Basically delivering dynamically generate files in real time over HTTPS and with IE as a client ends up delivering a message to the user about downloading the entire URL that is generating the file

The article didn’t solve my problem, but some further reading led me to find out the following solution:

Solution

When delivering a dynamic file over HTTPS, using

content-disposition … attachment; filename=….

Be sure to use
Cache-Control: max-age=0
Instead of
Cache-Control: no-cache

Plain and simple, but not so well known.

1 Comments

SEP 10 2005

Conditional Comments
Author: Manfred Staudinger

With a small one time change CC will work again and recognize the values 5, 5.0, 6 and 6.0, again; however, it will not recognize 5.5.

How is it done? Go to the registry and look in HKLM\Software\Microsoft\Internet Explorer\Version Vector\ for the key "IE". Simply get rid of it by renaming it to "zIE" - that's it!

You can test it yourself or by using this small piece of html: http://staudinger.heim.at/Test/cond_0.html

Versions of version: technical information.

As I had installed IE 6.0, I looked into the registry for its version number "6.0.2800.1106" and found 7 entries in HKLM, 3 of them belonging to the key "Internet Explorer": Wizard Version, Version and Build.

I looked also into the module iexplore.exe and found this information 4 times. All these 11 occurrences appear to be character data with minor variations in format, but no one was compatible with the design for the CC!

So to meet the specifications, a new structure was created, the "Version Vector". IE reads the information (currently 5.0002, 5.5000, or 6.0000) from there when it is started: if the program cannot find it, it gets the information from the module. This also means that IE has to be closed and restarted to get the change. Now in case of IE 5.5 we can see the incompatibility which forced the creation of a new structure: CC gives true for "gte IE 5.999" and "lte IE 5.9990"! As CC cannot be nested there is no way to identify IE 5.5 properly. To see this run the above mentioned test. For better understanding CC you might want to read About Conditional Comments

I have tested quite a lot on my Win98, but as the whole structure was build exclusively for CC, I would expect no real problems with later versions.

Works on windows 2003 and XP (SP1) as well, hoping to hear from other testers soon!

4 Comments

SEP 10 2005

Multiple IEs Review
Author: Joe Maddalone

Sorting Out The Methods...

Microsoft Internet Explorer comes with a fairly comprehensive, although sparsely documented, Object Model. If you've used the Web Browser control in projects, you are already familiar with the capabilities of IE's Object Model. All of the functionality in IE's object model (not counting external support, like scripting support etc.) is provided by the following files:

  • shdocvw.dll (Microsoft Internet Controls)
  • mshtml.tlb/mshtml.dll (Microsoft HTML Object Library)

In the Windows OS there is a function called LoadLibrary

The LoadLibrary function maps out the DLLs to use for any given Windows application

Back in October of 2003 I stumbled upon what is called Dynamic-Link Library Redirection, in the form of a mysterious file included the Eolas version of IE called "iexplore.exe.local"

The LoadLibrary function changes it's search sequence if a redirection file is present. If a path is specified and there is a redirection file for the application, these functions search for the DLL in the application's directory. If the DLL exists in the application's directory, these functions ignore the specified path and load the DLL from the application's directory. If the module is not in the application's directory, these functions load the DLL from the specified directory

The .local file tells the Windows loader that it should look in the same directory as the executable for any DLLs or COM objects used. Since IE basically consists of a frame window (implemented in IEXPLORE.EXE) which loads the WebBrowser control (part of SHDOCVW.DLL), you need to ensure that IEXPLORE loads the right version of MSHTML.DLL/MSHTML.TBL and the other associated components, which is what the .local file forces.

The reality of this is that if you have IEXPLORE.EXE, MSHTML.DLL/MSHTML.TBL in a directory with an empty explorer.exe.local file you'll have a relativley represenative version of how that browser renders HTML, inside a modern GUI

But wouldn't you know it, us spoiled developes/designers want proper UA strings, and proper DX filters, and Working favorites Menus, etc.

The upcoming solutions will provide not only the proper CSS/HTML rendering but also working Favorites Menus across any version of IE, meaning that if you add a new Favoite in one it wil appear in the others.

Also - the GUI will be the GUI of the version of IE that you have installed as your system web browser (Ideally IE 6).

The singular downside so far is that right-clicking has completley eluded me.... If anyone knows which DLL controls this, please drop me an email

Files to be used

  • IE 6 (Eolas version)-----No longer available from Microsoft but archived by my good friend Ryan
  • IE 5.5 w/ SP2
  • IE 5.0 w/ SP2
  • IE 4.01 w/ SP2 -------- All currently available at http://www.browsers.evolt.org

4 Comments

SEP 10 2005

Multiple IEs in Windows
Author: Joe Maddalone

Introduction

I, like so many other's, have struggled with ways to test designs, css, etc. in multiple versions of Internet Explorer.

Usually the only solutions were to have multiple OS's installed on multiple partitions, or running some sort of emulation software such as VMWare.

While working on a project recently that I realized at the last second would be running in Internet Explorer 5.5, I had an immediate need to test this application in this browser.

Essentially this whole thing was stumbled upon out of necessity and a lawsuit that Microsoft lost.

The Lawsuit

The lawsuit involves a patent which it was deemed Microsoft had infringed upon. Details about it can be viewed here. http://www.microsoft.com/presspass/press/2003/oct03/10-06EOLASpr.asp

A new version of Internet Explorer is going to be released next year that will remedy the issue.

Microsoft has since put out a developer's edition of Internet Explorer 6 with this update in place for testing purposes available at msdn http://msdn.microsoft.com/ieupdate/

The Stumble

Now, being with a forward-thinking company (Insert Title Web Designs), I jumped on the opportunity to begin testing against this new version

One thing that struck me is that the testing version ran side by side my already installed version. This was incredibly interesting. Also the fact that it was only a handful of files that made this browser version run was also interesting.

  • browseui.dll
  • dispex.dll
  • ieupdate.txt
  • iexplore.exe
  • IEXPLORE.EXE.local
  • inetcpl.cpl
  • jscript.dll
  • mshtml.dll
  • mshtml.tlb
  • shdocvw.dll
  • urlmon.dll
  • vbscript.dll
  • version.txt
  • xpsp2res.dll

Now while testing how this new version will effect flash movies I was prompted with an alert that read

"Press okay to continue loading content" - this is essentially what we have to contend with due to this lawsuit.

Now, also being the curious type, I wondered about this "IEXPLORE.EXE.Local".... so I deleted it.

I now saw that this message about "Press Ok to load content" was gone when loading a flash movie and soon realized that this "IEXPLORE.EXE.local" file was the one thing that was allowing the browser to run separate from my default browser. Wow!

I immediately went to http://browsers.evolt.org and downloaded an older versions of IE, which is well-known for being the cause of many CSS designer's headaches... IE 5.5.

After downloading this, I knew that by installing it I would be overwriting my existing version of IE, so I hunted through the installation files.

And after much debate and discussion on the web, I think I have some of these browsers running perfectly as they should... imperfectly!

The Process

Safest Universal Technique (XP Pro/XP Home/2000)

Find the following files in the installation files of IE 5.01 or IE 5.5 SP2

  • IENT_S1.CAB
  • IENT_S2.CAB
  • IENT_S3.CAB
  • IENT_S4.CAB
  • IENT_S5.CAB

Use WinRar extract theses files to a new directory.

Then do the same with the resulting files

  • IENT_1.CAB
  • IENT_2.CAB
  • IENT_3.CAB
  • IENT_4.CAB
  • IENT_5.CAB

Next delete the following files

  • SHLWAPI.DLL
  • COMCTL32.DLL(found this in IE 4.01 SP2, which I am working on now)

And finally create a blank text file named... you guessed it... "IEXPLORE.exe.local"

And BAM!!! - you got yourself a standalone version of IE!

Windows XP Pro IE 5.01 - Optimized

Find the following files in the installation files of IE 5.01

  • IENT_S1.CAB
  • IENT_S2.CAB
  • IENT_S3.CAB
  • IENT_S4.CAB
  • IENT_S5.CAB

Use WinRar extract theses files to a new directory.

Then do the same with the resulting files

  • IENT_1.CAB
  • IENT_2.CAB
  • IENT_3.CAB
  • IENT_4.CAB
  • IENT_5.CAB

Next delete all but the following files

  • BROWSEUI.DLL
  • DISPEX.DLL
  • IEXPLORE.EXE
  • INETCPL.CPL
  • INETCPLC.DLL
  • JSCRIPT.DLL
  • SHDOCVW.DLL
  • SHDOCLC.DLL
  • URLMON.DLL
  • and the following 2 thanks to Roger Ly
  • MSHTML.DLL
  • MSHTML.TLB
  • and another late finding by myself (these provide text highlighting and form interaction)
  • MSHTMLED.DLL
  • MSHTMLER.DLL

And finally create a blank text file named... you guessed it... "IEXPLORE.exe.local"

And BAM!!! - you got yourself a standalone version of IE5.01!

Windows XP Pro IE 5.5 SP2 - Optimized

Find the following files in the installation files of IE 5.01

  • IENT_S1.CAB
  • IENT_S2.CAB
  • IENT_S3.CAB
  • IENT_S4.CAB
  • IENT_S5.CAB

Use WinRar extract theses files to a new directory.

Then do the same with the resulting files

  • IENT_1.CAB
  • IENT_2.CAB
  • IENT_3.CAB
  • IENT_4.CAB
  • IENT_5.CAB

Next delete all but the following files

  • BROWSEUI.DLL
  • DISPEX.DLL
  • IEXPLORE.EXE
  • INETCPL.CPL
  • INETCPLC.DLL
  • JSCRIPT.DLL
  • SHDOCVW.DLL
  • URLMON.DLL
  • and the following 2 thanks to Roger Ly
  • MSHTML.DLL
  • MSHTML.TLB
  • and another late finding by myself (these provide text highlighting and form interaction)
  • MSHTMLED.DLL
  • MSHTMLER.DLL

And finally create a blank text file named... you guessed it... "IEXPLORE.exe.local"

And BAM!!! - you got yourself a standalone version of IE5.5 SP2!

One thing is that the "Favorites" will cause either to crash

And while the about screen may have info showing IE 6.0 the browser is rendering as IE5 or 5.5.

Screenshots

Pass it along

Please spread the word about this, I'd like to see others testing and improving on these techniques

Email me at: joe@insert-title.com

Additional Considerations

These are essentially additional files that you may want to include into your optimized version of IE, these concepts have not yet been verified by myself or anyone at Insert Title Web Designs, and therefore please use caution when testing these out. Or when in doubt just use all the files and delete only those mentioned in the Safest Universal Technique (XP Pro/XP Home/2000)

c/o Reed Wiedower

My website (http://peyser.com) uses the .png transparency hack detailed at WebFX:

http://webfx.eae.net/dhtml/pngbehavior/pngbehavior.html

Unfortunately, once I setup IE5.5 to see my webpage, the transparency effect didn't work. I figured out that the two .dll files needed to enable it to function properly are:

  • DXTMFST.DLL
  • DXTRANS.DLL

Once I copied those two files into the proper directory, IE5.5 displayed the website as it should.

189 Comments


LATEST POSTS

Portfolio of the Future Just a random bit of sketching I was doing. Random things this month On my way to the interwebs I recall all I have learned today. CSV Splitter Reinventing the wheel one app at a time. Competetive Data Scraping Not yet an Olympic sport. Date Image Thing GDI+ to overprocess blog post dates!

ADS

MOST POPULAR

Multiple IEs in Windows Firefox Vs. The World Who Is Xperya? ActionScript Form Fields Quick Watermark IE 7 beta 2 standalone Text Link Ads

IP Address Tool Chicago Web Design Free Text Messaging