<html>
<head>
<base href="https://bugs.webkit.org/" />
</head>
<body><table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Bug ID</th>
<td><a class="bz_bug_link
bz_status_NEW "
title="NEW - Synchronization of SVGMarkerElement DOM methods and orient attribute is broken"
href="https://bugs.webkit.org/show_bug.cgi?id=154141">154141</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>Synchronization of SVGMarkerElement DOM methods and orient attribute is broken
</td>
</tr>
<tr>
<th>Classification</th>
<td>Unclassified
</td>
</tr>
<tr>
<th>Product</th>
<td>WebKit
</td>
</tr>
<tr>
<th>Version</th>
<td>WebKit Nightly Build
</td>
</tr>
<tr>
<th>Hardware</th>
<td>Unspecified
</td>
</tr>
<tr>
<th>OS</th>
<td>Unspecified
</td>
</tr>
<tr>
<th>Status</th>
<td>NEW
</td>
</tr>
<tr>
<th>Severity</th>
<td>Normal
</td>
</tr>
<tr>
<th>Priority</th>
<td>P2
</td>
</tr>
<tr>
<th>Component</th>
<td>SVG
</td>
</tr>
<tr>
<th>Assignee</th>
<td>webkit-unassigned@lists.webkit.org
</td>
</tr>
<tr>
<th>Reporter</th>
<td>nikos.andronikos-webkit@cisra.canon.com.au
</td>
</tr>
<tr>
<th>CC</th>
<td>zimmermann@kde.org
</td>
</tr></table>
<p>
<div>
<pre>Test: <a href="https://jsfiddle.net/dodgeyhack/bgLe93sw/">https://jsfiddle.net/dodgeyhack/bgLe93sw/</a>
After using the DOM methods:
* setOrientToAuto
* setorientToAngle
And I think after also reading and writing to/from SVGMarkerElement.orientType and SVGMarkerElement.orientAngle.
Then, calling setAttribute with an invalid value causes that value not to be reflected in the attribute as it should.
Minimal JS test:
markerElement.setOrientToAngle(svgElement.createSVGAngle());
shouldNotThrow("markerElement.setAttribute('orient', 'AUTO')");
shouldBeEqualToString("markerElement.getAttribute('orient')", "AUTO");
Fails because getAttribute('orient') returns '0'.
The call stack shows that SetAttributeInternal is called multiple times, which is likely an error:
--Element::setAttribute----------------
name=orient / newValue=AUTO-START-REVERSE
--synchronizeOrientAngle------
shouldSynchronize = 1
--Element::setAttributeInternal----------------
name=orient / newValue=0123456789:;<=>?@ABCDEF... snipped the remaining garbage
--synchronizeOrientType-------
ownerType.m_orientType.value = 2
is angle
--Element::setAttributeInternal----------------
name=orient / newValue=AUTO-START-REVERSE
--parseAttribute-------
name = orient / value = AUTO-START-REVERSE
returns 0
--svgAttributeChanged-------
attrName = orient
--synchronizeOrientAngle------
shouldSynchronize = 1
--Element::setAttributeInternal----------------
name=orient / newValue=0123456789:;<=>?@ABCDEF... snipped the remaining garbage
--synchronizeOrientType-------
ownerType.m_orientType.value = 2
is angle</pre>
</div>
</p>
<hr>
<span>You are receiving this mail because:</span>
<ul>
<li>You are the assignee for the bug.</li>
</ul>
</body>
</html>