Bug 19680

Summary: cvs.com - the footer content is displayed over main content
Product: WebKit Reporter: Pat <vincent.bradley>
Component: Layout and RenderingAssignee: Nobody <webkit-unassigned>
Status: RESOLVED DUPLICATE    
Severity: Major CC: yael
Priority: P2 Keywords: HasReduction
Version: 525.x (Safari 3.1)   
Hardware: Mac (Intel)   
OS: OS X 10.5   
URL: http://www.cvs.com/CVSApp/cvs/gateway/extracarehome
Attachments:
Description Flags
Screen shot of footer content over main content
none
Main html of reduced test case
none
external JS for reduced test case none

Description Pat 2008-06-19 12:08:00 PDT
Go to http://www.cvs.com, then select the "Extra Care" tab.

Then footer content (contact us, etc) is displayed at the top of the page and over the main content. See attached screen shot.

This occurs on both Safari MacOS v3.1.1 (5525.18) and Safari for Windows v3.1.1 (525.17).
Comment 1 Pat 2008-06-19 12:10:06 PDT
Created attachment 21846 [details]
Screen shot of footer content over main content

snippet of code under question:

<!-- BEGIN FOOTER -->
<br>
<br> 


	<table border="0" cellpadding="3" cellspacing="0" width="443">
	<tbody><tr>



<td class="tinyfont" align="center">
<script language="JavaScript">
	function emptyForm(textInForm){
		if (!textInForm.base) textInForm.base = textInForm.value
		if (textInForm.value == textInForm.base) textInForm.value = "";
		else if (textInForm.value == "") textInForm.value = textInForm.base;
	}
	</script>

	<table border="0" cellpadding="3" cellspacing="0" width="175">
	<form id="form1" name="form1" action="/CVSApp/cvs/gateway/search" method="get"></form>
	<input value="499" name="ActiveCat" type="hidden">
	<tbody><tr>
	<td class="tinyfont"><b>Search:</b></td>
	<td align="left" valign="middle">
	<input value="" maxlength="125" size="15" name="Query" class="formfont200" type="text"></td>
	<td align="left" valign="middle">

	<input src="/Assets/images_buttons/btnr_go.gif" name="Click to go to search results." alt="Click to go to search results." value="submit" border="0" type="image" width="19" height="19">&nbsp;	</td>
	</tr>
	
	</tbody></table>

<span class="spacer10"><br></span>

<b> Questions? Call (888) 607-4287 or email <a href="mailto:customercare@cvs.com">customercare@cvs.com</a> </b>
<br>
<a href="/CVSApp/cvs/gateway/help/helpContact"><nobr>Contact Us</nobr></a>&nbsp;|&nbsp;<a href="/CVSApp/cvs/gateway/help/helpHome">Help</a>&nbsp;|&nbsp;<a href="/CVSApp/cvs/gateway/sitemap">Site Map</a>&nbsp;|&nbsp;<a href="/CVSApp/cvs/gateway/aboutCVS/home">More Info</a><br>

<span class="spacer10"><br></span>
<b><a href="/CVSApp/cvs/gateway/catalog"><nobr>Online Shopping Aisles</nobr></a> </b> <br>
<a href="/CVSApp/cvs/gateway/cvsmain"><nobr>Home</nobr></a> |
<a href="/CVSApp/cvs/gateway/department?deptid=2024"><nobr>Baby &amp; Child Care</nobr></a> |
<a href="/CVSApp/cvs/gateway/department?deptid=653"><nobr>Cosmetics</nobr></a> |

<a href="/CVSApp/cvs/gateway/department?deptid=2781"><nobr>Diet &amp; Nutrition</nobr></a>  <br>

<a href="/CVSApp/cvs/gateway/department?deptid=6"><nobr>Gifts &amp; Specialty</nobr></a> |
<a href="/CVSApp/cvs/gateway/department?deptid=2227"><nobr>Home Medical Supplies</nobr></a> |
<a href="/CVSApp/cvs/gateway/department?deptid=2779"><nobr>Household Items</nobr></a>  <br>

<a href="/CVSApp/cvs/gateway/department?deptid=1"><nobr>Medicine Cabinet</nobr></a> |
<a href="/CVSApp/cvs/gateway/department?deptid=2648"><nobr>Natural Products</nobr></a> |
<a href="/CVSApp/cvs/gateway/department?deptid=2780"><nobr>Online Exclusives</nobr></a> <br>

<a href="/CVSApp/cvs/gateway/department?deptid=3"><nobr>Personal Care &amp; Bath </nobr></a> |
<a href="/CVSApp/cvs/gateway/department?deptid=2609"><nobr>Sexual Health</nobr></a> |

<a href="/CVSApp/cvs/gateway/department?deptid=2496"><nobr>Skin Care</nobr></a>  <br>

<a href="/CVSApp/cvs/gateway/department?deptid=2"><nobr>Vitamins &amp; Supplements</nobr></a> |
<a href="/CVSApp/cvs/gateway/brandstore/brand_Home"><nobr>Shop by Brand</nobr></a> |
<a href="/CVSApp/cvs/gateway/specials"><nobr>Super Savers</nobr></a> |
<a href="/CVSApp/cvs/gateway/whatsnew"><nobr>What's New</nobr></a>

<br>
<span class="spacer15"><br></span>
<b>
<a href="/CVSApp/cvs/gateway/rxhome"><nobr>Pharmacy Counter</nobr></a> |
<a href="/CVSApp/cvs/gateway/healthliv"><nobr>Health Resources</nobr></a> |
<a href="/CVSApp/cvs/gateway/extracarehome"><nobr>ExtraCare</nobr></a><font color="#000099"><sup>®</sup></font> |
<a href="/CVSApp/cvs/gateway/cvsstores"><nobr>CVS/pharmacy Stores</nobr></a>
</b>

<br> <br>
<b><a href="javascript:createCVSChildWindow('http://www.cvscaremark.com/','cvs_corporate','height=560,width=800,toolbar=1,location=1,menubar=1,resizable=1,scrollbars=1,status=1')">Our Company</a></b><br>
<span class="spacer03"><br></span>
<a href="javascript:createCVSChildWindow('http://www.cvscaremark.com/careers','cvs_corporate','height=560,width=800,toolbar=1,location=1,menubar=1,resizable=1,scrollbars=1,status=1')">Careers</a>&nbsp;|&nbsp;<a href="javascript:createCVSChildWindow('http://www.cvscaremark.com/community','cvs_corporate','height=560,width=800,toolbar=1,location=1,menubar=1,resizable=1,scrollbars=1,status=1')">Community Involvement</a>&nbsp;|&nbsp;<a href="javascript:createCVSChildWindow('http://www.cvscaremark.com/investors','cvs_corporate','height=560,width=800,toolbar=1,location=1,menubar=1,resizable=1,scrollbars=1,status=1')">Investor Relations</a><br>
<a href="javascript:createCVSChildWindow('http://www.cvscaremark.com/patient-privacy','cvs_corporate','height=560,width=800,toolbar=1,location=1,menubar=1,resizable=1,scrollbars=1,status=1')">Patient Privacy</a>&nbsp;|&nbsp;<a href="javascript:createCVSChildWindow('http://www.cvscaremark.com/newsroom','cvs_corporate','height=560,width=800,toolbar=1,location=1,menubar=1,resizable=1,scrollbars=1,status=1')">Press Room</a>&nbsp;|&nbsp;<a href="javascript:createCVSChildWindow('http://www.cvscaremarkrealty.com','cvs_corporate','height=560,width=800,toolbar=1,location=1,menubar=1,resizable=1,scrollbars=1,status=1')">Real Estate</a>&nbsp;|&nbsp;<a href="javascript:createCVSChildWindow('http://www.cvssuppliers.com','cvs_corporate','height=560,width=800,toolbar=1,location=1,menubar=1,resizable=1,scrollbars=1,status=1')">Suppliers</a><br>

<font class="smallfont">
<br>CVS/pharmacy, the retail division of CVS Caremark Corporation, is America's largest retail pharmacy with approximately 6,200 retail locations. CVS/pharmacy is committed to serving the healthcare needs of all customers by being the easiest pharmacy for customers to use, both in its stores and online at CVS.com.</font>
<br>

<span class="spacer15"><br></span>
<script language="Javascript">
var thisDate = new Date();
var thisYear = thisDate.getFullYear();
document.writeln("&copy;&nbsp;Copyright&nbsp;1999-" + thisYear +  "&nbsp;CVS.com<sup>®</sup><br />");
</script>©&nbsp;Copyright&nbsp;1999-2008&nbsp;CVS.com<sup>®</sup><br>

<a href="/CVSApp/cvs/gateway/disclaimer">
Terms of Use</a>&nbsp;|&nbsp;<a href="/CVSApp/cvs/gateway/aboutCVS/privacy">Privacy Policy</a><br>

<br></td>

</tr>
</tbody></table>
		
 <!-- end footer -->
</div>
Comment 2 Yael 2008-06-30 18:24:58 PDT
Created attachment 22013 [details]
Main html of reduced test case
Comment 3 Yael 2008-06-30 18:25:35 PDT
Created attachment 22014 [details]
external JS for reduced test case
Comment 4 Yael 2008-06-30 18:27:11 PDT
The root cause of this problem is that when we have an external script that generates another script with document.write and the closing tag of the inline script is on the same line as more content, we process the document.write out of order.
The HtmlTokenizer keeps the remaining src as currentPrependingSrc and does not process it until later. This out of order processing is causing the problem.

The offending line is 
document.write('</script><table border="0" cellpadding="0" cellspacing="0" width="443"><tr><td align="left">');

If we split this line into 2 separate document.write statements, everything works fine.


I added an attachment of a very simple page where the content is processed in the wrong order.
Comment 5 Yael 2008-07-01 06:27:26 PDT

*** This bug has been marked as a duplicate of 17444 ***