Closed Bug 405954 Opened 17 years ago Closed 8 years ago

Firefox hangs with HTML Validator extension enabled

Categories

(Core :: Networking, defect)

1.8 Branch
x86
Windows XP
defect
Not set
critical

Tracking

()

RESOLVED WONTFIX

People

(Reporter: mgueury, Unassigned)

References

()

Details

(Whiteboard: [necko-backlog])

User-Agent:       Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.10) Gecko/20071115 Firefox/2.0.0.10
Build Identifier: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.10) Gecko/20071115 Firefox/2.0.0.10

I am the extension author. My extension exists since a long time. And recently I discovered a problem that I only see in Firefox 2.0.0.x.

The same works in 3.0 b1.
Unhappily, it is a annoying bug since it hangs completely firefox and could also
hang it again if you restore the session after killing it.

It is a problem of opening a channel for streamed media.

    var ios = Components.classes["@mozilla.org/network/io-service;1"]
                        .getService(Components.interfaces.nsIIOService);
    var channel = ios.newChannel( url, urlCharset, null );
    [...]
    var stream = channel.open();  <- HANGS

Reproducible: Always

Steps to Reproduce:
1. Download the HTML Validator extension. It is available here:
  > http://users.skynet.be/mgueury/mozilla/download.html
2. Restart firefox
3. Go to google.com
4. Look for BEAS (the goal)
5. Search the link
   finance.yahoo.com/q/h?s=BEAS
6. Right click. Open in new tab and wait !!!
7. After waiting that the tab is fully loaded. Switch to it.
   Firefox will hang.

Actual Results:  
Firefox hangs.

Expected Results:  
Not hangs, give errors or whatever...

Before to open the tab. 
- Open the Javascript debugger.
- View Browser files
- Look for tidyBrowser.js (click on the +)
- Look for 

  getHtmlFromCache : function( doc, safe_call )
  Line +- 658 : var stream = channel.open();
  Put a break point on it.
- Switch to the TAB 
  - It will stop several times in the breakpoint
  - Check the doc.URL value
  - For stream..finance.com if you step over the var stream = channel.open();
    Firefox will hang.

Notice that I have no way to know this. 
- Check the DOC variable, it is fine. contentType is text/html. 
- Check the channel variable it seems fine too.

It works for all other URLs I know of. It seems there is a problem with this particular one ?

Notice it works in Firefox 3.0b1. I would be really thankful to have a fix for this annoying hanging issue in Firefox 2.0.0.x.

Thanks.
Setting the type to critical since Firefox hangs due to this bug. Thanks.
Notice: in step 4. I mean:

4. Look for "BEAS" 
The same problem happens also when reading the mail with GMAIL.
- Log to Gmail
- Type something in the search (in the left toolbar)
  It hangs
I am able to reproduce this bug consistently in Firefox 2.0.0.11 by going to any post at http://phpbuilder.com/board/ and click "Go Advanced" at the bottom.

I have both Firebug 1.05 and HTML Validator 0.8.4 installed.  Curiously, if I disable Firebug, the first time I click the button will work, but each successive click fails with a lockup.

Note that I can regain control of the browser by randomly adjusting the priority of the individual threads (using process explorer).
Note that enabling/disabling HTML validator has no effect on PHPBuilder (it works fine either way in my browser).  In my case, Firebug 1.05 seems to be the extension to disable/reenable for that site.  

Once again, my browser locks up with Firebug 1.05 enabled while trying to post or preview to PHPBuilder.com forums.  I can reproduce it 100% of the time.

With Firebug disabled, I can randomly experience lockups at gmail.
I can reproduce this bug live on my website http://www.dquinn.net/404.php. If you have the HTML Validator installed and active, Firefox hangs. I tested this bug in all versions of Firefox up to 3.0 beta, where the bug does not occur.
Unhappily, it is not completely fixed in 3.0. even if it works a lot better. See

------------------------------------------------------------------------
> https://bugzilla.mozilla.org/show_bug.cgi?id=414529
> After exit Firefox 3 beta2 process stay alive, with HTML Validator 
> extension enabled
------------------------------------------------------------------------
Component: General → Networking
Product: Firefox → Core
QA Contact: general → networking
Version: unspecified → 1.8 Branch
I got the same problem with gmail. Blocking gmail in htmlvalidator exceptions made the problem go away.
Is this still an issue ?
Flags: needinfo?(mgueury)
There is a new bug with Twitter with a very small testcase here: 
- https://bugzilla.mozilla.org/show_bug.cgi?id=839414

The problem still exists. The issue here is clearer, the problem happens when
- the user do a GET URL 
- then javascript does the same GET URL with XHTTRequest but with Accept 
  HTTP request header set to JSON
- the cache of the HTML page is replaced by the XHTTRequest response 
- the problem happens after that when trying to read the cache of the HTML page
  It is not there anymore. And it hangs.
Flags: needinfo?(mgueury)
should this be prioritized?
Flags: needinfo?(honzab.moz)
Whiteboard: [necko-backlog]
I can see there is usage of channel.open(); sync API.  What the author has expected from it?  Be magically a 1ms operation?  We should remove that API IMO or just make it hard fail in most implementations.

I believe they should use asyncOpen2 and stream listeners properly.

I tend to close this as WONTFIX along with bug 839414.
Flags: needinfo?(honzab.moz) → needinfo?(mcmanus)
Flags: needinfo?(mcmanus)
Status: UNCONFIRMED → RESOLVED
Closed: 8 years ago
Resolution: --- → WONTFIX
You need to log in before you can comment on or make changes to this bug.