Back out revision 52f646b2055c (bug 870219) because apparently worker code can't handle ChromeOnly properties

This commit is contained in:
Boris Zbarsky 2013-05-09 14:12:12 -04:00
parent 8d84f933dc
commit d94f23379f
5 changed files with 11 additions and 58 deletions

View File

@ -11,15 +11,12 @@
#include "nsIDOMEventListener.h"
#include "mozilla/ErrorResult.h"
#include "mozilla/dom/Nullable.h"
#include "nsIAtom.h"
class nsDOMEvent;
namespace mozilla {
namespace dom {
class EventListener;
class EventHandlerNonNull;
// IID for the dom::EventTarget interface
#define NS_EVENTTARGET_IID \
@ -46,24 +43,6 @@ public:
bool aCapture,
ErrorResult& aRv);
bool DispatchEvent(nsDOMEvent& aEvent, ErrorResult& aRv);
EventHandlerNonNull* GetEventHandler(const nsAString& aType)
{
nsCOMPtr<nsIAtom> type = do_GetAtom(aType);
return GetEventHandler(type);
}
void SetEventHandler(const nsAString& aType, EventHandlerNonNull* aHandler,
ErrorResult& rv)
{
nsCOMPtr<nsIAtom> type = do_GetAtom(aType);
return SetEventHandler(type, aHandler, rv);
}
protected:
EventHandlerNonNull* GetEventHandler(nsIAtom* aType);
void SetEventHandler(nsIAtom* aType, EventHandlerNonNull* aHandler,
ErrorResult& rv);
};
NS_DEFINE_STATIC_IID_ACCESSOR(EventTarget, NS_EVENTTARGET_IID)

View File

@ -22,19 +22,5 @@ EventTarget::RemoveEventListener(const nsAString& aType,
}
}
EventHandlerNonNull*
EventTarget::GetEventHandler(nsIAtom* aType)
{
nsEventListenerManager* elm = GetListenerManager(false);
return elm ? elm->GetEventHandler(aType) : nullptr;
}
void
EventTarget::SetEventHandler(nsIAtom* aType, EventHandlerNonNull* aHandler,
ErrorResult& rv)
{
rv = GetListenerManager(true)->SetEventHandler(aType, aHandler);
}
} // namespace dom
} // namespace mozilla

View File

@ -90,11 +90,20 @@ public:
nsresult SetEventHandler(nsIAtom* aType,
JSContext* aCx,
const JS::Value& aValue);
using mozilla::dom::EventTarget::SetEventHandler;
void SetEventHandler(nsIAtom* aType,
mozilla::dom::EventHandlerNonNull* aHandler,
mozilla::ErrorResult& rv)
{
rv = GetListenerManager(true)->SetEventHandler(aType, aHandler);
}
void GetEventHandler(nsIAtom* aType,
JSContext* aCx,
JS::Value* aValue);
using mozilla::dom::EventTarget::GetEventHandler;
mozilla::dom::EventHandlerNonNull* GetEventHandler(nsIAtom* aType)
{
nsEventListenerManager* elm = GetListenerManager(false);
return elm ? elm->GetEventHandler(aType) : nullptr;
}
nsresult CheckInnerWindowCorrectness()
{

View File

@ -27,13 +27,3 @@ interface EventTarget {
[Throws]
boolean dispatchEvent(Event event);
};
// Mozilla extensions for use by JS-implemented event targets to
// implement on* properties.
partial interface EventTarget {
[ChromeOnly, Throws]
void setEventHandler(DOMString type, EventHandler handler);
[ChromeOnly]
EventHandler getEventHandler(DOMString type);
};

View File

@ -63,17 +63,6 @@ public:
{
return mListenerManager.HasListeners();
}
void SetEventHandler(JSContext*, const nsAString& aType, JSObject* aHandler,
ErrorResult& rv)
{
rv.Throw(NS_ERROR_NOT_IMPLEMENTED);
}
JSObject* GetEventHandler(JSContext*, const nsAString& aType)
{
return nullptr;
}
};
END_WORKERS_NAMESPACE