Bug 178886

Summary: Audit init*Event() method to make sure they reset internal data members
Product: WebKit Reporter: Chris Dumez <cdumez>
Component: WebCore Misc.Assignee: Chris Dumez <cdumez>
Status: RESOLVED FIXED    
Severity: Normal CC: buildbot, commit-queue, darin, dbates, esprehn+autocc, kangil.han, rniwa
Priority: P2    
Version: WebKit Nightly Build   
Hardware: Unspecified   
OS: Unspecified   
See Also: https://bugs.webkit.org/show_bug.cgi?id=178670
Attachments:
Description Flags
Patch none

Description Chris Dumez 2017-10-26 14:35:29 PDT
Audit init*Event() method to make sure they reset internal data members.
Comment 1 Chris Dumez 2017-10-26 14:36:35 PDT
Created attachment 325055 [details]
Patch
Comment 2 Chris Dumez 2017-10-27 09:50:15 PDT
Comment on attachment 325055 [details]
Patch

r224115
Comment 3 Darin Adler 2017-10-27 11:00:18 PDT
Comment on attachment 325055 [details]
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=325055&action=review

> Source/WebCore/dom/MouseRelatedEvent.h:58
> +    void setIsSimulated(bool value) { m_isSimulated = value; }

protected instead?
Comment 4 Darin Adler 2017-10-27 11:00:44 PDT
If there was any effect of these changes, it would be nice to cover the effect in tests. Of course, the effects might be subtle so it might be hard to write tests.
Comment 5 Darin Adler 2017-10-28 17:48:34 PDT
Comment on attachment 325055 [details]
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=325055&action=review

> Source/WebCore/dom/Event.cpp:93
> +    m_underlyingEvent = nullptr;

This doesn’t cover everything. A website could call initEvent on, say, a MouseEvent, and we might want it to reset a data member such as MouseEvent::m_dataTransfer. I am not sure what we should do about this.