<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>[174178] trunk/Source</title>
</head>
<body>
<style type="text/css"><!--
#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; }
#msg dl a { font-weight: bold}
#msg dl a:link { color:#fc3; }
#msg dl a:active { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
#msg pre { overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; }
#logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; }
#logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; }
#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; }
#logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; }
#logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; }
#logmsg pre { background: #eee; padding: 1em; }
#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;}
#logmsg dl { margin: 0; }
#logmsg dt { font-weight: bold; }
#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
#logmsg dd:before { content:'\00bb';}
#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; }
#logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; }
#logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; }
#logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; }
#logmsg table th.Corner { text-align: left; }
#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
#patch { width: 100%; }
#patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
#patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;}
#patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;}
#patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;}
#patch .lines, .info {color:#888;background:#fff;}
--></style>
<div id="msg">
<dl class="meta">
<dt>Revision</dt> <dd><a href="http://trac.webkit.org/projects/webkit/changeset/174178">174178</a></dd>
<dt>Author</dt> <dd>cdumez@apple.com</dd>
<dt>Date</dt> <dd>2014-10-01 15:29:14 -0700 (Wed, 01 Oct 2014)</dd>
</dl>
<h3>Log Message</h3>
<pre>Use is<>() / downcast<>() for Event classes
https://bugs.webkit.org/show_bug.cgi?id=137284
Reviewed by Andreas Kling.
Use is<>() / downcast<>() for Event classes.
Source/WebCore:
No new tests, no behavior change.
* bindings/js/JSErrorHandler.cpp:
(WebCore::JSErrorHandler::handleEvent):
* bindings/js/JSEventListener.cpp:
(WebCore::JSEventListener::handleEvent):
* dom/BeforeTextInsertedEvent.h:
* dom/BeforeUnloadEvent.h:
* dom/ErrorEvent.h:
* dom/Event.h:
* dom/EventContext.cpp:
(WebCore::MouseOrFocusEventContext::handleLocalEvents):
* dom/FocusEvent.h:
* dom/KeyboardEvent.cpp:
(WebCore::findKeyboardEvent):
* dom/KeyboardEvent.h:
* dom/MouseEvent.cpp:
(WebCore::SimulatedMouseEvent::SimulatedMouseEvent):
* dom/MouseEvent.h:
* dom/Node.cpp:
(WebCore::Node::defaultEventHandler):
* dom/TextEvent.h:
* dom/UIEvent.h:
* dom/WheelEvent.h:
* html/HTMLAnchorElement.cpp:
(WebCore::appendServerMapMousePosition):
(WebCore::HTMLAnchorElement::defaultEventHandler):
(WebCore::HTMLAnchorElement::eventType):
(WebCore::isEnterKeyKeydownEvent):
(WebCore::isLinkClick):
* html/HTMLButtonElement.cpp:
(WebCore::HTMLButtonElement::defaultEventHandler):
* html/HTMLFormElement.cpp:
(WebCore::HTMLFormElement::submitImplicitly):
* html/HTMLFormElement.h:
* html/HTMLFrameSetElement.cpp:
(WebCore::HTMLFrameSetElement::defaultEventHandler):
* html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::willDispatchEvent):
(WebCore::HTMLInputElement::defaultEventHandler):
* html/HTMLPlugInImageElement.cpp:
(WebCore::HTMLPlugInImageElement::defaultEventHandler):
* html/HTMLSelectElement.cpp:
(WebCore::HTMLSelectElement::menuListDefaultEventHandler):
(WebCore::HTMLSelectElement::listBoxDefaultEventHandler):
(WebCore::HTMLSelectElement::defaultEventHandler):
* html/HTMLSummaryElement.cpp:
(WebCore::HTMLSummaryElement::defaultEventHandler):
* html/HTMLTextAreaElement.cpp:
(WebCore::HTMLTextAreaElement::defaultEventHandler):
* html/ImageDocument.cpp:
(WebCore::ImageEventListener::handleEvent):
* html/ImageInputType.cpp:
(WebCore::ImageInputType::handleDOMActivateEvent):
* html/InputType.cpp:
(WebCore::InputType::shouldSubmitImplicitly):
* html/InputType.h:
* html/MediaDocument.cpp:
(WebCore::MediaDocument::defaultEventHandler):
* html/TextFieldInputType.cpp:
(WebCore::TextFieldInputType::shouldSubmitImplicitly):
* html/TextFieldInputType.h:
* html/shadow/MediaControlElementTypes.cpp:
(WebCore::MediaControlVolumeSliderElement::defaultEventHandler):
* html/shadow/MediaControlElements.cpp:
(WebCore::MediaControlPanelElement::defaultEventHandler):
(WebCore::MediaControlVolumeSliderContainerElement::defaultEventHandler):
(WebCore::MediaControlTimelineElement::defaultEventHandler):
* html/shadow/MediaControls.cpp:
(WebCore::MediaControls::containsRelatedTarget):
* html/shadow/MediaControlsApple.cpp:
(WebCore::MediaControlsAppleEventListener::handleEvent):
* html/shadow/SliderThumbElement.cpp:
(WebCore::SliderThumbElement::defaultEventHandler):
* html/shadow/SpinButtonElement.cpp:
(WebCore::SpinButtonElement::defaultEventHandler):
(WebCore::SpinButtonElement::forwardEvent):
* html/shadow/TextControlInnerElements.cpp:
(WebCore::SearchFieldResultsButtonElement::defaultEventHandler):
(WebCore::SearchFieldCancelButtonElement::defaultEventHandler):
* inspector/InspectorFrontendHost.cpp:
(WebCore::InspectorFrontendHost::dispatchEventAsContextMenuEvent):
* page/ContextMenuController.cpp:
(WebCore::ContextMenuController::maybeCreateContextMenu):
* page/EventHandler.cpp:
(WebCore::EventHandler::handleTextInputEvent):
* rendering/RenderEmbeddedObject.cpp:
(WebCore::RenderEmbeddedObject::isInUnavailablePluginIndicator):
(WebCore::RenderEmbeddedObject::handleUnavailablePluginIndicatorEvent):
* rendering/RenderEmbeddedObject.h:
* rendering/RenderSnapshottedPlugIn.cpp:
(WebCore::RenderSnapshottedPlugIn::handleEvent):
Source/WebKit2:
* WebProcess/Plugins/PluginView.cpp:
(WebKit::PluginView::handleEvent):</pre>
<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkSourceWebCoreChangeLog">trunk/Source/WebCore/ChangeLog</a></li>
<li><a href="#trunkSourceWebCorebindingsjsJSErrorHandlercpp">trunk/Source/WebCore/bindings/js/JSErrorHandler.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsjsJSEventListenercpp">trunk/Source/WebCore/bindings/js/JSEventListener.cpp</a></li>
<li><a href="#trunkSourceWebCoredomBeforeTextInsertedEventh">trunk/Source/WebCore/dom/BeforeTextInsertedEvent.h</a></li>
<li><a href="#trunkSourceWebCoredomBeforeUnloadEventh">trunk/Source/WebCore/dom/BeforeUnloadEvent.h</a></li>
<li><a href="#trunkSourceWebCoredomErrorEventh">trunk/Source/WebCore/dom/ErrorEvent.h</a></li>
<li><a href="#trunkSourceWebCoredomEventh">trunk/Source/WebCore/dom/Event.h</a></li>
<li><a href="#trunkSourceWebCoredomEventContextcpp">trunk/Source/WebCore/dom/EventContext.cpp</a></li>
<li><a href="#trunkSourceWebCoredomEventDispatchercpp">trunk/Source/WebCore/dom/EventDispatcher.cpp</a></li>
<li><a href="#trunkSourceWebCoredomFocusEventh">trunk/Source/WebCore/dom/FocusEvent.h</a></li>
<li><a href="#trunkSourceWebCoredomKeyboardEventcpp">trunk/Source/WebCore/dom/KeyboardEvent.cpp</a></li>
<li><a href="#trunkSourceWebCoredomKeyboardEventh">trunk/Source/WebCore/dom/KeyboardEvent.h</a></li>
<li><a href="#trunkSourceWebCoredomMouseEventcpp">trunk/Source/WebCore/dom/MouseEvent.cpp</a></li>
<li><a href="#trunkSourceWebCoredomMouseEventh">trunk/Source/WebCore/dom/MouseEvent.h</a></li>
<li><a href="#trunkSourceWebCoredomNodecpp">trunk/Source/WebCore/dom/Node.cpp</a></li>
<li><a href="#trunkSourceWebCoredomTextEventh">trunk/Source/WebCore/dom/TextEvent.h</a></li>
<li><a href="#trunkSourceWebCoredomTouchEventh">trunk/Source/WebCore/dom/TouchEvent.h</a></li>
<li><a href="#trunkSourceWebCoredomUIEventh">trunk/Source/WebCore/dom/UIEvent.h</a></li>
<li><a href="#trunkSourceWebCoredomWheelEventh">trunk/Source/WebCore/dom/WheelEvent.h</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLAnchorElementcpp">trunk/Source/WebCore/html/HTMLAnchorElement.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLButtonElementcpp">trunk/Source/WebCore/html/HTMLButtonElement.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLFrameSetElementcpp">trunk/Source/WebCore/html/HTMLFrameSetElement.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLInputElementcpp">trunk/Source/WebCore/html/HTMLInputElement.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLPlugInImageElementcpp">trunk/Source/WebCore/html/HTMLPlugInImageElement.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLSelectElementcpp">trunk/Source/WebCore/html/HTMLSelectElement.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLSelectElementh">trunk/Source/WebCore/html/HTMLSelectElement.h</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLSummaryElementcpp">trunk/Source/WebCore/html/HTMLSummaryElement.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLTextAreaElementcpp">trunk/Source/WebCore/html/HTMLTextAreaElement.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlImageDocumentcpp">trunk/Source/WebCore/html/ImageDocument.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlImageInputTypecpp">trunk/Source/WebCore/html/ImageInputType.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlInputTypecpp">trunk/Source/WebCore/html/InputType.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlMediaDocumentcpp">trunk/Source/WebCore/html/MediaDocument.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlTextFieldInputTypecpp">trunk/Source/WebCore/html/TextFieldInputType.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlshadowMediaControlElementTypescpp">trunk/Source/WebCore/html/shadow/MediaControlElementTypes.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlshadowMediaControlElementscpp">trunk/Source/WebCore/html/shadow/MediaControlElements.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlshadowMediaControlscpp">trunk/Source/WebCore/html/shadow/MediaControls.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlshadowMediaControlsApplecpp">trunk/Source/WebCore/html/shadow/MediaControlsApple.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlshadowSliderThumbElementcpp">trunk/Source/WebCore/html/shadow/SliderThumbElement.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlshadowSpinButtonElementcpp">trunk/Source/WebCore/html/shadow/SpinButtonElement.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlshadowTextControlInnerElementscpp">trunk/Source/WebCore/html/shadow/TextControlInnerElements.cpp</a></li>
<li><a href="#trunkSourceWebCoreinspectorInspectorFrontendHostcpp">trunk/Source/WebCore/inspector/InspectorFrontendHost.cpp</a></li>
<li><a href="#trunkSourceWebCorepageContextMenuControllercpp">trunk/Source/WebCore/page/ContextMenuController.cpp</a></li>
<li><a href="#trunkSourceWebCorepageEventHandlercpp">trunk/Source/WebCore/page/EventHandler.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderEmbeddedObjectcpp">trunk/Source/WebCore/rendering/RenderEmbeddedObject.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderEmbeddedObjecth">trunk/Source/WebCore/rendering/RenderEmbeddedObject.h</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderSnapshottedPlugIncpp">trunk/Source/WebCore/rendering/RenderSnapshottedPlugIn.cpp</a></li>
<li><a href="#trunkSourceWebKit2ChangeLog">trunk/Source/WebKit2/ChangeLog</a></li>
<li><a href="#trunkSourceWebKit2WebProcessPluginsPluginViewcpp">trunk/Source/WebKit2/WebProcess/Plugins/PluginView.cpp</a></li>
</ul>
</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkSourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/ChangeLog (174177 => 174178)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/ChangeLog        2014-10-01 22:12:30 UTC (rev 174177)
+++ trunk/Source/WebCore/ChangeLog        2014-10-01 22:29:14 UTC (rev 174178)
</span><span class="lines">@@ -1,3 +1,105 @@
</span><ins>+2014-10-01 Christophe Dumez <cdumez@apple.com>
+
+ Use is<>() / downcast<>() for Event classes
+ https://bugs.webkit.org/show_bug.cgi?id=137284
+
+ Reviewed by Andreas Kling.
+
+ Use is<>() / downcast<>() for Event classes.
+
+ No new tests, no behavior change.
+
+ * bindings/js/JSErrorHandler.cpp:
+ (WebCore::JSErrorHandler::handleEvent):
+ * bindings/js/JSEventListener.cpp:
+ (WebCore::JSEventListener::handleEvent):
+ * dom/BeforeTextInsertedEvent.h:
+ * dom/BeforeUnloadEvent.h:
+ * dom/ErrorEvent.h:
+ * dom/Event.h:
+ * dom/EventContext.cpp:
+ (WebCore::MouseOrFocusEventContext::handleLocalEvents):
+ * dom/FocusEvent.h:
+ * dom/KeyboardEvent.cpp:
+ (WebCore::findKeyboardEvent):
+ * dom/KeyboardEvent.h:
+ * dom/MouseEvent.cpp:
+ (WebCore::SimulatedMouseEvent::SimulatedMouseEvent):
+ * dom/MouseEvent.h:
+ * dom/Node.cpp:
+ (WebCore::Node::defaultEventHandler):
+ * dom/TextEvent.h:
+ * dom/UIEvent.h:
+ * dom/WheelEvent.h:
+ * html/HTMLAnchorElement.cpp:
+ (WebCore::appendServerMapMousePosition):
+ (WebCore::HTMLAnchorElement::defaultEventHandler):
+ (WebCore::HTMLAnchorElement::eventType):
+ (WebCore::isEnterKeyKeydownEvent):
+ (WebCore::isLinkClick):
+ * html/HTMLButtonElement.cpp:
+ (WebCore::HTMLButtonElement::defaultEventHandler):
+ * html/HTMLFormElement.cpp:
+ (WebCore::HTMLFormElement::submitImplicitly):
+ * html/HTMLFormElement.h:
+ * html/HTMLFrameSetElement.cpp:
+ (WebCore::HTMLFrameSetElement::defaultEventHandler):
+ * html/HTMLInputElement.cpp:
+ (WebCore::HTMLInputElement::willDispatchEvent):
+ (WebCore::HTMLInputElement::defaultEventHandler):
+ * html/HTMLPlugInImageElement.cpp:
+ (WebCore::HTMLPlugInImageElement::defaultEventHandler):
+ * html/HTMLSelectElement.cpp:
+ (WebCore::HTMLSelectElement::menuListDefaultEventHandler):
+ (WebCore::HTMLSelectElement::listBoxDefaultEventHandler):
+ (WebCore::HTMLSelectElement::defaultEventHandler):
+ * html/HTMLSummaryElement.cpp:
+ (WebCore::HTMLSummaryElement::defaultEventHandler):
+ * html/HTMLTextAreaElement.cpp:
+ (WebCore::HTMLTextAreaElement::defaultEventHandler):
+ * html/ImageDocument.cpp:
+ (WebCore::ImageEventListener::handleEvent):
+ * html/ImageInputType.cpp:
+ (WebCore::ImageInputType::handleDOMActivateEvent):
+ * html/InputType.cpp:
+ (WebCore::InputType::shouldSubmitImplicitly):
+ * html/InputType.h:
+ * html/MediaDocument.cpp:
+ (WebCore::MediaDocument::defaultEventHandler):
+ * html/TextFieldInputType.cpp:
+ (WebCore::TextFieldInputType::shouldSubmitImplicitly):
+ * html/TextFieldInputType.h:
+ * html/shadow/MediaControlElementTypes.cpp:
+ (WebCore::MediaControlVolumeSliderElement::defaultEventHandler):
+ * html/shadow/MediaControlElements.cpp:
+ (WebCore::MediaControlPanelElement::defaultEventHandler):
+ (WebCore::MediaControlVolumeSliderContainerElement::defaultEventHandler):
+ (WebCore::MediaControlTimelineElement::defaultEventHandler):
+ * html/shadow/MediaControls.cpp:
+ (WebCore::MediaControls::containsRelatedTarget):
+ * html/shadow/MediaControlsApple.cpp:
+ (WebCore::MediaControlsAppleEventListener::handleEvent):
+ * html/shadow/SliderThumbElement.cpp:
+ (WebCore::SliderThumbElement::defaultEventHandler):
+ * html/shadow/SpinButtonElement.cpp:
+ (WebCore::SpinButtonElement::defaultEventHandler):
+ (WebCore::SpinButtonElement::forwardEvent):
+ * html/shadow/TextControlInnerElements.cpp:
+ (WebCore::SearchFieldResultsButtonElement::defaultEventHandler):
+ (WebCore::SearchFieldCancelButtonElement::defaultEventHandler):
+ * inspector/InspectorFrontendHost.cpp:
+ (WebCore::InspectorFrontendHost::dispatchEventAsContextMenuEvent):
+ * page/ContextMenuController.cpp:
+ (WebCore::ContextMenuController::maybeCreateContextMenu):
+ * page/EventHandler.cpp:
+ (WebCore::EventHandler::handleTextInputEvent):
+ * rendering/RenderEmbeddedObject.cpp:
+ (WebCore::RenderEmbeddedObject::isInUnavailablePluginIndicator):
+ (WebCore::RenderEmbeddedObject::handleUnavailablePluginIndicatorEvent):
+ * rendering/RenderEmbeddedObject.h:
+ * rendering/RenderSnapshottedPlugIn.cpp:
+ (WebCore::RenderSnapshottedPlugIn::handleEvent):
+
</ins><span class="cx"> 2014-10-01 Zan Dobersek <zdobersek@igalia.com>
</span><span class="cx">
</span><span class="cx"> [TexMap] Sprinkle range-based for-loops in GraphicsLayerTextureMapper, TextureMapperLayer
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsjsJSErrorHandlercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/js/JSErrorHandler.cpp (174177 => 174178)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/js/JSErrorHandler.cpp        2014-10-01 22:12:30 UTC (rev 174177)
+++ trunk/Source/WebCore/bindings/js/JSErrorHandler.cpp        2014-10-01 22:29:14 UTC (rev 174178)
</span><span class="lines">@@ -59,14 +59,14 @@
</span><span class="cx"> void JSErrorHandler::handleEvent(ScriptExecutionContext* scriptExecutionContext, Event* event)
</span><span class="cx"> {
</span><span class="cx">
</span><del>- if (event->eventInterface() != ErrorEventInterfaceType)
</del><ins>+ if (!is<ErrorEvent>(event))
</ins><span class="cx"> return JSEventListener::handleEvent(scriptExecutionContext, event);
</span><span class="cx">
</span><span class="cx"> ASSERT(scriptExecutionContext);
</span><span class="cx"> if (!scriptExecutionContext)
</span><span class="cx"> return;
</span><span class="cx">
</span><del>- ErrorEvent* errorEvent = toErrorEvent(event);
</del><ins>+ ErrorEvent& errorEvent = downcast<ErrorEvent>(*event);
</ins><span class="cx">
</span><span class="cx"> JSLockHolder lock(scriptExecutionContext->vm());
</span><span class="cx">
</span><span class="lines">@@ -90,10 +90,10 @@
</span><span class="cx"> globalObject->setCurrentEvent(event);
</span><span class="cx">
</span><span class="cx"> MarkedArgumentBuffer args;
</span><del>- args.append(jsStringWithCache(exec, errorEvent->message()));
- args.append(jsStringWithCache(exec, errorEvent->filename()));
- args.append(jsNumber(errorEvent->lineno()));
- args.append(jsNumber(errorEvent->colno()));
</del><ins>+ args.append(jsStringWithCache(exec, errorEvent.message()));
+ args.append(jsStringWithCache(exec, errorEvent.filename()));
+ args.append(jsNumber(errorEvent.lineno()));
+ args.append(jsNumber(errorEvent.colno()));
</ins><span class="cx">
</span><span class="cx"> VM& vm = globalObject->vm();
</span><span class="cx"> VMEntryScope entryScope(vm, vm.entryScope ? vm.entryScope->globalObject() : globalObject);
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsjsJSEventListenercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/js/JSEventListener.cpp (174177 => 174178)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/js/JSEventListener.cpp        2014-10-01 22:12:30 UTC (rev 174177)
+++ trunk/Source/WebCore/bindings/js/JSEventListener.cpp        2014-10-01 22:29:14 UTC (rev 174178)
</span><span class="lines">@@ -141,8 +141,8 @@
</span><span class="cx"> event->target()->uncaughtExceptionInEventHandler();
</span><span class="cx"> reportException(exec, exception);
</span><span class="cx"> } else {
</span><del>- if (!retval.isUndefinedOrNull() && event->isBeforeUnloadEvent())
- toBeforeUnloadEvent(event)->setReturnValue(retval.toString(exec)->value(exec));
</del><ins>+ if (!retval.isUndefinedOrNull() && is<BeforeUnloadEvent>(event))
+ downcast<BeforeUnloadEvent>(*event).setReturnValue(retval.toString(exec)->value(exec));
</ins><span class="cx"> if (m_isAttribute) {
</span><span class="cx"> if (retval.isFalse())
</span><span class="cx"> event->preventDefault();
</span></span></pre></div>
<a id="trunkSourceWebCoredomBeforeTextInsertedEventh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/BeforeTextInsertedEvent.h (174177 => 174178)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/BeforeTextInsertedEvent.h        2014-10-01 22:12:30 UTC (rev 174177)
+++ trunk/Source/WebCore/dom/BeforeTextInsertedEvent.h        2014-10-01 22:29:14 UTC (rev 174178)
</span><span class="lines">@@ -51,8 +51,8 @@
</span><span class="cx"> String m_text;
</span><span class="cx"> };
</span><span class="cx">
</span><del>-EVENT_TYPE_CASTS(BeforeTextInsertedEvent)
</del><ins>+} // namespace WebCore
</ins><span class="cx">
</span><del>-} // namespace
</del><ins>+SPECIALIZE_TYPE_TRAITS_EVENT(BeforeTextInsertedEvent)
</ins><span class="cx">
</span><span class="cx"> #endif
</span></span></pre></div>
<a id="trunkSourceWebCoredomBeforeUnloadEventh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/BeforeUnloadEvent.h (174177 => 174178)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/BeforeUnloadEvent.h        2014-10-01 22:12:30 UTC (rev 174177)
+++ trunk/Source/WebCore/dom/BeforeUnloadEvent.h        2014-10-01 22:29:14 UTC (rev 174178)
</span><span class="lines">@@ -51,8 +51,8 @@
</span><span class="cx"> String m_returnValue;
</span><span class="cx"> };
</span><span class="cx">
</span><del>-EVENT_TYPE_CASTS(BeforeUnloadEvent)
-
</del><span class="cx"> } // namespace WebCore
</span><span class="cx">
</span><ins>+SPECIALIZE_TYPE_TRAITS_EVENT(BeforeUnloadEvent)
+
</ins><span class="cx"> #endif // BeforeUnloadEvent_h
</span></span></pre></div>
<a id="trunkSourceWebCoredomErrorEventh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/ErrorEvent.h (174177 => 174178)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/ErrorEvent.h        2014-10-01 22:12:30 UTC (rev 174177)
+++ trunk/Source/WebCore/dom/ErrorEvent.h        2014-10-01 22:29:14 UTC (rev 174178)
</span><span class="lines">@@ -81,8 +81,8 @@
</span><span class="cx"> unsigned m_columnNumber;
</span><span class="cx"> };
</span><span class="cx">
</span><del>-EVENT_TYPE_CASTS(ErrorEvent)
-
</del><span class="cx"> } // namespace WebCore
</span><span class="cx">
</span><ins>+SPECIALIZE_TYPE_TRAITS_EVENT(ErrorEvent)
+
</ins><span class="cx"> #endif // ErrorEvent_h
</span></span></pre></div>
<a id="trunkSourceWebCoredomEventh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/Event.h (174177 => 174178)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/Event.h        2014-10-01 22:12:30 UTC (rev 174177)
+++ trunk/Source/WebCore/dom/Event.h        2014-10-01 22:29:14 UTC (rev 174178)
</span><span class="lines">@@ -30,6 +30,7 @@
</span><span class="cx"> #include <wtf/HashMap.h>
</span><span class="cx"> #include <wtf/ListHashSet.h>
</span><span class="cx"> #include <wtf/RefCounted.h>
</span><ins>+#include <wtf/TypeCasts.h>
</ins><span class="cx"> #include <wtf/text/AtomicString.h>
</span><span class="cx">
</span><span class="cx"> namespace WebCore {
</span><span class="lines">@@ -205,10 +206,11 @@
</span><span class="cx"> RefPtr<Event> m_underlyingEvent;
</span><span class="cx"> };
</span><span class="cx">
</span><del>-#define EVENT_TYPE_CASTS(ToValueTypeName) \
- TYPE_CASTS_BASE(ToValueTypeName, Event, event, event->is##ToValueTypeName(), event.is##ToValueTypeName())
</del><ins>+} // namespace WebCore
</ins><span class="cx">
</span><ins>+#define SPECIALIZE_TYPE_TRAITS_EVENT(ToValueTypeName) \
+SPECIALIZE_TYPE_TRAITS_BEGIN(WebCore::ToValueTypeName) \
+ static bool isType(const WebCore::Event& event) { return event.is##ToValueTypeName(); } \
+SPECIALIZE_TYPE_TRAITS_END()
</ins><span class="cx">
</span><del>-} // namespace WebCore
-
</del><span class="cx"> #endif // Event_h
</span></span></pre></div>
<a id="trunkSourceWebCoredomEventContextcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/EventContext.cpp (174177 => 174178)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/EventContext.cpp        2014-10-01 22:12:30 UTC (rev 174177)
+++ trunk/Source/WebCore/dom/EventContext.cpp        2014-10-01 22:29:14 UTC (rev 174178)
</span><span class="lines">@@ -76,12 +76,12 @@
</span><span class="cx">
</span><span class="cx"> void MouseOrFocusEventContext::handleLocalEvents(Event& event) const
</span><span class="cx"> {
</span><del>- ASSERT(event.isMouseEvent() || event.isFocusEvent());
</del><ins>+ ASSERT(is<MouseEvent>(event) || is<FocusEvent>(event));
</ins><span class="cx"> if (m_relatedTarget) {
</span><del>- if (event.isMouseEvent())
- toMouseEvent(event).setRelatedTarget(m_relatedTarget.get());
- else if (event.isFocusEvent())
- toFocusEvent(event).setRelatedTarget(m_relatedTarget.get());
</del><ins>+ if (is<MouseEvent>(event))
+ downcast<MouseEvent>(event).setRelatedTarget(m_relatedTarget.get());
+ else if (is<FocusEvent>(event))
+ downcast<FocusEvent>(event).setRelatedTarget(m_relatedTarget.get());
</ins><span class="cx"> }
</span><span class="cx"> EventContext::handleLocalEvents(event);
</span><span class="cx"> }
</span><span class="lines">@@ -111,8 +111,8 @@
</span><span class="cx"> checkReachability(m_targetTouches.get());
</span><span class="cx"> checkReachability(m_changedTouches.get());
</span><span class="cx"> #endif
</span><del>- ASSERT(event.isTouchEvent());
- TouchEvent& touchEvent = toTouchEvent(event);
</del><ins>+ ASSERT(is<TouchEvent>(event));
+ TouchEvent& touchEvent = downcast<TouchEvent>(event);
</ins><span class="cx"> touchEvent.setTouches(m_touches);
</span><span class="cx"> touchEvent.setTargetTouches(m_targetTouches);
</span><span class="cx"> touchEvent.setChangedTouches(m_changedTouches);
</span></span></pre></div>
<a id="trunkSourceWebCoredomEventDispatchercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/EventDispatcher.cpp (174177 => 174178)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/EventDispatcher.cpp        2014-10-01 22:12:30 UTC (rev 174177)
+++ trunk/Source/WebCore/dom/EventDispatcher.cpp        2014-10-01 22:29:14 UTC (rev 174178)
</span><span class="lines">@@ -342,8 +342,8 @@
</span><span class="cx"> if (EventTarget* relatedTarget = event->relatedTarget())
</span><span class="cx"> eventPath.setRelatedTarget(*node, *relatedTarget);
</span><span class="cx"> #if ENABLE(TOUCH_EVENTS) && !PLATFORM(IOS)
</span><del>- if (event->isTouchEvent()) {
- if (!eventPath.updateTouchLists(*toTouchEvent(event.get())))
</del><ins>+ if (is<TouchEvent>(*event)) {
+ if (!eventPath.updateTouchLists(downcast<TouchEvent>(*event)))
</ins><span class="cx"> return true;
</span><span class="cx"> }
</span><span class="cx"> #endif
</span></span></pre></div>
<a id="trunkSourceWebCoredomFocusEventh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/FocusEvent.h (174177 => 174178)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/FocusEvent.h        2014-10-01 22:12:30 UTC (rev 174177)
+++ trunk/Source/WebCore/dom/FocusEvent.h        2014-10-01 22:29:14 UTC (rev 174178)
</span><span class="lines">@@ -70,8 +70,8 @@
</span><span class="cx"> RefPtr<EventTarget> m_relatedTarget;
</span><span class="cx"> };
</span><span class="cx">
</span><del>-EVENT_TYPE_CASTS(FocusEvent)
-
</del><span class="cx"> } // namespace WebCore
</span><span class="cx">
</span><ins>+SPECIALIZE_TYPE_TRAITS_EVENT(FocusEvent)
+
</ins><span class="cx"> #endif // FocusEvent_h
</span></span></pre></div>
<a id="trunkSourceWebCoredomKeyboardEventcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/KeyboardEvent.cpp (174177 => 174178)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/KeyboardEvent.cpp        2014-10-01 22:12:30 UTC (rev 174177)
+++ trunk/Source/WebCore/dom/KeyboardEvent.cpp        2014-10-01 22:29:14 UTC (rev 174178)
</span><span class="lines">@@ -220,9 +220,9 @@
</span><span class="cx"> KeyboardEvent* findKeyboardEvent(Event* event)
</span><span class="cx"> {
</span><span class="cx"> for (Event* e = event; e; e = e->underlyingEvent())
</span><del>- if (e->isKeyboardEvent())
- return toKeyboardEvent(e);
- return 0;
</del><ins>+ if (is<KeyboardEvent>(e))
+ return downcast<KeyboardEvent>(e);
+ return nullptr;
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> } // namespace WebCore
</span></span></pre></div>
<a id="trunkSourceWebCoredomKeyboardEventh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/KeyboardEvent.h (174177 => 174178)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/KeyboardEvent.h        2014-10-01 22:12:30 UTC (rev 174177)
+++ trunk/Source/WebCore/dom/KeyboardEvent.h        2014-10-01 22:29:14 UTC (rev 174178)
</span><span class="lines">@@ -119,10 +119,10 @@
</span><span class="cx"> #endif
</span><span class="cx"> };
</span><span class="cx">
</span><del>-EVENT_TYPE_CASTS(KeyboardEvent)
-
</del><span class="cx"> KeyboardEvent* findKeyboardEvent(Event*);
</span><span class="cx">
</span><span class="cx"> } // namespace WebCore
</span><span class="cx">
</span><ins>+SPECIALIZE_TYPE_TRAITS_EVENT(KeyboardEvent)
+
</ins><span class="cx"> #endif // KeyboardEvent_h
</span></span></pre></div>
<a id="trunkSourceWebCoredomMouseEventcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/MouseEvent.cpp (174177 => 174178)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/MouseEvent.cpp        2014-10-01 22:12:30 UTC (rev 174177)
+++ trunk/Source/WebCore/dom/MouseEvent.cpp        2014-10-01 22:29:14 UTC (rev 174178)
</span><span class="lines">@@ -276,10 +276,10 @@
</span><span class="cx"> }
</span><span class="cx"> setUnderlyingEvent(underlyingEvent);
</span><span class="cx">
</span><del>- if (this->underlyingEvent() && this->underlyingEvent()->isMouseEvent()) {
- MouseEvent* mouseEvent = toMouseEvent(this->underlyingEvent());
- m_screenLocation = mouseEvent->screenLocation();
- initCoordinates(mouseEvent->clientLocation());
</del><ins>+ if (this->underlyingEvent() && is<MouseEvent>(this->underlyingEvent())) {
+ MouseEvent& mouseEvent = downcast<MouseEvent>(*this->underlyingEvent());
+ m_screenLocation = mouseEvent.screenLocation();
+ initCoordinates(mouseEvent.clientLocation());
</ins><span class="cx"> } else if (target) {
</span><span class="cx"> m_screenLocation = target->screenRect().center();
</span><span class="cx"> initCoordinates(LayoutPoint(target->clientRect().center()));
</span></span></pre></div>
<a id="trunkSourceWebCoredomMouseEventh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/MouseEvent.h (174177 => 174178)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/MouseEvent.h        2014-10-01 22:12:30 UTC (rev 174177)
+++ trunk/Source/WebCore/dom/MouseEvent.h        2014-10-01 22:29:14 UTC (rev 174178)
</span><span class="lines">@@ -132,8 +132,8 @@
</span><span class="cx"> SimulatedMouseEvent(const AtomicString& eventType, PassRefPtr<AbstractView>, PassRefPtr<Event> underlyingEvent, Element* target);
</span><span class="cx"> };
</span><span class="cx">
</span><del>-EVENT_TYPE_CASTS(MouseEvent)
-
</del><span class="cx"> } // namespace WebCore
</span><span class="cx">
</span><ins>+SPECIALIZE_TYPE_TRAITS_EVENT(MouseEvent)
+
</ins><span class="cx"> #endif // MouseEvent_h
</span></span></pre></div>
<a id="trunkSourceWebCoredomNodecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/Node.cpp (174177 => 174178)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/Node.cpp        2014-10-01 22:12:30 UTC (rev 174177)
+++ trunk/Source/WebCore/dom/Node.cpp        2014-10-01 22:29:14 UTC (rev 174178)
</span><span class="lines">@@ -2032,8 +2032,8 @@
</span><span class="cx"> bool Node::dispatchEvent(PassRefPtr<Event> event)
</span><span class="cx"> {
</span><span class="cx"> #if ENABLE(TOUCH_EVENTS) && !PLATFORM(IOS)
</span><del>- if (event->isTouchEvent())
- return dispatchTouchEvent(adoptRef(toTouchEvent(event.leakRef())));
</del><ins>+ if (is<TouchEvent>(event.get()))
+ return dispatchTouchEvent(adoptRef(downcast<TouchEvent>(event.leakRef())));
</ins><span class="cx"> #endif
</span><span class="cx"> return EventDispatcher::dispatchEvent(this, event);
</span><span class="cx"> }
</span><span class="lines">@@ -2100,11 +2100,12 @@
</span><span class="cx"> return;
</span><span class="cx"> const AtomicString& eventType = event->type();
</span><span class="cx"> if (eventType == eventNames().keydownEvent || eventType == eventNames().keypressEvent) {
</span><del>- if (event->isKeyboardEvent())
</del><ins>+ if (is<KeyboardEvent>(event)) {
</ins><span class="cx"> if (Frame* frame = document().frame())
</span><del>- frame->eventHandler().defaultKeyboardEventHandler(toKeyboardEvent(event));
</del><ins>+ frame->eventHandler().defaultKeyboardEventHandler(downcast<KeyboardEvent>(event));
+ }
</ins><span class="cx"> } else if (eventType == eventNames().clickEvent) {
</span><del>- int detail = event->isUIEvent() ? toUIEvent(event)->detail() : 0;
</del><ins>+ int detail = is<UIEvent>(event) ? downcast<UIEvent>(*event).detail() : 0;
</ins><span class="cx"> if (dispatchDOMActivateEvent(detail, event))
</span><span class="cx"> event->setDefaultHandled();
</span><span class="cx"> #if ENABLE(CONTEXT_MENUS)
</span><span class="lines">@@ -2114,12 +2115,13 @@
</span><span class="cx"> page->contextMenuController().handleContextMenuEvent(event);
</span><span class="cx"> #endif
</span><span class="cx"> } else if (eventType == eventNames().textInputEvent) {
</span><del>- if (event->eventInterface() == TextEventInterfaceType)
</del><ins>+ if (is<TextEvent>(event)) {
</ins><span class="cx"> if (Frame* frame = document().frame())
</span><del>- frame->eventHandler().defaultTextInputEventHandler(toTextEvent(event));
</del><ins>+ frame->eventHandler().defaultTextInputEventHandler(downcast<TextEvent>(event));
+ }
</ins><span class="cx"> #if ENABLE(PAN_SCROLLING)
</span><del>- } else if (eventType == eventNames().mousedownEvent && event->isMouseEvent()) {
- if (toMouseEvent(event)->button() == MiddleButton) {
</del><ins>+ } else if (eventType == eventNames().mousedownEvent && is<MouseEvent>(event)) {
+ if (downcast<MouseEvent>(*event).button() == MiddleButton) {
</ins><span class="cx"> if (enclosingLinkEventParentOrSelf())
</span><span class="cx"> return;
</span><span class="cx">
</span><span class="lines">@@ -2133,7 +2135,7 @@
</span><span class="cx"> }
</span><span class="cx"> }
</span><span class="cx"> #endif
</span><del>- } else if ((eventType == eventNames().wheelEvent || eventType == eventNames().mousewheelEvent) && event->eventInterface() == WheelEventInterfaceType) {
</del><ins>+ } else if ((eventType == eventNames().wheelEvent || eventType == eventNames().mousewheelEvent) && is<WheelEvent>(event)) {
</ins><span class="cx">
</span><span class="cx"> // If we don't have a renderer, send the wheel event to the first node we find with a renderer.
</span><span class="cx"> // This is needed for <option> and <optgroup> elements so that <select>s get a wheel scroll.
</span><span class="lines">@@ -2143,16 +2145,16 @@
</span><span class="cx">
</span><span class="cx"> if (startNode && startNode->renderer())
</span><span class="cx"> if (Frame* frame = document().frame())
</span><del>- frame->eventHandler().defaultWheelEventHandler(startNode, toWheelEvent(event));
</del><ins>+ frame->eventHandler().defaultWheelEventHandler(startNode, downcast<WheelEvent>(event));
</ins><span class="cx"> #if ENABLE(TOUCH_EVENTS) && PLATFORM(IOS)
</span><del>- } else if (event->eventInterface() == TouchEventInterfaceType && eventNames().isTouchEventType(eventType)) {
</del><ins>+ } else if (is<TouchEvent>(event) && eventNames().isTouchEventType(eventType)) {
</ins><span class="cx"> RenderObject* renderer = this->renderer();
</span><span class="cx"> while (renderer && (!renderer->isBox() || !toRenderBox(renderer)->canBeScrolledAndHasScrollableArea()))
</span><span class="cx"> renderer = renderer->parent();
</span><span class="cx">
</span><span class="cx"> if (renderer && renderer->node()) {
</span><span class="cx"> if (Frame* frame = document().frame())
</span><del>- frame->eventHandler().defaultTouchEventHandler(renderer->node(), toTouchEvent(event));
</del><ins>+ frame->eventHandler().defaultTouchEventHandler(renderer->node(), downcast<TouchEvent>(event));
</ins><span class="cx"> }
</span><span class="cx"> #endif
</span><span class="cx"> } else if (event->type() == eventNames().webkitEditableContentChangedEvent) {
</span></span></pre></div>
<a id="trunkSourceWebCoredomTextEventh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/TextEvent.h (174177 => 174178)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/TextEvent.h        2014-10-01 22:12:30 UTC (rev 174177)
+++ trunk/Source/WebCore/dom/TextEvent.h        2014-10-01 22:29:14 UTC (rev 174178)
</span><span class="lines">@@ -87,8 +87,8 @@
</span><span class="cx"> Vector<DictationAlternative> m_dictationAlternatives;
</span><span class="cx"> };
</span><span class="cx">
</span><del>-EVENT_TYPE_CASTS(TextEvent)
-
</del><span class="cx"> } // namespace WebCore
</span><span class="cx">
</span><ins>+SPECIALIZE_TYPE_TRAITS_EVENT(TextEvent)
+
</ins><span class="cx"> #endif // TextEvent_h
</span></span></pre></div>
<a id="trunkSourceWebCoredomTouchEventh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/TouchEvent.h (174177 => 174178)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/TouchEvent.h        2014-10-01 22:12:30 UTC (rev 174177)
+++ trunk/Source/WebCore/dom/TouchEvent.h        2014-10-01 22:29:14 UTC (rev 174178)
</span><span class="lines">@@ -86,10 +86,10 @@
</span><span class="cx"> RefPtr<TouchList> m_changedTouches;
</span><span class="cx"> };
</span><span class="cx">
</span><del>-EVENT_TYPE_CASTS(TouchEvent)
-
</del><span class="cx"> } // namespace WebCore
</span><span class="cx">
</span><ins>+SPECIALIZE_TYPE_TRAITS_EVENT(TouchEvent)
+
</ins><span class="cx"> #endif // ENABLE(TOUCH_EVENTS)
</span><span class="cx">
</span><span class="cx"> #endif // TouchEvent_h
</span></span></pre></div>
<a id="trunkSourceWebCoredomUIEventh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/UIEvent.h (174177 => 174178)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/UIEvent.h        2014-10-01 22:12:30 UTC (rev 174177)
+++ trunk/Source/WebCore/dom/UIEvent.h        2014-10-01 22:29:14 UTC (rev 174178)
</span><span class="lines">@@ -85,8 +85,8 @@
</span><span class="cx"> int m_detail;
</span><span class="cx"> };
</span><span class="cx">
</span><del>-EVENT_TYPE_CASTS(UIEvent)
-
</del><span class="cx"> } // namespace WebCore
</span><span class="cx">
</span><ins>+SPECIALIZE_TYPE_TRAITS_EVENT(UIEvent)
+
</ins><span class="cx"> #endif // UIEvent_h
</span></span></pre></div>
<a id="trunkSourceWebCoredomWheelEventh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/WheelEvent.h (174177 => 174178)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/WheelEvent.h        2014-10-01 22:12:30 UTC (rev 174177)
+++ trunk/Source/WebCore/dom/WheelEvent.h        2014-10-01 22:29:14 UTC (rev 174178)
</span><span class="lines">@@ -114,8 +114,8 @@
</span><span class="cx"> bool m_initializedWithPlatformWheelEvent;
</span><span class="cx"> };
</span><span class="cx">
</span><del>-EVENT_TYPE_CASTS(WheelEvent)
-
</del><span class="cx"> } // namespace WebCore
</span><span class="cx">
</span><ins>+SPECIALIZE_TYPE_TRAITS_EVENT(WheelEvent)
+
</ins><span class="cx"> #endif // WheelEvent_h
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLAnchorElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLAnchorElement.cpp (174177 => 174178)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLAnchorElement.cpp        2014-10-01 22:12:30 UTC (rev 174177)
+++ trunk/Source/WebCore/html/HTMLAnchorElement.cpp        2014-10-01 22:29:14 UTC (rev 174178)
</span><span class="lines">@@ -152,7 +152,7 @@
</span><span class="cx">
</span><span class="cx"> static void appendServerMapMousePosition(StringBuilder& url, Event* event)
</span><span class="cx"> {
</span><del>- if (!event->isMouseEvent())
</del><ins>+ if (!is<MouseEvent>(event))
</ins><span class="cx"> return;
</span><span class="cx">
</span><span class="cx"> ASSERT(event->target());
</span><span class="lines">@@ -170,7 +170,7 @@
</span><span class="cx"> RenderImage& renderer = toRenderImage(*imageElement.renderer());
</span><span class="cx">
</span><span class="cx"> // FIXME: This should probably pass true for useTransforms.
</span><del>- FloatPoint absolutePosition = renderer.absoluteToLocal(FloatPoint(toMouseEvent(event)->pageX(), toMouseEvent(event)->pageY()));
</del><ins>+ FloatPoint absolutePosition = renderer.absoluteToLocal(FloatPoint(downcast<MouseEvent>(*event).pageX(), downcast<MouseEvent>(*event).pageY()));
</ins><span class="cx"> int x = absolutePosition.x();
</span><span class="cx"> int y = absolutePosition.y();
</span><span class="cx"> url.append('?');
</span><span class="lines">@@ -196,9 +196,9 @@
</span><span class="cx"> if (hasEditableStyle()) {
</span><span class="cx"> // This keeps track of the editable block that the selection was in (if it was in one) just before the link was clicked
</span><span class="cx"> // for the LiveWhenNotFocused editable link behavior
</span><del>- if (event->type() == eventNames().mousedownEvent && event->isMouseEvent() && toMouseEvent(event)->button() != RightButton && document().frame()) {
</del><ins>+ if (event->type() == eventNames().mousedownEvent && is<MouseEvent>(event) && downcast<MouseEvent>(*event).button() != RightButton && document().frame()) {
</ins><span class="cx"> setRootEditableElementForSelectionOnMouseDown(document().frame()->selection().selection().rootEditableElement());
</span><del>- m_wasShiftKeyDownOnMouseDown = toMouseEvent(event)->shiftKey();
</del><ins>+ m_wasShiftKeyDownOnMouseDown = downcast<MouseEvent>(*event).shiftKey();
</ins><span class="cx"> } else if (event->type() == eventNames().mouseoverEvent) {
</span><span class="cx"> // These are cleared on mouseover and not mouseout because their values are needed for drag events,
</span><span class="cx"> // but drag events happen after mouse out events.
</span><span class="lines">@@ -555,9 +555,9 @@
</span><span class="cx">
</span><span class="cx"> HTMLAnchorElement::EventType HTMLAnchorElement::eventType(Event* event)
</span><span class="cx"> {
</span><del>- if (!event->isMouseEvent())
</del><ins>+ if (!is<MouseEvent>(event))
</ins><span class="cx"> return NonMouseEvent;
</span><del>- return toMouseEvent(event)->shiftKey() ? MouseEventWithShiftKey : MouseEventWithoutShiftKey;
</del><ins>+ return downcast<MouseEvent>(*event).shiftKey() ? MouseEventWithShiftKey : MouseEventWithoutShiftKey;
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> bool HTMLAnchorElement::treatLinkAsLiveForEventType(EventType eventType) const
</span><span class="lines">@@ -592,12 +592,12 @@
</span><span class="cx">
</span><span class="cx"> bool isEnterKeyKeydownEvent(Event* event)
</span><span class="cx"> {
</span><del>- return event->type() == eventNames().keydownEvent && event->isKeyboardEvent() && toKeyboardEvent(event)->keyIdentifier() == "Enter";
</del><ins>+ return event->type() == eventNames().keydownEvent && is<KeyboardEvent>(event) && downcast<KeyboardEvent>(*event).keyIdentifier() == "Enter";
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> bool isLinkClick(Event* event)
</span><span class="cx"> {
</span><del>- return event->type() == eventNames().clickEvent && (!event->isMouseEvent() || toMouseEvent(event)->button() != RightButton);
</del><ins>+ return event->type() == eventNames().clickEvent && (!is<MouseEvent>(event) || downcast<MouseEvent>(*event).button() != RightButton);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> bool shouldProhibitLinks(Element* element)
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLButtonElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLButtonElement.cpp (174177 => 174178)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLButtonElement.cpp        2014-10-01 22:12:30 UTC (rev 174177)
+++ trunk/Source/WebCore/html/HTMLButtonElement.cpp        2014-10-01 22:29:14 UTC (rev 174178)
</span><span class="lines">@@ -123,28 +123,29 @@
</span><span class="cx"> }
</span><span class="cx"> }
</span><span class="cx">
</span><del>- if (event->isKeyboardEvent()) {
- if (event->type() == eventNames().keydownEvent && toKeyboardEvent(event)->keyIdentifier() == "U+0020") {
</del><ins>+ if (is<KeyboardEvent>(event)) {
+ KeyboardEvent& keyboardEvent = downcast<KeyboardEvent>(*event);
+ if (keyboardEvent.type() == eventNames().keydownEvent && keyboardEvent.keyIdentifier() == "U+0020") {
</ins><span class="cx"> setActive(true, true);
</span><span class="cx"> // No setDefaultHandled() - IE dispatches a keypress in this case.
</span><span class="cx"> return;
</span><span class="cx"> }
</span><del>- if (event->type() == eventNames().keypressEvent) {
- switch (toKeyboardEvent(event)->charCode()) {
</del><ins>+ if (keyboardEvent.type() == eventNames().keypressEvent) {
+ switch (keyboardEvent.charCode()) {
</ins><span class="cx"> case '\r':
</span><del>- dispatchSimulatedClick(event);
- event->setDefaultHandled();
</del><ins>+ dispatchSimulatedClick(&keyboardEvent);
+ keyboardEvent.setDefaultHandled();
</ins><span class="cx"> return;
</span><span class="cx"> case ' ':
</span><span class="cx"> // Prevent scrolling down the page.
</span><del>- event->setDefaultHandled();
</del><ins>+ keyboardEvent.setDefaultHandled();
</ins><span class="cx"> return;
</span><span class="cx"> }
</span><span class="cx"> }
</span><del>- if (event->type() == eventNames().keyupEvent && toKeyboardEvent(event)->keyIdentifier() == "U+0020") {
</del><ins>+ if (keyboardEvent.type() == eventNames().keyupEvent && keyboardEvent.keyIdentifier() == "U+0020") {
</ins><span class="cx"> if (active())
</span><del>- dispatchSimulatedClick(event);
- event->setDefaultHandled();
</del><ins>+ dispatchSimulatedClick(&keyboardEvent);
+ keyboardEvent.setDefaultHandled();
</ins><span class="cx"> return;
</span><span class="cx"> }
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLFrameSetElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLFrameSetElement.cpp (174177 => 174178)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLFrameSetElement.cpp        2014-10-01 22:12:30 UTC (rev 174177)
+++ trunk/Source/WebCore/html/HTMLFrameSetElement.cpp        2014-10-01 22:29:14 UTC (rev 174178)
</span><span class="lines">@@ -187,15 +187,15 @@
</span><span class="cx"> m_noresize = containingFrameSet->noResize();
</span><span class="cx"> }
</span><span class="cx">
</span><del>-void HTMLFrameSetElement::defaultEventHandler(Event* evt)
</del><ins>+void HTMLFrameSetElement::defaultEventHandler(Event* event)
</ins><span class="cx"> {
</span><del>- if (evt->isMouseEvent() && !m_noresize && renderer() && renderer()->isFrameSet()) {
- if (toRenderFrameSet(renderer())->userResize(toMouseEvent(evt))) {
- evt->setDefaultHandled();
</del><ins>+ if (is<MouseEvent>(event) && !m_noresize && renderer() && renderer()->isFrameSet()) {
+ if (toRenderFrameSet(renderer())->userResize(downcast<MouseEvent>(event))) {
+ event->setDefaultHandled();
</ins><span class="cx"> return;
</span><span class="cx"> }
</span><span class="cx"> }
</span><del>- HTMLElement::defaultEventHandler(evt);
</del><ins>+ HTMLElement::defaultEventHandler(event);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> bool HTMLFrameSetElement::willRecalcStyle(Style::Change)
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLInputElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLInputElement.cpp (174177 => 174178)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLInputElement.cpp        2014-10-01 22:12:30 UTC (rev 174177)
+++ trunk/Source/WebCore/html/HTMLInputElement.cpp        2014-10-01 22:29:14 UTC (rev 174178)
</span><span class="lines">@@ -1032,7 +1032,7 @@
</span><span class="cx"> {
</span><span class="cx"> if (event.type() == eventNames().textInputEvent && m_inputType->shouldSubmitImplicitly(&event))
</span><span class="cx"> event.stopPropagation();
</span><del>- if (event.type() == eventNames().clickEvent && event.isMouseEvent() && toMouseEvent(&event)->button() == LeftButton) {
</del><ins>+ if (event.type() == eventNames().clickEvent && is<MouseEvent>(event) && downcast<MouseEvent>(event).button() == LeftButton) {
</ins><span class="cx"> m_inputType->willDispatchClick(state);
</span><span class="cx"> state.stateful = true;
</span><span class="cx"> }
</span><span class="lines">@@ -1045,22 +1045,22 @@
</span><span class="cx">
</span><span class="cx"> void HTMLInputElement::defaultEventHandler(Event* evt)
</span><span class="cx"> {
</span><del>- if (evt->isMouseEvent() && evt->type() == eventNames().clickEvent && toMouseEvent(evt)->button() == LeftButton) {
- m_inputType->handleClickEvent(toMouseEvent(evt));
</del><ins>+ if (is<MouseEvent>(evt) && evt->type() == eventNames().clickEvent && downcast<MouseEvent>(*evt).button() == LeftButton) {
+ m_inputType->handleClickEvent(downcast<MouseEvent>(evt));
</ins><span class="cx"> if (evt->defaultHandled())
</span><span class="cx"> return;
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> #if ENABLE(TOUCH_EVENTS)
</span><del>- if (evt->isTouchEvent()) {
- m_inputType->handleTouchEvent(toTouchEvent(evt));
</del><ins>+ if (is<TouchEvent>(evt)) {
+ m_inputType->handleTouchEvent(downcast<TouchEvent>(evt));
</ins><span class="cx"> if (evt->defaultHandled())
</span><span class="cx"> return;
</span><span class="cx"> }
</span><span class="cx"> #endif
</span><span class="cx">
</span><del>- if (evt->isKeyboardEvent() && evt->type() == eventNames().keydownEvent) {
- m_inputType->handleKeydownEvent(toKeyboardEvent(evt));
</del><ins>+ if (is<KeyboardEvent>(evt) && evt->type() == eventNames().keydownEvent) {
+ m_inputType->handleKeydownEvent(downcast<KeyboardEvent>(evt));
</ins><span class="cx"> if (evt->defaultHandled())
</span><span class="cx"> return;
</span><span class="cx"> }
</span><span class="lines">@@ -1086,18 +1086,19 @@
</span><span class="cx">
</span><span class="cx"> // Use key press event here since sending simulated mouse events
</span><span class="cx"> // on key down blocks the proper sending of the key press event.
</span><del>- if (evt->isKeyboardEvent() && evt->type() == eventNames().keypressEvent) {
- m_inputType->handleKeypressEvent(toKeyboardEvent(evt));
- if (evt->defaultHandled())
- return;
</del><ins>+ if (is<KeyboardEvent>(evt)) {
+ KeyboardEvent& keyboardEvent = downcast<KeyboardEvent>(*evt);
+ if (keyboardEvent.type() == eventNames().keypressEvent) {
+ m_inputType->handleKeypressEvent(&keyboardEvent);
+ if (keyboardEvent.defaultHandled())
+ return;
+ } else if (keyboardEvent.type() == eventNames().keyupEvent) {
+ m_inputType->handleKeyupEvent(&keyboardEvent);
+ if (keyboardEvent.defaultHandled())
+ return;
+ }
</ins><span class="cx"> }
</span><span class="cx">
</span><del>- if (evt->isKeyboardEvent() && evt->type() == eventNames().keyupEvent) {
- m_inputType->handleKeyupEvent(toKeyboardEvent(evt));
- if (evt->defaultHandled())
- return;
- }
-
</del><span class="cx"> if (m_inputType->shouldSubmitImplicitly(evt)) {
</span><span class="cx"> if (isSearchField()) {
</span><span class="cx"> addSearchResult();
</span><span class="lines">@@ -1117,11 +1118,11 @@
</span><span class="cx"> return;
</span><span class="cx"> }
</span><span class="cx">
</span><del>- if (evt->isBeforeTextInsertedEvent())
- m_inputType->handleBeforeTextInsertedEvent(toBeforeTextInsertedEvent(evt));
</del><ins>+ if (is<BeforeTextInsertedEvent>(evt))
+ m_inputType->handleBeforeTextInsertedEvent(downcast<BeforeTextInsertedEvent>(evt));
</ins><span class="cx">
</span><del>- if (evt->isMouseEvent() && evt->type() == eventNames().mousedownEvent) {
- m_inputType->handleMouseDownEvent(toMouseEvent(evt));
</del><ins>+ if (is<MouseEvent>(evt) && evt->type() == eventNames().mousedownEvent) {
+ m_inputType->handleMouseDownEvent(downcast<MouseEvent>(evt));
</ins><span class="cx"> if (evt->defaultHandled())
</span><span class="cx"> return;
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLPlugInImageElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLPlugInImageElement.cpp (174177 => 174178)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLPlugInImageElement.cpp        2014-10-01 22:12:30 UTC (rev 174177)
+++ trunk/Source/WebCore/html/HTMLPlugInImageElement.cpp        2014-10-01 22:29:14 UTC (rev 174178)
</span><span class="lines">@@ -747,11 +747,11 @@
</span><span class="cx"> {
</span><span class="cx"> RenderElement* r = renderer();
</span><span class="cx"> if (r && r->isEmbeddedObject()) {
</span><del>- if (isPlugInImageElement() && displayState() == WaitingForSnapshot && event->isMouseEvent() && event->type() == eventNames().clickEvent) {
- MouseEvent* mouseEvent = toMouseEvent(event);
- if (mouseEvent->button() == LeftButton) {
- userDidClickSnapshot(mouseEvent, true);
- event->setDefaultHandled();
</del><ins>+ if (displayState() == WaitingForSnapshot && is<MouseEvent>(event) && event->type() == eventNames().clickEvent) {
+ MouseEvent& mouseEvent = downcast<MouseEvent>(*event);
+ if (mouseEvent.button() == LeftButton) {
+ userDidClickSnapshot(&mouseEvent, true);
+ mouseEvent.setDefaultHandled();
</ins><span class="cx"> return;
</span><span class="cx"> }
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLSelectElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLSelectElement.cpp (174177 => 174178)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLSelectElement.cpp        2014-10-01 22:12:30 UTC (rev 174177)
+++ trunk/Source/WebCore/html/HTMLSelectElement.cpp        2014-10-01 22:29:14 UTC (rev 174178)
</span><span class="lines">@@ -1146,10 +1146,11 @@
</span><span class="cx"> RefPtr<RenderTheme> renderTheme = page ? &page->theme() : RenderTheme::defaultTheme();
</span><span class="cx">
</span><span class="cx"> if (event->type() == eventNames().keydownEvent) {
</span><del>- if (!event->isKeyboardEvent())
</del><ins>+ if (!is<KeyboardEvent>(event))
</ins><span class="cx"> return;
</span><span class="cx">
</span><del>- if (platformHandleKeydownEvent(toKeyboardEvent(event)))
</del><ins>+ KeyboardEvent& keyboardEvent = downcast<KeyboardEvent>(*event);
+ if (platformHandleKeydownEvent(&keyboardEvent))
</ins><span class="cx"> return;
</span><span class="cx">
</span><span class="cx"> // When using spatial navigation, we want to be able to navigate away
</span><span class="lines">@@ -1160,7 +1161,7 @@
</span><span class="cx"> return;
</span><span class="cx"> }
</span><span class="cx">
</span><del>- const String& keyIdentifier = toKeyboardEvent(event)->keyIdentifier();
</del><ins>+ const String& keyIdentifier = keyboardEvent.keyIdentifier();
</ins><span class="cx"> bool handled = true;
</span><span class="cx"> const Vector<HTMLElement*>& listItems = this->listItems();
</span><span class="cx"> int listIndex = optionToListIndex(selectedIndex());
</span><span class="lines">@@ -1192,22 +1193,23 @@
</span><span class="cx"> selectOption(listToOptionIndex(listIndex), DeselectOtherOptions | DispatchChangeEvent | UserDriven);
</span><span class="cx">
</span><span class="cx"> if (handled)
</span><del>- event->setDefaultHandled();
</del><ins>+ keyboardEvent.setDefaultHandled();
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> // Use key press event here since sending simulated mouse events
</span><span class="cx"> // on key down blocks the proper sending of the key press event.
</span><span class="cx"> if (event->type() == eventNames().keypressEvent) {
</span><del>- if (!event->isKeyboardEvent())
</del><ins>+ if (!is<KeyboardEvent>(event))
</ins><span class="cx"> return;
</span><span class="cx">
</span><del>- int keyCode = toKeyboardEvent(event)->keyCode();
</del><ins>+ KeyboardEvent& keyboardEvent = downcast<KeyboardEvent>(*event);
+ int keyCode = keyboardEvent.keyCode();
</ins><span class="cx"> bool handled = false;
</span><span class="cx">
</span><span class="cx"> if (keyCode == ' ' && isSpatialNavigationEnabled(document().frame())) {
</span><span class="cx"> // Use space to toggle arrow key handling for selection change or spatial navigation.
</span><span class="cx"> m_activeSelectionState = !m_activeSelectionState;
</span><del>- event->setDefaultHandled();
</del><ins>+ keyboardEvent.setDefaultHandled();
</ins><span class="cx"> return;
</span><span class="cx"> }
</span><span class="cx">
</span><span class="lines">@@ -1246,17 +1248,17 @@
</span><span class="cx"> handled = true;
</span><span class="cx"> } else if (keyCode == '\r') {
</span><span class="cx"> if (form())
</span><del>- form()->submitImplicitly(event, false);
</del><ins>+ form()->submitImplicitly(&keyboardEvent, false);
</ins><span class="cx"> dispatchChangeEventForMenuList();
</span><span class="cx"> handled = true;
</span><span class="cx"> }
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> if (handled)
</span><del>- event->setDefaultHandled();
</del><ins>+ keyboardEvent.setDefaultHandled();
</ins><span class="cx"> }
</span><span class="cx">
</span><del>- if (event->type() == eventNames().mousedownEvent && event->isMouseEvent() && toMouseEvent(event)->button() == LeftButton) {
</del><ins>+ if (event->type() == eventNames().mousedownEvent && is<MouseEvent>(event) && downcast<MouseEvent>(*event).button() == LeftButton) {
</ins><span class="cx"> focus();
</span><span class="cx"> #if !PLATFORM(IOS)
</span><span class="cx"> if (renderer() && renderer()->isMenuList()) {
</span><span class="lines">@@ -1336,35 +1338,35 @@
</span><span class="cx"> {
</span><span class="cx"> const Vector<HTMLElement*>& listItems = this->listItems();
</span><span class="cx">
</span><del>- if (event->type() == eventNames().mousedownEvent && event->isMouseEvent() && toMouseEvent(event)->button() == LeftButton) {
</del><ins>+ if (event->type() == eventNames().mousedownEvent && is<MouseEvent>(event) && downcast<MouseEvent>(*event).button() == LeftButton) {
</ins><span class="cx"> focus();
</span><span class="cx"> // Calling focus() may remove or change our renderer, in which case we don't want to handle the event further.
</span><span class="cx"> if (!renderer() || !renderer()->isListBox())
</span><span class="cx"> return;
</span><span class="cx">
</span><span class="cx"> // Convert to coords relative to the list box if needed.
</span><del>- MouseEvent* mouseEvent = toMouseEvent(event);
- IntPoint localOffset = roundedIntPoint(renderer()->absoluteToLocal(mouseEvent->absoluteLocation(), UseTransforms));
</del><ins>+ MouseEvent& mouseEvent = downcast<MouseEvent>(*event);
+ IntPoint localOffset = roundedIntPoint(renderer()->absoluteToLocal(mouseEvent.absoluteLocation(), UseTransforms));
</ins><span class="cx"> int listIndex = toRenderListBox(renderer())->listIndexAtOffset(toIntSize(localOffset));
</span><span class="cx"> if (listIndex >= 0) {
</span><span class="cx"> if (!isDisabledFormControl()) {
</span><span class="cx"> #if PLATFORM(COCOA)
</span><del>- updateSelectedState(listIndex, mouseEvent->metaKey(), mouseEvent->shiftKey());
</del><ins>+ updateSelectedState(listIndex, mouseEvent.metaKey(), mouseEvent.shiftKey());
</ins><span class="cx"> #else
</span><del>- updateSelectedState(listIndex, mouseEvent->ctrlKey(), mouseEvent->shiftKey());
</del><ins>+ updateSelectedState(listIndex, mouseEvent.ctrlKey(), mouseEvent.shiftKey());
</ins><span class="cx"> #endif
</span><span class="cx"> }
</span><span class="cx"> if (Frame* frame = document().frame())
</span><span class="cx"> frame->eventHandler().setMouseDownMayStartAutoscroll();
</span><span class="cx">
</span><del>- event->setDefaultHandled();
</del><ins>+ mouseEvent.setDefaultHandled();
</ins><span class="cx"> }
</span><del>- } else if (event->type() == eventNames().mousemoveEvent && event->isMouseEvent() && !toRenderBox(renderer())->canBeScrolledAndHasScrollableArea()) {
- MouseEvent* mouseEvent = toMouseEvent(event);
- if (mouseEvent->button() != LeftButton || !mouseEvent->buttonDown())
</del><ins>+ } else if (event->type() == eventNames().mousemoveEvent && is<MouseEvent>(event) && !toRenderBox(renderer())->canBeScrolledAndHasScrollableArea()) {
+ MouseEvent& mouseEvent = downcast<MouseEvent>(*event);
+ if (mouseEvent.button() != LeftButton || !mouseEvent.buttonDown())
</ins><span class="cx"> return;
</span><span class="cx">
</span><del>- IntPoint localOffset = roundedIntPoint(renderer()->absoluteToLocal(mouseEvent->absoluteLocation(), UseTransforms));
</del><ins>+ IntPoint localOffset = roundedIntPoint(renderer()->absoluteToLocal(mouseEvent.absoluteLocation(), UseTransforms));
</ins><span class="cx"> int listIndex = toRenderListBox(renderer())->listIndexAtOffset(toIntSize(localOffset));
</span><span class="cx"> if (listIndex >= 0) {
</span><span class="cx"> if (!isDisabledFormControl()) {
</span><span class="lines">@@ -1381,9 +1383,9 @@
</span><span class="cx"> updateListBoxSelection(true);
</span><span class="cx"> }
</span><span class="cx"> }
</span><del>- event->setDefaultHandled();
</del><ins>+ mouseEvent.setDefaultHandled();
</ins><span class="cx"> }
</span><del>- } else if (event->type() == eventNames().mouseupEvent && event->isMouseEvent() && toMouseEvent(event)->button() == LeftButton && document().frame()->eventHandler().autoscrollRenderer() != renderer()) {
</del><ins>+ } else if (event->type() == eventNames().mouseupEvent && is<MouseEvent>(event) && downcast<MouseEvent>(*event).button() == LeftButton && document().frame()->eventHandler().autoscrollRenderer() != renderer()) {
</ins><span class="cx"> // This click or drag event was not over any of the options.
</span><span class="cx"> if (m_lastOnChangeSelection.isEmpty())
</span><span class="cx"> return;
</span><span class="lines">@@ -1392,10 +1394,12 @@
</span><span class="cx"> // timer stops.
</span><span class="cx"> listBoxOnChange();
</span><span class="cx"> } else if (event->type() == eventNames().keydownEvent) {
</span><del>- if (!event->isKeyboardEvent())
</del><ins>+ if (!is<KeyboardEvent>(event))
</ins><span class="cx"> return;
</span><del>- const String& keyIdentifier = toKeyboardEvent(event)->keyIdentifier();
</del><span class="cx">
</span><ins>+ KeyboardEvent& keyboardEvent = downcast<KeyboardEvent>(*event);
+ const String& keyIdentifier = keyboardEvent.keyIdentifier();
+
</ins><span class="cx"> bool handled = false;
</span><span class="cx"> int endIndex = 0;
</span><span class="cx"> if (m_activeSelectionEndIndex < 0) {
</span><span class="lines">@@ -1456,15 +1460,15 @@
</span><span class="cx"> #if PLATFORM(COCOA)
</span><span class="cx"> m_allowsNonContiguousSelection = m_multiple && isSpatialNavigationEnabled(document().frame());
</span><span class="cx"> #else
</span><del>- m_allowsNonContiguousSelection = m_multiple && (isSpatialNavigationEnabled(document().frame()) || toKeyboardEvent(event)->ctrlKey());
</del><ins>+ m_allowsNonContiguousSelection = m_multiple && (isSpatialNavigationEnabled(document().frame()) || keyboardEvent.ctrlKey());
</ins><span class="cx"> #endif
</span><del>- bool selectNewItem = toKeyboardEvent(event)->shiftKey() || !m_allowsNonContiguousSelection;
</del><ins>+ bool selectNewItem = keyboardEvent.shiftKey() || !m_allowsNonContiguousSelection;
</ins><span class="cx">
</span><span class="cx"> if (selectNewItem)
</span><span class="cx"> m_activeSelectionState = true;
</span><span class="cx"> // If the anchor is unitialized, or if we're going to deselect all
</span><span class="cx"> // other options, then set the anchor index equal to the end index.
</span><del>- bool deselectOthers = !m_multiple || (!toKeyboardEvent(event)->shiftKey() && selectNewItem);
</del><ins>+ bool deselectOthers = !m_multiple || (!keyboardEvent.shiftKey() && selectNewItem);
</ins><span class="cx"> if (m_activeSelectionAnchorIndex < 0 || deselectOthers) {
</span><span class="cx"> if (deselectOthers)
</span><span class="cx"> deselectItemsWithoutValidation();
</span><span class="lines">@@ -1478,17 +1482,18 @@
</span><span class="cx"> } else
</span><span class="cx"> scrollToSelection();
</span><span class="cx">
</span><del>- event->setDefaultHandled();
</del><ins>+ keyboardEvent.setDefaultHandled();
</ins><span class="cx"> }
</span><span class="cx"> } else if (event->type() == eventNames().keypressEvent) {
</span><del>- if (!event->isKeyboardEvent())
</del><ins>+ if (!is<KeyboardEvent>(event))
</ins><span class="cx"> return;
</span><del>- int keyCode = toKeyboardEvent(event)->keyCode();
</del><ins>+ KeyboardEvent& keyboardEvent = downcast<KeyboardEvent>(*event);
+ int keyCode = keyboardEvent.keyCode();
</ins><span class="cx">
</span><span class="cx"> if (keyCode == '\r') {
</span><span class="cx"> if (form())
</span><del>- form()->submitImplicitly(event, false);
- event->setDefaultHandled();
</del><ins>+ form()->submitImplicitly(&keyboardEvent, false);
+ keyboardEvent.setDefaultHandled();
</ins><span class="cx"> } else if (m_multiple && keyCode == ' ' && m_allowsNonContiguousSelection) {
</span><span class="cx"> // Use space to toggle selection change.
</span><span class="cx"> m_activeSelectionState = !m_activeSelectionState;
</span><span class="lines">@@ -1497,7 +1502,7 @@
</span><span class="cx"> ASSERT(is<HTMLOptionElement>(*listItems[m_activeSelectionEndIndex]));
</span><span class="cx"> updateSelectedState(m_activeSelectionEndIndex, true /*multi*/, false /*shift*/);
</span><span class="cx"> listBoxOnChange();
</span><del>- event->setDefaultHandled();
</del><ins>+ keyboardEvent.setDefaultHandled();
</ins><span class="cx"> }
</span><span class="cx"> }
</span><span class="cx"> }
</span><span class="lines">@@ -1523,9 +1528,9 @@
</span><span class="cx"> if (event->defaultHandled())
</span><span class="cx"> return;
</span><span class="cx">
</span><del>- if (event->type() == eventNames().keypressEvent && event->isKeyboardEvent()) {
- KeyboardEvent* keyboardEvent = toKeyboardEvent(event);
- if (!keyboardEvent->ctrlKey() && !keyboardEvent->altKey() && !keyboardEvent->metaKey() && u_isprint(keyboardEvent->charCode())) {
</del><ins>+ if (event->type() == eventNames().keypressEvent && is<KeyboardEvent>(event)) {
+ KeyboardEvent& keyboardEvent = downcast<KeyboardEvent>(*event);
+ if (!keyboardEvent.ctrlKey() && !keyboardEvent.altKey() && !keyboardEvent.metaKey() && u_isprint(keyboardEvent.charCode())) {
</ins><span class="cx"> typeAheadFind(keyboardEvent);
</span><span class="cx"> event->setDefaultHandled();
</span><span class="cx"> return;
</span><span class="lines">@@ -1565,9 +1570,9 @@
</span><span class="cx"> return downcast<HTMLOptionElement>(*element).textIndentedToRespectGroupLabel();
</span><span class="cx"> }
</span><span class="cx">
</span><del>-void HTMLSelectElement::typeAheadFind(KeyboardEvent* event)
</del><ins>+void HTMLSelectElement::typeAheadFind(KeyboardEvent& event)
</ins><span class="cx"> {
</span><del>- int index = m_typeAhead.handleEvent(event, TypeAhead::MatchPrefix | TypeAhead::CycleFirstChar);
</del><ins>+ int index = m_typeAhead.handleEvent(&event, TypeAhead::MatchPrefix | TypeAhead::CycleFirstChar);
</ins><span class="cx"> if (index < 0)
</span><span class="cx"> return;
</span><span class="cx"> selectOption(listToOptionIndex(index), DeselectOtherOptions | DispatchChangeEvent | UserDriven);
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLSelectElementh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLSelectElement.h (174177 => 174178)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLSelectElement.h        2014-10-01 22:12:30 UTC (rev 174177)
+++ trunk/Source/WebCore/html/HTMLSelectElement.h        2014-10-01 22:29:14 UTC (rev 174178)
</span><span class="lines">@@ -151,7 +151,7 @@
</span><span class="cx"> void recalcListItems(bool updateSelectedStates = true) const;
</span><span class="cx">
</span><span class="cx"> void deselectItems(HTMLOptionElement* excludeElement = 0);
</span><del>- void typeAheadFind(KeyboardEvent*);
</del><ins>+ void typeAheadFind(KeyboardEvent&);
</ins><span class="cx"> void saveLastSelection();
</span><span class="cx">
</span><span class="cx"> virtual InsertionNotificationRequest insertedInto(ContainerNode&) override;
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLSummaryElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLSummaryElement.cpp (174177 => 174178)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLSummaryElement.cpp        2014-10-01 22:12:30 UTC (rev 174177)
+++ trunk/Source/WebCore/html/HTMLSummaryElement.cpp        2014-10-01 22:29:14 UTC (rev 174178)
</span><span class="lines">@@ -126,28 +126,29 @@
</span><span class="cx"> return;
</span><span class="cx"> }
</span><span class="cx">
</span><del>- if (event->isKeyboardEvent()) {
- if (event->type() == eventNames().keydownEvent && toKeyboardEvent(event)->keyIdentifier() == "U+0020") {
</del><ins>+ if (is<KeyboardEvent>(event)) {
+ KeyboardEvent& keyboardEvent = downcast<KeyboardEvent>(*event);
+ if (keyboardEvent.type() == eventNames().keydownEvent && keyboardEvent.keyIdentifier() == "U+0020") {
</ins><span class="cx"> setActive(true, true);
</span><span class="cx"> // No setDefaultHandled() - IE dispatches a keypress in this case.
</span><span class="cx"> return;
</span><span class="cx"> }
</span><del>- if (event->type() == eventNames().keypressEvent) {
- switch (toKeyboardEvent(event)->charCode()) {
</del><ins>+ if (keyboardEvent.type() == eventNames().keypressEvent) {
+ switch (keyboardEvent.charCode()) {
</ins><span class="cx"> case '\r':
</span><span class="cx"> dispatchSimulatedClick(event);
</span><del>- event->setDefaultHandled();
</del><ins>+ keyboardEvent.setDefaultHandled();
</ins><span class="cx"> return;
</span><span class="cx"> case ' ':
</span><span class="cx"> // Prevent scrolling down the page.
</span><del>- event->setDefaultHandled();
</del><ins>+ keyboardEvent.setDefaultHandled();
</ins><span class="cx"> return;
</span><span class="cx"> }
</span><span class="cx"> }
</span><del>- if (event->type() == eventNames().keyupEvent && toKeyboardEvent(event)->keyIdentifier() == "U+0020") {
</del><ins>+ if (keyboardEvent.type() == eventNames().keyupEvent && keyboardEvent.keyIdentifier() == "U+0020") {
</ins><span class="cx"> if (active())
</span><span class="cx"> dispatchSimulatedClick(event);
</span><del>- event->setDefaultHandled();
</del><ins>+ keyboardEvent.setDefaultHandled();
</ins><span class="cx"> return;
</span><span class="cx"> }
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLTextAreaElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLTextAreaElement.cpp (174177 => 174178)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLTextAreaElement.cpp        2014-10-01 22:12:30 UTC (rev 174177)
+++ trunk/Source/WebCore/html/HTMLTextAreaElement.cpp        2014-10-01 22:29:14 UTC (rev 174178)
</span><span class="lines">@@ -270,8 +270,8 @@
</span><span class="cx"> {
</span><span class="cx"> if (renderer() && (event->isMouseEvent() || event->isDragEvent() || event->eventInterface() == WheelEventInterfaceType || event->type() == eventNames().blurEvent))
</span><span class="cx"> forwardEvent(event);
</span><del>- else if (renderer() && event->isBeforeTextInsertedEvent())
- handleBeforeTextInsertedEvent(toBeforeTextInsertedEvent(event));
</del><ins>+ else if (renderer() && is<BeforeTextInsertedEvent>(event))
+ handleBeforeTextInsertedEvent(downcast<BeforeTextInsertedEvent>(event));
</ins><span class="cx">
</span><span class="cx"> HTMLTextFormControlElement::defaultEventHandler(event);
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlImageDocumentcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/ImageDocument.cpp (174177 => 174178)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/ImageDocument.cpp        2014-10-01 22:12:30 UTC (rev 174177)
+++ trunk/Source/WebCore/html/ImageDocument.cpp        2014-10-01 22:29:14 UTC (rev 174178)
</span><span class="lines">@@ -398,8 +398,8 @@
</span><span class="cx"> {
</span><span class="cx"> if (event->type() == eventNames().resizeEvent)
</span><span class="cx"> m_document.windowSizeChanged();
</span><del>- else if (event->type() == eventNames().clickEvent && event->isMouseEvent()) {
- MouseEvent& mouseEvent = toMouseEvent(*event);
</del><ins>+ else if (event->type() == eventNames().clickEvent && is<MouseEvent>(event)) {
+ MouseEvent& mouseEvent = downcast<MouseEvent>(*event);
</ins><span class="cx"> m_document.imageClicked(mouseEvent.x(), mouseEvent.y());
</span><span class="cx"> }
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlImageInputTypecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/ImageInputType.cpp (174177 => 174178)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/ImageInputType.cpp        2014-10-01 22:12:30 UTC (rev 174177)
+++ trunk/Source/WebCore/html/ImageInputType.cpp        2014-10-01 22:29:14 UTC (rev 174178)
</span><span class="lines">@@ -89,8 +89,8 @@
</span><span class="cx"> m_clickLocation = IntPoint();
</span><span class="cx"> if (event->underlyingEvent()) {
</span><span class="cx"> Event& underlyingEvent = *event->underlyingEvent();
</span><del>- if (underlyingEvent.isMouseEvent()) {
- MouseEvent& mouseEvent = toMouseEvent(underlyingEvent);
</del><ins>+ if (is<MouseEvent>(underlyingEvent)) {
+ MouseEvent& mouseEvent = downcast<MouseEvent>(underlyingEvent);
</ins><span class="cx"> if (!mouseEvent.isSimulated())
</span><span class="cx"> m_clickLocation = IntPoint(mouseEvent.offsetX(), mouseEvent.offsetY());
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlInputTypecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/InputType.cpp (174177 => 174178)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/InputType.cpp        2014-10-01 22:12:30 UTC (rev 174177)
+++ trunk/Source/WebCore/html/InputType.cpp        2014-10-01 22:29:14 UTC (rev 174178)
</span><span class="lines">@@ -471,7 +471,7 @@
</span><span class="cx">
</span><span class="cx"> bool InputType::shouldSubmitImplicitly(Event* event)
</span><span class="cx"> {
</span><del>- return event->isKeyboardEvent() && event->type() == eventNames().keypressEvent && toKeyboardEvent(event)->charCode() == '\r';
</del><ins>+ return is<KeyboardEvent>(event) && event->type() == eventNames().keypressEvent && downcast<KeyboardEvent>(*event).charCode() == '\r';
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> PassRefPtr<HTMLFormElement> InputType::formForSubmission() const
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlMediaDocumentcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/MediaDocument.cpp (174177 => 174178)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/MediaDocument.cpp        2014-10-01 22:12:30 UTC (rev 174177)
+++ trunk/Source/WebCore/html/MediaDocument.cpp        2014-10-01 22:29:14 UTC (rev 174178)
</span><span class="lines">@@ -204,19 +204,19 @@
</span><span class="cx"> if (!is<ContainerNode>(targetNode))
</span><span class="cx"> return;
</span><span class="cx"> ContainerNode& targetContainer = downcast<ContainerNode>(*targetNode);
</span><del>- if (event->type() == eventNames().keydownEvent && event->isKeyboardEvent()) {
</del><ins>+ if (event->type() == eventNames().keydownEvent && is<KeyboardEvent>(event)) {
</ins><span class="cx"> HTMLVideoElement* video = descendentVideoElement(targetContainer);
</span><span class="cx"> if (!video)
</span><span class="cx"> return;
</span><span class="cx">
</span><del>- KeyboardEvent* keyboardEvent = toKeyboardEvent(event);
- if (keyboardEvent->keyIdentifier() == "U+0020") { // space
</del><ins>+ KeyboardEvent& keyboardEvent = downcast<KeyboardEvent>(*event);
+ if (keyboardEvent.keyIdentifier() == "U+0020") { // space
</ins><span class="cx"> if (video->paused()) {
</span><span class="cx"> if (video->canPlay())
</span><span class="cx"> video->play();
</span><span class="cx"> } else
</span><span class="cx"> video->pause();
</span><del>- event->setDefaultHandled();
</del><ins>+ keyboardEvent.setDefaultHandled();
</ins><span class="cx"> }
</span><span class="cx"> }
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlTextFieldInputTypecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/TextFieldInputType.cpp (174177 => 174178)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/TextFieldInputType.cpp        2014-10-01 22:12:30 UTC (rev 174177)
+++ trunk/Source/WebCore/html/TextFieldInputType.cpp        2014-10-01 22:29:14 UTC (rev 174178)
</span><span class="lines">@@ -206,7 +206,8 @@
</span><span class="cx">
</span><span class="cx"> bool TextFieldInputType::shouldSubmitImplicitly(Event* event)
</span><span class="cx"> {
</span><del>- return (event->type() == eventNames().textInputEvent && event->eventInterface() == TextEventInterfaceType && toTextEvent(event)->data() == "\n") || InputType::shouldSubmitImplicitly(event);
</del><ins>+ return (event->type() == eventNames().textInputEvent && is<TextEvent>(event) && downcast<TextEvent>(*event).data() == "\n")
+ || InputType::shouldSubmitImplicitly(event);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> RenderPtr<RenderElement> TextFieldInputType::createInputRenderer(PassRef<RenderStyle> style)
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlshadowMediaControlElementTypescpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/shadow/MediaControlElementTypes.cpp (174177 => 174178)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/shadow/MediaControlElementTypes.cpp        2014-10-01 22:12:30 UTC (rev 174177)
+++ trunk/Source/WebCore/html/shadow/MediaControlElementTypes.cpp        2014-10-01 22:29:14 UTC (rev 174178)
</span><span class="lines">@@ -196,7 +196,7 @@
</span><span class="cx"> void MediaControlVolumeSliderElement::defaultEventHandler(Event* event)
</span><span class="cx"> {
</span><span class="cx"> // Left button is 0. Rejects mouse events not from left button.
</span><del>- if (event->isMouseEvent() && toMouseEvent(event)->button())
</del><ins>+ if (is<MouseEvent>(event) && downcast<MouseEvent>(*event).button())
</ins><span class="cx"> return;
</span><span class="cx">
</span><span class="cx"> if (!renderer())
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlshadowMediaControlElementscpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/shadow/MediaControlElements.cpp (174177 => 174178)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/shadow/MediaControlElements.cpp        2014-10-01 22:12:30 UTC (rev 174177)
+++ trunk/Source/WebCore/html/shadow/MediaControlElements.cpp        2014-10-01 22:29:14 UTC (rev 174178)
</span><span class="lines">@@ -221,8 +221,8 @@
</span><span class="cx"> {
</span><span class="cx"> MediaControlDivElement::defaultEventHandler(event);
</span><span class="cx">
</span><del>- if (event->isMouseEvent()) {
- LayoutPoint location = toMouseEvent(event)->absoluteLocation();
</del><ins>+ if (is<MouseEvent>(event)) {
+ LayoutPoint location = downcast<MouseEvent>(*event).absoluteLocation();
</ins><span class="cx"> if (event->type() == eventNames().mousedownEvent && event->target() == this) {
</span><span class="cx"> startDrag(location);
</span><span class="cx"> event->setDefaultHandled();
</span><span class="lines">@@ -337,12 +337,12 @@
</span><span class="cx">
</span><span class="cx"> void MediaControlVolumeSliderContainerElement::defaultEventHandler(Event* event)
</span><span class="cx"> {
</span><del>- if (!event->isMouseEvent() || event->type() != eventNames().mouseoutEvent)
</del><ins>+ if (!is<MouseEvent>(event) || event->type() != eventNames().mouseoutEvent)
</ins><span class="cx"> return;
</span><span class="cx">
</span><span class="cx"> // Poor man's mouseleave event detection.
</span><del>- MouseEvent* mouseEvent = toMouseEvent(event);
- EventTarget* relatedTarget = mouseEvent->relatedTarget();
</del><ins>+ MouseEvent& mouseEvent = downcast<MouseEvent>(*event);
+ EventTarget* relatedTarget = mouseEvent.relatedTarget();
</ins><span class="cx"> if (!relatedTarget || !relatedTarget->toNode())
</span><span class="cx"> return;
</span><span class="cx">
</span><span class="lines">@@ -851,7 +851,7 @@
</span><span class="cx"> void MediaControlTimelineElement::defaultEventHandler(Event* event)
</span><span class="cx"> {
</span><span class="cx"> // Left button is 0. Rejects mouse events not from left button.
</span><del>- if (event->isMouseEvent() && toMouseEvent(event)->button())
</del><ins>+ if (is<MouseEvent>(event) && downcast<MouseEvent>(*event).button())
</ins><span class="cx"> return;
</span><span class="cx">
</span><span class="cx"> if (!renderer())
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlshadowMediaControlscpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/shadow/MediaControls.cpp (174177 => 174178)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/shadow/MediaControls.cpp        2014-10-01 22:12:30 UTC (rev 174177)
+++ trunk/Source/WebCore/html/shadow/MediaControls.cpp        2014-10-01 22:29:14 UTC (rev 174178)
</span><span class="lines">@@ -366,9 +366,9 @@
</span><span class="cx">
</span><span class="cx"> bool MediaControls::containsRelatedTarget(Event* event)
</span><span class="cx"> {
</span><del>- if (!event->isMouseEvent())
</del><ins>+ if (!is<MouseEvent>(event))
</ins><span class="cx"> return false;
</span><del>- EventTarget* relatedTarget = toMouseEvent(event)->relatedTarget();
</del><ins>+ EventTarget* relatedTarget = downcast<MouseEvent>(*event).relatedTarget();
</ins><span class="cx"> if (!relatedTarget)
</span><span class="cx"> return false;
</span><span class="cx"> return contains(relatedTarget->toNode());
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlshadowMediaControlsApplecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/shadow/MediaControlsApple.cpp (174177 => 174178)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/shadow/MediaControlsApple.cpp        2014-10-01 22:12:30 UTC (rev 174177)
+++ trunk/Source/WebCore/html/shadow/MediaControlsApple.cpp        2014-10-01 22:29:14 UTC (rev 174178)
</span><span class="lines">@@ -588,10 +588,10 @@
</span><span class="cx"> {
</span><span class="cx"> if (event->type() == eventNames().clickEvent)
</span><span class="cx"> m_mediaControls->handleClickEvent(event);
</span><del>- else if ((event->type() == eventNames().wheelEvent || event->type() == eventNames().mousewheelEvent) && event->eventInterface() == WheelEventInterfaceType) {
- WheelEvent* wheelEvent = toWheelEvent(event);
- if (m_mediaControls->shouldClosedCaptionsContainerPreventPageScrolling(wheelEvent->wheelDeltaY()))
- event->preventDefault();
</del><ins>+ else if ((event->type() == eventNames().wheelEvent || event->type() == eventNames().mousewheelEvent) && is<WheelEvent>(event)) {
+ WheelEvent& wheelEvent = downcast<WheelEvent>(*event);
+ if (m_mediaControls->shouldClosedCaptionsContainerPreventPageScrolling(wheelEvent.wheelDeltaY()))
+ wheelEvent.preventDefault();
</ins><span class="cx"> }
</span><span class="cx"> }
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlshadowSliderThumbElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/shadow/SliderThumbElement.cpp (174177 => 174178)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/shadow/SliderThumbElement.cpp        2014-10-01 22:12:30 UTC (rev 174177)
+++ trunk/Source/WebCore/html/shadow/SliderThumbElement.cpp        2014-10-01 22:29:14 UTC (rev 174178)
</span><span class="lines">@@ -333,7 +333,7 @@
</span><span class="cx"> #if !PLATFORM(IOS)
</span><span class="cx"> void SliderThumbElement::defaultEventHandler(Event* event)
</span><span class="cx"> {
</span><del>- if (!event->isMouseEvent()) {
</del><ins>+ if (!is<MouseEvent>(event)) {
</ins><span class="cx"> HTMLDivElement::defaultEventHandler(event);
</span><span class="cx"> return;
</span><span class="cx"> }
</span><span class="lines">@@ -347,9 +347,9 @@
</span><span class="cx"> return;
</span><span class="cx"> }
</span><span class="cx">
</span><del>- MouseEvent* mouseEvent = toMouseEvent(event);
- bool isLeftButton = mouseEvent->button() == LeftButton;
- const AtomicString& eventType = event->type();
</del><ins>+ MouseEvent& mouseEvent = downcast<MouseEvent>(*event);
+ bool isLeftButton = mouseEvent.button() == LeftButton;
+ const AtomicString& eventType = mouseEvent.type();
</ins><span class="cx">
</span><span class="cx"> // We intentionally do not call event->setDefaultHandled() here because
</span><span class="cx"> // MediaControlTimelineElement::defaultEventHandler() wants to handle these
</span><span class="lines">@@ -362,11 +362,11 @@
</span><span class="cx"> return;
</span><span class="cx"> } else if (eventType == eventNames().mousemoveEvent) {
</span><span class="cx"> if (m_inDragMode)
</span><del>- setPositionFromPoint(mouseEvent->absoluteLocation());
</del><ins>+ setPositionFromPoint(mouseEvent.absoluteLocation());
</ins><span class="cx"> return;
</span><span class="cx"> }
</span><span class="cx">
</span><del>- HTMLDivElement::defaultEventHandler(event);
</del><ins>+ HTMLDivElement::defaultEventHandler(&mouseEvent);
</ins><span class="cx"> }
</span><span class="cx"> #endif
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlshadowSpinButtonElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/shadow/SpinButtonElement.cpp (174177 => 174178)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/shadow/SpinButtonElement.cpp        2014-10-01 22:12:30 UTC (rev 174177)
+++ trunk/Source/WebCore/html/shadow/SpinButtonElement.cpp        2014-10-01 22:29:14 UTC (rev 174178)
</span><span class="lines">@@ -67,7 +67,7 @@
</span><span class="cx">
</span><span class="cx"> void SpinButtonElement::defaultEventHandler(Event* event)
</span><span class="cx"> {
</span><del>- if (!event->isMouseEvent()) {
</del><ins>+ if (!is<MouseEvent>(event)) {
</ins><span class="cx"> if (!event->defaultHandled())
</span><span class="cx"> HTMLDivElement::defaultEventHandler(event);
</span><span class="cx"> return;
</span><span class="lines">@@ -86,9 +86,9 @@
</span><span class="cx"> return;
</span><span class="cx"> }
</span><span class="cx">
</span><del>- MouseEvent* mouseEvent = toMouseEvent(event);
- IntPoint local = roundedIntPoint(box->absoluteToLocal(mouseEvent->absoluteLocation(), UseTransforms));
- if (mouseEvent->type() == eventNames().mousedownEvent && mouseEvent->button() == LeftButton) {
</del><ins>+ MouseEvent& mouseEvent = downcast<MouseEvent>(*event);
+ IntPoint local = roundedIntPoint(box->absoluteToLocal(mouseEvent.absoluteLocation(), UseTransforms));
+ if (mouseEvent.type() == eventNames().mousedownEvent && mouseEvent.button() == LeftButton) {
</ins><span class="cx"> if (box->pixelSnappedBorderBoxRect().contains(local)) {
</span><span class="cx"> // The following functions of HTMLInputElement may run JavaScript
</span><span class="cx"> // code which detaches this shadow node. We need to take a reference
</span><span class="lines">@@ -107,11 +107,11 @@
</span><span class="cx"> doStepAction(m_upDownState == Up ? 1 : -1);
</span><span class="cx"> }
</span><span class="cx"> }
</span><del>- event->setDefaultHandled();
</del><ins>+ mouseEvent.setDefaultHandled();
</ins><span class="cx"> }
</span><del>- } else if (mouseEvent->type() == eventNames().mouseupEvent && mouseEvent->button() == LeftButton)
</del><ins>+ } else if (mouseEvent.type() == eventNames().mouseupEvent && mouseEvent.button() == LeftButton)
</ins><span class="cx"> stopRepeatingTimer();
</span><del>- else if (event->type() == eventNames().mousemoveEvent) {
</del><ins>+ else if (mouseEvent.type() == eventNames().mousemoveEvent) {
</ins><span class="cx"> if (box->pixelSnappedBorderBoxRect().contains(local)) {
</span><span class="cx"> if (!m_capturing) {
</span><span class="cx"> if (Frame* frame = document().frame()) {
</span><span class="lines">@@ -131,8 +131,8 @@
</span><span class="cx"> }
</span><span class="cx"> }
</span><span class="cx">
</span><del>- if (!event->defaultHandled())
- HTMLDivElement::defaultEventHandler(event);
</del><ins>+ if (!mouseEvent.defaultHandled())
+ HTMLDivElement::defaultEventHandler(&mouseEvent);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void SpinButtonElement::willOpenPopup()
</span><span class="lines">@@ -146,7 +146,7 @@
</span><span class="cx"> if (!renderBox())
</span><span class="cx"> return;
</span><span class="cx">
</span><del>- if (event->eventInterface() != WheelEventInterfaceType)
</del><ins>+ if (!is<WheelEvent>(event))
</ins><span class="cx"> return;
</span><span class="cx">
</span><span class="cx"> if (!m_spinButtonOwner)
</span><span class="lines">@@ -155,7 +155,7 @@
</span><span class="cx"> if (!m_spinButtonOwner->shouldSpinButtonRespondToWheelEvents())
</span><span class="cx"> return;
</span><span class="cx">
</span><del>- doStepAction(toWheelEvent(event)->wheelDeltaY());
</del><ins>+ doStepAction(downcast<WheelEvent>(*event).wheelDeltaY());
</ins><span class="cx"> event->setDefaultHandled();
</span><span class="cx"> }
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlshadowTextControlInnerElementscpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/shadow/TextControlInnerElements.cpp (174177 => 174178)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/shadow/TextControlInnerElements.cpp        2014-10-01 22:12:30 UTC (rev 174177)
+++ trunk/Source/WebCore/html/shadow/TextControlInnerElements.cpp        2014-10-01 22:29:14 UTC (rev 174178)
</span><span class="lines">@@ -142,7 +142,7 @@
</span><span class="cx"> {
</span><span class="cx"> // On mousedown, bring up a menu, if needed
</span><span class="cx"> HTMLInputElement* input = downcast<HTMLInputElement>(shadowHost());
</span><del>- if (input && event->type() == eventNames().mousedownEvent && event->isMouseEvent() && toMouseEvent(event)->button() == LeftButton) {
</del><ins>+ if (input && event->type() == eventNames().mousedownEvent && is<MouseEvent>(event) && downcast<MouseEvent>(*event).button() == LeftButton) {
</ins><span class="cx"> input->focus();
</span><span class="cx"> input->select();
</span><span class="cx"> #if !PLATFORM(IOS)
</span><span class="lines">@@ -199,7 +199,7 @@
</span><span class="cx"> return;
</span><span class="cx"> }
</span><span class="cx">
</span><del>- if (event->type() == eventNames().mousedownEvent && event->isMouseEvent() && toMouseEvent(event)->button() == LeftButton) {
</del><ins>+ if (event->type() == eventNames().mousedownEvent && is<MouseEvent>(event) && downcast<MouseEvent>(*event).button() == LeftButton) {
</ins><span class="cx"> if (renderer() && renderer()->visibleToHitTesting()) {
</span><span class="cx"> if (Frame* frame = document().frame()) {
</span><span class="cx"> frame->eventHandler().setCapturingMouseEventsElement(this);
</span><span class="lines">@@ -210,7 +210,7 @@
</span><span class="cx"> input->select();
</span><span class="cx"> event->setDefaultHandled();
</span><span class="cx"> }
</span><del>- if (event->type() == eventNames().mouseupEvent && event->isMouseEvent() && toMouseEvent(event)->button() == LeftButton) {
</del><ins>+ if (event->type() == eventNames().mouseupEvent && is<MouseEvent>(event) && downcast<MouseEvent>(*event).button() == LeftButton) {
</ins><span class="cx"> if (m_capturing) {
</span><span class="cx"> if (Frame* frame = document().frame()) {
</span><span class="cx"> frame->eventHandler().setCapturingMouseEventsElement(nullptr);
</span></span></pre></div>
<a id="trunkSourceWebCoreinspectorInspectorFrontendHostcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/inspector/InspectorFrontendHost.cpp (174177 => 174178)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/inspector/InspectorFrontendHost.cpp        2014-10-01 22:12:30 UTC (rev 174177)
+++ trunk/Source/WebCore/inspector/InspectorFrontendHost.cpp        2014-10-01 22:29:14 UTC (rev 174178)
</span><span class="lines">@@ -284,12 +284,12 @@
</span><span class="cx"> void InspectorFrontendHost::dispatchEventAsContextMenuEvent(Event* event)
</span><span class="cx"> {
</span><span class="cx"> #if ENABLE(CONTEXT_MENUS) && USE(ACCESSIBILITY_CONTEXT_MENUS)
</span><del>- if (!event || !event->isMouseEvent())
</del><ins>+ if (!event || !is<MouseEvent>(event))
</ins><span class="cx"> return;
</span><span class="cx">
</span><span class="cx"> Frame* frame = event->target()->toNode()->document().frame();
</span><del>- MouseEvent* mouseEvent = toMouseEvent(event);
- IntPoint mousePoint = IntPoint(mouseEvent->clientX(), mouseEvent->clientY());
</del><ins>+ MouseEvent& mouseEvent = downcast<MouseEvent>(*event);
+ IntPoint mousePoint = IntPoint(mouseEvent.clientX(), mouseEvent.clientY());
</ins><span class="cx">
</span><span class="cx"> m_frontendPage->contextMenuController().showContextMenuAt(frame, mousePoint);
</span><span class="cx"> #else
</span></span></pre></div>
<a id="trunkSourceWebCorepageContextMenuControllercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/ContextMenuController.cpp (174177 => 174178)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/ContextMenuController.cpp        2014-10-01 22:12:30 UTC (rev 174177)
+++ trunk/Source/WebCore/page/ContextMenuController.cpp        2014-10-01 22:29:14 UTC (rev 174178)
</span><span class="lines">@@ -150,10 +150,10 @@
</span><span class="cx"> {
</span><span class="cx"> ASSERT(event);
</span><span class="cx">
</span><del>- if (!event->isMouseEvent())
</del><ins>+ if (!is<MouseEvent>(event))
</ins><span class="cx"> return nullptr;
</span><span class="cx">
</span><del>- MouseEvent& mouseEvent = toMouseEvent(*event);
</del><ins>+ MouseEvent& mouseEvent = downcast<MouseEvent>(*event);
</ins><span class="cx"> HitTestResult result(mouseEvent.absoluteLocation());
</span><span class="cx">
</span><span class="cx"> Node* node = event->target()->toNode();
</span></span></pre></div>
<a id="trunkSourceWebCorepageEventHandlercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/EventHandler.cpp (174177 => 174178)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/EventHandler.cpp        2014-10-01 22:12:30 UTC (rev 174177)
+++ trunk/Source/WebCore/page/EventHandler.cpp        2014-10-01 22:29:14 UTC (rev 174178)
</span><span class="lines">@@ -3523,7 +3523,7 @@
</span><span class="cx"> {
</span><span class="cx"> // Platforms should differentiate real commands like selectAll from text input in disguise (like insertNewline),
</span><span class="cx"> // and avoid dispatching text input events from keydown default handlers.
</span><del>- ASSERT(!underlyingEvent || !underlyingEvent->isKeyboardEvent() || toKeyboardEvent(underlyingEvent)->type() == eventNames().keypressEvent);
</del><ins>+ ASSERT(!underlyingEvent || !is<KeyboardEvent>(underlyingEvent) || downcast<KeyboardEvent>(*underlyingEvent).type() == eventNames().keypressEvent);
</ins><span class="cx">
</span><span class="cx"> EventTarget* target;
</span><span class="cx"> if (underlyingEvent)
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderEmbeddedObjectcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderEmbeddedObject.cpp (174177 => 174178)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderEmbeddedObject.cpp        2014-10-01 22:12:30 UTC (rev 174177)
+++ trunk/Source/WebCore/rendering/RenderEmbeddedObject.cpp        2014-10-01 22:29:14 UTC (rev 174178)
</span><span class="lines">@@ -590,9 +590,9 @@
</span><span class="cx"> && indicatorRect.contains(point);
</span><span class="cx"> }
</span><span class="cx">
</span><del>-bool RenderEmbeddedObject::isInUnavailablePluginIndicator(MouseEvent* event) const
</del><ins>+bool RenderEmbeddedObject::isInUnavailablePluginIndicator(const MouseEvent& event) const
</ins><span class="cx"> {
</span><del>- return isInUnavailablePluginIndicator(absoluteToLocal(event->absoluteLocation(), UseTransforms));
</del><ins>+ return isInUnavailablePluginIndicator(absoluteToLocal(event.absoluteLocation(), UseTransforms));
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void RenderEmbeddedObject::handleUnavailablePluginIndicatorEvent(Event* event)
</span><span class="lines">@@ -600,21 +600,21 @@
</span><span class="cx"> if (!shouldUnavailablePluginMessageBeButton(document(), m_pluginUnavailabilityReason))
</span><span class="cx"> return;
</span><span class="cx">
</span><del>- if (!event->isMouseEvent())
</del><ins>+ if (!is<MouseEvent>(event))
</ins><span class="cx"> return;
</span><span class="cx">
</span><del>- MouseEvent* mouseEvent = toMouseEvent(event);
</del><ins>+ MouseEvent& mouseEvent = downcast<MouseEvent>(*event);
</ins><span class="cx"> HTMLPlugInElement& element = downcast<HTMLPlugInElement>(frameOwnerElement());
</span><del>- if (event->type() == eventNames().mousedownEvent && toMouseEvent(event)->button() == LeftButton) {
</del><ins>+ if (mouseEvent.type() == eventNames().mousedownEvent && mouseEvent.button() == LeftButton) {
</ins><span class="cx"> m_mouseDownWasInUnavailablePluginIndicator = isInUnavailablePluginIndicator(mouseEvent);
</span><span class="cx"> if (m_mouseDownWasInUnavailablePluginIndicator) {
</span><span class="cx"> frame().eventHandler().setCapturingMouseEventsElement(&element);
</span><span class="cx"> element.setIsCapturingMouseEvents(true);
</span><span class="cx"> setUnavailablePluginIndicatorIsPressed(true);
</span><span class="cx"> }
</span><del>- event->setDefaultHandled();
</del><ins>+ mouseEvent.setDefaultHandled();
</ins><span class="cx"> }
</span><del>- if (event->type() == eventNames().mouseupEvent && toMouseEvent(event)->button() == LeftButton) {
</del><ins>+ if (mouseEvent.type() == eventNames().mouseupEvent && mouseEvent.button() == LeftButton) {
</ins><span class="cx"> if (m_unavailablePluginIndicatorIsPressed) {
</span><span class="cx"> frame().eventHandler().setCapturingMouseEventsElement(nullptr);
</span><span class="cx"> element.setIsCapturingMouseEvents(false);
</span><span class="lines">@@ -627,9 +627,9 @@
</span><span class="cx"> m_mouseDownWasInUnavailablePluginIndicator = false;
</span><span class="cx"> event->setDefaultHandled();
</span><span class="cx"> }
</span><del>- if (event->type() == eventNames().mousemoveEvent) {
</del><ins>+ if (mouseEvent.type() == eventNames().mousemoveEvent) {
</ins><span class="cx"> setUnavailablePluginIndicatorIsPressed(m_mouseDownWasInUnavailablePluginIndicator && isInUnavailablePluginIndicator(mouseEvent));
</span><del>- event->setDefaultHandled();
</del><ins>+ mouseEvent.setDefaultHandled();
</ins><span class="cx"> }
</span><span class="cx"> }
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderEmbeddedObjecth"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderEmbeddedObject.h (174177 => 174178)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderEmbeddedObject.h        2014-10-01 22:12:30 UTC (rev 174177)
+++ trunk/Source/WebCore/rendering/RenderEmbeddedObject.h        2014-10-01 22:29:14 UTC (rev 174178)
</span><span class="lines">@@ -84,7 +84,7 @@
</span><span class="cx"> virtual bool logicalScroll(ScrollLogicalDirection, ScrollGranularity, float multiplier, Element** stopElement) override final;
</span><span class="cx">
</span><span class="cx"> void setUnavailablePluginIndicatorIsPressed(bool);
</span><del>- bool isInUnavailablePluginIndicator(MouseEvent*) const;
</del><ins>+ bool isInUnavailablePluginIndicator(const MouseEvent&) const;
</ins><span class="cx"> bool isInUnavailablePluginIndicator(const FloatPoint&) const;
</span><span class="cx"> bool getReplacementTextGeometry(const LayoutPoint& accumulatedOffset, FloatRect& contentRect, FloatRect& indicatorRect, FloatRect& replacementTextRect, FloatRect& arrowRect, Font&, TextRun&, float& textWidth) const;
</span><span class="cx"> LayoutRect unavailablePluginIndicatorBounds(const LayoutPoint&) const;
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderSnapshottedPlugIncpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderSnapshottedPlugIn.cpp (174177 => 174178)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderSnapshottedPlugIn.cpp        2014-10-01 22:12:30 UTC (rev 174177)
+++ trunk/Source/WebCore/rendering/RenderSnapshottedPlugIn.cpp        2014-10-01 22:29:14 UTC (rev 174178)
</span><span class="lines">@@ -155,10 +155,10 @@
</span><span class="cx">
</span><span class="cx"> void RenderSnapshottedPlugIn::handleEvent(Event* event)
</span><span class="cx"> {
</span><del>- if (!event->isMouseEvent())
</del><ins>+ if (!is<MouseEvent>(event))
</ins><span class="cx"> return;
</span><span class="cx">
</span><del>- MouseEvent* mouseEvent = toMouseEvent(event);
</del><ins>+ MouseEvent& mouseEvent = downcast<MouseEvent>(*event);
</ins><span class="cx">
</span><span class="cx"> // If we're a snapshotted plugin, we want to make sure we activate on
</span><span class="cx"> // clicks even if the page is preventing our default behaviour. Otherwise
</span><span class="lines">@@ -168,20 +168,20 @@
</span><span class="cx"> // event. The code below is not completely foolproof, but the worst that
</span><span class="cx"> // could happen is that a snapshotted plugin restarts.
</span><span class="cx">
</span><del>- if (event->type() == eventNames().mouseoutEvent)
</del><ins>+ if (mouseEvent.type() == eventNames().mouseoutEvent)
</ins><span class="cx"> m_isPotentialMouseActivation = false;
</span><span class="cx">
</span><del>- if (mouseEvent->button() != LeftButton)
</del><ins>+ if (mouseEvent.button() != LeftButton)
</ins><span class="cx"> return;
</span><span class="cx">
</span><del>- if (event->type() == eventNames().clickEvent || (m_isPotentialMouseActivation && event->type() == eventNames().mouseupEvent)) {
</del><ins>+ if (mouseEvent.type() == eventNames().clickEvent || (m_isPotentialMouseActivation && mouseEvent.type() == eventNames().mouseupEvent)) {
</ins><span class="cx"> m_isPotentialMouseActivation = false;
</span><del>- bool clickWasOnOverlay = plugInImageElement().partOfSnapshotOverlay(event->target()->toNode());
- plugInImageElement().userDidClickSnapshot(mouseEvent, !clickWasOnOverlay);
- event->setDefaultHandled();
- } else if (event->type() == eventNames().mousedownEvent) {
</del><ins>+ bool clickWasOnOverlay = plugInImageElement().partOfSnapshotOverlay(mouseEvent.target()->toNode());
+ plugInImageElement().userDidClickSnapshot(&mouseEvent, !clickWasOnOverlay);
+ mouseEvent.setDefaultHandled();
+ } else if (mouseEvent.type() == eventNames().mousedownEvent) {
</ins><span class="cx"> m_isPotentialMouseActivation = true;
</span><del>- event->setDefaultHandled();
</del><ins>+ mouseEvent.setDefaultHandled();
</ins><span class="cx"> }
</span><span class="cx"> }
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebKit2ChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/ChangeLog (174177 => 174178)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/ChangeLog        2014-10-01 22:12:30 UTC (rev 174177)
+++ trunk/Source/WebKit2/ChangeLog        2014-10-01 22:29:14 UTC (rev 174178)
</span><span class="lines">@@ -1,3 +1,15 @@
</span><ins>+2014-10-01 Christophe Dumez <cdumez@apple.com>
+
+ Use is<>() / downcast<>() for Event classes
+ https://bugs.webkit.org/show_bug.cgi?id=137284
+
+ Reviewed by Andreas Kling.
+
+ Use is<>() / downcast<>() for Event classes.
+
+ * WebProcess/Plugins/PluginView.cpp:
+ (WebKit::PluginView::handleEvent):
+
</ins><span class="cx"> 2014-10-01 Joseph Pecoraro <pecoraro@apple.com>
</span><span class="cx">
</span><span class="cx"> [iOS] <select> with <optgroup> may change initial selected option when assisted
</span></span></pre></div>
<a id="trunkSourceWebKit2WebProcessPluginsPluginViewcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebProcess/Plugins/PluginView.cpp (174177 => 174178)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebProcess/Plugins/PluginView.cpp        2014-10-01 22:12:30 UTC (rev 174177)
+++ trunk/Source/WebKit2/WebProcess/Plugins/PluginView.cpp        2014-10-01 22:29:14 UTC (rev 174178)
</span><span class="lines">@@ -892,8 +892,8 @@
</span><span class="cx">
</span><span class="cx"> const WebEvent* currentEvent = WebPage::currentEvent();
</span><span class="cx"> std::unique_ptr<WebEvent> simulatedWebEvent;
</span><del>- if (event->isMouseEvent() && toMouseEvent(event)->isSimulated()) {
- simulatedWebEvent = createWebEvent(toMouseEvent(event));
</del><ins>+ if (is<MouseEvent>(event) && downcast<MouseEvent>(*event).isSimulated()) {
+ simulatedWebEvent = createWebEvent(downcast<MouseEvent>(event));
</ins><span class="cx"> currentEvent = simulatedWebEvent.get();
</span><span class="cx"> }
</span><span class="cx"> if (!currentEvent)
</span></span></pre>
</div>
</div>
</body>
</html>