<!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>[244421] trunk</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/244421">244421</a></dd>
<dt>Author</dt> <dd>graouts@webkit.org</dd>
<dt>Date</dt> <dd>2019-04-17 23:41:22 -0700 (Wed, 17 Apr 2019)</dd>
</dl>

<h3>Log Message</h3>
<pre>[Pointer Events WPT] Unskip imported/w3c/web-platform-tests/pointerevents/pointerevent_on_event_handlers.html
https://bugs.webkit.org/show_bug.cgi?id=197006

Reviewed by Antti Koivisto.

LayoutTests/imported/w3c:

* web-platform-tests/pointerevents/pointerevent_on_event_handlers-expected.txt: Added.

Source/WebCore:

Add support for on* HTML attributes and JS properties for pointer events.

* dom/GlobalEventHandlers.idl:
* html/HTMLAttributeNames.in:
* html/HTMLElement.cpp:
(WebCore::HTMLElement::createEventHandlerNameMap):

LayoutTests:

* js/dom/dom-static-property-for-in-iteration-expected.txt:
* platform/mac-wk2/js/dom/dom-static-property-for-in-iteration-expected.txt:
* platform/mac/TestExpectations:</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkLayoutTestsChangeLog">trunk/LayoutTests/ChangeLog</a></li>
<li><a href="#trunkLayoutTestsimportedw3cChangeLog">trunk/LayoutTests/imported/w3c/ChangeLog</a></li>
<li><a href="#trunkLayoutTestsjsdomdomstaticpropertyforiniterationexpectedtxt">trunk/LayoutTests/js/dom/dom-static-property-for-in-iteration-expected.txt</a></li>
<li><a href="#trunkLayoutTestsplatformmacTestExpectations">trunk/LayoutTests/platform/mac/TestExpectations</a></li>
<li><a href="#trunkLayoutTestsplatformmacwk2jsdomdomstaticpropertyforiniterationexpectedtxt">trunk/LayoutTests/platform/mac-wk2/js/dom/dom-static-property-for-in-iteration-expected.txt</a></li>
<li><a href="#trunkSourceWebCoreChangeLog">trunk/Source/WebCore/ChangeLog</a></li>
<li><a href="#trunkSourceWebCoredomGlobalEventHandlersidl">trunk/Source/WebCore/dom/GlobalEventHandlers.idl</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLAttributeNamesin">trunk/Source/WebCore/html/HTMLAttributeNames.in</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLElementcpp">trunk/Source/WebCore/html/HTMLElement.cpp</a></li>
</ul>

<h3>Added Paths</h3>
<ul>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestspointereventspointerevent_on_event_handlersexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/pointerevents/pointerevent_on_event_handlers-expected.txt</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkLayoutTestsChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/ChangeLog (244420 => 244421)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/ChangeLog      2019-04-18 06:39:35 UTC (rev 244420)
+++ trunk/LayoutTests/ChangeLog 2019-04-18 06:41:22 UTC (rev 244421)
</span><span class="lines">@@ -1,3 +1,14 @@
</span><ins>+2019-04-17  Antoine Quint  <graouts@apple.com>
+
+        [Pointer Events WPT] Unskip imported/w3c/web-platform-tests/pointerevents/pointerevent_on_event_handlers.html
+        https://bugs.webkit.org/show_bug.cgi?id=197006
+
+        Reviewed by Antti Koivisto.
+
+        * js/dom/dom-static-property-for-in-iteration-expected.txt:
+        * platform/mac-wk2/js/dom/dom-static-property-for-in-iteration-expected.txt:
+        * platform/mac/TestExpectations:
+
</ins><span class="cx"> 2019-04-17  Fujii Hironori  <Hironori.Fujii@sony.com>
</span><span class="cx"> 
</span><span class="cx">         Unreviewed test gardening for WinCairo port
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/ChangeLog (244420 => 244421)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/ChangeLog 2019-04-18 06:39:35 UTC (rev 244420)
+++ trunk/LayoutTests/imported/w3c/ChangeLog    2019-04-18 06:41:22 UTC (rev 244421)
</span><span class="lines">@@ -1,5 +1,14 @@
</span><span class="cx"> 2019-04-17  Antoine Quint  <graouts@apple.com>
</span><span class="cx"> 
</span><ins>+        [Pointer Events WPT] Unskip imported/w3c/web-platform-tests/pointerevents/pointerevent_on_event_handlers.html
+        https://bugs.webkit.org/show_bug.cgi?id=197006
+
+        Reviewed by Antti Koivisto.
+
+        * web-platform-tests/pointerevents/pointerevent_on_event_handlers-expected.txt: Added.
+
+2019-04-17  Antoine Quint  <graouts@apple.com>
+
</ins><span class="cx">         [Pointer Events WPT] Update WPT tests and provide macOS testdriver
</span><span class="cx">         https://bugs.webkit.org/show_bug.cgi?id=197011
</span><span class="cx">         <rdar://problem/49976553>
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestspointereventspointerevent_on_event_handlersexpectedtxt"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/pointerevents/pointerevent_on_event_handlers-expected.txt (0 => 244421)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/pointerevents/pointerevent_on_event_handlers-expected.txt                              (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/pointerevents/pointerevent_on_event_handlers-expected.txt 2019-04-18 06:41:22 UTC (rev 244421)
</span><span class="lines">@@ -0,0 +1,36 @@
</span><ins>+PointerEvent: Dispatch custom event
+
+Test Description: This test checks if on pointer event handlers through attributes works properly using synthetic pointerevents. For valid results, this test must be run without generating real (trusted) events on the black rectangle below.
+
+
+PASS The default value of onpointerdown is always null 
+PASS The onpointerdown content attribute must be compiled into the onpointerdown property 
+PASS dispatching a pointerdown event must trigger element.onpointerdown 
+PASS The default value of onpointerup is always null 
+PASS The onpointerup content attribute must be compiled into the onpointerup property 
+PASS dispatching a pointerup event must trigger element.onpointerup 
+PASS The default value of onpointercancel is always null 
+PASS The onpointercancel content attribute must be compiled into the onpointercancel property 
+PASS dispatching a pointercancel event must trigger element.onpointercancel 
+PASS The default value of onpointermove is always null 
+PASS The onpointermove content attribute must be compiled into the onpointermove property 
+PASS dispatching a pointermove event must trigger element.onpointermove 
+PASS The default value of onpointerover is always null 
+PASS The onpointerover content attribute must be compiled into the onpointerover property 
+PASS dispatching a pointerover event must trigger element.onpointerover 
+PASS The default value of onpointerout is always null 
+PASS The onpointerout content attribute must be compiled into the onpointerout property 
+PASS dispatching a pointerout event must trigger element.onpointerout 
+PASS The default value of onpointerenter is always null 
+PASS The onpointerenter content attribute must be compiled into the onpointerenter property 
+PASS dispatching a pointerenter event must trigger element.onpointerenter 
+PASS The default value of onpointerleave is always null 
+PASS The onpointerleave content attribute must be compiled into the onpointerleave property 
+PASS dispatching a pointerleave event must trigger element.onpointerleave 
+PASS The default value of ongotpointercapture is always null 
+PASS The ongotpointercapture content attribute must be compiled into the ongotpointercapture property 
+PASS dispatching a gotpointercapture event must trigger element.ongotpointercapture 
+PASS The default value of onlostpointercapture is always null 
+PASS The onlostpointercapture content attribute must be compiled into the onlostpointercapture property 
+PASS dispatching a lostpointercapture event must trigger element.onlostpointercapture 
+
</ins></span></pre></div>
<a id="trunkLayoutTestsjsdomdomstaticpropertyforiniterationexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/js/dom/dom-static-property-for-in-iteration-expected.txt (244420 => 244421)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/js/dom/dom-static-property-for-in-iteration-expected.txt       2019-04-18 06:39:35 UTC (rev 244420)
+++ trunk/LayoutTests/js/dom/dom-static-property-for-in-iteration-expected.txt  2019-04-18 06:41:22 UTC (rev 244421)
</span><span class="lines">@@ -119,6 +119,16 @@
</span><span class="cx"> PASS a["onanimationiteration"] is null
</span><span class="cx"> PASS a["onanimationstart"] is null
</span><span class="cx"> PASS a["onanimationcancel"] is null
</span><ins>+PASS a["ongotpointercapture"] is null
+PASS a["onlostpointercapture"] is null
+PASS a["onpointerdown"] is null
+PASS a["onpointermove"] is null
+PASS a["onpointerup"] is null
+PASS a["onpointercancel"] is null
+PASS a["onpointerover"] is null
+PASS a["onpointerout"] is null
+PASS a["onpointerenter"] is null
+PASS a["onpointerleave"] is null
</ins><span class="cx"> PASS a["namespaceURI"] is http://www.w3.org/1999/xhtml
</span><span class="cx"> PASS a["prefix"] is null
</span><span class="cx"> PASS a["localName"] is a
</span></span></pre></div>
<a id="trunkLayoutTestsplatformmacTestExpectations"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/platform/mac/TestExpectations (244420 => 244421)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/mac/TestExpectations  2019-04-18 06:39:35 UTC (rev 244420)
+++ trunk/LayoutTests/platform/mac/TestExpectations     2019-04-18 06:41:22 UTC (rev 244421)
</span><span class="lines">@@ -1881,7 +1881,6 @@
</span><span class="cx"> 
</span><span class="cx"> webkit.org/b/197004 imported/w3c/web-platform-tests/pointerevents/pointerevent_lostpointercapture_for_disconnected_node.html [ Skip ]
</span><span class="cx"> webkit.org/b/197005 imported/w3c/web-platform-tests/pointerevents/pointerevent_lostpointercapture_is_first.html [ Skip ]
</span><del>-webkit.org/b/197006 imported/w3c/web-platform-tests/pointerevents/pointerevent_on_event_handlers.html [ Skip ]
</del><span class="cx"> webkit.org/b/197008 imported/w3c/web-platform-tests/pointerevents/pointerevent_suppress_compat_events_on_drag_mouse.html [ Pass Failure ]
</span><span class="cx"> webkit.org/b/197007 imported/w3c/web-platform-tests/pointerevents/pointerlock/pointerevent_coordinates_when_locked.html [ Skip ]
</span><span class="cx"> webkit.org/b/197009 imported/w3c/web-platform-tests/pointerevents/pointerevent_setpointercapture_invalid_pointerid.html [ Failure Pass ]
</span></span></pre></div>
<a id="trunkLayoutTestsplatformmacwk2jsdomdomstaticpropertyforiniterationexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/platform/mac-wk2/js/dom/dom-static-property-for-in-iteration-expected.txt (244420 => 244421)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/mac-wk2/js/dom/dom-static-property-for-in-iteration-expected.txt      2019-04-18 06:39:35 UTC (rev 244420)
+++ trunk/LayoutTests/platform/mac-wk2/js/dom/dom-static-property-for-in-iteration-expected.txt 2019-04-18 06:41:22 UTC (rev 244421)
</span><span class="lines">@@ -120,6 +120,16 @@
</span><span class="cx"> PASS a["onanimationiteration"] is null
</span><span class="cx"> PASS a["onanimationstart"] is null
</span><span class="cx"> PASS a["onanimationcancel"] is null
</span><ins>+PASS a["ongotpointercapture"] is null
+PASS a["onlostpointercapture"] is null
+PASS a["onpointerdown"] is null
+PASS a["onpointermove"] is null
+PASS a["onpointerup"] is null
+PASS a["onpointercancel"] is null
+PASS a["onpointerover"] is null
+PASS a["onpointerout"] is null
+PASS a["onpointerenter"] is null
+PASS a["onpointerleave"] is null
</ins><span class="cx"> PASS a["namespaceURI"] is http://www.w3.org/1999/xhtml
</span><span class="cx"> PASS a["prefix"] is null
</span><span class="cx"> PASS a["localName"] is a
</span></span></pre></div>
<a id="trunkSourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/ChangeLog (244420 => 244421)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/ChangeLog   2019-04-18 06:39:35 UTC (rev 244420)
+++ trunk/Source/WebCore/ChangeLog      2019-04-18 06:41:22 UTC (rev 244421)
</span><span class="lines">@@ -1,3 +1,17 @@
</span><ins>+2019-04-17  Antoine Quint  <graouts@apple.com>
+
+        [Pointer Events WPT] Unskip imported/w3c/web-platform-tests/pointerevents/pointerevent_on_event_handlers.html
+        https://bugs.webkit.org/show_bug.cgi?id=197006
+
+        Reviewed by Antti Koivisto.
+
+        Add support for on* HTML attributes and JS properties for pointer events.
+
+        * dom/GlobalEventHandlers.idl:
+        * html/HTMLAttributeNames.in:
+        * html/HTMLElement.cpp:
+        (WebCore::HTMLElement::createEventHandlerNameMap):
+
</ins><span class="cx"> 2019-04-17  Timothy Hatcher  <timothy@apple.com>
</span><span class="cx"> 
</span><span class="cx">         Standardize the `<meta name="color-scheme">` separator.
</span></span></pre></div>
<a id="trunkSourceWebCoredomGlobalEventHandlersidl"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/GlobalEventHandlers.idl (244420 => 244421)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/GlobalEventHandlers.idl 2019-04-18 06:39:35 UTC (rev 244420)
+++ trunk/Source/WebCore/dom/GlobalEventHandlers.idl    2019-04-18 06:41:22 UTC (rev 244421)
</span><span class="lines">@@ -107,6 +107,18 @@
</span><span class="cx">     attribute EventHandler onanimationstart;
</span><span class="cx">     attribute EventHandler onanimationcancel;
</span><span class="cx"> 
</span><ins>+    // Event handlers from Pointer Events API (https://w3c.github.io/pointerevents/#extensions-to-the-globaleventhandlers-mixin)
+    attribute EventHandler ongotpointercapture;
+    attribute EventHandler onlostpointercapture;
+    attribute EventHandler onpointerdown;
+    attribute EventHandler onpointermove;
+    attribute EventHandler onpointerup;
+    attribute EventHandler onpointercancel;
+    attribute EventHandler onpointerover;
+    attribute EventHandler onpointerout;
+    attribute EventHandler onpointerenter;
+    attribute EventHandler onpointerleave;
+
</ins><span class="cx">     // Additions that are not yet part of the standard.
</span><span class="cx"> 
</span><span class="cx">     [NotEnumerable] attribute EventHandler onsearch;
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLAttributeNamesin"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLAttributeNames.in (244420 => 244421)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLAttributeNames.in  2019-04-18 06:39:35 UTC (rev 244420)
+++ trunk/Source/WebCore/html/HTMLAttributeNames.in     2019-04-18 06:41:22 UTC (rev 244421)
</span><span class="lines">@@ -249,11 +249,13 @@
</span><span class="cx"> ongesturestart
</span><span class="cx"> ongesturechange
</span><span class="cx"> ongestureend
</span><ins>+ongotpointercapture
</ins><span class="cx"> onlanguagechange
</span><span class="cx"> onload
</span><span class="cx"> onloadeddata
</span><span class="cx"> onloadedmetadata
</span><span class="cx"> onloadstart
</span><ins>+onlostpointercapture
</ins><span class="cx"> onmessage
</span><span class="cx"> onmousedown
</span><span class="cx"> onmouseenter
</span><span class="lines">@@ -272,6 +274,14 @@
</span><span class="cx"> onpause
</span><span class="cx"> onplay
</span><span class="cx"> onplaying
</span><ins>+onpointerdown
+onpointermove
+onpointerup
+onpointercancel
+onpointerover
+onpointerout
+onpointerenter
+onpointerleave
</ins><span class="cx"> onpopstate
</span><span class="cx"> onprogress
</span><span class="cx"> onratechange
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLElement.cpp (244420 => 244421)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLElement.cpp        2019-04-18 06:39:35 UTC (rev 244420)
+++ trunk/Source/WebCore/html/HTMLElement.cpp   2019-04-18 06:41:22 UTC (rev 244421)
</span><span class="lines">@@ -273,6 +273,7 @@
</span><span class="cx">         &ongesturechangeAttr.get(),
</span><span class="cx">         &ongestureendAttr.get(),
</span><span class="cx">         &ongesturestartAttr.get(),
</span><ins>+        &ongotpointercaptureAttr.get(),
</ins><span class="cx">         &oninputAttr.get(),
</span><span class="cx">         &oninvalidAttr.get(),
</span><span class="cx">         &onkeydownAttr.get(),
</span><span class="lines">@@ -282,6 +283,7 @@
</span><span class="cx">         &onloadeddataAttr.get(),
</span><span class="cx">         &onloadedmetadataAttr.get(),
</span><span class="cx">         &onloadstartAttr.get(),
</span><ins>+        &onlostpointercaptureAttr.get(),
</ins><span class="cx">         &onmousedownAttr.get(),
</span><span class="cx">         &onmouseenterAttr.get(),
</span><span class="cx">         &onmouseleaveAttr.get(),
</span><span class="lines">@@ -294,6 +296,14 @@
</span><span class="cx">         &onpauseAttr.get(),
</span><span class="cx">         &onplayAttr.get(),
</span><span class="cx">         &onplayingAttr.get(),
</span><ins>+        &onpointerdownAttr.get(),
+        &onpointermoveAttr.get(),
+        &onpointerupAttr.get(),
+        &onpointercancelAttr.get(),
+        &onpointeroverAttr.get(),
+        &onpointeroutAttr.get(),
+        &onpointerenterAttr.get(),
+        &onpointerleaveAttr.get(),
</ins><span class="cx">         &onprogressAttr.get(),
</span><span class="cx">         &onratechangeAttr.get(),
</span><span class="cx">         &onresetAttr.get(),
</span></span></pre>
</div>
</div>

</body>
</html>