Title: [245080] trunk
- Revision
- 245080
- Author
- [email protected]
- Date
- 2019-05-08 17:03:00 -0700 (Wed, 08 May 2019)
Log 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):
Modified Paths
Diff
Modified: trunk/Source/WebKitLegacy/mac/ChangeLog (245079 => 245080)
--- trunk/Source/WebKitLegacy/mac/ChangeLog 2019-05-08 23:46:03 UTC (rev 245079)
+++ trunk/Source/WebKitLegacy/mac/ChangeLog 2019-05-09 00:03:00 UTC (rev 245080)
@@ -1,3 +1,15 @@
+2019-05-08 Alex Christensen <[email protected]>
+
+ 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.
+
+ * DOM/ObjCEventListener.h:
+ * DOM/ObjCEventListener.mm:
+ (WebCore::ObjCEventListener::wrap):
+
2019-05-08 Daniel Bates <[email protected]>
[Legacy WebKit] REGRESSION (r238078): Crash in hardwareKeyboardAvailabilityChangedCallback()
Modified: trunk/Source/WebKitLegacy/mac/DOM/ObjCEventListener.h (245079 => 245080)
--- trunk/Source/WebKitLegacy/mac/DOM/ObjCEventListener.h 2019-05-08 23:46:03 UTC (rev 245079)
+++ trunk/Source/WebKitLegacy/mac/DOM/ObjCEventListener.h 2019-05-09 00:03:00 UTC (rev 245080)
@@ -37,7 +37,7 @@
class ObjCEventListener : public EventListener {
public:
typedef id<DOMEventListener> ObjCListener;
- static Ref<ObjCEventListener> wrap(ObjCListener);
+ static RefPtr<ObjCEventListener> wrap(ObjCListener);
static const ObjCEventListener* cast(const EventListener* listener)
{
Modified: trunk/Source/WebKitLegacy/mac/DOM/ObjCEventListener.mm (245079 => 245080)
--- trunk/Source/WebKitLegacy/mac/DOM/ObjCEventListener.mm 2019-05-08 23:46:03 UTC (rev 245079)
+++ trunk/Source/WebKitLegacy/mac/DOM/ObjCEventListener.mm 2019-05-09 00:03:00 UTC (rev 245080)
@@ -47,12 +47,13 @@
return map->get(listener);
}
-Ref<ObjCEventListener> ObjCEventListener::wrap(ObjCListener listener)
+RefPtr<ObjCEventListener> ObjCEventListener::wrap(ObjCListener listener)
{
- RefPtr<ObjCEventListener> wrapper = find(listener);
- if (wrapper)
- return wrapper.releaseNonNull();
- return adoptRef(*new ObjCEventListener(listener));
+ if (!listener)
+ return nullptr;
+ if (RefPtr<ObjCEventListener> wrapper = find(listener))
+ return wrapper;
+ return adoptRef(new ObjCEventListener(listener));
}
ObjCEventListener::ObjCEventListener(ObjCListener listener)
Modified: trunk/Tools/ChangeLog (245079 => 245080)
--- trunk/Tools/ChangeLog 2019-05-08 23:46:03 UTC (rev 245079)
+++ trunk/Tools/ChangeLog 2019-05-09 00:03:00 UTC (rev 245080)
@@ -1,3 +1,14 @@
+2019-05-08 Alex Christensen <[email protected]>
+
+ 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.
+
+ * TestWebKitAPI/Tests/WebKitLegacy/mac/DeallocWebViewInEventListener.mm:
+ (TestWebKitAPI::TEST):
+
2019-05-08 Jonathan Bedard <[email protected]>
Change my status to be a WebKit reviewer.
Modified: trunk/Tools/TestWebKitAPI/Tests/WebKitLegacy/mac/DeallocWebViewInEventListener.mm (245079 => 245080)
--- trunk/Tools/TestWebKitAPI/Tests/WebKitLegacy/mac/DeallocWebViewInEventListener.mm 2019-05-08 23:46:03 UTC (rev 245079)
+++ trunk/Tools/TestWebKitAPI/Tests/WebKitLegacy/mac/DeallocWebViewInEventListener.mm 2019-05-09 00:03:00 UTC (rev 245080)
@@ -81,6 +81,7 @@
auto listener = adoptNS([[DeallocWebViewInEventListener alloc] init]);
[[[webView mainFrameDocument] body] addEventListener:@"keypress" listener:listener.get() useCapture:NO];
+ [[[webView mainFrameDocument] body] addEventListener:@"keypress" listener:nullptr useCapture:NO];
listener = nullptr;
[webView close];
[pool drain];
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes