From 928443e854dffb2c2a84d67b15469cf660b3a5cf Mon Sep 17 00:00:00 2001 From: Olli Pettay Date: Thu, 3 May 2012 13:59:51 +0300 Subject: [PATCH] Bug 751286 - eventPhase NONE constant, r=sicking --- content/events/src/nsDOMEvent.cpp | 5 +++-- content/events/test/test_eventctors.html | 2 ++ content/smil/test/test_smilTimeEvents.xhtml | 2 +- dom/interfaces/events/nsIDOMEvent.idl | 7 ++++++- 4 files changed, 12 insertions(+), 4 deletions(-) diff --git a/content/events/src/nsDOMEvent.cpp b/content/events/src/nsDOMEvent.cpp index 5b5b7899e4bf..1c3066a9c92f 100644 --- a/content/events/src/nsDOMEvent.cpp +++ b/content/events/src/nsDOMEvent.cpp @@ -427,7 +427,8 @@ nsDOMEvent::GetEventPhase(PRUint16* aEventPhase) { // Note, remember to check that this works also // if or when Bug 235441 is fixed. - if (mEvent->currentTarget == mEvent->target || + if ((mEvent->currentTarget && + mEvent->currentTarget == mEvent->target) || ((mEvent->flags & NS_EVENT_FLAG_CAPTURE) && (mEvent->flags & NS_EVENT_FLAG_BUBBLE))) { *aEventPhase = nsIDOMEvent::AT_TARGET; @@ -436,7 +437,7 @@ nsDOMEvent::GetEventPhase(PRUint16* aEventPhase) } else if (mEvent->flags & NS_EVENT_FLAG_BUBBLE) { *aEventPhase = nsIDOMEvent::BUBBLING_PHASE; } else { - *aEventPhase = 0; + *aEventPhase = nsIDOMEvent::NONE; } return NS_OK; } diff --git a/content/events/test/test_eventctors.html b/content/events/test/test_eventctors.html index ee992edf674e..ecad322eb0b0 100644 --- a/content/events/test/test_eventctors.html +++ b/content/events/test/test_eventctors.html @@ -64,7 +64,9 @@ ok(e.type, "hello", "Wrong event type!"); ok(!e.isTrusted, "Event shouldn't be trusted!"); ok(!e.bubbles, "Event shouldn't bubble!"); ok(!e.cancelable, "Event shouldn't be cancelable!"); +is(e.eventPhase, Event.NONE, "Wrong event phase"); document.dispatchEvent(e); +is(e.eventPhase, Event.NONE, "Wrong event phase"); is(receivedEvent, e, "Wrong event!"); e = new Event("hello", { bubbles: true, cancelable: true }); diff --git a/content/smil/test/test_smilTimeEvents.xhtml b/content/smil/test/test_smilTimeEvents.xhtml index c7c9e7fc5f79..d8681ee92bd1 100644 --- a/content/smil/test/test_smilTimeEvents.xhtml +++ b/content/smil/test/test_smilTimeEvents.xhtml @@ -157,7 +157,7 @@ function testCreateEvent() is(evt.detail, 3, "Unexpected detail for user-generated event"); is(evt.target, null, "Unexpected event target"); is(evt.currentTarget, null, "Unexpected event current target"); - is(evt.eventPhase, evt.AT_TARGET); + is(evt.eventPhase, evt.NONE); is(evt.bubbles, false, "Event should not bubble"); is(evt.cancelable, false, "Event should not be cancelable"); is(evt.view, null, "Event view should be null"); diff --git a/dom/interfaces/events/nsIDOMEvent.idl b/dom/interfaces/events/nsIDOMEvent.idl index 3ef215b24388..b08b60f90357 100644 --- a/dom/interfaces/events/nsIDOMEvent.idl +++ b/dom/interfaces/events/nsIDOMEvent.idl @@ -46,13 +46,18 @@ interface nsIDOMEventTarget; * the Document Object Model. * * For more information on this interface please see - * http://www.w3.org/TR/DOM-Level-2-Events/ + * http://dev.w3.org/2006/webapi/DOM-Level-3-Events/html/DOM3-Events.html and + * http://dvcs.w3.org/hg/domcore/raw-file/tip/Overview.html */ [scriptable, uuid(e85cff74-951f-45c1-be0c-89442ea2f500)] interface nsIDOMEvent : nsISupports { // PhaseType + /** + * The event isn't being dispatched. + */ + const unsigned short NONE = 0; /** * The current event phase is the capturing phase. */