Almost blank page

RESOLVED FIXED in mozilla0.9.9

Status

()

RESOLVED FIXED
17 years ago
5 years ago

People

(Reporter: marc.loiselle, Assigned: harishd)

Tracking

Trunk
mozilla0.9.9
x86
All
Points:
---

Firefox Tracking Flags

(Not tracked)

Details

(URL)

Attachments

(2 attachments)

(Reporter)

Description

17 years ago
Going to the referenced url results in a most blank page.  The background is
blue and there is one ad but the rest is blank.  The scrollbar indicates that
something should be there.  Netscape 4.75 displays the page fine.

Buildid 2001101221 on Linux
Happens everytime

Comment 1

17 years ago
page is displayed just fine on 20011014 on win2k

Comment 2

17 years ago
Be patient!
The page took exacty 7mn 10s to render on
300 MHz Pentium NT4 2001101408 compared to 3s
with IE 5.5.
The second time I tried (after emptying the cache)
I gave up after 9 mn.
Confirming there is a problem with this page.

Comment 3

17 years ago
Interesting: if I remove the LINK to /includes/pulldown_pga.css then it loads
instantly... investigating.
Status: UNCONFIRMED → ASSIGNED
Ever confirmed: true

Comment 4

17 years ago
Even more interesting: if I add the style rules from the file pulldown_pgs.css
directly to the <head> it renders instantly. I bet the stylesheet is coming in
slowly and is causing some nasty stylesheet-appended reframes or something.
(Reporter)

Comment 5

17 years ago
Still seeing this with 2001102910 on linux.
Keywords: perf
Target Milestone: --- → mozilla0.9.9
(Reporter)

Comment 6

17 years ago
Seeing this on Win2k also 2001103003

Setting os to all
OS: Linux → All
(Reporter)

Comment 7

17 years ago
Does not happen everytime on Windows.
Happens everytime with Linux.

Comment 8

17 years ago
build 2002010608 win32 trunk

Seeing the problem on and off. My guess is that the first stylesheet that has
138 rules is somehow causing problems.

                   #rules
first stylesheet   138
second stylesheet  11
third stylesheet   12


there is this line:
<script language="javascript1.1" defer
src="http://a1604.g.akamai.net/f/1604/2007/1h/stats.hitbox.com/js/hbe-v65-no10.js"></script>

does the "defer" attribute do anything in moz? I still don't know what causes
the page to appear though (setting visibility to visible).

Comment 9

17 years ago
ok this has nothing to do with performance or layout. I'm guessing this is some
kind of weird parser bug. It seems that whenever you don't see the content of
the page it is due to this block of code:

---------------------------------------------------------------------------------

<a href="http://www.pgatour.com/players/pgatour.html" class="ddNav2">PGA TOUR</a> | 
<a href="http://www.pgatour.com/players/seniortour.html" class="ddNav2">SENIOR
TOUR</a> | 
<a href="http://www.pgatour.com/players/htour.html" class="ddNav2">BUY.COM</a> | 
<a href="http://www.golfweb.com/players/lpgatour/index.html"
class="ddNav2">LPGA</a> | 
<a href="http://www.golfweb.com/players/europeantour/index.html"
class="ddNav2">European</a> | 
<a href="http://www.pgatour.com/information/2002_exempt.html"
class="ddNav2">All-Exempt Categories</a> | 
<a href="http://www.pgatour.com/players/features.html" class="ddNav2">Features</a>
&nbsp;&nbsp;
</td></tr></table>
</div>

---------------------------------------------------------------------------------

somehow becomes a comment. This causes the rest of the page become part of one
of the hidden divs.
Keywords: perf

Comment 10

17 years ago
Still seeing in Win XP Pro build 2002 0130 03.

One of my favorite parts of the pgatour.com site and I have to cut and paste
into IE every week. ;)
(Reporter)

Comment 11

17 years ago
It looks like this is the problem (see line 49 of generated html).

<script language="javascript">
document.write("<\!--");
</script>

If I substitute the above with the following, the page is displayed.

<script language="javascript">
document.write("<!--");
</script>

So it is indeed a parsing problem with the escape character.  The ! does not
need to be escaped.  Perhaps the code is not handling that correctly.
(Reporter)

Comment 12

17 years ago
If line 50 in the generated html is document.write("<\!-"); the page displays 
correctly and the mouseover menu works as well.  The mouseover menu did not 
work with document.write("<!--");

Comment 13

17 years ago
The \ in <\!-- is needed for older browsers I think. At any rate the document
structure in moz is something like this when I remove the stylesheets:

<body>
   <table>
   ...
   <script id="_hbc">
   <script defer src="...">
   <script><!-- //
     document.write("<\!--");
   //--></script>
   #comment
-------------------------------------------------------------------------------
     <!--clear hitbox comment
-------------------------------------------------------------------------------
   <table>
   <div id="nav0">
     <script>
       <table>
       <tbody>
       <tr>
         <td class="ddNav2">
           <script>
             <!-- //
             if(NS4) document.write('<span class="ddNavNS"> Players: </span>')
             // -->
         <a class="ddNav2"> ...  <a class="ddNav2">
   <div id="nav1">
     <script>
     <!-- //
     function onMouseOver() {isOverDiv='nav1';};
     function onMouseOut() {triggerOff('1');};
     // -->
     <table> ...
   <div id="nav2"> ... <div id="nav9">
   <table>
   <table>
   <map>
   <table>
   <table>
   <div class="table1">
   <p>

with the stylesheet, I get this:

<body>
   <table>...
   <script id="_hbc">
   <script defer src="...">
   <script><!-- //
     document.write("<\!--");
   //-->
   #comment
-------------------------------------------------------------------------------
     clear hitbox comment
-------------------------------------------------------------------------------
   <table>
   <div id="nav0">
     <script>
     <table>
     <tbody>
     <tr>
       <td class="ddNav2">
         <script>
         <!-- //
          if(NS4) document.write('<span class="ddNavNS"> Players: </span>')
         // -->
         </script>
         #comment
-------------------------------------------------------------------------------
           <a class="ddNav2"> ...
           <a class="ddNav2">
           </td></tr></table>
           </div>
           <div id="nav1">
           <script language="JavaScript">
           <!-- //
             function onMouseOver() {isOverDiv='nav1';};
             function onMouseOut(){triggerOff('1');};
           //
-------------------------------------------------------------------------------
         <table>
         <div id="nav2"> ... <div id="nav9">
   <table>
   <table>
   <map>
   <table>
   <table>
   <div class="table1">
   <p>

with the stylesheet but changed the <\!-- to <!-- , I get this:

<body>
   <table>...
   <script id="_hbc">
   <script defer src="...">
   <script><!-- //
     document.write("<!--");
   //--></script>
   #comment
-------------------------------------------------------------------------------
     <!--clear hitbox comment-->  
     <table> ...
     <div id="nav0">
     <script>
     <!-- //
       function onMouseOver() {isOverDiv='nav0';};
       function onMouseOut() {triggerOff('0');};
     // -->
-------------------------------------------------------------------------------
   <table>
     <tbody>
     <tr>
       <td class="ddNav2">
         <script>
         <!-- //
          if(NS4) document.write('<span class="ddNavNS"> Players: </span>')
         // -->
         </script>
         <a class="ddNav2"> ... <a class="ddNav2">
   <div id="nav1"> ... <div id="nav9">
   <table>
   <table>
   <map>
   <table>
   <table>
   <div class="table1">
   <p>

Comment 14

17 years ago
_basic, sounds like you are thinking this is a parser issue?  Harish, can you
check it out?
Assignee: attinasi → harishd
Status: ASSIGNED → NEW
(Assignee)

Comment 15

17 years ago
Created attachment 67839 [details]
Testcase [ could be reduced further..I think ]

To see the content model type javascript:alert(document.body.innerHTML); on the
URL bar. I see the TABLE in the content model but it's not rendered.

Comment 16

17 years ago
attachment 67839 [details]
build 2002013003 win32 trunk

on first load I see the red table cell, and in DOM Inspector I see this tree.
BODY
  SCRIPT          id=_hbc
    var _pn=location.pathname;
    .
    .
    .
    var _gn="ehg-sportsline.hitbox;
   SCRIPT
    document.write("If you can see a table with red background then the bug is
fixed <\!--");
   #text 
     If you can see a table with red background then the bug is fixed
  TABLE
    TBODY
      TR
        TD
  DIV               id=nav0
    SCRIPT
      <!-- //
      function onMouseOver() {isOverDiv='nav0';};
      function onMouseOut(){triggerOff('0');};
      // -->
  DIV               nav9
    SCRIPT
      <!-- //
      function onMouseOver() {isOverDiv='nav9';};
      function onMouseOut() {triggerOff('9');};
      // -->
  TABLE
    TBODY
      TR
        TD
          #text
            cell
          #comment
            /includes/gn.inc




On reload I do not see the red table cell, and in DOM Inspector I see this tree.
BODY
  SCRIPT          id=_hbc
    var _pn=location.pathname;
    .
    .
    .
    var _gn="ehg-sportsline.hitbox;
   SCRIPT
    document.write("If you can see a table with red background then the bug is
fixed <\!--");
   #text
     "If you can see a table with red background then the bug is fixed"
  TABLE
    TBODY
      TR
        TD
  DIV               id=nav0
    SCRIPT
      <!-- //
      function onMouseOver() {isOverDiv='nav0';};
      function onMouseOut(){triggerOff('0');};
      // -->
  DIV               nav9
    SCRIPT
      <!-- //
      function onMouseOver() {isOverDiv='nav9';};
      function onMouseOut() {triggerOff('9');};
      // -->
    #comment
      </div>
      <table border=1><tr>
      <td bgcolor=red>cell<!-- /includes/gn.inc 
(Assignee)

Comment 17

17 years ago
oh yeah...I see an unclosed comment in the content model. That explains it.
(Assignee)

Comment 18

17 years ago
The unclosed comment is the document.written comment!. Not sure how the comment
alone got inserted in the wrong place.

Comment 19

17 years ago
the weird thing is that sometimes it happens and sometimes it does not happen.
Could this have something to do with cache?
(Assignee)

Comment 20

17 years ago
_basic: It's a parser bug. The open comment, that is document.written, is
getting handled lazily. 
(Assignee)

Comment 21

17 years ago
Created attachment 68165 [details] [diff] [review]
patch v1.0 [ bug fix + clean up ]

After tokenizing script content we normally flush the tokenizer stack. However,
when the parser got blocked, on loading an external style sheet, we lost that 
( flush )information and hence proceeded tokenizing the rest of the document
before the script content got handled completely.
Comment on attachment 68165 [details] [diff] [review]
patch v1.0 [ bug fix + clean up ]

>Index: src/nsParser.cpp
>===================================================================

>+#define NS_PARSER_FLAG_NONE                   0x00000000

You don't need NONE flag.

>+  mFlags = NS_PARSER_FLAG_NONE;
>+  mFlags |= NS_PARSER_FLAG_OBSERVERS_ENABLED;
>+  mFlags |= NS_PARSER_FLAG_PARSER_ENABLED;

I would say the above simply as:

    mFlags = NS_PARSER_FLAG_PARSER_ENABLED; // Reset
    mFlags |= NS_PARSER_FLAG_OBSERVERS_ENABLED;


r=heikki
Attachment #68165 - Flags: review+
Comment on attachment 68165 [details] [diff] [review]
patch v1.0 [ bug fix + clean up ]

Or even better:

 mFlags = NS_PARSER_FLAG_PARSER_ENABLED | NS_PARSER_FLAG_OBSERVERS_ENABLED;

sr=jst
Attachment #68165 - Flags: superreview+
(Assignee)

Comment 24

17 years ago
Fix is in.
Status: NEW → RESOLVED
Last Resolved: 17 years ago
Resolution: --- → FIXED
confirming w2k fixed.. 2002-14-03 build;  respin builds seem to include this fix, 

reporter is it fixed for you?
(Reporter)

Comment 26

17 years ago
wfm with buildid 2002021506 on Linux.
You need to log in before you can comment on or make changes to this bug.