Abstraction Fail

Posted on by Chris Warburton
Loading Javascript in a Web page. Pretty high-level stuff. Isn’t it fun to live in a world without endianness, memory allocation, GOTO, compilation, packets, out-of-order message arrival, unreliable streams, network addresses, filesystems and all of that other low-level crap? We can float in our clouds high above it all :)

Except when Facebook Connect doesn’t work in IE because of an OS bug in the networking stack. The network layer in Windows XP can throw away incoming data if it is a) “chunked” (ie. split into sections) and b) compressed. Since missing data causes the decompression to fail, this results in compressed data being sent to the browser, which subsequently ignores it as incomprehensible gibberish. Thus Facebook Connect didn’t work. Bloody Microsoft >:(

If you’ve been hit by this, there’s no solution I know of. As a workaround, you may be able to try swapping from HTTP to HTTPS or HTTPS to HTTP in the URL you’re referencing, but of course that will only work if a) the server you’re contacting supports HTTP and HTTPS (Facebook does, thankfully), b) the one you switch to doesn’t trigger this bug as well and c) you don’t give a crap about using SSL.