Open Bug 51543 Opened 24 years ago Updated 2 years ago

Assertion trying to paste into page content [disabled command being dispatched]

Categories

(Core :: DOM: Navigation, defect, P3)

x86
Windows NT
defect

Tracking

()

Future

People

(Reporter: warrensomebody, Unassigned)

Details

(Keywords: helpwanted)

NTDLL! 77f7629c()
nsDebug::Assertion(const char * 0x01ff4cd0, const char * 0x01ff4ccc, const char 
* 0x01ff4c8c, int 0x00000564) line 256 + 13 bytes
DocumentViewerImpl::Paste(DocumentViewerImpl * const 0x03537c44) line 1380 + 35 
bytes
nsDOMWindowController::DoCommand(nsDOMWindowController * const 0x043b1fa0, 
const unsigned short * 0x027dc150) line 4936 + 32 bytes
XPTC_InvokeByIndex(nsISupports * 0x043b1fa0, unsigned int 0x00000005, unsigned 
int 0x00000001, nsXPTCVariant * 0x0012c2a4) line 139
nsXPCWrappedNativeClass::CallWrappedMethod(JSContext * 0x03491b10, 
nsXPCWrappedNative * 0x0879a5f0, const XPCNativeMemberDescriptor * 0x0879a68c, 
nsXPCWrappedNativeClass::CallMode CALL_METHOD, unsigned int 0x00000001, long * 
0x038de0a4, long * 0x0012c454) line 915 + 43 bytes
WrappedNative_CallMethod(JSContext * 0x03491b10, JSObject * 0x0391fd08, 
unsigned int 0x00000001, long * 0x038de0a4, long * 0x0012c454) line 226 + 34 
bytes
js_Invoke(JSContext * 0x03491b10, unsigned int 0x00000001, unsigned int 
0x00000000) line 731 + 23 bytes
js_Interpret(JSContext * 0x03491b10, long * 0x0012cddc) line 2538 + 15 bytes
js_Invoke(JSContext * 0x03491b10, unsigned int 0x00000001, unsigned int 
0x00000002) line 748 + 13 bytes
js_InternalInvoke(JSContext * 0x03491b10, JSObject * 0x02abfba8, long 
0x0391fcf8, unsigned int 0x00000000, unsigned int 0x00000001, long * 
0x0012cf70, long * 0x0012cf00) line 821 + 19 bytes
JS_CallFunctionValue(JSContext * 0x03491b10, JSObject * 0x02abfba8, long 
0x0391fcf8, unsigned int 0x00000001, long * 0x0012cf70, long * 0x0012cf00) line 
3175 + 31 bytes
nsJSContext::CallEventHandler(nsJSContext * const 0x03490fb0, void * 
0x02abfba8, void * 0x0391fcf8, unsigned int 0x00000001, void * 0x0012cf70, int 
* 0x0012cf6c, int 0x00000000) line 902 + 33 bytes
nsJSEventListener::HandleEvent(nsIDOMEvent * 0x08731e80) line 154 + 64 bytes
nsXULKeyListenerImpl::HandleEventUsingKeyset(nsXULKeyListenerImpl * const 
0x03558030, nsIDOMElement * 0x03bfab68, nsIDOMKeyEvent * 0x08731e80, eEventType 
eKeyPress, nsIDOMXULDocument * 0x034f0c4c, int & 0x00000001) line 1676
nsXULKeyListenerImpl::LocateAndExecuteKeyBinding(nsXULKeyListenerImpl * const 
0x03558030, nsIDOMKeyEvent * 0x08731e80, eEventType eKeyPress, 
nsIDOMXULDocument * 0x034f0c4c, int & 0x00000001) line 1358 + 37 bytes
nsXULKeyListenerImpl::DoKey(nsIDOMEvent * 0x08731e84, eEventType eKeyPress) 
line 683
nsXULKeyListenerImpl::KeyPress(nsIDOMEvent * 0x08731e84) line 594
nsEventListenerManager::HandleEvent(nsIPresContext * 0x03531410, nsEvent * 
0x0012f888, nsIDOMEvent * * 0x0012f430, nsIDOMEventTarget * 0x03536e10, 
unsigned int 0x00000002, nsEventStatus * 0x0012f7f4) line 1114 + 23 bytes
nsXULDocument::HandleDOMEvent(nsXULDocument * const 0x03536df0, nsIPresContext 
* 0x03531410, nsEvent * 0x0012f888, nsIDOMEvent * * 0x0012f430, unsigned int 
0x00000002, nsEventStatus * 0x0012f7f4) line 2123
nsXULElement::HandleDOMEvent(nsXULElement * const 0x03484d40, nsIPresContext * 
0x03531410, nsEvent * 0x0012f888, nsIDOMEvent * * 0x0012f430, unsigned int 
0x00000002, nsEventStatus * 0x0012f7f4) line 3271 + 39 bytes
nsXULElement::HandleDOMEvent(nsXULElement * const 0x0355d6d0, nsIPresContext * 
0x03531410, nsEvent * 0x0012f888, nsIDOMEvent * * 0x0012f430, unsigned int 
0x00000002, nsEventStatus * 0x0012f7f4) line 3265 + 39 bytes
nsXULElement::HandleDOMEvent(nsXULElement * const 0x0355d4c0, nsIPresContext * 
0x03531410, nsEvent * 0x0012f888, nsIDOMEvent * * 0x0012f430, unsigned int 
0x00000002, nsEventStatus * 0x0012f7f4) line 3265 + 39 bytes
nsXULElement::HandleDOMEvent(nsXULElement * const 0x035657c0, nsIPresContext * 
0x03531410, nsEvent * 0x0012f888, nsIDOMEvent * * 0x0012f430, unsigned int 
0x00000002, nsEventStatus * 0x0012f7f4) line 3265 + 39 bytes
nsXULElement::HandleDOMEvent(nsXULElement * const 0x035656b0, nsIPresContext * 
0x03531410, nsEvent * 0x0012f888, nsIDOMEvent * * 0x0012f430, unsigned int 
0x00000002, nsEventStatus * 0x0012f7f4) line 3265 + 39 bytes
nsXULElement::HandleDOMEvent(nsXULElement * const 0x03565550, nsIPresContext * 
0x03531410, nsEvent * 0x0012f888, nsIDOMEvent * * 0x0012f430, unsigned int 
0x00000002, nsEventStatus * 0x0012f7f4) line 3265 + 39 bytes
nsXULElement::HandleDOMEvent(nsXULElement * const 0x03563bb0, nsIPresContext * 
0x03531410, nsEvent * 0x0012f888, nsIDOMEvent * * 0x0012f430, unsigned int 
0x00000002, nsEventStatus * 0x0012f7f4) line 3265 + 39 bytes
nsXULElement::HandleDOMEvent(nsXULElement * const 0x0429b570, nsIPresContext * 
0x03531410, nsEvent * 0x0012f888, nsIDOMEvent * * 0x0012f430, unsigned int 
0x00000002, nsEventStatus * 0x0012f7f4) line 3265 + 39 bytes
nsGenericElement::HandleDOMEvent(nsIPresContext * 0x03531410, nsEvent * 
0x0012f888, nsIDOMEvent * * 0x0012f430, unsigned int 0x00000001, nsEventStatus 
* 0x0012f7f4) line 1376 + 39 bytes
nsHTMLInputElement::HandleDOMEvent(nsHTMLInputElement * const 0x042991cc, 
nsIPresContext * 0x03531410, nsEvent * 0x0012f888, nsIDOMEvent * * 0x00000000, 
unsigned int 0x00000001, nsEventStatus * 0x0012f7f4) line 889 + 31 bytes
PresShell::HandleEventInternal(nsEvent * 0x0012f888, nsIView * 0x04380240, 
nsEventStatus * 0x0012f7f4) line 4040 + 45 bytes
PresShell::HandleEvent(PresShell * const 0x034807c4, nsIView * 0x04380240, 
nsGUIEvent * 0x0012f888, nsEventStatus * 0x0012f7f4, int 0x00000000, int & 
0x00000001) line 3975 + 23 bytes
nsView::HandleEvent(nsView * const 0x04380240, nsGUIEvent * 0x0012f888, 
unsigned int 0x00000008, nsEventStatus * 0x0012f7f4, int 0x00000000, int & 
0x00000001) line 379
nsView::HandleEvent(nsView * const 0x03477580, nsGUIEvent * 0x0012f888, 
unsigned int 0x0000001c, nsEventStatus * 0x0012f7f4, int 0x00000001, int & 
0x00000001) line 352
nsViewManager2::DispatchEvent(nsViewManager2 * const 0x03531140, nsGUIEvent * 
0x0012f888, nsEventStatus * 0x0012f7f4) line 1429
HandleEvent(nsGUIEvent * 0x0012f888) line 68
nsWindow::DispatchEvent(nsWindow * const 0x04380104, nsGUIEvent * 0x0012f888, 
nsEventStatus & nsEventStatus_eIgnore) line 614 + 10 bytes
nsWindow::DispatchWindowEvent(nsGUIEvent * 0x0012f888) line 635
nsWindow::DispatchKeyEvent(unsigned int 0x00000083, unsigned short 0x0076, 
unsigned int 0x00000000) line 2217 + 15 bytes
nsWindow::OnChar(unsigned int 0x00000016, unsigned int 0x00000000, unsigned 
char 0x00) line 2341
nsWindow::ProcessMessage(unsigned int 0x00000102, unsigned int 0x00000016, long 
0x002f0001, long * 0x0012fc10) line 2774 + 33 bytes
nsWindow::WindowProc(HWND__ * 0x036d05fc, unsigned int 0x00000102, unsigned int 
0x00000016, long 0x002f0001) line 883 + 27 bytes
USER32! 77e71820()
JS3250! 002f0001()
The assertion turns out to be:
NS_IMETHODIMP DocumentViewerImpl::Paste()
{
  NS_ASSERTION(0, "NOT IMPLEMENTED");
  return NS_ERROR_NOT_IMPLEMENTED;
}
This code was authored by buster a long time ago, but it looks like he was just
moving it from somewhere else (cc'ing anyway).

It sounds like the browser window is now calling a controller implemented by
nsDocumentViewer, whereas before, it was just relying on key events passing
through to the focused text field.  Hyatt, Saari?  Know of any changes that
happened recently that might affect this?

Sounds like someone needs to implement the nsDocumentViewer's paste handler.
pushing to buster
Assignee: beppe → buster
I don't know anything about any recent changes to the way this works that would 
cause this assertion to suddenly start happening.  I don't have any time to help 
investigate, unless you get really desparate.  My involvement with this code was 
a long time ago, and a lot has changed.

Beppe:  you'll have to find a different owner for this one.  Sorry.
Assignee: buster → beppe
bummer, was hoping you knew the code!

looking through the file, Peter VanderBeken and Rick Potts have been in there -- 
asking them to take a look
Assignee: beppe → peter.vanderbeken
Most of my checkin is #ifdef MOZ_XSL, so not built by default. The only change 
that is built is the implementation of DocumentViewerImpl::SetDOMDocument (which 
was actually written by nisheeth@netscape.com). Unless someone proves me wrong, 
I don't think i caused this.
thanks Peter for looking

Rick, any chance your changes could have any effect on the assertions
Assignee: peter.vanderbeken → rpotts
If this assertion fires, then it means that the wrong controler is being called 
for the cmd_paste command. I think the assertion should stay; what needs fixing 
is the focus/controller issues that get us the wrong controller.
Any tips for reproducing this? Seems to work for me in today's build on Win2K
All I remember was that I was pasting text at the end of an existing url in the 
location bar. I'll give it another try... (but shouldn't that method get 
implemented anyway?)
No, the method should not get implemented. As I said above, the wrong controller 
is being called. That controller should only be used for read-only content.
Is this still a problem?  Or does the event get targeted to the correct 
controller now?

Simon is right, Paste should *not* be implemented on the DocumentViewer.
Status: NEW → RESOLVED
Closed: 23 years ago
Resolution: --- → INVALID
closing. if this is still reproducible, reopen.
verified in 4/3 build.
Status: RESOLVED → VERIFIED
I still see this assertion when I hit command-V to "paste" into the content area 
(which should never be allowed). The bug here is that keys are not being disabled 
as menu items are.
since Simon can reproduce, opening this back up
Status: VERIFIED → REOPENED
Resolution: INVALID → ---
Reassigning to a key bindings person. The real bug here is that even though the 
Paste menu item is disabled, the Command-V shortcut is still executing the 
command. That should never happen.
Assignee: rpotts → saari
Status: REOPENED → NEW
Summary: assertion pasting into location bar → Assertion trying to paste into page content
Status: NEW → ASSIGNED
Target Milestone: --- → mozilla0.9.1
->future/helpwanted
Keywords: helpwanted
Target Milestone: mozilla0.9.1 → Future
I just ran into this bug and I agree with Simon: the problem here is that 
Ctrl+V still tries to do a paste when the menu item is disabled.
removing myself from the cc list
Since this issue really isn't about anything related to the editor reassigning
to embedding : docshell.  The problem is about commands being dispatched when
they are disabled.  Can this assertion even be reached anymore?
Assignee: saari → adamlock
Status: ASSIGNED → NEW
Component: Editor: Core → Embedding: Docshell
QA Contact: sujay → adamlock
Summary: Assertion trying to paste into page content → Assertion trying to paste into page content [disabled command being dispatched]
i believe i still hit this, although i rarely run debug builds
Assignee: adamlock → nobody
QA Contact: adamlock → docshell
Severity: normal → S3
You need to log in before you can comment on or make changes to this bug.