Closed
Bug 56028
Opened 25 years ago
Closed 25 years ago
nsObjectFrame should be a DOM Listener
Categories
(Core Graveyard :: Plug-ins, defect, P3)
Tracking
(Not tracked)
VERIFIED
FIXED
People
(Reporter: peterlubczynski-bugs, Assigned: karnaze)
Details
Attachments
(2 files)
6.31 KB,
patch
|
Details | Diff | Splinter Review | |
6.73 KB,
patch
|
Details | Diff | Splinter Review |
nsObjectFrame still has the old HandleEvent() code for sending plugins events.
It needs to be re-written to be a DOM Listener so that we can consume
events.
This issue comes up when doing context menus on platforms that don't send events
directly to a child window (as on the Mac). See bug 55822.
Assignee | ||
Comment 2•25 years ago
|
||
Assignee | ||
Comment 3•25 years ago
|
||
Peterl, back to you for testing on the MAC.
Assignee: karnaze → peterl
Reporter | ||
Comment 4•25 years ago
|
||
Trying out the patch...
Seem to work with context menus. Need to try Java. However, we are getting a
crash in the destructor (on Mac and Win32) when you leave this test url:
http://www.powershot.com/splash.html
Looks like it's on: mOwner->GetContent(getter_AddRefs(content)) and here's the
stack trace:
nsPluginInstanceOwner::~nsPluginInstanceOwner() line 1438 + 39 bytes
nsPluginInstanceOwner::`scalar deleting destructor'(unsigned int 1) + 15 bytes
nsPluginInstanceOwner::Release(nsPluginInstanceOwner * const 0x03687030) line
1532 + 154 bytes
nsEventListenerManager::ReleaseListeners(nsVoidArray * * 0x03687984, int 0) line
206 + 24 bytes
nsEventListenerManager::~nsEventListenerManager() line 89
nsEventListenerManager::`scalar deleting destructor'(unsigned int 1) + 15 bytes
nsEventListenerManager::Release(nsEventListenerManager * const 0x03687970) line
103 + 151 bytes
nsGenericElement::~nsGenericElement() line 412 + 24 bytes
nsGenericHTMLElement::~nsGenericHTMLElement() line 395 + 8 bytes
nsGenericHTMLLeafElement::~nsGenericHTMLLeafElement() line 3158 + 8 bytes
nsHTMLEmbedElement::~nsHTMLEmbedElement() line 126 + 11 bytes
nsHTMLEmbedElement::`scalar deleting destructor'(unsigned int 1) + 15 bytes
nsHTMLEmbedElement::Release(nsHTMLEmbedElement * const 0x032ce0f0) line 129 +
157 bytes
nsGenericHTMLContainerElement::~nsGenericHTMLContainerElement() line 3200 + 12
bytes
nsHTMLObjectElement::~nsHTMLObjectElement() line 95 + 11 bytes
nsHTMLObjectElement::`scalar deleting destructor'(unsigned int 1) + 15 bytes
nsHTMLObjectElement::Release(nsHTMLObjectElement * const 0x032b3990) line 99 +
154 bytes
nsGenericHTMLContainerElement::~nsGenericHTMLContainerElement() line 3200 + 12
bytes
nsHTMLSpanElement::~nsHTMLSpanElement() line 90 + 11 bytes
nsHTMLSpanElement::`scalar deleting destructor'(unsigned int 1) + 15 bytes
nsHTMLSpanElement::Release(nsHTMLSpanElement * const 0x032b1e00) line 94 + 154
bytes
nsGenericHTMLContainerElement::~nsGenericHTMLContainerElement() line 3200 + 12
bytes
nsBodyInner::~nsBodyInner() line 151 + 32 bytes
nsHTMLBodyElement::~nsHTMLBodyElement() line 704 + 11 bytes
nsHTMLBodyElement::`scalar deleting destructor'(unsigned int 1) + 15 bytes
nsHTMLBodyElement::Release(nsHTMLBodyElement * const 0x0320a6a0) line 708 + 157
bytes
nsGenericHTMLContainerElement::~nsGenericHTMLContainerElement() line 3200 + 12
bytes
nsHTMLHtmlElement::~nsHTMLHtmlElement() line 98 + 11 bytes
nsHTMLHtmlElement::`scalar deleting destructor'(unsigned int 1) + 15 bytes
nsHTMLHtmlElement::Release(nsHTMLHtmlElement * const 0x03202ee0) line 102 + 154
bytes
nsDocument::~nsDocument() line 665 + 27 bytes
nsMarkupDocument::~nsMarkupDocument() line 38 + 8 bytes
nsHTMLDocument::~nsHTMLDocument() line 345 + 37 bytes
nsHTMLDocument::`scalar deleting destructor'() + 15 bytes
nsDocument::Release(nsDocument * const 0x032072a0) line 821 + 158 bytes
nsHTMLDocument::Release(nsHTMLDocument * const 0x032072a0) line 385
nsEventStateManager::~nsEventStateManager() line 172 + 45 bytes
nsEventStateManager::`scalar deleting destructor'(unsigned int 1) + 15 bytes
nsEventStateManager::Release(nsEventStateManager * const 0x032b7710) line 248 +
154 bytes
nsCOMPtr<nsIEventStateManager>::~nsCOMPtr<nsIEventStateManager>() line 490
nsPresContext::~nsPresContext() line 148 + 28 bytes
GalleyContext::~GalleyContext() line 45 + 8 bytes
GalleyContext::`scalar deleting destructor'(unsigned int 1) + 15 bytes
nsPresContext::Release(nsPresContext * const 0x031bee00) line 150 + 157 bytes
nsDOMEvent::~nsDOMEvent() line 120 + 27 bytes
nsDOMEvent::`scalar deleting destructor'(unsigned int 1) + 15 bytes
nsDOMEvent::Release(nsDOMEvent * const 0x03328370) line 135 + 154 bytes
nsJSUtils::nsGenericFinalize(JSContext * 0x031cb1d0, JSObject * 0x00eefb08) line
436 + 12 bytes
FinalizeKeyEvent(JSContext * 0x031cb1d0, JSObject * 0x00eefb08) line 330 + 13
bytes
js_FinalizeObject(JSContext * 0x031cb1d0, JSObject * 0x00eefb08) line 1600 + 114
bytes
gc_finalize_phase(JSContext * 0x031cb1d0, unsigned int 428) line 907 + 11 bytes
js_GC(JSContext * 0x031cb1d0, unsigned int 0) line 1173 + 13 bytes
js_ForceGC(JSContext * 0x031cb1d0) line 871 + 11 bytes
JS_GC(JSContext * 0x031cb1d0) line 1542 + 9 bytes
nsJSContext::GC(nsJSContext * const 0x031cb380) line 1287 + 13 bytes
GlobalWindowImpl::SetNewDocument(GlobalWindowImpl * const 0x031cb3f0,
nsIDOMDocument * 0x036650d4) line 365
DocumentViewerImpl::Init(DocumentViewerImpl * const 0x03669ec0, nsIWidget *
0x031b8224, nsIDeviceContext * 0x031cb970, const nsRect & {...}) line 537
nsDocShell::SetupNewViewer(nsDocShell * const 0x031b89a0, nsIContentViewer *
0x03669ec0) line 2775 + 66 bytes
nsWebShell::SetupNewViewer(nsWebShell * const 0x031b89a0, nsIContentViewer *
0x03669ec0) line 350 + 13 bytes
nsDocShell::Embed(nsDocShell * const 0x031b89c0, nsIContentViewer * 0x03669ec0,
const char * 0x01e311c4, nsISupports * 0x00000000) line 2409 + 23 bytes
nsWebShell::Embed(nsWebShell * const 0x031b89c0, nsIContentViewer * 0x03669ec0,
const char * 0x01e311c4, nsISupports * 0x00000000) line 383
nsDocShell::CreateContentViewer(nsDocShell * const 0x031b89a0, const char *
0x0012faf4, nsIChannel * 0x03661260, nsIStreamListener * * 0x0012fb48) line 2588
+ 32 bytes
nsDSURIContentListener::DoContent(nsDSURIContentListener * const 0x031b86c0,
const char * 0x0012faf4, int 0, const char * 0x100a56c8 gCommonEmptyBuffer,
nsIChannel * 0x03661260, nsIStreamListener * * 0x0012fb48, int * 0x0012fad8)
line 106 + 33 bytes
nsDocumentOpenInfo::DispatchContent(nsIChannel * 0x03661260, nsISupports *
0x00000000) line 359 + 109 bytes
nsDocumentOpenInfo::OnStartRequest(nsDocumentOpenInfo * const 0x03665890,
nsIChannel * 0x03661260, nsISupports * 0x00000000) line 233 + 16 bytes
nsHTTPFinalListener::OnStartRequest(nsHTTPFinalListener * const 0x03663280,
nsIChannel * 0x03661260, nsISupports * 0x00000000) line 1122
nsHTTPCacheListener::OnStartRequest(nsHTTPCacheListener * const 0x036743c0,
nsIChannel * 0x036749d0, nsISupports * 0x00000000) line 150
nsDiskCacheRecordChannel::OnStartRequest(nsDiskCacheRecordChannel * const
0x036749d4, nsIChannel * 0x03674100, nsISupports * 0x00000000) line 704
nsOnStartRequestEvent::HandleEvent(nsOnStartRequestEvent * const 0x0367f310)
line 210 + 26 bytes
nsStreamListenerEvent::HandlePLEvent(PLEvent * 0x0367b090) line 97 + 12 bytes
PL_HandleEvent(PLEvent * 0x0367b090) line 580 + 10 bytes
PL_ProcessPendingEvents(PLEventQueue * 0x00ac8360) line 513 + 9 bytes
_md_EventReceiverProc(HWND__ * 0x0001061c, unsigned int 49361, unsigned int 0,
long 11305824) line 1049 + 9 bytes
USER32! 77e7124c()
Back over to Chris....
Assignee: peterl → karnaze
Reporter | ||
Comment 5•25 years ago
|
||
Comment 6•25 years ago
|
||
It's difficult to tell the difference between the 2 patches. Did you just add
mInstanceOwner->Destroy() in the nsObjectFrame destructor?
Reporter | ||
Comment 7•25 years ago
|
||
mInstanceOwner->Destroy() was added because we can not release the ref in the
destructor for nsPluginInstanceOwner because the EventManager still has a ref.
mInstanceOwner->Destroy() is called in the object frame's constructor.
That fixes the crash.
Comment 8•25 years ago
|
||
Reporter | ||
Updated•25 years ago
|
Status: NEW → RESOLVED
Closed: 25 years ago
Resolution: --- → FIXED
Reporter | ||
Comment 9•25 years ago
|
||
Yup, already done thanks to Chris Saari. Marking FIXED.
Updated•3 years ago
|
Product: Core → Core Graveyard
You need to log in
before you can comment on or make changes to this bug.
Description
•