Closed Bug 38350 Opened 24 years ago Closed 24 years ago

GetURL callback causes app hang when called from <a> link

Categories

(Core Graveyard :: Plug-ins, defect, P3)

x86
Windows 2000
defect

Tracking

(Not tracked)

VERIFIED DUPLICATE of bug 37463

People

(Reporter: sean, Assigned: serhunt)

Details

(Keywords: testcase)

Attachments

(1 file)

If a page calls a plugin's scriptable method foo, and foo calls GetURL() in 
order to excecute javascript code in the page then mozilla will hang if the 
originator of the call is an <a> link.  Not a problem if the originator is a 
form button's OnClick handler.

GetURL() implements the 'get' by generating an OnClickLink event.  There 
appears to be a thread lock contention bug when this happens via an <a> tag.

Here is a portion of the call stack of the hung thread:
PR_Lock(PRLock * 0x03c41510) line 230
PR_EnterMonitor(PRMonitor * 0x03c414e0) line 79 + 14 bytes
nsAutoMonitor::nsAutoMonitor(PRMonitor * 0x03c414e0) line 184 + 13 bytes
nsFileTransport::Cancel(nsFileTransport * const 0x03c41420, unsigned int 
0x804b0002) line 191
nsStreamIOChannel::Cancel(nsStreamIOChannel * const 0x03b803a0, unsigned int 
0x804b0002) line 206 + 30 bytes
nsLoadGroup::Cancel(nsLoadGroup * const 0x031e9870, unsigned int 0x804b0002) 
line 225 + 16 bytes
nsDocLoaderImpl::Stop(nsDocLoaderImpl * const 0x0331a1e0) line 223 + 31 bytes
nsURILoader::Stop(nsURILoader * const 0x00c626a0, nsISupports * 0x0331afc0) 
line 639 + 23 bytes
nsDocShell::StopLoad(nsDocShell * const 0x03312900) line 235 + 38 bytes
nsDocShell::StopCurrentLoads(nsDocShell * const 0x03312900) line 2561
nsDocShell::InternalLoad(nsDocShell * const 0x03312900, nsIURI * 0x03c44720, 
nsIURI * 0x033c8e80, char * 0x0012fbe0, nsIInputStream * 0x00000000, 
nsDocShell::loadType loadLink) line 2280 + 15 bytes
nsWebShell::HandleLinkClickEvent(nsIContent * 0x0332857c, nsLinkVerb 
eLinkVerb_Replace, unsigned short * 0x03b7f980, unsigned short * 0x10093fe0, 
nsIInputStream * 0x00000000) line 1022 + 70 bytes
OnLinkClickEvent::HandleEvent() line 912

The test case is a modified version of the npsimple plugin sample 
(\mozilla\modules\plugin\test).  Build the test case with the npsimple 
makefile.  View the html file using file: (rather than http: due to script 
security) and look for the Callback test button and link.
Keywords: testcase
add 4xp keyword
Keywords: 4xp
Resolving as DUP of mostfreq 37463.


*** This bug has been marked as a duplicate of 37463 ***
Status: NEW → RESOLVED
Closed: 24 years ago
Resolution: --- → DUPLICATE
vrfy.
Status: RESOLVED → VERIFIED
Product: Core → Core Graveyard
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: