NOSCRIPT tags hang document.write execution

VERIFIED FIXED in M10

Status

()

Core
Networking
P3
normal
VERIFIED FIXED
19 years ago
19 years ago

People

(Reporter: Steve Lamm, Assigned: vidur (gone))

Tracking

Trunk
Points:
---

Firefox Tracking Flags

(Not tracked)

Details

(URL)

(Reporter)

Description

19 years ago
I have only tested this on Linux, but I am guessing this not hooked up across
the board.

This may be a dup of bug #9027.
(Reporter)

Updated

19 years ago
Blocks: 11409

Comment 1

19 years ago
Looking at the source of the page (see below) this does not look like a redirect
issue. It is either a frames problem or a JS problem. Prashant, can you tell
what is going on in this page?

<HTML>
<HEAD>
<TITLE>Customize Channel: Headline News by Reuters</TITLE>
</HEAD>

<SCRIPT LANGUAGE="JavaScript">

if (navigator.appName== "Netscape" && parseInt(navigator.appVersion) <= 2) {
   document.location.replace("/badbrowser.tmpl");
}
</SCRIPT>
<NOSCRIPT>
<META HTTP-EQUIV=Refresh CONTENT="0; URL=/badbrowser.tmpl">
</NOSCRIPT>
<SCRIPT LANGUAGE="JavaScript">
var welcome_string = 'YES';
var mynetscape_source = '1';
if (welcome_string != 'YES' && mynetscape_source.toUpperCase() == '1') {
  var str = parseInt(1000*Math.random());
  document.location.replace("./welcome.tmpl?s="+str);
}
else {
document.writeln("<FRAMESET ROWS=\"100%,*\" FRAMEBORDER=\"no\" BORDER=0
onResize=\"document.location.reload();\">");
document.writeln("<FRAME SRC=\"/mys/blank.html\" NAME=\"forms\">");
document.writeln("<FRAME SRC=\"./setup_state.tmpl?&services=reuters&mn_yes=1\"
NAME=\"state\" MARGINWIDTH=0 MARGINHEIGHT=0 SCROLLING=no BORDERCOLOR=#FFFFFF>");
document.writeln("</FRAMESET>");
document.writeln(unescape("%3C") + "!--");
}
</SCRIPT>
</HTML>

Updated

19 years ago
Assignee: gagan → rpotts
Target Milestone: M9

Updated

19 years ago
Assignee: rpotts → valeski
(Reporter)

Updated

19 years ago
Summary: Redirect does not work → Frame or JS problem.
(Reporter)

Comment 2

19 years ago
Resummarizing.

Updated

19 years ago
Assignee: valeski → vidur
Component: Necko → Networking-Core

Comment 3

19 years ago
this might be a js execution ordering issue. META refreshes are working.

Comment 4

19 years ago
Actually I just tried to investigate this one, and it seems problem lies in
META-Rfreshing.
Here is the test you could conduct.

Try this code.

<HTML>
<HEAD>
<TITLE>Welcome</TITLE>
</HEAD>
<NOSCRIPT>
<META HTTP-EQUIV=Refresh CONTENT="0; URL=/badbrowser.tmpl">
</NOSCRIPT>
<SCRIPT LANGUAGE="JavaScript">
document.write("Meta does not give any problem !!!!")
</SCRIPT>
</HTML>

You won't see anything on the screen, coz its not going till document.write. And
we expect to see the statement "Meta does not give any problem !!!!" on screen,
but we can't see it. So execution gets stopped somewhere in META.

On other hand if we try this code without META.
<HTML>
<HEAD>
<TITLE>Welcome</TITLE>
</HEAD>
<SCRIPT LANGUAGE="JavaScript">
document.write("Meta does not give any problem !!!!")
</SCRIPT>
</HTML>

Then it works fine. We can see statement "Meta does not give any problem !!!!"
on screen.

So I guess problem is there somewhere in META.

Comment 5

19 years ago
Thanks prashant. I still don't think the refresh is the problem, because you can
pull out the meta refresh line and get the same results. It actually seems like
it's the NOSCRIPT tag is messing things up. This snippet has the same problem:
<HTML>
<NOSCRIPT>
</NOSCRIPT>
<SCRIPT LANGUAGE="JavaScript">
document.write("This doesn't print!")
</SCRIPT>
</HTML>

Perhaps a parser ussue? cc'ing rickg

Comment 6

19 years ago
Might this be somehow related to bug #9059?

It seems like a NOSCRIPT element appearing between the HEAD and BODY or FRAMESET
elements (or the degenerate case where there is no HEAD or BODY) causes problems
with both document.write and frameset loading.

In the following example:

<html>

  <head>
    <script language="JavaScript">
    document.write("head!");
    </script>
  </head>

  <noscript>
  </noscript>

  <body>

    <script language="JavaScript">
    document.write("body!");
    </script>

    <p>Hello world.</p>

  </body>

</html>

Neither the 'head!' nor 'body!' strings show up when the NOSCRIPT element
appears either before the HEAD element or between the HEAD and BODY elements. If
the NOSCRIPT appears *inside* the HEAD or BODY elements, everything works fine.
(Linux M8)

Updated

19 years ago
Summary: Frame or JS problem. → NOSCRIPT tags hang document.write execution

Comment 7

19 years ago
Yes, it looks like it is probably the same problem as bug 9059. I won't mark it
as a dup yet, but I'll update bug 9059.

changing summary - nice catch chad

Updated

19 years ago
Status: NEW → RESOLVED
Last Resolved: 19 years ago
Resolution: --- → FIXED

Comment 8

19 years ago
this page, and the test case below, now work with 8/25 M10 builds, marking
resolved and verified

Updated

19 years ago
Status: RESOLVED → VERIFIED

Comment 9

19 years ago
Bulk move of all Networking-Core (to be deleted component) bugs to new
Networking component.
You need to log in before you can comment on or make changes to this bug.