Changeset 245080 in webkit


Ignore:
Timestamp:
May 8, 2019 5:03:00 PM (5 years ago)
Author:
achristensen@apple.com
Message:

Don't crash when DOMNode.addEventListener:listener:useCapture: is called with a nil listener
https://bugs.webkit.org/show_bug.cgi?id=197712
<rdar://problem/50429770>

Reviewed by Tim Horton.

Source/WebKitLegacy/mac:

  • DOM/ObjCEventListener.h:
  • DOM/ObjCEventListener.mm:

(WebCore::ObjCEventListener::wrap):

Tools:

  • TestWebKitAPI/Tests/WebKitLegacy/mac/DeallocWebViewInEventListener.mm:

(TestWebKitAPI::TEST):

Location:
trunk
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebKitLegacy/mac/ChangeLog

    r245076 r245080  
     12019-05-08  Alex Christensen  <achristensen@webkit.org>
     2
     3        Don't crash when DOMNode.addEventListener:listener:useCapture: is called with a nil listener
     4        https://bugs.webkit.org/show_bug.cgi?id=197712
     5        <rdar://problem/50429770>
     6
     7        Reviewed by Tim Horton.
     8
     9        * DOM/ObjCEventListener.h:
     10        * DOM/ObjCEventListener.mm:
     11        (WebCore::ObjCEventListener::wrap):
     12
    1132019-05-08  Daniel Bates  <dabates@apple.com>
    214
  • trunk/Source/WebKitLegacy/mac/DOM/ObjCEventListener.h

    r219743 r245080  
    3838    public:
    3939        typedef id<DOMEventListener> ObjCListener;
    40         static Ref<ObjCEventListener> wrap(ObjCListener);
     40        static RefPtr<ObjCEventListener> wrap(ObjCListener);
    4141
    4242        static const ObjCEventListener* cast(const EventListener* listener)
  • trunk/Source/WebKitLegacy/mac/DOM/ObjCEventListener.mm

    r244459 r245080  
    4848}
    4949
    50 Ref<ObjCEventListener> ObjCEventListener::wrap(ObjCListener listener)
     50RefPtr<ObjCEventListener> ObjCEventListener::wrap(ObjCListener listener)
    5151{
    52     RefPtr<ObjCEventListener> wrapper = find(listener);
    53     if (wrapper)
    54         return wrapper.releaseNonNull();
    55     return adoptRef(*new ObjCEventListener(listener));
     52    if (!listener)
     53        return nullptr;
     54    if (RefPtr<ObjCEventListener> wrapper = find(listener))
     55        return wrapper;
     56    return adoptRef(new ObjCEventListener(listener));
    5657}
    5758
  • trunk/Tools/ChangeLog

    r245070 r245080  
     12019-05-08  Alex Christensen  <achristensen@webkit.org>
     2
     3        Don't crash when DOMNode.addEventListener:listener:useCapture: is called with a nil listener
     4        https://bugs.webkit.org/show_bug.cgi?id=197712
     5        <rdar://problem/50429770>
     6
     7        Reviewed by Tim Horton.
     8
     9        * TestWebKitAPI/Tests/WebKitLegacy/mac/DeallocWebViewInEventListener.mm:
     10        (TestWebKitAPI::TEST):
     11
    1122019-05-08  Jonathan Bedard  <jbedard@apple.com>
    213
  • trunk/Tools/TestWebKitAPI/Tests/WebKitLegacy/mac/DeallocWebViewInEventListener.mm

    r244459 r245080  
    8282        auto listener = adoptNS([[DeallocWebViewInEventListener alloc] init]);
    8383        [[[webView mainFrameDocument] body] addEventListener:@"keypress" listener:listener.get() useCapture:NO];
     84        [[[webView mainFrameDocument] body] addEventListener:@"keypress" listener:nullptr useCapture:NO];
    8485        listener = nullptr;
    8586        [webView close];
Note: See TracChangeset for help on using the changeset viewer.