Closed Bug 318270 Opened 19 years ago Closed 19 years ago

Crashes apparently hastened by plugin? No outer window available!

Categories

(Core Graveyard :: Plug-ins, defect)

x86
Windows XP
defect
Not set
critical

Tracking

(Not tracked)

VERIFIED FIXED

People

(Reporter: neil, Unassigned)

References

()

Details

Attachments

(1 file, 1 obsolete file)

When using that page, I get lots of "WARNING: No outer window available!, file C:/mozilla/dom/src/base/nsGlobalWindow.cpp, line 1435", and occasional crashes.

Sample backtrace:
nsDocShell::GetInterface(nsDocShell * const 0x03d2c838, const nsID & {...}, void * * 0x0012e984) line 398 + 34 bytes
398        return mScriptGlobal->QueryInterface(aIID, aSink);
nsWebShell::GetInterface(nsWebShell * const 0x03d2c838, const nsID & {...}, void * * 0x0012e984) line 252
251   return nsDocShell::GetInterface(aIID, aInstancePtr);
nsGetInterface::operator()(void * * 0x0012e984) line 53 + 31 bytes
nsCOMPtr<nsIDOMWindow>::assign_from_helper(const nsCOMPtr_helper & {...}, const nsID & {...}) line 1292 + 17 bytes
nsCOMPtr<nsIDOMWindow>::operator=(const nsCOMPtr_helper & {...}) line 781
nsWindowWatcher::GetWindowByName(nsWindowWatcher * const 0x00a38f38, const unsigned short * 0x01b49f20, nsIDOMWindow * 0x00000000, nsIDOMWindow * * 0x0012ea54) line 1140
1140    if (domWindow) {
nsPluginHostImpl::GetPrompt(nsIPluginInstanceOwner * 0x049f18b0, nsIPrompt * * 0x0012eca0) line 2832 + 100 bytes
2832      wwatch->GetWindowByName(NS_LITERAL_STRING("_content").get(), nsnull, getter_AddRefs(domWindow));
nsPluginHostImpl::HandleBadPlugin(nsPluginHostImpl * const 0x0272536c, PRLibrary * 0x00000000, nsIPluginInstance * 0x04a2e9d0) line 6254 + 73 bytes
6254  GetPrompt(owner, getter_AddRefs(prompt));
PluginWndProc(HWND__ * 0x001a01c8, unsigned int 513, unsigned int 1, long 1245700) line 340 + 213 bytes
USER32! 77d48734()
USER32! 77d48816()
USER32! 77d489cd()
USER32! 77d48a10()
nsAppShell::Run(nsAppShell * const 0x02559860) line 135
nsAppStartup::Run(nsAppStartup * const 0x025597b0) line 208
main1(int 4, char * * 0x002a2580, nsISupports * 0x009f4130) line 1248 + 32 bytes
main(int 4, char * * 0x002a2580) line 1737 + 37 bytes
mainCRTStartup() line 338 + 17 bytes
KERNEL32! 7c816d4f()

Additional information:
WARNING: No outer window available!, file C:/mozilla/dom/src/base/nsGlobalWindow.cpp, line 1435
WARNING: No outer window available!, file C:/mozilla/dom/src/base/nsGlobalWindow.cpp, line 1435
WARNING: No outer window available!, file C:/mozilla/dom/src/base/nsGlobalWindow.cpp, line 1435
###!!! ASSERTION: Unable to get an nsIScriptGlobalObjectOwner from the channel!: 'globalOwner', file C:/mozilla/dom/src/jsurl/nsJSProtocolHandler.cpp, line 136
WARNING: No outer window available!, file C:/mozilla/dom/src/base/nsGlobalWindow.cpp, line 1435
###!!! ASSERTION: Unable to get an nsIScriptGlobalObjectOwner from the channel!: 'globalOwner', file C:/mozilla/dom/src/jsurl/nsJSProtocolHandler.cpp, line 136
###!!! ASSERTION: Plugin performed illegal operation: 'PR_FALSE', file C:/mozilla/modules/plugin/base/src/nsPluginHostImpl.cpp, line 6237
> WARNING: No outer window available!, file
> C:/mozilla/dom/src/base/nsGlobalWindow.cpp, line 1435

Neil, what's the stack to that warning?  I can't seem to reproduce this, but I suspect that it's the key here...

Also, what build are you using?  Is it something that has the patches for bug 316794 in it?
Well, I can't reproduce this in a current Linux build, so this might be Windows-Flash-only...
I can't wrap my head around the timezones, but my nsScriptSecuityManager.cpp was last updated 24 hours ago (i.e. not when I just pulled, but last night), and the .obj file is half an hour newer, so I think I had already pulled that patch.

I'll have to try to break on that warning tomorrow.
*** Bug 318363 has been marked as a duplicate of this bug. ***
This was the first for hit the breakpoint at the call to NSGlue::Warning, I then continued and got a second similar-looking stacktrace, I then continued again and crashed in nsFocusController::UpdateWWActiveWindow because mCurrentWindow wasn't pointing to a valid nsGlobalWindow (memory contained 0xbaadfood).

nsGlobalWindow::GetGlobalObjectOwner() line 1424 + 35 bytes
1424  FORWARD_TO_OUTER(GetGlobalObjectOwner, (), nsnull);
nsPluginHostImpl::NewPluginURLStream(nsPluginHostImpl * const 0x00f52928, const nsString & {...}, nsIPluginInstance * 0x03966a00, nsIPluginStreamListener * 0x03975e50, const char * 0x00000000, int 0, unsigned int 0, const char * 0x00000000, unsigned int 0) line 5722 + 17 bytes
5722          callbacks = do_QueryInterface(global->GetGlobalObjectOwner());
nsPluginHostImpl::GetURLWithHeaders(nsPluginHostImpl * const 0x00f52928, nsISupports * 0x03966a00, const char * 0x049e7700, const char * 0x00000000, nsIPluginStreamListener * 0x03975e50, const char * 0x00000000, const char * 0x00000000, int 0, unsigned int 0, const char * 0x00000000) line 2907 + 49 bytes
2906      rv = NewPluginURLStream(string, instance, streamListener, nsnull,
2907                              PR_FALSE, nsnull, getHeaders, getHeadersLength);
nsPluginHostImpl::GetURL(nsPluginHostImpl * const 0x00f52928, nsISupports * 0x03966a00, const char * 0x049e7700, const char * 0x00000000, nsIPluginStreamListener * 0x03975e50, const char * 0x00000000, const char * 0x00000000, int 0) line 2852
2850  return GetURLWithHeaders(pluginInst, url, target, streamListener,
2851                           altHost, referrer, forceJSEnabled, nsnull, nsnull);
MakeNew4xStreamInternal(_NPP * 0x03966a1c, const char * 0x049e7700, const char * 0x00000000, eNPPStreamTypeInternal eNPPStreamTypeInternal_Get, int 1, void * 0x00000029, unsigned long 0, const char * 0x00000000, unsigned char 0) line 935 + 50 bytes
935      if (NS_FAILED(pm->GetURL(inst, relativeURL, target, listener)))
_geturlnotify(_NPP * 0x03966a1c, const char * 0x049e7700, const char * 0x00000000, void * 0x00000029) line 981 + 31 bytes
979  return MakeNew4xStreamInternal (npp, relativeURL, target,
980                                  eNPPStreamTypeInternal_Get, PR_TRUE,
981                                  notifyData);
NPSWF32! 04517941()
NPSWF32! 044ff056()
NPSWF32! 04501314()
NPSWF32! 04501572()
NPSWF32! 045024b9()
NPSWF32! 04502932()
Hmm... When you get that inner that has no outer, what does the document in it look like?
Comment on attachment 204746 [details] [diff] [review]
Fix refcount problem in ns4xPluginInstance::GetDOMWindow().

Duh, wrong diff.
Attachment #204746 - Attachment is obsolete: true
Attachment #204747 - Flags: superreview+
Attachment #204747 - Flags: review+
Fix checked in.
Status: NEW → RESOLVED
Closed: 19 years ago
Resolution: --- → FIXED
Severity: major → critical
I certainly can't reproduce the crash anymore, but I'll let stephend verify it.
Verified FIXED for me using SeaMonkey 1.5a;Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9a1) Gecko/20051202 Mozilla/1.0, trunk.
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: