Freigeben über


Bugs in IE8's Lookahead Downloader

All bugs mentioned in this post are now fixed

Internet Explorer has a number of features designed to render pages more quickly. One of these features is called the "Lookahead Downloader" and it's used to quickly scan the page as it comes in, looking for the URLs of resources which will be needed later in the rendering of the page (specifically, JavaScript files). The lookahead downloader runs ahead of the main parser and is much simpler-- its sole job is to hunt for those resource urls and get requests into the network request queue as quickly as possible. These download requests are called "speculative downloads" because it is not known whether the resources will actually be needed by the time that the main parser reaches the tags containing the URLs. For instance, inline JavaScript runs during the main rendering phase, and such script could (in theory) actually remove the tags which triggered the speculative downloads in the first place. However, this "speculative miss" corner case isn't often encountered, and even if it happens, it's basically harmless, as the speculative request will result in downloading a file which is never used.

IE8 Bugs and their impact
Unfortunately, since shipping IE8, we've discovered two problems in the lookahead downloader code that cause Internet Explorer to make speculative requests for incorrect URLs. Generally this has no direct impact on the visitor's experience, because when the parser actually reaches a tag that requires a subdownload, if the speculative downloader has not already requested the proper resource, the main parser will at that time request download of the proper resource. If your page encounters one of these two problems, typically:

  • The visitor will not notice any problems like script errors, etc
  • The visitor will have a slightly slower experience when rendering the page because the speculative requests all "miss"
  • Your IIS/Apache logs will note requests for non-existent or incorrect resources

If your server is configured to respond in some unusual way (e.g. logging the user out) upon request of a non-existent URL, the impact on your user-experience may be more severe.

The BASE Bug

Update: The BASE bug is now fixed.

The first problem is that the speculative downloader "loses" the <BASE> element after its first use. This means that if your page at URL A contains a tag sequence as follows:

<html><head><base href=B><script src=relC><script src=relD><script src=relE><body>

which requests 3 JavaScript files from the path specified in "B", IE8's speculative downloader will incorrectly request download of URLs "B+ relC", and "A+ relD" and "A+ relE". Correct behavior is to request download of URLs "B+ relC", "B+ relD", and "B+ relE". Hence, in this case, two incorrect requests are sent, usually resulting in 404s from the server. Of course, when the main parser gets to these script tags, it will determine that "B+ relC" is already available, but "B+ relD", and "B+ relE" have not yet been requested, and it will request those correct two URLs and complete rendering of the page.

At present, there is no simple workaround for this issue. Technically, the following syntax will result in proper behavior:

 <html><head><base href=B><script src=relC><base href=B><script src=relD><base href=B><script src=relE><body>

...but this is not standards-compliant and is not recommended. If the page removes its reliance upon the BASE tag, the problem will no longer occur.

Remember: The BASE bug is now fixed.

The Missing 4k Bug

Update: The 4k bug is now fixed

The second problem is significantly more obscure, although a number of web developers have noticed it and filed a bug on Connect. Basically, the problem here is that there are a number of tags which will cause the parser and lookahead downloader to restart scanning of the page from the beginning. One such tag is the META HTTP-EQUIV Content-Type tag which contains a CHARSET directive. Since the CHARSET specified in this tag defines what encoding is used for the page, the parser must restart to ensure that is parsing the bytes of the page in the encoding intended by the author. Unfortunately, IE8 has a bug where the restart of the parser may cause incorrect behavior in the Lookahead downloader, depending on certain timing and network conditions.

The incorrect behavior occurs if your page contains a JavaScript URL which spans exactly the 4096th byte of the HTTP response. If such a URL is present, under certain timing conditions the lookahead downloader will attempt to download a malformed URL consisting of the part of the URL preceding the 4096th byte combined with whatever text follows the 8192nd byte, up to the next quotation mark. Web developers encountering this problem will find that their logs contain requests for bogus URLs with long strings of URLEncoded HTML at the end.

As with the previous bug, end users will not typically notice this problem, but examination of the IIS logs will show the issue.

For many instances of this bug, a workaround is available-- the problem only appears to occur when the parser restarts, so by avoiding parser restarts, you can avoid the bug.  By declaring the CHARSET of the page using the HTTP Content-Type header rather than specifying it within the page, you can remove one cause of parser restarts.

So, rather than putting

<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8">

In your HEAD tag, instead, send the following HTTP response header:

Content-Type: text/html; charset=utf-8

Note that specification of the charset in the HTTP header results in improved performance in all browsers, because the browser's parsers need not restart parsing from the beginning upon encountering the character set declaration. Furthermore, using the HTTP header helps mitigate certain XSS attack vectors.

Unfortunately, however, suspension of the parser (e.g. when it encounters an XML Namespace declaration) can also result in this problem, and it's not feasible for a web developer to avoid suspension of the parser.

But, remember: The 4k bug is now fixed

Summary
While these problems are significant, they are not so dire as some readers will conclude at first glance. The second bug, in particular, is quite rarely encountered due to its timing-related nature and the requirement that page have a JavaScript URL spanning a particular byte in the response. Encountering the second issue is not nearly as prevalent as some web developers believe-- for instance, we've heard claims that IE6, 7, and Firefox all have this problem, which is entirely untrue. Readers can easily determine if a page is hitting either bug by examining server logs, or watching network requests with Fiddler.

The IE team will continue our investigation into these bugs and, as with any reported issues, may choose to make available an IE8 update to resolve the issues.

Remember: All bugs mentioned in this post are now fixed

Apologies for the inconvenience, and thanks for reading!

-Eric

Comments

  • Anonymous
    July 28, 2009
    The comment has been removed

  • Anonymous
    July 28, 2009
    @ScottS: I assume you're saying you hit the 4k issue, and not the "BASE" issue, as the latter will occur reliably on every request. If you can send me the HTML (or a network capture: www.fiddler2.com) of the affected page, I'll have a look to see if there's any other cause for the parser restart. Email me at microsoft.com, username ericlaw

  • Anonymous
    August 02, 2009
    The second bug is an issue for all developers who align their code to 4096 bytes in order to make it run faster on Win98 :o)

  • Anonymous
    August 03, 2009
    Thank you Eric for such a comprehensive analysis. I emailed you a few weeks ago about this issue. This is great to see that you guys found the root cause of this problem that is indeed obscure.

  • Anonymous
    August 06, 2009
    The comment has been removed

  • Anonymous
    August 11, 2009
    Glad to see you tracked down this bug. Thanks for your detailed explanation on all this. Do you have an estimation on when the fix will be available ?

  • Anonymous
    August 11, 2009
    Also beware that the problem can also occurs for resources other than JavaScript. For example CSS and shortcut icon : <link rel="stylesheet" href="path-to-stylesheet.css" type="text/css" media="all" /> <link rel="shortcut icon" href='path-to-favicon.ico' />

  • Anonymous
    August 14, 2009
    The comment has been removed

  • Anonymous
    August 20, 2009
    The comment has been removed

  • Anonymous
    August 20, 2009
    The comment has been removed

  • Anonymous
    August 21, 2009
    @CG: Comments with URLs in them are often blocked as spam. However, before you resend, please understand two factors: 1> This is a bug. A plain old boring bug. Bug. You need not bother quoting the HTML spec to show that it's a bug. Everyone agrees that it's a bug. 2> You seem to assume that the user will see or be redirected to an error page due to this bug. That's not the case, as the result from the failed lookahead download is simply discarded because the parser uses the proper URL.

  • Anonymous
    August 21, 2009
    The comment has been removed

  • Anonymous
    August 21, 2009
    As noted, please see my comment above.

  • Anonymous
    August 21, 2009
    Sigh... but I have documented and personally seen that in the case of a secure site, this bug WILL cause the display a 404 to users... because of this bug.  But, you've made up your mind.. so I'll move on.

  • Anonymous
    August 21, 2009
    @CG: I'm more than happy to look at any repros, but if you see a redirection to a 404 page, it's not related to this bug. www.fiddlercap.com shows how to gather a network capture for me to look at, if it's not a public site.

  • Anonymous
    August 25, 2009
    In thinking on how to collect info on this bug, I realized that this problem can be reproduced using the standard J2EE web app security constraints. Here's a demo site with downloadable code (since none of it's proprietary). http://www.skylarking.org:8180/ie8-bug Note the port number and that since it's running on my personal server via RR, I may pull the plug on this in a few weeks or so.  

  • Anonymous
    August 25, 2009
    The comment has been removed

  • Anonymous
    August 25, 2009
    The comment has been removed

  • Anonymous
    August 25, 2009
    @CG: Thanks for the clarification. If the architecture used on your site was widespread, it's unlikely that it would have taken this long to discover; it would have likely been discovered in one of the beta cycles. As it stands, it's still a significant bug, both for the corner cases where there is an end-user impact, but also for the performance implications. Lookahead downloading is intended to make the browser faster, not slower. :-)

  • Anonymous
    August 27, 2009
    My beautiful, long-in-the-making, highly admired, highly sophisticated, super secure business application has suddenly been rendered unusable by the 'base tag' bug. At least there is Firefox... Is there going to be a fix (?)

  • Anonymous
    August 27, 2009
    CG: before the days of stick everything in session variables, typically you rediected people to /login?ref=/secureUrl. This is also causing us issues where its causing an extra 20 requests ( for all the .js files ) to our app servers for each page request.

  • Anonymous
    September 01, 2009
    The Missing 4k Bug: The article states: "By declaring the CHARSET of the page using the HTTP Content-Type header rather than specifying it within the page, you can remove one cause of parser restarts." Eric in an email: "Unfortunately, another known cause of parser restarts is use of XML namespaces, which your site appears to use." So if you use XHTML the 4K issue can occur!

  • Anonymous
    September 02, 2009
    The comment has been removed

  • Anonymous
    September 03, 2009
    <<A "smart" downloader is only smart...>> David, let me reiterate because clearly you missed it: This is a bug. A plain old boring bug. Bug. Bug. Bug bug bug.

  • Anonymous
    September 03, 2009
    No, I didn't miss the "This is a bug"-part... So, when are we going to see a fix for this, not only boring bug, but a bug killing business for a lot of people?

  • Anonymous
    September 04, 2009
    So much drama here. Harry/David: If one bug in one browser "kills" your business, I think your business suffers from some more fundamental problems. It sounds like you already know how to workaround this problem, and refuse to do so.

  • Anonymous
    September 06, 2009
    @Bob - Why should we not "refuse" to redesign our solution and deploy new code to our customers that doesn't follow standard in order to counter a problem in a faulty browser?

  • Anonymous
    September 08, 2009
    The comment has been removed

  • Anonymous
    September 09, 2009
    The comment has been removed

  • Anonymous
    September 20, 2009
    The ISSUE is how much time you waste in trying to determine if the bug is in the browser, or your software, and then develop a fix. IE yet again proves to be a browser with some evil bad gotchas, which waste valuable developer time. IE 8 is just another release which proves the old adage "Lets make the site work for standards compliant browsers, and then we will fix it for IE" Too bad you can't invoice MS for your wasted hours. I'm having to track down a different IE-8 related bug... :P

  • Anonymous
    September 21, 2009
    Eric- is there a more exhaustive list of tags that can cause the lookahead downloader to reset?  Our web-app doesn't use the BASE tag, and rarely uses the meta tag to set the charset, which we're already specifying in the HTTP headers.  I'd love to reduce the amount of spam our error tracking software generates, thanks to the 404s, and every little bit helps.

  • Anonymous
    September 21, 2009
    @Tim: Unfortunately, as @hofstee mentioned, I believe that XML Namespace declarations (commonly used in XHTML) also trigger the restart logic.

  • Anonymous
    September 25, 2009
    @EricLaw Are the base tags, the meta tags, and the XML declarations all that we know so far?  What I'd love to be able to do is go to my developers with a list of problematic tags and say "fix these, and the e-mails will stop."

  • Anonymous
    September 25, 2009
    @Tim: Unfortunately, I wouldn't feel confident in suggesting that XML Namespaces and META tags are the only cause of restarts, because I know very little about the overall parsing architecture. The BASE tag is obviously the biggest cause of incorrect requests, because the incorrect speculative requests due to BASE are not at all related to timing. While unfortunately I'm not able to make any statements or speculations about IE code fixes (either availability or timeframe) I can say that this is an issue that we're getting a significant amount of customer escalations about because the workarounds are unappealing.

  • Anonymous
    September 25, 2009
    @EricLaw: I appreciate everything you're doing for this problem.  Thanks for your help.

  • Anonymous
    September 29, 2009
    And this bug will be fixed when? Thanks.

  • Anonymous
    September 29, 2009
    The comment has been removed

  • Anonymous
    September 29, 2009
    Eric, Sorry, I didn't catch that.  Thanks for responding.

  • Anonymous
    October 02, 2009
    The comment has been removed

  • Anonymous
    October 02, 2009
    @Martin: Does your page use a META CHARSET tag that specifies a character set?  Do you specify any namespaces? In terms of workarounds, I can think of several unappealing ones (e.g. use a comment at the top of the page that pushes all of the relevent script tags out of the 4096th byte).

  • Anonymous
    October 02, 2009
    The comment has been removed

  • Anonymous
    October 02, 2009
    The comment has been removed

  • Anonymous
    October 04, 2009
    The comment has been removed

  • Anonymous
    October 06, 2009
    I am seeing the missing 4k bug about every two minutes on one of my sites.  Sure would like to see a fix. Thanks.

  • Anonymous
    October 12, 2009
    The comment has been removed

  • Anonymous
    October 12, 2009
    @MrMotts: That's a pretty unappealing workaround, but if you were to do it, you'd definitely want to use a proper URL as the HREF.

  • Anonymous
    October 12, 2009
    We're seeing this very frequently on three of our sites.  I've tried all the fixes that I can find suggestions for online, but nothing works.  Any update on where MS is with this would be huge.

  • Anonymous
    October 12, 2009
    I'm getting this too. Come on MS, please give us a fix. I'm potentially missing out on real error notifications because of all the spam generated by this problem.

  • Anonymous
    October 13, 2009
    The comment has been removed

  • Anonymous
    October 13, 2009
    @Bill: Generally speaking, I would expect that to worsen the problem rather than making it better. Using the X-UA-Compatible flag likely causes a parser restart.

  • Anonymous
    October 13, 2009
    Interesting.  I'll leave it be for now and see how often the error comes through.  I think I've only seen 1 since I put it in, but that could just be coincidence. Are there any other work arounds I could try?  I've tried the Content-Type fix among others.  None of them seemed to do the trick. Thanks Eric! -Bill

  • Anonymous
    October 13, 2009
    The comment has been removed

  • Anonymous
    October 13, 2009
    Has anyone heard when or if a fix will be provided? thanks

  • Anonymous
    October 13, 2009
    The BASE bug was fixed in today's Cumulative IE8 Update. http://blogs.msdn.com/ieinternals/archive/2009/10/13/Using-Meddler-to-Simulate-HTTP.aspx @tc, to reiterate on your question about the 4k issue: "Unfortunately I'm not able to make any statements or speculations about IE code fixes (either availability or timeframe). I can say that this is an issue that we're getting a significant amount of customer escalations about because the workarounds are unappealing."

  • Anonymous
    October 14, 2009
    Our users are seeing the 4K bug - it's causing 404 errors - that I cannot reproduce.  Please fix!  My client doesn't want to hear that I can't fix it and we're losing business.

  • Anonymous
    October 14, 2009
    @Jenn: Unless your client is actively monitoring their network traffic, it's unlikely that they are able to observe this problem. For instance, if they're seeing 404 Error Pages, they're not hitting this issue-- your problem is elsewhere.

  • Anonymous
    October 14, 2009
    The comment has been removed

  • Anonymous
    October 14, 2009
    The comment has been removed

  • Anonymous
    October 18, 2009
    RE: <meta http-equiv="X-UA-Compatible" content="IE=7" /> Okay a few more days have passed and we have had a few errors but it seems to have been vastly reduced. So this is not a fix but somehow mitigates the problem slightly.

  • Anonymous
    October 18, 2009
    @JG: What you are seeing is probably some of your javascript references being pushed out of the problem area by the IE7 meta tag. This could be seen as a workaround but not a long term solution since the content in your pages changes anyway with future updates of your site. You can achieve the same result with an HTML-comment of the same length as your IE7 meta tag.

  • Anonymous
    October 18, 2009
    We have had some code in the past that was moving ViewState to the end of the page form to help SEO. I've been applying the same to the WebResource and ScriptResource script tags and can move them to the end of the form to get them away from the 4096th bit but because they are now loaded after, say, some Ajax on the page the Ajax doesn't work. Trying a few things to get this working but for anyone interested this is what we're trying to do...                int startPoint2 = html.IndexOf("<script src="/WebResource.axd?");                if (startPoint2 >= 0)                {                    int endPoint2 = html.IndexOf("</script>", startPoint2) + 9;                    string webresourceInput = html.Substring(startPoint2, endPoint2 - startPoint2);                    int formEndStart2 = html.IndexOf("</form>");                    if (formEndStart2 >= 0)                    {                        html = html.Remove(startPoint2, endPoint2 - startPoint2);                        html = html.Insert(formEndStart2 - (endPoint2 - startPoint2), webresourceInput);                    }                }

  • Anonymous
    October 20, 2009
    For the "Missing 4K bug", I used Response.AddHeader("Content-Type", "text/html; charset=utf-8") in the Page_Load event. But when I view source, I don't see anything about Content-Type. Was I doing it right, or that is just expected? Thanks.

  • Anonymous
    October 20, 2009
    @meta: You're right, it's the expected behavior. The Content-Type directive is added to the HTTP header which can be viewed with excellent tools such as Fiddler (written by the writer of this blog), Firebug or Live HTTP headers among others.

  • Anonymous
    November 02, 2009
    This does not work for us: we are still getting the same number of errors per day

  • Anonymous
    November 02, 2009
    <meta http-equiv="X-UA-Compatible" content="IE=7" /> does not work for us: we are still getting the same number of errors per day

  • Anonymous
    November 02, 2009
    Is there an easy way via Fiddler/whatever to figure out exactly where the 4096 byte is in the response? Thanks!

  • Anonymous
    November 02, 2009
    @Jeff: Sure thing. 1> Update to the latest version of Fiddler. http://www.fiddler2.com/dl/fiddler2betasetup.exe 2> For any given response, go to the HexView tab and scroll down until the status bar indicates "4096 (0x1000) of body"

  • Anonymous
    November 03, 2009
    Might be a stupid question, but is there an easy way to translate where you are in the hex view to where that corresponds to in the Raw/Text/whatever view?

  • Anonymous
    November 03, 2009
    The comment has been removed

  • Anonymous
    November 04, 2009
    We are constantly hitting this problem. We don't use the "base" tag and also don't have the META tag in our page and fiddler shows we have "Content-Type: text/html; charset=utf-8" so we must be hitting one of the other causes of this bug. Thanks for looking at it though. Hopefully you find a solution. As I am now putting in some special code into our exception handling mechanism to not be reported on this bug anymore as it is spamming my mailbox with exception emails.

  • Anonymous
    November 23, 2009
    Hi Eric, We are seeing this problem, but ONLY in our production environment.  I am unable to reproduce in any other environment. IIS configuration is identical on production and staging/dev.  The only difference is that Production is load balanced.  I've verified that the machineKey information is identical on both machines and session variable are stored in a Session database on SQL. Any thoughts?

  • Anonymous
    November 24, 2009
    We are in the same situation as Chris.  Our production servers are load balanced.  We are significant number of 404 errors due to the bug.   Just like others here we cannot reproduce the bug on our developer servers.  

  • Anonymous
    November 24, 2009
    I also noticed that when I review my IIS logs, I find entries that dont necessarily match the date/time stamp of the error in the event log.   When I am able to find the errors, I see thats that these requests return a 200 status????

  • Anonymous
    November 24, 2009
    The comment has been removed

  • Anonymous
    November 24, 2009
    @Chris/JimT: As our developers investigated the problem, we found that there are a number of timing scenarios which can result in the buggy behavior seen when the parser restarts. Unfortunately, this means that in practice, there isn't any viable workaround for web content that would resolve all forms of the problem.

  • Anonymous
    December 01, 2009
    The comment has been removed

  • Anonymous
    December 01, 2009
    The comment has been removed

  • Anonymous
    December 08, 2009
    The comment has been removed

  • Anonymous
    December 08, 2009
    @Aaron: Sure, it seems fairly unlikely, but it's technically possible. A "valid" URL could be incorrectly retrieved if the pre-parser stream broke the first script URL at exactly the right byte and then skipped to continue the URL from exactly the right byte later in the page.

  • Anonymous
    January 03, 2010
    Hello! I'm tracing this bug from beginning. It costed me plenty of time to get information about it. Doing test-applications to trying to recreate the bug or implementing some solutions read in forums and posts. First of all I want to thank Eric for his first helpful text concerning this issue. SERIOUSLY Now I have only to send the linked text to our customers (some of them get mailed error reports) and they believe me, that site users don't experience any problems and thats not my responsibility / ability to fix it. Thanks Eric... since i spent many time on investigation, this error now saves investigation time, which is funny. some portals made hundreds of error mails a day. Since nobody is reading them anymore (e.g. our customers, and me), there is fewer investigation time on bugs compared to the time before this bug. (real bug reporting is lost somewhere in the huge amount of "placebo bugs"). Now we just react on errors reported through website users by phone or mail. The bug information is typicaly more precise. So one more time Eric I want to THANK YOU, to have courage on reporting some information on this issue provided by a authoritive source. But I'm wondering how this bug couldn't be solved for about a year. I'm a developer and love MS for the .NET Framework and especially ASP.NET... I work with many MS tchnolgies/products, like MS-SQL, VS.NET or the office suite. In my opinion the mentioned apps are more complex then a browser. (Thats just my thoughts) the funny thing is, that since my development beginnings in 2000, no bug / problem in an MS Product hits me that much often and don't have even a clear workaround What do these IE8 Dev-guys do the whole day? working on IE9 only... Or is there just one poor guy spending 90% of his time responding to emails and can only use 10% for developing.. a solution seems so simply for me... e.G. if the "IE8's Lookahead Downloader" feature have some malfunction, it could be disabled with the next IE8 Update OR In my understanding this feature starts preloading jsdata from url before document parsing is done. Maybe a simple check for a preceded and postpositioned " char (quotation and similar escape chars) would fix it for well formed html. OR at least a simple if not (in LookAheadUrl exists "webresource.axd" or "scriptresource.axd" ) then call DoLookAhead(LookAheadUrl) end if will help in my case (sounds like i'm an egoist). Maybe this solutions are stupid and not complex enough, but i got them at 4:00 AM after while writing this comment, after i found this blog during repetitive search for solution to this issue. By this chance i gain allways some other interesting information about things not connected to this one, so I don't wasted my time.. Thank you Eric and greetings from cologne, germany

  • Anonymous
    January 04, 2010
    >In my opinion the mentioned apps are more complex then a browser. (Thats just my thoughts) It's really, really hard to measure complexity, but I wouldn't assume that the other projects you mention are more complicated than the browser. If nothing else, all of the other types of software you mention can be implemented and run inside a browser. :-)

  • Anonymous
    January 04, 2010
    We have some users experiencing a lockup in IE8 on a certain page, and that page also tends to be the one that shows up in our logs as having this issue.  Have you heard of any correlation?  I’m trying to find the cause of the lockups, and this is about the only thing I have left that isn’t eliminated.

  • Anonymous
    January 04, 2010
    Eric, can we get an update confirmation that this bug is still not fixed? I'm surprised no one has added "Don't let your users use IE8 because its going to generate lots of wasted requests" to the lists of how to optimize your web applications. My app gets about 60 of these errors a day (I receive an email about each and every one unfortunately). Had I known 6 months ago that this bug wasn't going to be resolved (ever?!) perhaps I would have added a filter to my logging code to throw away errors with URLs of ScriptResource and WebResource at least.

  • Anonymous
    January 05, 2010
    BrettJ: Correct-- there's no publicly available fix for the 4k bug at this point in time. (FWIW, even in spite of this issue, IE8's network performance will soundly trump that of IE7 in virtually every non-contrived case).

  • Anonymous
    January 05, 2010
    The comment has been removed

  • Anonymous
    January 11, 2010
    The comment has been removed

  • Anonymous
    January 12, 2010
    Using fiddler, I can see the lookahead base tag bug.  I was thrilled to see a fix for this.  However, after trying to download Windows6.1-KB974455-x86.msu and install, I get... "The update is not applicable to your computer." I'm running Win7 Professional.  Please help.. Mike

  • Anonymous
    January 12, 2010
    @Michael: You may have this update installed already-- if you're up-to-date on patches for Windows, then it's already installed. If not, the problem is probably that you're trying to install the x86 package on a 64-bit computer. You should try to install the update via WindowsUpdate, and if you must install directly, make sure you install the proper bitness.

  • Anonymous
    January 12, 2010
    Thanks for the quick reply!   I have checked the patches on my machine using appwiz.cpl and it doesn't show that I have 974455 installed.   I have spoken with my domain admin and WSUS 3.x tells him I don't require this update.   Using windows updates, it does not offer 974455 and I don't have any critical updates waiting to be installed. I have checked system properties and it shows that my system type is "32-bit operating system" The real issue is I'm still seeing many 404's from what I assume is the Lookahead Downloader not using my base tag. Thanks again for the help... Mike

  • Anonymous
    January 12, 2010
    @Michael: Sorry, it looks like the IE8+Win7 version of this fix hasn't yet been released. The prior fix went out for XP/Vista. To answer the obvious question, sorry, no, I'm not allowed to make any statements about timelines for unreleased fixes, but I understand the urgency in getting this fixed.

  • Anonymous
    January 13, 2010
    @EricLaw:  Thanks for your help.  Is there anything I can do to help push the release?  Something on connect I and other users can vote up? Do you know when it is released, will be be part of a critical fix so everyone will get it? Thanks Mike

  • Anonymous
    January 21, 2010
    Note: The BASE issue was fixed for Windows 7 users in today's cumulative update, so the IE8 BASE bug is now resolved on all platforms.

  • Anonymous
    January 25, 2010
    @EricLaw: Unfortunately the bug seems only to be fixed for base tag href's that start with http:// - if the base tag points to a "file://" directory on the local computer still the "old" behaviour is there. If I change the compatibilty mode for that page to IE7 it works fine with a base tag that has a file:/// href but when switching to IE8 mode it does NOT work! When will this issue be fixed?

  • Anonymous
    January 25, 2010
    The comment has been removed

  • Anonymous
    January 26, 2010
    @EricLaw:  Not sure if you had anything to do with getting this pushed faster...  But it looks like it is fixed.  Thanks for your help. Mike

  • Anonymous
    January 28, 2010
    The comment has been removed

  • Anonymous
    January 29, 2010
    We also just started seeing these ViewState error in our ASP.NET application after we switched to new servers. Our codebase is same but just new server. And now we are not able to figure out if the new server has some new patches or old servers had some patches prevention from this issue. But we use to have same ASP.NET application use to work in old servers which are throwing these ViewState byte 4K issue in new servers. Can anyone please put some light if there are some server patch that will prevent from this issue? Thanks.

  • Anonymous
    January 29, 2010
    @Sam: If your ViewState errors are caused by the 4k bug, then no, there's no server patch that will prevent that client bug.

  • Anonymous
    January 29, 2010
    The comment has been removed

  • Anonymous
    January 29, 2010
    @Sam: As discussed above, the issue is timing related. If the bytes are received by the client with different timings, you'll potentially see different results. However, you don't really have control over this from the server because you don't control the full path to the client.

  • Anonymous
    January 29, 2010
    The comment has been removed

  • Anonymous
    February 09, 2010
    Just to reiterate for folks who aren't reading the comment thread: Unfortunately I'm not able to make any statements or speculations about IE code fixes (either availability or timeframe). I can say that this is an issue that we're getting a significant amount of customer escalations about because the workarounds are unappealing.

  • Anonymous
    February 11, 2010
    @Cindy: The problem you describe doesn't sound likely to be related to the lookahead issue in any way.

  • Anonymous
    February 11, 2010
    The comment has been removed

  • Anonymous
    February 26, 2010
    The comment has been removed

  • Anonymous
    February 26, 2010
    @figz: No. While it's true that IE9 development is well underway, Microsoft continues to issue updates for browsers for ~10 years after they are released.

  • Anonymous
    March 17, 2010
    Just to inform you that some of us (see URL submitted with this post) encouter that bug is preventing some of us to use the Silverligth interfaces of SharePoint 2010 on XP SP3 client machines.

  • Anonymous
    March 31, 2010
    I've updated this bug to reflect that both Lookahead Downloader issues are fixed. Note: There's still an active bug on the BASE element failing to be respected when the containing page runs in Standards mode and the BASE URI specifies a HREF that uses the FILE:// protocol. This is totally unrelated to the preparser issue discussed in this post.

  • Anonymous
    March 31, 2010
    Any idea when we can expect a patch for the base href/file URI bug Eric ?

  • Anonymous
    March 31, 2010
    Just to reiterate for folks who aren't reading the comment thread above: Unfortunately I'm not able to make any statements or speculations about IE code fixes (either availability or timeframe).

  • Anonymous
    March 31, 2010
    Just one question... Which version of IE is this fixed as of?  What KB etc do we need to tell our clients to install?

  • Anonymous
    March 31, 2010
    Ah, finally found your other post regarding the IE8 cumulative update.

  • Anonymous
    March 31, 2010
    @Luke: The bug only existed in IE8, and was fixed in the 3/30 Cumulative Update. Of course, clients should be installing all Cumulative Updates (which are, well, cumulative), but the 3/30 update was KB980182 and until June, that's the latest cumulative update.

  • Anonymous
    April 07, 2010
    The comment has been removed

  • Anonymous
    April 07, 2010
    @Kenza: Nope, that URL still works fine for me. I've heard a few reports from folks that have had problems viewing reports on CONNECT. FWIW: There's no useful data in the CONNECT bug that you won't find here.

  • Anonymous
    May 03, 2012
    I am using MSIE 9 and encountered exactly the same bug. The difference to the described scenario is only, that the whole document is inside an iframe. Any ideas why this isn't fixed?