Changeset 207734 in webkit
- Timestamp:
- Oct 23, 2016 3:55:44 PM (7 years ago)
- Location:
- trunk/Source
- Files:
-
- 7 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r207727 r207734 1 2016-10-23 Chris Dumez <cdumez@apple.com> 2 3 addEventListener() / removeEventListener() should use a union for last parameter 4 https://bugs.webkit.org/show_bug.cgi?id=163863 5 6 Reviewed by Darin Adler. 7 8 addEventListener() / removeEventListener() should use a union for last parameter: 9 - https://dom.spec.whatwg.org/#eventtarget 10 11 No new tests, no Web-exposed behavior change. 12 13 * bindings/js/JSDOMConvert.h: 14 * dom/EventTarget.cpp: 15 (WebCore::EventTarget::addEventListenerForBindings): 16 (WebCore::EventTarget::removeEventListenerForBindings): 17 * dom/EventTarget.h: 18 * dom/EventTarget.idl: 19 1 20 2016-10-23 Zalan Bujtas <zalan@apple.com> 2 21 -
trunk/Source/WebCore/bindings/js/JSDOMConvert.h
r207715 r207734 619 619 if (hasBooleanType) { 620 620 if (value.isBoolean()) 621 return std::move<WTF::CheckMoveParameter>(ConditionalConverter<ReturnType, bool, hasBooleanType>::convert(state, value).value());621 return std::move<WTF::CheckMoveParameter>(ConditionalConverter<ReturnType, IDLBoolean, hasBooleanType>::convert(state, value).value()); 622 622 } 623 623 … … 641 641 // 17. If types includes a boolean, then return the result of converting V to boolean. 642 642 if (hasBooleanType) 643 return std::move<WTF::CheckMoveParameter>(ConditionalConverter<ReturnType, bool, hasBooleanType>::convert(state, value).value());643 return std::move<WTF::CheckMoveParameter>(ConditionalConverter<ReturnType, IDLBoolean, hasBooleanType>::convert(state, value).value()); 644 644 645 645 // 18. Throw a TypeError. -
trunk/Source/WebCore/dom/EventTarget.cpp
r206889 r207734 83 83 } 84 84 85 void EventTarget::addEventListenerForBindings(const AtomicString& eventType, RefPtr<EventListener>&& listener, const AddEventListenerOptions& options)85 void EventTarget::addEventListenerForBindings(const AtomicString& eventType, RefPtr<EventListener>&& listener, AddEventListenerOptionsOrBoolean&& variant) 86 86 { 87 87 if (!listener) 88 88 return; 89 addEventListener(eventType, listener.releaseNonNull(), options); 90 } 91 92 void EventTarget::removeEventListenerForBindings(const AtomicString& eventType, RefPtr<EventListener>&& listener, const ListenerOptions& options) 89 90 auto visitor = WTF::makeVisitor([&](const AddEventListenerOptions& options) { 91 addEventListener(eventType, listener.releaseNonNull(), options); 92 }, [&](bool useCapture) { 93 addEventListener(eventType, listener.releaseNonNull(), AddEventListenerOptions(useCapture)); 94 }); 95 96 WTF::visit(visitor, variant); 97 } 98 99 void EventTarget::removeEventListenerForBindings(const AtomicString& eventType, RefPtr<EventListener>&& listener, ListenerOptionsOrBoolean&& variant) 93 100 { 94 101 if (!listener) 95 102 return; 96 removeEventListener(eventType, *listener, options); 103 104 auto visitor = WTF::makeVisitor([&](const ListenerOptions& options) { 105 removeEventListener(eventType, *listener, options); 106 }, [&](bool useCapture) { 107 removeEventListener(eventType, *listener, ListenerOptions(useCapture)); 108 }); 109 110 WTF::visit(visitor, variant); 97 111 } 98 112 -
trunk/Source/WebCore/dom/EventTarget.h
r206889 r207734 36 36 #include <memory> 37 37 #include <wtf/Forward.h> 38 #include <wtf/Variant.h> 38 39 39 40 namespace WTF { … … 138 139 }; 139 140 140 void addEventListenerForBindings(const AtomicString& eventType, RefPtr<EventListener>&&, bool useCapture = false); 141 void removeEventListenerForBindings(const AtomicString& eventType, RefPtr<EventListener>&&, bool useCapture = false); 142 WEBCORE_EXPORT void addEventListenerForBindings(const AtomicString& eventType, RefPtr<EventListener>&&, const AddEventListenerOptions&); 143 WEBCORE_EXPORT void removeEventListenerForBindings(const AtomicString& eventType, RefPtr<EventListener>&&, const ListenerOptions&); 141 using AddEventListenerOptionsOrBoolean = WTF::Variant<AddEventListenerOptions, bool>; 142 WEBCORE_EXPORT void addEventListenerForBindings(const AtomicString& eventType, RefPtr<EventListener>&&, AddEventListenerOptionsOrBoolean&&); 143 144 using ListenerOptionsOrBoolean = WTF::Variant<ListenerOptions, bool>; 145 WEBCORE_EXPORT void removeEventListenerForBindings(const AtomicString& eventType, RefPtr<EventListener>&&, ListenerOptionsOrBoolean&&); 144 146 virtual bool addEventListener(const AtomicString& eventType, Ref<EventListener>&&, const AddEventListenerOptions& = { }); 145 147 virtual bool removeEventListener(const AtomicString& eventType, EventListener&, const ListenerOptions&); … … 232 234 } 233 235 234 inline void EventTarget::addEventListenerForBindings(const AtomicString& eventType, RefPtr<EventListener>&& listener, bool useCapture)235 {236 addEventListenerForBindings(eventType, WTFMove(listener), AddEventListenerOptions(useCapture));237 }238 239 inline void EventTarget::removeEventListenerForBindings(const AtomicString& eventType, RefPtr<EventListener>&& listener, bool useCapture)240 {241 removeEventListenerForBindings(eventType, WTFMove(listener), ListenerOptions(useCapture));242 }243 244 236 } // namespace WebCore -
trunk/Source/WebCore/dom/EventTarget.idl
r206776 r207734 25 25 JSCustomToNativeObject, 26 26 ] interface EventTarget { 27 // FIXME: Should be: 28 // void addEventListener(DOMString type, EventListener? callback, optional (AddEventListenerOptions or boolean) options); 29 // void removeEventListener(DOMString type, EventListener? callback, optional (EventListenerOptions or boolean) options); 30 [ImplementedAs=addEventListenerForBindings] void addEventListener([AtomicString] DOMString type, EventListener? listener); 31 [ImplementedAs=addEventListenerForBindings] void addEventListener([AtomicString] DOMString type, EventListener? listener, AddEventListenerOptions options); 32 [ImplementedAs=removeEventListenerForBindings] void removeEventListener([AtomicString] DOMString type, EventListener? listener); 33 [ImplementedAs=removeEventListenerForBindings] void removeEventListener([AtomicString] DOMString type, EventListener? listener, EventListenerOptions options); 34 35 [ImplementedAs=addEventListenerForBindings] void addEventListener([AtomicString] DOMString type, EventListener? listener, boolean useCapture); 36 [ImplementedAs=removeEventListenerForBindings] void removeEventListener([AtomicString] DOMString type, EventListener? listener, boolean useCapture); 37 27 [ImplementedAs=addEventListenerForBindings] void addEventListener([AtomicString] DOMString type, EventListener? callback, optional (AddEventListenerOptions or boolean) options = false); 28 [ImplementedAs=removeEventListenerForBindings] void removeEventListener([AtomicString] DOMString type, EventListener? callback, optional (EventListenerOptions or boolean) options = false); 38 29 [ImplementedAs=dispatchEventForBindings, MayThrowLegacyException] boolean dispatchEvent(Event event); 39 30 }; -
trunk/Source/WebKit/mac/ChangeLog
r207698 r207734 1 2016-10-23 Chris Dumez <cdumez@apple.com> 2 3 addEventListener() / removeEventListener() should use a union for last parameter 4 https://bugs.webkit.org/show_bug.cgi?id=163863 5 6 Reviewed by Darin Adler. 7 8 Cast BOOL to bool to help to compiler construct the new variant-type parameter. 9 10 * DOM/DOMNode.mm: 11 (-[DOMNode addEventListener:listener:useCapture:]): 12 (-[DOMNode addEventListener:::]): 13 (-[DOMNode removeEventListener:listener:useCapture:]): 14 (-[DOMNode removeEventListener:::]): 15 1 16 2016-10-21 Wenson Hsieh <wenson_hsieh@apple.com> 2 17 -
trunk/Source/WebKit/mac/DOM/DOMNode.mm
r205468 r207734 356 356 { 357 357 JSMainThreadNullState state; 358 unwrap(*self).addEventListenerForBindings(type, ObjCEventListener::wrap(listener), useCapture);358 unwrap(*self).addEventListenerForBindings(type, ObjCEventListener::wrap(listener), static_cast<bool>(useCapture)); 359 359 } 360 360 … … 362 362 { 363 363 JSMainThreadNullState state; 364 unwrap(*self).addEventListenerForBindings(type, ObjCEventListener::wrap(listener), useCapture);364 unwrap(*self).addEventListenerForBindings(type, ObjCEventListener::wrap(listener), static_cast<bool>(useCapture)); 365 365 } 366 366 … … 368 368 { 369 369 JSMainThreadNullState state; 370 unwrap(*self).removeEventListenerForBindings(type, ObjCEventListener::wrap(listener), useCapture);370 unwrap(*self).removeEventListenerForBindings(type, ObjCEventListener::wrap(listener), static_cast<bool>(useCapture)); 371 371 } 372 372 … … 374 374 { 375 375 JSMainThreadNullState state; 376 unwrap(*self).removeEventListenerForBindings(type, ObjCEventListener::wrap(listener), useCapture);376 unwrap(*self).removeEventListenerForBindings(type, ObjCEventListener::wrap(listener), static_cast<bool>(useCapture)); 377 377 } 378 378
Note: See TracChangeset
for help on using the changeset viewer.