Wednesday, April 01, 2009

Cookie sharing between processes in Internet Explorer

If you installed IE8 and tried running two separate Sitecore sessions in different processes, you may have experienced this as well.
IE8 shares the cookies between two different processes (windows) now so this may bring you inconvenience especially during the development process.

There are solutions out there which address the problem with special "-nomerge" parameter, but I decided to apply the registry fix directly so all my IE launches will not use this new "FrameMerging" feature that supposedly improves performance.

Related reading:

Registry fix from the article above:
HKCU\software\microsoft\internet explorer\main - FrameMerging = DWORD:0

Update 2/29/2012:

The registry key that disables this mess once and forever is actually called “SessionMerging” which can be found under:
HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main
SessionMerging = DWORD:0

Works for IE9 too!


Mark Cassidy said...

Uff. Thanks for the heads-up. This could easily be the most annyoing change ever :S

sitecore said...

Supposedly this is for consistency - unless otherwise specified (such as with -NoSessionMarging or the File > New Session command), all IE processes merge and all share a single (client data) session.

My interprettion is that you could also use -NoSessionMerging or the equivalent registry key for slightly better performance, but I don't have time to understand the exact difference. It sounds like the -NoFrameMerging flag (or NoFrameMerging registry entry) is equivalent to -nomerge, and -NoFrameMerging does whatever -NoSessionMerging does and more. It also sounds like setting hkcu\software\microsoft\internet explorer\main dword TabProcGrowth to 1 causes each tab to get its own client data session?

Reports from people using different configurations would be interesting.