<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>177403</bug_id>
          
          <creation_ts>2017-09-22 19:31:23 -0700</creation_ts>
          <short_desc>Add helper functions to write better selection tests</short_desc>
          <delta_ts>2018-01-18 09:17:05 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Megan Gardner">megan_gardner</reporter>
          <assigned_to name="Megan Gardner">megan_gardner</assigned_to>
          <cc>fred.wang</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wenson_hsieh</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1351918</commentid>
    <comment_count>0</comment_count>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2017-09-22 19:31:23 -0700</bug_when>
    <thetext>Add helper function to write better selection tests</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1351920</commentid>
    <comment_count>1</comment_count>
      <attachid>321613</attachid>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2017-09-22 19:42:40 -0700</bug_when>
    <thetext>Created attachment 321613
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1352049</commentid>
    <comment_count>2</comment_count>
      <attachid>321613</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2017-09-24 01:15:51 -0700</bug_when>
    <thetext>Comment on attachment 321613
Patch

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

&gt; LayoutTests/ChangeLog:9
&gt; +        that can assist it the calculation of word location, and in helping debug

&quot;...that can make it easier to calculate word location, and help debug...&quot;?

&gt; LayoutTests/fast/events/touch/ios/resources/text-calculations.js:24
&gt; +function measureLineWidth(string, fontFamily = &quot;monospace&quot;, fontSize = &quot;18px&quot;)

Hm...did you try using measureText(~).width and find that it wasn&apos;t accurate enough for your purpose? I&apos;m a bit curious how/why we would use measureFontHeight and measureLineWidth to help debug layout tests. If it&apos;s to try and track down the location of a run of text that we want to select, would it suffice to wrap that text around a span with id=&quot;foo&quot;, and just use foo.getBoundingClientRect()?

&gt; LayoutTests/fast/events/touch/ios/resources/ui-debugging.js:1
&gt; +// To double check location of touches or other x,y coordinants

s/coordinants/coordinates/

&gt; LayoutTests/fast/events/touch/ios/resources/ui-debugging.js:2
&gt; +// WARNING: If you leave this on, it is selectable, as it is an HTML element.

Perhaps you give this debug element the `pointer-events: none` style?

&gt; LayoutTests/fast/events/touch/ios/resources/ui-debugging.js:3
&gt; +// There is no real way around this. Just be aware when testing, it&apos;s presense will likely mess up your test.

s/presense/presence/

&gt; LayoutTests/fast/events/touch/ios/resources/ui-debugging.js:29
&gt; +// To double check location of word boxes or other x,y coordinants

Ditto on typos/pointer-events: none.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1352551</commentid>
    <comment_count>3</comment_count>
      <attachid>321783</attachid>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2017-09-25 18:47:23 -0700</bug_when>
    <thetext>Created attachment 321783
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1352552</commentid>
    <comment_count>4</comment_count>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2017-09-25 18:49:10 -0700</bug_when>
    <thetext>Turns out using &lt;span&gt; tags gives me the results I want in being able to determine where selection rects should be, so the measurements functions aren&apos;t needed. And setting the pointer-events style makes them invisible to touch, so that helps make them more useful. These are basically debug tools, but having them all written up makes it easier to use them later.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1352793</commentid>
    <comment_count>5</comment_count>
      <attachid>321783</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2017-09-26 12:43:45 -0700</bug_when>
    <thetext>Comment on attachment 321783
Patch

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

&gt; LayoutTests/fast/events/touch/ios/resources/ui-debugging.js:18
&gt; +    dot.style.left = (x-dotSize/2)+&quot;px&quot;;

spaces around math operators!

&gt; LayoutTests/fast/events/touch/ios/resources/ui-debugging.js:46
&gt; +    rect.style.top = y+&quot;px&quot;;

ditto, etc.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1352805</commentid>
    <comment_count>6</comment_count>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2017-09-26 13:24:49 -0700</bug_when>
    <thetext>https://trac.webkit.org/r222517</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1353328</commentid>
    <comment_count>7</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-09-27 12:21:38 -0700</bug_when>
    <thetext>&lt;rdar://problem/34693125&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1390521</commentid>
    <comment_count>8</comment_count>
    <who name="Frédéric Wang Nélar">fred.wang</who>
    <bug_when>2018-01-18 08:55:30 -0800</bug_when>
    <thetext>@Megan: Was ui-debugging.js actually used at the end?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1390534</commentid>
    <comment_count>9</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2018-01-18 09:17:05 -0800</bug_when>
    <thetext>(In reply to Frédéric Wang (:fredw) from comment #8)
&gt; @Megan: Was ui-debugging.js actually used at the end?

I think the intention behind ui-debugging.js is to make it a bit easier to write UI-script-driven tests, especially on iOS.

One could use some of the functionality in ui-debugging.js to make it easier to diagnose and triage test failures by adding visual indication of where synthetic events are being dispatched, but would ultimately remove code that inserts these debug elements into the DOM before check-in.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>321613</attachid>
            <date>2017-09-22 19:42:40 -0700</date>
            <delta_ts>2017-09-25 18:47:21 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-177403-20170922194240.patch</filename>
            <type>text/plain</type>
            <size>4920</size>
            <attacher name="Megan Gardner">megan_gardner</attacher>
            
              <data encoding="base64">SW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDIyMjQyMSkKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29y
a2luZyBjb3B5KQpAQCAtMSwzICsxLDIzIEBACisyMDE3LTA5LTIyICBNZWdhbiBHYXJkbmVyICA8
bWVnYW5fZ2FyZG5lckBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIGhlbHBlciBmdW5jdGlvbnMg
dG8gd3JpdGUgYmV0dGVyIHNlbGVjdGlvbiB0ZXN0cworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc3NDAzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgU2VsZWN0aW9uIHRlc3RzIGFyZSBmaW5pY2t5IHRvIHdy
aXRlLCBzbyBoYXZpbmcgc29tZSBtb3JlIGhlbHBlciBmdW5jdGlvbnMKKyAgICAgICAgdGhhdCBj
YW4gYXNzaXN0IGl0IHRoZSBjYWxjdWxhdGlvbiBvZiB3b3JkIGxvY2F0aW9uLCBhbmQgaW4gaGVs
cGluZyBkZWJ1ZworICAgICAgICB0aGUgcGxhY2VzIHdlIHRyeSBhbmQgdGVzdCBvciB0cnkgYW5k
IGZpZ3VyZSBvdXQgdGhlIGJvdW5kcyBvZiB3b3JkcyBpcyBoZWxwZnVsLgorCisgICAgICAgICog
ZmFzdC9ldmVudHMvdG91Y2gvaW9zL3Jlc291cmNlcy90ZXh0LWNhbGN1bGF0aW9ucy5qczogQWRk
ZWQuCisgICAgICAgIChtZWFzdXJlRm9udEhlaWdodCk6CisgICAgICAgIChtZWFzdXJlTGluZVdp
ZHRoKToKKyAgICAgICAgKiBmYXN0L2V2ZW50cy90b3VjaC9pb3MvcmVzb3VyY2VzL3VpLWRlYnVn
Z2luZy5qczogQWRkZWQuCisgICAgICAgIChkZWJ1Z0RvdCk6CisgICAgICAgIChyZW1vdmVEZWJ1
Z0RvdCk6CisgICAgICAgIChkZWJ1Z1JlY3QpOgorICAgICAgICAocmVtb3ZlRGVidWdSZWN0KToK
KwogMjAxNy0wOS0yMiAgS2VpdGggTWlsbGVyICA8a2VpdGhfbWlsbGVyQGFwcGxlLmNvbT4KIAog
ICAgICAgICBTcGVjdWxhdGl2ZWx5IGNoYW5nZSBpdGVyYXRpb24gcHJvdG9jYWxsIHRvIHVzZSB0
aGUgc2FtZSBuZXh0IGZ1bmN0aW9uCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3Vj
aC9pb3MvcmVzb3VyY2VzL3RleHQtY2FsY3VsYXRpb25zLmpzCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2lvcy9yZXNvdXJjZXMvdGV4dC1jYWxjdWxhdGlvbnMu
anMJKG5vbmV4aXN0ZW50KQorKysgTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL3Jl
c291cmNlcy90ZXh0LWNhbGN1bGF0aW9ucy5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDQ1
IEBACitmdW5jdGlvbiBtZWFzdXJlRm9udEhlaWdodChmb250RmFtaWx5ID0gIm1vbm9zcGFjZSIs
IGZvbnRTaXplID0gIjE4cHgiKQoreworICAgIHZhciBoZWlnaHRSdWxlciA9IGRvY3VtZW50LmNy
ZWF0ZUVsZW1lbnQoImhlaWdodFJ1bGVyIik7CisgICAgCisgICAgaGVpZ2h0UnVsZXIuc3R5bGUu
cG9zaXRpb24gPSAiYWJzb2x1dGUiOworICAgIGhlaWdodFJ1bGVyLnN0eWxlLnZpc2liaWxpdHkg
PSAiaGlkZGVuIjsKKyAgICBoZWlnaHRSdWxlci5zdHlsZS5oZWlnaHQgPSAiYXV0byI7CisgICAg
aGVpZ2h0UnVsZXIuc3R5bGUud2lkdGggPSAiYXV0byI7CisgICAgaGVpZ2h0UnVsZXIuc3R5bGUu
Zm9udEZhbWlseSA9IGZvbnRGYW1pbHk7CisgICAgaGVpZ2h0UnVsZXIuc3R5bGUuZm9udFNpemUg
PSBmb250U2l6ZTsKKyAgICBoZWlnaHRSdWxlci5zdHlsZS53aGl0ZVNwYWNlID0gIm5vd3JhcCI7
CisgICAgCisgICAgaGVpZ2h0UnVsZXIuaW5uZXJIVE1MICA9ICdMb3JlbSBpcHN1bSBkb2xvciBz
aXQgYW1ldCwgY29uc2VjdGV0dXInOworICAgIAorICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hp
bGQoaGVpZ2h0UnVsZXIpOworICAgIAorICAgIHZhciBoZWlnaHQgPSBoZWlnaHRSdWxlci5jbGll
bnRIZWlnaHQ7CisKKyAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGhlaWdodFJ1bGVyKTsK
KyAgICAKKyAgICByZXR1cm4gaGVpZ2h0OworfQorCitmdW5jdGlvbiBtZWFzdXJlTGluZVdpZHRo
KHN0cmluZywgZm9udEZhbWlseSA9ICJtb25vc3BhY2UiLCBmb250U2l6ZSA9ICIxOHB4IikKK3sK
KyAgICB2YXIgd2lkdGhSdWxlciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIndpZHRoUnVsZXIi
KTsKKyAgICAKKyAgICB3aWR0aFJ1bGVyLnN0eWxlLnBvc2l0aW9uID0gImFic29sdXRlIjsKKyAg
ICB3aWR0aFJ1bGVyLnN0eWxlLnZpc2liaWxpdHkgPSAiaGlkZGVuIjsKKyAgICB3aWR0aFJ1bGVy
LnN0eWxlLmhlaWdodCA9ICJhdXRvIjsKKyAgICB3aWR0aFJ1bGVyLnN0eWxlLndpZHRoID0gImF1
dG8iOworICAgIHdpZHRoUnVsZXIuc3R5bGUuZm9udEZhbWlseSA9IGZvbnRGYW1pbHk7CisgICAg
d2lkdGhSdWxlci5zdHlsZS5mb250U2l6ZSA9IGZvbnRTaXplOworICAgIHdpZHRoUnVsZXIuc3R5
bGUud2hpdGVTcGFjZSA9ICJub3dyYXAiOworICAgIAorICAgIHdpZHRoUnVsZXIuaW5uZXJIVE1M
ID0gc3RyaW5nOworICAgIAorICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQod2lkdGhSdWxl
cik7CisgICAgCisgICAgdmFyIHdpZHRoID0gd2lkdGhSdWxlci5jbGllbnRXaWR0aDsKKyAgICAK
KyAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKHdpZHRoUnVsZXIpOworICAgIAorICAgIHJl
dHVybiB3aWR0aDsKK30KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2lvcy9y
ZXNvdXJjZXMvdWktZGVidWdnaW5nLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3Qv
ZXZlbnRzL3RvdWNoL2lvcy9yZXNvdXJjZXMvdWktZGVidWdnaW5nLmpzCShub25leGlzdGVudCkK
KysrIExheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2lvcy9yZXNvdXJjZXMvdWktZGVidWdn
aW5nLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNTQgQEAKKy8vIFRvIGRvdWJsZSBjaGVj
ayBsb2NhdGlvbiBvZiB0b3VjaGVzIG9yIG90aGVyIHgseSBjb29yZGluYW50cworLy8gV0FSTklO
RzogSWYgeW91IGxlYXZlIHRoaXMgb24sIGl0IGlzIHNlbGVjdGFibGUsIGFzIGl0IGlzIGFuIEhU
TUwgZWxlbWVudC4KKy8vIFRoZXJlIGlzIG5vIHJlYWwgd2F5IGFyb3VuZCB0aGlzLiBKdXN0IGJl
IGF3YXJlIHdoZW4gdGVzdGluZywgaXQncyBwcmVzZW5zZSB3aWxsIGxpa2VseSBtZXNzIHVwIHlv
dXIgdGVzdC4KK2Z1bmN0aW9uIGRlYnVnRG90KHgsIHksIGVsZW1lbnQgPSBkb2N1bWVudC5ib2R5
KQoreworICAgIHZhciBkb3RTaXplID0gMTA7CisgICAgdmFyIGRvdCA9IGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCJkZWJ1Z0RvdCIpOworICAgIGlmICghZG90KQorICAgICAgICBkb3QgPSBkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCJkZWJ1Z0RvdCIpOworICAgIAorICAgIGRvdC5zdHlsZS5wb3Np
dGlvbiA9ICJhYnNvbHV0ZSI7CisgICAgZG90LnN0eWxlLmhlaWdodCA9IGRvdFNpemUgKyAicHgi
OworICAgIGRvdC5zdHlsZS53aWR0aCA9IGRvdFNpemUgKyAicHgiOworICAgIGRvdC5zdHlsZS5i
YWNrZ3JvdW5kQ29sb3IgPSAiRGVlcFBpbmsiOworICAgIGRvdC5zdHlsZS5ib3JkZXJSYWRpdXMg
PSAiMTAwJSI7CisgICAgZG90LnN0eWxlLmxlZnQgPSAoeC1kb3RTaXplLzIpKyJweCI7CisgICAg
ZG90LnN0eWxlLnRvcCA9ICh5LWRvdFNpemUvMikrInB4IjsKKyAgICAKKyAgICBlbGVtZW50LmFw
cGVuZENoaWxkKGRvdCk7Cit9CisKK2Z1bmN0aW9uIHJlbW92ZURlYnVnRG90KCkKK3sKKyAgICB2
YXIgZG90ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImRlYnVnRG90Iik7CisgICAgaWYgKGRv
dCkKKyAgICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChkb3QpOworfQorCisvLyBUbyBk
b3VibGUgY2hlY2sgbG9jYXRpb24gb2Ygd29yZCBib3hlcyBvciBvdGhlciB4LHkgY29vcmRpbmFu
dHMKKy8vIFdBUk5JTkc6IElmIHlvdSBsZWF2ZSB0aGlzIG9uLCBpdCBpcyBzZWxlY3RhYmxlLCBh
cyBpdCBpcyBhbiBIVE1MIGVsZW1lbnQuCisvLyBUaGVyZSBpcyBubyByZWFsIHdheSBhcm91bmQg
dGhpcy4gSnVzdCBiZSBhd2FyZSB3aGVuIHRlc3RpbmcsIGl0J3MgcHJlc2Vuc2Ugd2lsbCBsaWtl
bHkgbWVzcyB1cCB5b3VyIHRlc3QuCitmdW5jdGlvbiBkZWJ1Z1JlY3QoeCwgeSwgd2lkdGgsIGhl
aWdodCwgZWxlbWVudCA9IGRvY3VtZW50LmJvZHkpCit7CisgICAgdmFyIHJlY3QgPSBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgiZGVidWdSZWN0Iik7CisgICAgaWYgKCFyZWN0KQorICAgICAgICBy
ZWN0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGVidWdSZWN0Iik7CisgICAgCisgICAgcmVj
dC5zdHlsZS5wb3NpdGlvbiA9ICJhYnNvbHV0ZSI7CisgICAgcmVjdC5zdHlsZS5oZWlnaHQgPSBo
ZWlnaHQgKyAicHgiOworICAgIHJlY3Quc3R5bGUud2lkdGggPSB3aWR0aCArICJweCI7CisgICAg
cmVjdC5zdHlsZS5iYWNrZ3JvdW5kQ29sb3IgPSAicmdiYSgyNTUsMCwyNTUsMC41KSI7CisgICAg
cmVjdC5zdHlsZS50b3AgPSB5KyJweCI7CisgICAgcmVjdC5zdHlsZS5sZWZ0ID0geCsicHgiOwor
ICAgIAorICAgIGVsZW1lbnQuYXBwZW5kQ2hpbGQocmVjdCk7Cit9CisKK2Z1bmN0aW9uIHJlbW92
ZURlYnVnUmVjdCgpCit7CisgICAgdmFyIHJlY3QgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgi
ZGVidWdSZWN0Iik7CisgICAgaWYgKHJlY3QpCisgICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3Zl
Q2hpbGQocmVjdCk7Cit9CisK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>321783</attachid>
            <date>2017-09-25 18:47:23 -0700</date>
            <delta_ts>2017-09-26 12:43:45 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-177403-20170925184722.patch</filename>
            <type>text/plain</type>
            <size>2850</size>
            <attacher name="Megan Gardner">megan_gardner</attacher>
            
              <data encoding="base64">SW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDIyMjQ4NikKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29y
a2luZyBjb3B5KQpAQCAtMSwzICsxLDIwIEBACisyMDE3LTA5LTI1ICBNZWdhbiBHYXJkbmVyICA8
bWVnYW5fZ2FyZG5lckBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIGhlbHBlciBmdW5jdGlvbnMg
dG8gd3JpdGUgYmV0dGVyIHNlbGVjdGlvbiB0ZXN0cworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc3NDAzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgU2VsZWN0aW9uIHRlc3RzIGFyZSBmaW5pY2t5IHRvIHdy
aXRlLCBzbyBoYXZpbmcgc29tZSBtb3JlIGhlbHBlciBmdW5jdGlvbnMKKyAgICAgICAgdGhhdCBj
YW4gYXNzaXN0IGluIGRvdWJsZSBjaGVja2luZyB3aGVyZSB3ZSB0aGluayB3ZSBhcmUgc2VsZWN0
aW5nLCBvciB3aGVyZSB3ZQorICAgICAgICB0aGluayB3b3JkcyBhcmUgbG9jYXRlZCBpbiBoZWxw
ZnVsLgorCisgICAgICAgICogZmFzdC9ldmVudHMvdG91Y2gvaW9zL3Jlc291cmNlcy91aS1kZWJ1
Z2dpbmcuanM6IEFkZGVkLgorICAgICAgICAoZGVidWdEb3QpOgorICAgICAgICAocmVtb3ZlRGVi
dWdEb3QpOgorICAgICAgICAoZGVidWdSZWN0KToKKyAgICAgICAgKHJlbW92ZURlYnVnUmVjdCk6
CisKIDIwMTctMDktMjUgIERldmluIFJvdXNzbyAgPHdlYmtpdEBkZXZpbnJvdXNzby5jb20+CiAK
ICAgICAgICAgV2ViIEluc3BlY3RvcjogbW92ZSBDb25zb2xlLmFkZEluc3BlY3RlZE5vZGUgdG8g
RE9NLnNldEluc3BlY3RlZE5vZGUKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNo
L2lvcy9yZXNvdXJjZXMvdWktZGVidWdnaW5nLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L2Zhc3QvZXZlbnRzL3RvdWNoL2lvcy9yZXNvdXJjZXMvdWktZGVidWdnaW5nLmpzCShub25leGlz
dGVudCkKKysrIExheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2lvcy9yZXNvdXJjZXMvdWkt
ZGVidWdnaW5nLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNTggQEAKKy8vIFRvIGRvdWJs
ZSBjaGVjayBsb2NhdGlvbiBvZiB0b3VjaGVzIG9yIG90aGVyIHgseSBjb29yZGluYXRlcworZnVu
Y3Rpb24gZGVidWdEb3QoeCwgeSwgZWxlbWVudCA9IGRvY3VtZW50LmJvZHkpCit7CisgICAgdmFy
IGRvdFNpemUgPSAxMDsKKyAgICB2YXIgZG90ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImRl
YnVnRG90Iik7CisgICAgaWYgKCFkb3QpIHsKKyAgICAgICAgZG90ID0gZG9jdW1lbnQuY3JlYXRl
RWxlbWVudCgiZGl2Iik7CisgICAgICAgIGRvdC5pZCA9ICJkZWJ1Z0RvdCI7CisgICAgfQorICAg
IAorICAgIGRvdC5zdHlsZS5wb2ludGVyRXZlbnRzID0gIm5vbmUiOworICAgIAorICAgIGRvdC5z
dHlsZS5wb3NpdGlvbiA9ICJhYnNvbHV0ZSI7CisgICAgZG90LnN0eWxlLmhlaWdodCA9IGRvdFNp
emUgKyAicHgiOworICAgIGRvdC5zdHlsZS53aWR0aCA9IGRvdFNpemUgKyAicHgiOworICAgIGRv
dC5zdHlsZS5iYWNrZ3JvdW5kQ29sb3IgPSAiRGVlcFBpbmsiOworICAgIGRvdC5zdHlsZS5ib3Jk
ZXJSYWRpdXMgPSAiMTAwJSI7CisgICAgZG90LnN0eWxlLmxlZnQgPSAoeC1kb3RTaXplLzIpKyJw
eCI7CisgICAgZG90LnN0eWxlLnRvcCA9ICh5LWRvdFNpemUvMikrInB4IjsKKyAgICAKKyAgICBl
bGVtZW50LmFwcGVuZENoaWxkKGRvdCk7Cit9CisKK2Z1bmN0aW9uIHJlbW92ZURlYnVnRG90KCkK
K3sKKyAgICB2YXIgZG90ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImRlYnVnRG90Iik7Cisg
ICAgaWYgKGRvdC5wYXJlbnROb2RlKQorICAgICAgICBkb3QucGFyZW50Tm9kZS5yZW1vdmVDaGls
ZChkb3QpOworfQorCisvLyBUbyBkb3VibGUgY2hlY2sgbG9jYXRpb24gb2Ygd29yZCBib3hlcyBv
ciBvdGhlciB4LHkgY29vcmRpbmF0ZXMKK2Z1bmN0aW9uIGRlYnVnUmVjdCh4LCB5LCB3aWR0aCwg
aGVpZ2h0LCBlbGVtZW50ID0gZG9jdW1lbnQuYm9keSkKK3sKKyAgICB2YXIgcmVjdCA9IGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCJkZWJ1Z1JlY3QiKTsKKyAgICBpZiAoIXJlY3QpIHsKKyAgICAg
ICAgcmVjdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOworICAgICAgICByZWN0Lmlk
ID0gImRlYnVnUmVjdCI7CisgICAgfQorICAgIAorICAgIHJlY3Quc3R5bGUucG9pbnRlckV2ZW50
cyA9ICJub25lIjsKKyAgICAKKyAgICByZWN0LnN0eWxlLnBvc2l0aW9uID0gImFic29sdXRlIjsK
KyAgICByZWN0LnN0eWxlLmhlaWdodCA9IGhlaWdodCArICJweCI7CisgICAgcmVjdC5zdHlsZS53
aWR0aCA9IHdpZHRoICsgInB4IjsKKyAgICByZWN0LnN0eWxlLmJhY2tncm91bmRDb2xvciA9ICJy
Z2JhKDI1NSwwLDI1NSwwLjUpIjsKKyAgICByZWN0LnN0eWxlLnRvcCA9IHkrInB4IjsKKyAgICBy
ZWN0LnN0eWxlLmxlZnQgPSB4KyJweCI7CisgICAgCisgICAgZWxlbWVudC5hcHBlbmRDaGlsZChy
ZWN0KTsKK30KKworZnVuY3Rpb24gcmVtb3ZlRGVidWdSZWN0KCkKK3sKKyAgICB2YXIgcmVjdCA9
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJkZWJ1Z1JlY3QiKTsKKyAgICBpZiAocmVjdC5wYXJl
bnROb2RlKQorICAgICAgICByZWN0LnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQocmVjdCk7Cit9CisK
</data>
<flag name="review"
          id="341742"
          type_id="1"
          status="+"
          setter="thorton"
    />
          </attachment>
      

    </bug>

</bugzilla>