[Webkit-unassigned] [Bug 21114] New: Hang on specific combo of XHTML and CSS
bugzilla-daemon at webkit.org
bugzilla-daemon at webkit.org
Thu Sep 25 12:00:05 PDT 2008
https://bugs.webkit.org/show_bug.cgi?id=21114
Summary: Hang on specific combo of XHTML and CSS
Product: WebKit
Version: 528+ (Nightly build)
Platform: Macintosh Intel
OS/Version: Mac OS X 10.5
Status: UNCONFIRMED
Severity: Normal
Priority: P2
Component: Layout and Rendering
AssignedTo: webkit-unassigned at lists.webkit.org
ReportedBy: rasmus at spotify.com
A specific combination of a certain XHTML elements and CSS causes WebKit to
hang for a very long time (or even crash). We have drilled down a HTML file
reproducing this bug in WebKit/Safari 3.1.2 (5525.20.1)
What I did:
* Started Safari
* Opened crash.html
What I expected to happen:
* Safari rendering the document.
What actually did happen:
* Safari used up 100% of one cpu core and became unresponsive.
FILES:
crash.html – Opening this file in Safari reproduces the bug
----
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>Spotify - Share</title>
<style type="text/css">
div.section.beta-tokens div.token-info-text {
padding-left:1em;
float:left;
}
</style>
</head>
<body>
<div id="logo" onclick="document.location.href='/'">
<div class="menu">
<a href="/">Home</a><a
href="/download/">Download</a><a href="/account/">My Account</a><a
href="/share" class="active">Share</a><a href="/help/">Help</a><a
href="/legal/">Legal</a> </div>
</div>
<div id="loggedinfo">
<small>
Logged in as <!--a
href="/account"-->john.doe<!--/a-->
(<a href="/logout">log out</a>)
</small>
</div>
<div id="supercontainer">
<script type="text/javascript" charset="utf-8">
function sanitize_val(s) {
return s.replace(/"/g, '"').replace(/</g,
'<').replace(/>/g, '>');
}
function on_resend_mail(elem, addr, token) {
/*snip*/
}
</script>
<div class="section beta-tokens">
<h1>Your Invitation Tokens</h1>
<p>
<hr />
<h2>People you have invited</h2>
<p>
<ul>
<li class="odd-row"><b>lisbeth</b> was born
from <tt>E3wVt4Xn6uqi4wA7</tt> <small>Initially sent to
<b>john.doe at foo.bar</b></small></li><li class="even-row"><b>robert</b> was born
from <tt>fwn2tc9UpLthgs8p</tt> <small>Initially sent to
<b>john.doe at foo.bar</b></small></li></ul>
<br /><br />
</p>
<hr />
<form class="invite" method="post" action="/share/">
<h2>Active invitations</h2>
<p>
<ul>
<li class="odd-row"><div class="token
sent">36kYVxXH8RJjEELA</div><div class="token-info-text">Was sent to
<b>john.doe at foo.bar</b><br /><a href="javascript:;"
onclick="on_resend_mail(this, 'john.doe at foo.bar',
'36kYVxXH8RJjEELA')"><small>Send again (or to another
address)...</small></a></div><br clear="all" /></li><li class="even-row"><div
class="token new">aVUFRydaTxAnRUFM</div><div class="token-info-text"><input
type="hidden" name="token[]" value="aVUFRydaTxAnRUFM" />Send
to <input class="email" type="text" style="color:#888888"
onfocus="if(this.value=='friends e-mail
address'){this.value='';this.style.color='#000000';}" name="email[]"
value="friends e-mail address" /></div><div style="clear:both" /></li><li
class="odd-row"><div class="token new">2PVsNUGsMaSCGaRd</div><div
class="token-info-text"><input type="hidden" name="token[]"
value="2PVsNUGsMaSCGaRd" />Send to <input class="email" type="text"
style="color:#888888" onfocus="if(this.value=='friends e-mail
address'){this.value='';this.style.color='#000000';}" name="email[]"
value="friends e-mail address" /></div><div style="clear:both" /></li><li
class="even-row"><div class="token new">iJFGqZ7JnVjxkaBE</div><div
class="token-info-text"><input type="hidden" name="token[]"
value="iJFGqZ7JnVjxkaBE" />Send to <input class="email" type="text"
style="color:#888888" onfocus="if(this.value=='friends e-mail
address'){this.value='';this.style.color='#000000';}" name="email[]"
value="friends e-mail address" /></div><div style="clear:both" /></li><li
class="odd-row"><div class="token new">eTMxCN8Yp7akKhLu</div><div
class="token-info-text"><input type="hidden" name="token[]"
value="eTMxCN8Yp7akKhLu" />Send to <input class="email" type="text"
style="color:#888888" onfocus="if(this.value=='friends e-mail
address'){this.value='';this.style.color='#000000';}" name="email[]"
value="friends e-mail address" /></div><div style="clear:both" /></li><li
class="even-row"><div class="token new">cUcbZuinLqZABRsN</div><div
class="token-info-text"><input type="hidden" name="token[]"
value="cUcbZuinLqZABRsN" />Send to <input class="email" type="text"
style="color:#888888" onfocus="if(this.value=='friends e-mail
address'){this.value='';this.style.color='#000000';}" name="email[]"
value="friends e-mail address" /></div><div style="clear:both" /></li><li
class="odd-row"><div class="token new">GSs7P9YF8nFyes3i</div><div
class="token-info-text"><input type="hidden" name="token[]"
value="GSs7P9YF8nFyes3i" />Send to <input class="email" type="text"
style="color:#888888" onfocus="if(this.value=='friends e-mail
address'){this.value='';this.style.color='#000000';}" name="email[]"
value="friends e-mail address" /></div><div style="clear:both" /></li><li
class="even-row"><div class="token new">DaP7BxJBX2cdb2Df</div><div
class="token-info-text"><input type="hidden" name="token[]"
value="DaP7BxJBX2cdb2Df" />Send to <input class="email" type="text"
style="color:#888888" onfocus="if(this.value=='friends e-mail
address'){this.value='';this.style.color='#000000';}" name="email[]"
value="friends e-mail address" /></div><div style="clear:both" /></li><li
class="odd-row"><div class="token new">6MFfYnqVN4Afbuax</div><div
class="token-info-text"><input type="hidden" name="token[]"
value="6MFfYnqVN4Afbuax" />Send to <input class="email" type="text"
style="color:#888888" onfocus="if(this.value=='friends e-mail
address'){this.value='';this.style.color='#000000';}" name="email[]"
value="friends e-mail address" /></div><div style="clear:both" /></li><li
class="even-row"><div class="token new">WqppMxpy45Qy847n</div><div
class="token-info-text"><input type="hidden" name="token[]"
value="WqppMxpy45Qy847n" />Send to <input class="email" type="text"
style="color:#888888" onfocus="if(this.value=='friends e-mail
address'){this.value='';this.style.color='#000000';}" name="email[]"
value="friends e-mail address" /></div><div style="clear:both" /></li><li
class="odd-row"><div class="token new">RUCLYSY2cDdRpZyq</div><div
class="token-info-text"><input type="hidden" name="token[]"
value="RUCLYSY2cDdRpZyq" />Send to <input class="email" type="text"
style="color:#888888" onfocus="if(this.value=='friends e-mail
address'){this.value='';this.style.color='#000000';}" name="email[]"
value="friends e-mail address" /></div><div style="clear:both" /></li><li
class="even-row"><div class="token new">TuDQbzEzEZGHYn2s</div><div
class="token-info-text"><input type="hidden" name="token[]"
value="TuDQbzEzEZGHYn2s" />Send to <input class="email" type="text"
style="color:#888888" onfocus="if(this.value=='friends e-mail
address'){this.value='';this.style.color='#000000';}" name="email[]"
value="friends e-mail address" /></div><div style="clear:both" /></li><li
class="odd-row"><div class="token new">eRAkwpBYCtjB2yF6</div><div
class="token-info-text"><input type="hidden" name="token[]"
value="eRAkwpBYCtjB2yF6" />Send to <input class="email" type="text"
style="color:#888888" onfocus="if(this.value=='friends e-mail
address'){this.value='';this.style.color='#000000';}" name="email[]"
value="friends e-mail address" /></div><div style="clear:both" /></li><li
class="even-row"><div class="token new">WHfuzD9mn547RW44</div><div
class="token-info-text"><input type="hidden" name="token[]"
value="WHfuzD9mn547RW44" />Send to <input class="email" type="text"
style="color:#888888" onfocus="if(this.value=='friends e-mail
address'){this.value='';this.style.color='#000000';}" name="email[]"
value="friends e-mail address" /></div><div style="clear:both" /></li><li
class="odd-row"><div class="token new">niZxgabtkH9LWCEc</div><div
class="token-info-text"><input type="hidden" name="token[]"
value="niZxgabtkH9LWCEc" />Send to <input class="email" type="text"
style="color:#888888" onfocus="if(this.value=='friends e-mail
address'){this.value='';this.style.color='#000000';}" name="email[]"
value="friends e-mail address" /></div><div style="clear:both" /></li><li
class="even-row"><div class="token new">BGtexjVe8acUYR6L</div><div
class="token-info-text"><input type="hidden" name="token[]"
value="BGtexjVe8acUYR6L" />Send to <input class="email" type="text"
style="color:#888888" onfocus="if(this.value=='friends e-mail
address'){this.value='';this.style.color='#000000';}" name="email[]"
value="friends e-mail address" /></div><div style="clear:both" /></li><li
class="odd-row"><div class="token new">e98wJV8dyL9WyLeY</div><div
class="token-info-text"><input type="hidden" name="token[]"
value="e98wJV8dyL9WyLeY" />Send to <input class="email" type="text"
style="color:#888888" onfocus="if(this.value=='friends e-mail
address'){this.value='';this.style.color='#000000';}" name="email[]"
value="friends e-mail address" /></div><div style="clear:both" /></li><li
class="even-row"><div class="token new">jQnEqbcy8huHNn44</div><div
class="token-info-text"><input type="hidden" name="token[]"
value="jQnEqbcy8huHNn44" />Send to <input class="email" type="text"
style="color:#888888" onfocus="if(this.value=='friends e-mail
address'){this.value='';this.style.color='#000000';}" name="email[]"
value="friends e-mail address" /></div><div style="clear:both" /></li><li
class="odd-row"><div class="token new">FZ6NiN8jCaznVmCh</div><div
class="token-info-text"><input type="hidden" name="token[]"
value="FZ6NiN8jCaznVmCh" />Send to <input class="email" type="text"
style="color:#888888" onfocus="if(this.value=='friends e-mail
address'){this.value='';this.style.color='#000000';}" name="email[]"
value="friends e-mail address" /></div><div style="clear:both" /></li><li
class="even-row"><div class="token new">9JAduGbNbKdk5B6y</div><div
class="token-info-text"><input type="hidden" name="token[]"
value="9JAduGbNbKdk5B6y" />Send to <input class="email" type="text"
style="color:#888888" onfocus="if(this.value=='friends e-mail
address'){this.value='';this.style.color='#000000';}" name="email[]"
value="friends e-mail address" /></div><div style="clear:both" /></li><li
class="odd-row"><div class="token new">Yw8dEwY5bDR7R4LL</div><div
class="token-info-text"><input type="hidden" name="token[]"
value="Yw8dEwY5bDR7R4LL" />Send to <input class="email" type="text"
style="color:#888888" onfocus="if(this.value=='friends e-mail
address'){this.value='';this.style.color='#000000';}" name="email[]"
value="friends e-mail address" /></div><div style="clear:both" /></li><li
class="even-row"><div class="token new">7b4dCfqjCBpedsuC</div><div
class="token-info-text"><input type="hidden" name="token[]"
value="7b4dCfqjCBpedsuC" />Send to <input class="email" type="text"
style="color:#888888" onfocus="if(this.value=='friends e-mail
address'){this.value='';this.style.color='#000000';}" name="email[]"
value="friends e-mail address" /></div><div style="clear:both" /></li><li
class="odd-row"><div class="token new">KCZTnjkCwjhDZf72</div><div
class="token-info-text"><input type="hidden" name="token[]"
value="KCZTnjkCwjhDZf72" />Send to <input class="email" type="text"
style="color:#888888" onfocus="if(this.value=='friends e-mail
address'){this.value='';this.style.color='#000000';}" name="email[]"
value="friends e-mail address" /></div><div style="clear:both" /></li><li
class="even-row"><div class="token new">CN5pcxyYskebJK7Z</div><div
class="token-info-text"><input type="hidden" name="token[]"
value="CN5pcxyYskebJK7Z" />Send to <input class="email" type="text"
style="color:#888888" onfocus="if(this.value=='friends e-mail
address'){this.value='';this.style.color='#000000';}" name="email[]"
value="friends e-mail address" /></div><div style="clear:both" /></li><li
class="odd-row"><div class="token new">Qb7PUsBYN8XDG5Eg</div><div
class="token-info-text"><input type="hidden" name="token[]"
value="Qb7PUsBYN8XDG5Eg" />Send to <input class="email" type="text"
style="color:#888888" onfocus="if(this.value=='friends e-mail
address'){this.value='';this.style.color='#000000';}" name="email[]"
value="friends e-mail address" /></div><div style="clear:both" /></li><li
class="even-row"><div class="token new">BAggUDgbtHmhnT2A</div><div
class="token-info-text"><input type="hidden" name="token[]"
value="BAggUDgbtHmhnT2A" />Send to <input class="email" type="text"
style="color:#888888" onfocus="if(this.value=='friends e-mail
address'){this.value='';this.style.color='#000000';}" name="email[]"
value="friends e-mail address" /></div><div style="clear:both" /></li></ul>
<br />
<div id="send-tip-ctrl"
style="display:block">
<div class="button">
<input type="submit"
name="send" value="Send Invitations" />
</div>
<div class="text">
Tip: You can add your
friends name to the invitation by writing the
e-mail address like
this: <tt>John Doe john.doe at foo.bar</tt>
</div>
<br clear="all" />
</div>
</p>
</form>
<br /><br />
<hr />
<form method="post" action="/share/">
<h2>Unused invitations</h2>
<p>
<span
style="color:#999">You have no more invitations I'm afraid.</span>
</p>
</form>
</p>
</div>
</div>
<div class="bottom-copyright">
Copyright © 2007 Spotify Technology SARL | <a
href="/legal/beta-agreement">Beta Agreement</a>
</div>
</body>
</html>
----
Crash dump of Safari:
----
This file is 8.2 MB large and when I tried pasting it here (using Safari) the
browser crashed. (such irony!) So I'm providing the crash dump on this URL:
https://apple.spotify.net/tmp/Safari_crash.txt
--
Configure bugmail: https://bugs.webkit.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.
More information about the webkit-unassigned
mailing list