PDA

Bekijk Volledige Versie : IE6 CSS-Crash



Andreas Boeckler
22/10/03, 19:00
--=-XKMLr4D4B4sPokVu6MX2
Content-Type: text/plain
Content-Transfer-Encoding: quoted-printable

Hi,
the following HTML/JS/CSS-Code crashes IE6 immediately through a
combination of:
1. textarea in table in div
2. css:overflow-y:hidden
3. changing the scrollbar-base-color
4. moving the div

I think IE tries to move the native OS-scrollbar-widget, which is not in
place.

If point 3 is removed, the page works fine.


---snip---
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>CRASH-IE</title>
<style type=3D"text/css">
html, body {
overflow-y: hidden;=20
scrollbar-base-color: '#330066';=20
}
=20
.crash {
position:absolute;
left:200px;
top:200px;
width:200px;
}

</style>
<script type=3D"text/javascript">
function galgenfrist() {
window.setTimeout('crashIE();',1000);
}

function crashIE() {
var moveNode =3D document.getElementById("move");
if(moveNode) {
moveNode.style.top =3D "100px";=20
moveNode.style.left =3D "200px";
}
}
</script>
</head>
<body onload=3D"galgenfrist();">
<h1>CRASH-IE</h1>
<div id=3D"move" class=3D"crash">
<table>
<tbody>
<tr>
<td>
<textarea></textarea>
</td>
</tr>
</tbody>
</table>
</div>
</body>
</html>
---snap---

--=20
Andreas Boeckler <abo@netlands.de>
netlands edv consulting GmbH

--=-XKMLr4D4B4sPokVu6MX2
Content-Type: application/pgp-signature; name=signature.asc
Content-Description: Dies ist ein digital signierter Nachrichtenteil

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.3 (GNU/Linux)

iD8DBQA/lnu9q01ptdSpY7oRAuC8AJ9q+tAAopKLeBMwuAHAhdrRfuY32Q Cgr2Vk
11nhaQSFnVoomFQDS67ot0s=
=w1Od
-----END PGP SIGNATURE-----

--=-XKMLr4D4B4sPokVu6MX2--

xenophi1e
22/10/03, 21:00
In-Reply-To: <1066826686.3696.32.camel@falcon>

>Hi,
>the following HTML/JS/CSS-Code crashes IE6 immediately through a
>combination of:
>1. textarea in table in div
>2. css:overflow-y:hidden
>3. changing the scrollbar-base-color
>4. moving the div


This looks like a benign crash to me. On my system IE is tanking in MSHTML.dll at 0x6360CD44 while dereferencing a null pointer (or a 0x22 pointer, to be precise).

6360CD38 mov dword ptr [esi+9Ch],eax
6360CD3E mov dword ptr [esi+90h],eax
>6360CD44 cmp byte ptr [edi+22h],0 ; edi = 0
6360CD48 jne 6360CDDE
6360CD4E cmp byte ptr [edi+23h],0

Stack:
> MSHTML.DLL!6360cd44()
MSHTML.DLL!636199e3()
MSHTML.DLL!6360b569()
MSHTML.DLL!6360ba22()
MSHTML.DLL!636ff83b()

Maybe I'm missing something, but it seems pretty run-of-the-mill.

Cheers,
~ol