[XForms] NPOTB cannot attach JS listeners to xforms events. Bug 428509, p=msterlin r=olli+aaronr

git-svn-id: svn://10.0.0.236/trunk@251054 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
aaronr%us.ibm.com 2008-05-01 21:25:25 +00:00
parent 5fca3da66b
commit 7392e78d54
2 changed files with 27 additions and 1 deletions

View File

@ -43,7 +43,28 @@
*
*/
NS_IMPL_ISUPPORTS3(nsXFormsDOMEvent, nsIXFormsDOMEvent, nsIDOMNSEvent, nsIPrivateDOMEvent)
// Setup the interface map so that an nsIXFormsDOMEvent can be QI'ed to
// nsIDOMEvent, nsIDOMNSEvent, nsIPrivateDOMEvent, and nsISupports.
//
// nsISupports is ambiguous because all of the interfaces inherit from
// nsISupports. NS_INTERFACE_MAP_ENTRY_AMBIGOUS will cast to the
// nsISupports of nsXFormsDOMEvent.
//
// nsXFormsDOMEvent contains an nsIDOMEvent (mInner) and nsIDOMEvent
// implements nsIDOMNSEvent and nsIPrivateDOMEvent. The event dispatcher
// will QI to those interfaces. We use NS_INTERFACE_MAP_END_AGGREGATED to
// forward QIs for those interfaces to mInner.
NS_INTERFACE_MAP_BEGIN(nsXFormsDOMEvent)
NS_INTERFACE_MAP_ENTRY(nsIXFormsDOMEvent)
NS_INTERFACE_MAP_ENTRY(nsIDOMEvent)
NS_INTERFACE_MAP_ENTRY(nsIDOMNSEvent)
NS_INTERFACE_MAP_ENTRY(nsIPrivateDOMEvent)
NS_INTERFACE_MAP_ENTRY_AMBIGUOUS(nsISupports, nsIXFormsDOMEvent)
NS_INTERFACE_MAP_END_AGGREGATED(mInner)
NS_IMPL_ADDREF(nsXFormsDOMEvent)
NS_IMPL_RELEASE(nsXFormsDOMEvent)
nsXFormsDOMEvent::nsXFormsDOMEvent(nsIDOMEvent *aInner,
nsCOMArray<nsIXFormsContextInfo> *aContextInfo)

View File

@ -36,6 +36,9 @@
*
* ***** END LICENSE BLOCK ***** */
#ifndef __NSXFORMSDOMEVENT_H__
#define __NSXFORMSDOMEVENT_H__
#include "nsCOMPtr.h"
#include "nsCOMArray.h"
#include "nsInterfaceHashtable.h"
@ -84,3 +87,5 @@ protected:
*/
nsInterfaceHashtable<nsStringHashKey, nsIXFormsContextInfo> mContextInfo;
};
#endif