Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(74)

Side by Side Diff: third_party/WebKit/Source/core/events/EventTarget.h

Issue 1479923002: Enumerate the return value of dispatchEvent so it is clear. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master_passive_uma_add
Patch Set: Rename enum values Created 4 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) 2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org)
3 * (C) 1999 Antti Koivisto (koivisto@kde.org) 3 * (C) 1999 Antti Koivisto (koivisto@kde.org)
4 * (C) 2001 Dirk Mueller (mueller@kde.org) 4 * (C) 2001 Dirk Mueller (mueller@kde.org)
5 * Copyright (C) 2004, 2005, 2006, 2007, 2008 Apple Inc. All rights reserved. 5 * Copyright (C) 2004, 2005, 2006, 2007, 2008 Apple Inc. All rights reserved.
6 * Copyright (C) 2006 Alexey Proskuryakov (ap@webkit.org) 6 * Copyright (C) 2006 Alexey Proskuryakov (ap@webkit.org)
7 * (C) 2007, 2008 Nikolas Zimmermann <zimmermann@kde.org> 7 * (C) 2007, 2008 Nikolas Zimmermann <zimmermann@kde.org>
8 * 8 *
9 * Redistribution and use in source and binary forms, with or without 9 * Redistribution and use in source and binary forms, with or without
10 * modification, are permitted provided that the following conditions 10 * modification, are permitted provided that the following conditions
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after
72 public: 72 public:
73 EventTargetData(); 73 EventTargetData();
74 ~EventTargetData(); 74 ~EventTargetData();
75 75
76 DECLARE_TRACE(); 76 DECLARE_TRACE();
77 77
78 EventListenerMap eventListenerMap; 78 EventListenerMap eventListenerMap;
79 OwnPtr<FiringEventIteratorVector> firingEventIterators; 79 OwnPtr<FiringEventIteratorVector> firingEventIterators;
80 }; 80 };
81 81
82 enum class DispatchEventResult {
83 // Event was not consumed by application or system.
philipj_slow 2016/02/24 10:19:51 s/consumed/canceled/, s/application/event handler/
dtapuska 2016/02/24 22:14:16 Done.
84 NotCanceled,
85 // Event was consumed by application itself; ie. a script handler calling pr eventDefault.
86 CanceledByEventHandler,
87 // Event was consumed by the system; ie. executing the default action.
88 CanceledByDefaultEventHandler,
philipj_slow 2016/02/24 10:19:51 Add stern warnings that these two should not be us
dtapuska 2016/02/24 22:14:16 Done.
89 // Event was consumed but suppressed before dispatched to application.
90 CanceledBeforeDispatch,
91 };
92
82 // This is the base class for all DOM event targets. To make your class an 93 // This is the base class for all DOM event targets. To make your class an
83 // EventTarget, follow these steps: 94 // EventTarget, follow these steps:
84 // - Make your IDL interface inherit from EventTarget. 95 // - Make your IDL interface inherit from EventTarget.
85 // Optionally add "attribute EventHandler onfoo;" attributes. 96 // Optionally add "attribute EventHandler onfoo;" attributes.
86 // - Inherit from EventTargetWithInlineData (only in rare cases should you use 97 // - Inherit from EventTargetWithInlineData (only in rare cases should you use
87 // EventTarget directly); or, if you want YourClass to be inherited from 98 // EventTarget directly); or, if you want YourClass to be inherited from
88 // RefCountedGarbageCollected<YourClass> in addition to EventTargetWithInlineD ata, 99 // RefCountedGarbageCollected<YourClass> in addition to EventTargetWithInlineD ata,
89 // inherit from RefCountedGarbageCollectedEventTargetWithInlineData<YourClass> . 100 // inherit from RefCountedGarbageCollectedEventTargetWithInlineData<YourClass> .
90 // - In your class declaration, EventTargetWithInlineData (or 101 // - In your class declaration, EventTargetWithInlineData (or
91 // RefCountedGarbageCollectedEventTargetWithInlineData<>) must come first in 102 // RefCountedGarbageCollectedEventTargetWithInlineData<>) must come first in
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
131 142
132 bool addEventListener(const AtomicString& eventType, PassRefPtrWillBeRawPtr< EventListener>, bool useCapture = false); 143 bool addEventListener(const AtomicString& eventType, PassRefPtrWillBeRawPtr< EventListener>, bool useCapture = false);
133 bool addEventListener(const AtomicString& eventType, PassRefPtrWillBeRawPtr< EventListener>, const EventListenerOptionsOrBoolean&); 144 bool addEventListener(const AtomicString& eventType, PassRefPtrWillBeRawPtr< EventListener>, const EventListenerOptionsOrBoolean&);
134 bool addEventListener(const AtomicString& eventType, PassRefPtrWillBeRawPtr< EventListener>, EventListenerOptions&); 145 bool addEventListener(const AtomicString& eventType, PassRefPtrWillBeRawPtr< EventListener>, EventListenerOptions&);
135 146
136 bool removeEventListener(const AtomicString& eventType, PassRefPtrWillBeRawP tr<EventListener>, bool useCapture = false); 147 bool removeEventListener(const AtomicString& eventType, PassRefPtrWillBeRawP tr<EventListener>, bool useCapture = false);
137 bool removeEventListener(const AtomicString& eventType, PassRefPtrWillBeRawP tr<EventListener>, const EventListenerOptionsOrBoolean&); 148 bool removeEventListener(const AtomicString& eventType, PassRefPtrWillBeRawP tr<EventListener>, const EventListenerOptionsOrBoolean&);
138 bool removeEventListener(const AtomicString& eventType, PassRefPtrWillBeRawP tr<EventListener>, EventListenerOptions&); 149 bool removeEventListener(const AtomicString& eventType, PassRefPtrWillBeRawP tr<EventListener>, EventListenerOptions&);
139 virtual void removeAllEventListeners(); 150 virtual void removeAllEventListeners();
140 151
141 bool dispatchEvent(PassRefPtrWillBeRawPtr<Event>); 152 DispatchEventResult dispatchEvent(PassRefPtrWillBeRawPtr<Event>);
142 153
143 // dispatchEventForBindings is intended to only be called from 154 // dispatchEventForBindings is intended to only be called from
144 // javascript originated calls. This method will validate and may adjust 155 // javascript originated calls. This method will validate and may adjust
145 // the Event object before dispatching. 156 // the Event object before dispatching.
146 bool dispatchEventForBindings(PassRefPtrWillBeRawPtr<Event>, ExceptionState& ); 157 bool dispatchEventForBindings(PassRefPtrWillBeRawPtr<Event>, ExceptionState& );
147 virtual void uncaughtExceptionInEventHandler(); 158 virtual void uncaughtExceptionInEventHandler();
148 159
149 // Used for legacy "onEvent" attribute APIs. 160 // Used for legacy "onEvent" attribute APIs.
150 bool setAttributeEventListener(const AtomicString& eventType, PassRefPtrWill BeRawPtr<EventListener>); 161 bool setAttributeEventListener(const AtomicString& eventType, PassRefPtrWill BeRawPtr<EventListener>);
151 EventListener* getAttributeEventListener(const AtomicString& eventType); 162 EventListener* getAttributeEventListener(const AtomicString& eventType);
152 163
153 bool hasEventListeners() const; 164 bool hasEventListeners() const;
154 bool hasEventListeners(const AtomicString& eventType) const; 165 bool hasEventListeners(const AtomicString& eventType) const;
155 bool hasCapturingEventListeners(const AtomicString& eventType); 166 bool hasCapturingEventListeners(const AtomicString& eventType);
156 EventListenerVector* getEventListeners(const AtomicString& eventType); 167 EventListenerVector* getEventListeners(const AtomicString& eventType);
157 Vector<AtomicString> eventTypes(); 168 Vector<AtomicString> eventTypes();
158 169
159 bool fireEventListeners(Event*); 170 DispatchEventResult fireEventListeners(Event*);
160 171
161 DEFINE_INLINE_VIRTUAL_TRACE() { } 172 DEFINE_INLINE_VIRTUAL_TRACE() { }
162 173
163 virtual bool keepEventInNode(Event*) { return false; } 174 virtual bool keepEventInNode(Event*) { return false; }
164 175
165 protected: 176 protected:
166 EventTarget(); 177 EventTarget();
167 178
168 virtual bool addEventListenerInternal(const AtomicString& eventType, PassRef PtrWillBeRawPtr<EventListener>, const EventListenerOptions&); 179 virtual bool addEventListenerInternal(const AtomicString& eventType, PassRef PtrWillBeRawPtr<EventListener>, const EventListenerOptions&);
169 virtual bool removeEventListenerInternal(const AtomicString& eventType, Pass RefPtrWillBeRawPtr<EventListener>, const EventListenerOptions&); 180 virtual bool removeEventListenerInternal(const AtomicString& eventType, Pass RefPtrWillBeRawPtr<EventListener>, const EventListenerOptions&);
170 virtual bool dispatchEventInternal(PassRefPtrWillBeRawPtr<Event>); 181 virtual DispatchEventResult dispatchEventInternal(PassRefPtrWillBeRawPtr<Eve nt>);
171 182
172 // Subclasses should likely not override these themselves; instead, they sho uld subclass EventTargetWithInlineData. 183 // Subclasses should likely not override these themselves; instead, they sho uld subclass EventTargetWithInlineData.
173 virtual EventTargetData* eventTargetData() = 0; 184 virtual EventTargetData* eventTargetData() = 0;
174 virtual EventTargetData& ensureEventTargetData() = 0; 185 virtual EventTargetData& ensureEventTargetData() = 0;
175 186
176 private: 187 private:
177 #if !ENABLE(OILPAN) 188 #if !ENABLE(OILPAN)
178 // Subclasses should likely not override these themselves; instead, they sho uld use the REFCOUNTED_EVENT_TARGET() macro. 189 // Subclasses should likely not override these themselves; instead, they sho uld use the REFCOUNTED_EVENT_TARGET() macro.
179 virtual void refEventTarget() = 0; 190 virtual void refEventTarget() = 0;
180 virtual void derefEventTarget() = 0; 191 virtual void derefEventTarget() = 0;
(...skipping 138 matching lines...) Expand 10 before | Expand all | Expand 10 after
319 using baseClass::deref; \ 330 using baseClass::deref; \
320 private: \ 331 private: \
321 void refEventTarget() final { ref(); } \ 332 void refEventTarget() final { ref(); } \
322 void derefEventTarget() final { deref(); } \ 333 void derefEventTarget() final { deref(); } \
323 typedef int thisIsHereToForceASemiColonAfterThisEventTargetMacro 334 typedef int thisIsHereToForceASemiColonAfterThisEventTargetMacro
324 #define REFCOUNTED_EVENT_TARGET(baseClass) DEFINE_EVENT_TARGET_REFCOUNTING(RefCo unted<baseClass>) 335 #define REFCOUNTED_EVENT_TARGET(baseClass) DEFINE_EVENT_TARGET_REFCOUNTING(RefCo unted<baseClass>)
325 #define REFCOUNTED_GARBAGE_COLLECTED_EVENT_TARGET(baseClass) DEFINE_EVENT_TARGET _REFCOUNTING(RefCountedGarbageCollected<baseClass>) 336 #define REFCOUNTED_GARBAGE_COLLECTED_EVENT_TARGET(baseClass) DEFINE_EVENT_TARGET _REFCOUNTING(RefCountedGarbageCollected<baseClass>)
326 #endif // ENABLE(OILPAN) 337 #endif // ENABLE(OILPAN)
327 338
328 #endif // EventTarget_h 339 #endif // EventTarget_h
OLDNEW
« no previous file with comments | « third_party/WebKit/Source/core/events/EventDispatcher.cpp ('k') | third_party/WebKit/Source/core/events/EventTarget.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698