<?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>125069</bug_id>
          
          <creation_ts>2013-12-02 02:59:14 -0800</creation_ts>
          <short_desc>Web Inspector: popover can overlap target frame</short_desc>
          <delta_ts>2013-12-02 12:39:22 -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>Web Inspector</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Antoine Quint">graouts</reporter>
          <assigned_to name="Antoine Quint">graouts</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>graouts</cc>
    
    <cc>joepeck</cc>
    
    <cc>timothy</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>955310</commentid>
    <comment_count>0</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2013-12-02 02:59:14 -0800</bug_when>
    <thetext>While https://bugs.webkit.org/show_bug.cgi?id=124350 did fix the issue of having popovers smaller than there was room for them to be, it did introduce a regression where by offsetting the computed frame of the popover regardless of the target edge we could possibly overlap the target frame. See the attached screenshot for an illustration of the issue, the popover was offset to fit within the window bounds in the y-axis, but this should only happen if the target edge is either to the left or right or the frame (x-axis).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>955312</commentid>
    <comment_count>1</comment_count>
      <attachid>218154</attachid>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2013-12-02 03:04:02 -0800</bug_when>
    <thetext>Created attachment 218154
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>955431</commentid>
    <comment_count>2</comment_count>
      <attachid>218154</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2013-12-02 10:27:09 -0800</bug_when>
    <thetext>Comment on attachment 218154
Patch

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

&gt; Source/WebInspectorUI/UserInterface/Popover.js:404
&gt; +        if (edge === WebInspector.RectEdge.MIN_X || edge === WebInspector.RectEdge.MAX_X) {
&gt; +            if (y &lt; containerFrame.minY())
&gt; +                y = containerFrame.minY();
&gt; +            if (y + height &gt; containerFrame.maxY())
&gt; +                y += containerFrame.maxY() - (y + height);
&gt; +        } else {
&gt; +            if (x &lt; containerFrame.minX())
&gt; +                x = containerFrame.minX(); 
&gt; +            if (x + width &gt; containerFrame.maxX())
&gt; +                x += containerFrame.maxX() - (x + width);
&gt; +        }

I don&apos;t understand this section:

    if (popover is above or below) {
        if (y &lt; min)
          y = min;
        if (y + height &gt; max)
          y = y + max - y + height;
    }

My confusion is with the second case.

1. The adjustment is basically &quot;y = max - height&quot;. Is there any guarantee that after that we will still have &quot;y &gt; min&quot;? If so, should we clamp height, or would that cause other problems?
2. The &quot;+=&quot; statement makes this more confusing then it needs to be. Just make it an assignment and drop the inner y.

I&apos;m fine as long as (2) is handled. I assume (1) is not actually a problem. So I&apos;d like to see that last statement be just: (likewise simplifying the &quot;x&quot; case)

    y = containerFrame.maxY() - height;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>955482</commentid>
    <comment_count>3</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2013-12-02 11:33:04 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 218154 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=218154&amp;action=review
&gt; 
&gt; &gt; Source/WebInspectorUI/UserInterface/Popover.js:404
&gt; &gt; +        if (edge === WebInspector.RectEdge.MIN_X || edge === WebInspector.RectEdge.MAX_X) {
&gt; &gt; +            if (y &lt; containerFrame.minY())
&gt; &gt; +                y = containerFrame.minY();
&gt; &gt; +            if (y + height &gt; containerFrame.maxY())
&gt; &gt; +                y += containerFrame.maxY() - (y + height);
&gt; &gt; +        } else {
&gt; &gt; +            if (x &lt; containerFrame.minX())
&gt; &gt; +                x = containerFrame.minX(); 
&gt; &gt; +            if (x + width &gt; containerFrame.maxX())
&gt; &gt; +                x += containerFrame.maxX() - (x + width);
&gt; &gt; +        }
&gt; 
&gt; I don&apos;t understand this section:
&gt; 
&gt;     if (popover is above or below) {

It&apos;s actually &quot;to the left or right&quot; in the case where we adjust y, but that doesn&apos;t change the validity of your comment.

&gt;         if (y &lt; min)
&gt;           y = min;
&gt;         if (y + height &gt; max)
&gt;           y = y + max - y + height;
&gt;     }
&gt; 
&gt; My confusion is with the second case.
&gt; 
&gt; 1. The adjustment is basically &quot;y = max - height&quot;. Is there any guarantee that after that we will still have &quot;y &gt; min&quot;? If so, should we clamp height, or would that cause other problems?

It&apos;s clamped to fit the container frame right after this block of code like so:

        var preferredFrame = new WebInspector.Rect(x, y, width, height);
        var bestFrame = preferredFrame.intersectionWithRect(containerFrame);

&gt; 2. The &quot;+=&quot; statement makes this more confusing then it needs to be. Just make it an assignment and drop the inner y.

Good point. Will make that change upon landing (same with x-axis).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>955483</commentid>
    <comment_count>4</comment_count>
      <attachid>218199</attachid>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2013-12-02 11:33:37 -0800</bug_when>
    <thetext>Created attachment 218199
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>955523</commentid>
    <comment_count>5</comment_count>
      <attachid>218199</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-12-02 12:39:20 -0800</bug_when>
    <thetext>Comment on attachment 218199
Patch for landing

Clearing flags on attachment: 218199

Committed r159952: &lt;http://trac.webkit.org/changeset/159952&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>955524</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-12-02 12:39:22 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>218154</attachid>
            <date>2013-12-02 03:04:02 -0800</date>
            <delta_ts>2013-12-02 11:33:33 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-125069-20131202120401.patch</filename>
            <type>text/plain</type>
            <size>3526</size>
            <attacher name="Antoine Quint">graouts</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTU5NzgwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZwppbmRleCA1
OGIxMDNiM2JiZGFkMmIwMWY5YzQ5YjY0YTZiMDg0ODU3MmU5YmZmLi5kN2I1YTBkYTc2ZjFiMjI5
ZjdmYWE2MzE1MzBiMmVmODMzOTRmMTlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMCBAQAorMjAxMy0xMi0wMiAgQW50b2luZSBRdWludCAgPGdyYW91dHNAYXBwbGUuY29t
PgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IHBvcG92ZXIgY2FuIG92ZXJsYXAgdGFyZ2V0IGZy
YW1lCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjUw
NjkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBGaXgg
YSByZWdyZXNzaW9uIGludHJvZHVjZWQgaW4gaHR0cDovL3RyYWMud2Via2l0Lm9yZy9jaGFuZ2Vz
ZXQvMTU5Mjg2LiBXZSBzaG91bGQgb25seQorICAgICAgICBvZmZzZXQgdGhlIGZyYW1lIG9mIHRo
ZSBwb3BvdmVyIGluIHRoZSB5LWF4aXMgaWYgdGhlIHRhcmdldCBlZGdlIGlzIG9uIHRoZSB4LWF4
aXMsIGFuZAorICAgICAgICB2aWNlIHZlcnNhLiBXZSBhbHNvIHJlbW92ZSB0aGUgbmVlZHNUb0Ry
YXdCYWNrZ3JvdW5kIGNoZWNrIHNpbmNlIGl0IGluY29ycmVjdGx5IGRpc3JlZ2FyZGVkCisgICAg
ICAgIHRoZSBhbmNob3IgcG9pbnQuIFdlIG5vdyBhbHdheXMgZHJhdyB0aGUgYmFja2dyb3VuZCB3
aGljaCBpcyBhIGxvdCBzYWZlciBhbmQgZ3VhcmFudGVlcworICAgICAgICB3ZSdsbCBhbHdheXMg
ZHJhdyBhbiBhZGVxdWF0ZSBmcmFtZSBhbmQgYW5jaG9yIHBvaW50LgorCisgICAgICAgICogVXNl
ckludGVyZmFjZS9Qb3BvdmVyLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlBvcG92ZXIucHJv
dG90eXBlLl91cGRhdGUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlBvcG92ZXIucHJvdG90eXBl
Ll9iZXN0TWV0cmljc0ZvckVkZ2UpOgorCiAyMDEzLTExLTI2ICBBbnRvaW5lIFF1aW50ICA8Z3Jh
b3V0c0BhcHBsZS5jb20+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogQWxsb3cgc2hvd2luZyBh
IGNvbnRleHQgbWVudSBvbiBhbGwgbW91c2UgZXZlbnRzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvUG9wb3Zlci5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Vc2VySW50ZXJmYWNlL1BvcG92ZXIuanMKaW5kZXggYTQ2MjdlNmM5NjMxZGI5MzljNjNl
ZThjNzYwY2VmZTk1OTI1M2ZmNi4uYTc3M2U0NjA0NjRjNzg5NmE4ZTY1YTE4MjE2MTdkZDFmMDdm
MzAzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvUG9w
b3Zlci5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Qb3BvdmVy
LmpzCkBAIC0yMzIsOCArMjMyLDYgQEAgV2ViSW5zcGVjdG9yLlBvcG92ZXIucHJvdG90eXBlID0g
ewogICAgICAgICB2YXIgYW5jaG9yUG9pbnQ7CiAgICAgICAgIHZhciBiZXN0RnJhbWUgPSBiZXN0
TWV0cmljcy5mcmFtZTsKIAotICAgICAgICB2YXIgbmVlZHNUb0RyYXdCYWNrZ3JvdW5kID0gIXRo
aXMuX2ZyYW1lLnNpemUuZXF1YWxzKGJlc3RGcmFtZS5zaXplKSB8fCB0aGlzLl9lZGdlICE9PSBi
ZXN0RWRnZTsKLQogICAgICAgICB0aGlzLmZyYW1lID0gYmVzdEZyYW1lOwogICAgICAgICB0aGlz
Ll9lZGdlID0gYmVzdEVkZ2U7CiAKQEAgLTI1OCw4ICsyNTYsNyBAQCBXZWJJbnNwZWN0b3IuUG9w
b3Zlci5wcm90b3R5cGUgPSB7CiAKICAgICAgICAgICAgIHRoaXMuX2VsZW1lbnQuY2xhc3NMaXN0
LmFkZCh0aGlzLl9jc3NDbGFzc05hbWVGb3JFZGdlKCkpOwogCi0gICAgICAgICAgICBpZiAobmVl
ZHNUb0RyYXdCYWNrZ3JvdW5kKQotICAgICAgICAgICAgICAgIHRoaXMuX2RyYXdCYWNrZ3JvdW5k
KGJlc3RFZGdlLCBhbmNob3JQb2ludCk7CisgICAgICAgICAgICB0aGlzLl9kcmF3QmFja2dyb3Vu
ZChiZXN0RWRnZSwgYW5jaG9yUG9pbnQpOwogCiAgICAgICAgICAgICAvLyBNYWtlIHN1cmUgY29u
dGVudCBpcyBjZW50ZXJlZCBpbiBjYXNlIGVpdGhlciBvZiB0aGUgZGltZW5zaW9uIGlzIHNtYWxs
ZXIgdGhhbiB0aGUgbWluaW1hbCBib3VuZHMuCiAgICAgICAgICAgICBpZiAodGhpcy5fcHJlZmVy
cmVkU2l6ZS53aWR0aCA8IFdlYkluc3BlY3Rvci5Qb3BvdmVyLk1pbldpZHRoIHx8IHRoaXMuX3By
ZWZlcnJlZFNpemUuaGVpZ2h0IDwgV2ViSW5zcGVjdG9yLlBvcG92ZXIuTWluSGVpZ2h0KQpAQCAt
Mzk0LDE0ICszOTEsMTcgQEAgV2ViSW5zcGVjdG9yLlBvcG92ZXIucHJvdG90eXBlID0gewogICAg
ICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KIAotICAgICAgICBpZiAoeCA8IGNvbnRhaW5lckZy
YW1lLm1pblgoKSkKLSAgICAgICAgICAgIHggPSBjb250YWluZXJGcmFtZS5taW5YKCk7IAotICAg
ICAgICBpZiAoeSA8IGNvbnRhaW5lckZyYW1lLm1pblkoKSkKLSAgICAgICAgICAgIHkgPSBjb250
YWluZXJGcmFtZS5taW5ZKCk7Ci0gICAgICAgIGlmICh4ICsgd2lkdGggPiBjb250YWluZXJGcmFt
ZS5tYXhYKCkpCi0gICAgICAgICAgICB4ICs9IGNvbnRhaW5lckZyYW1lLm1heFgoKSAtICh4ICsg
d2lkdGgpOwotICAgICAgICBpZiAoeSArIGhlaWdodCA+IGNvbnRhaW5lckZyYW1lLm1heFkoKSkK
LSAgICAgICAgICAgIHkgKz0gY29udGFpbmVyRnJhbWUubWF4WSgpIC0gKHkgKyBoZWlnaHQpOwor
ICAgICAgICBpZiAoZWRnZSA9PT0gV2ViSW5zcGVjdG9yLlJlY3RFZGdlLk1JTl9YIHx8IGVkZ2Ug
PT09IFdlYkluc3BlY3Rvci5SZWN0RWRnZS5NQVhfWCkgeworICAgICAgICAgICAgaWYgKHkgPCBj
b250YWluZXJGcmFtZS5taW5ZKCkpCisgICAgICAgICAgICAgICAgeSA9IGNvbnRhaW5lckZyYW1l
Lm1pblkoKTsKKyAgICAgICAgICAgIGlmICh5ICsgaGVpZ2h0ID4gY29udGFpbmVyRnJhbWUubWF4
WSgpKQorICAgICAgICAgICAgICAgIHkgKz0gY29udGFpbmVyRnJhbWUubWF4WSgpIC0gKHkgKyBo
ZWlnaHQpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgaWYgKHggPCBjb250YWluZXJG
cmFtZS5taW5YKCkpCisgICAgICAgICAgICAgICAgeCA9IGNvbnRhaW5lckZyYW1lLm1pblgoKTsg
CisgICAgICAgICAgICBpZiAoeCArIHdpZHRoID4gY29udGFpbmVyRnJhbWUubWF4WCgpKQorICAg
ICAgICAgICAgICAgIHggKz0gY29udGFpbmVyRnJhbWUubWF4WCgpIC0gKHggKyB3aWR0aCk7Cisg
ICAgICAgIH0KIAogICAgICAgICB2YXIgcHJlZmVycmVkRnJhbWUgPSBuZXcgV2ViSW5zcGVjdG9y
LlJlY3QoeCwgeSwgd2lkdGgsIGhlaWdodCk7CiAgICAgICAgIHZhciBiZXN0RnJhbWUgPSBwcmVm
ZXJyZWRGcmFtZS5pbnRlcnNlY3Rpb25XaXRoUmVjdChjb250YWluZXJGcmFtZSk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>218199</attachid>
            <date>2013-12-02 11:33:37 -0800</date>
            <delta_ts>2013-12-02 12:39:20 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-125069-20131202203335.patch</filename>
            <type>text/plain</type>
            <size>3513</size>
            <attacher name="Antoine Quint">graouts</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTU5NzgwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZwppbmRleCA1
OGIxMDNiM2JiZGFkMmIwMWY5YzQ5YjY0YTZiMDg0ODU3MmU5YmZmLi43ZDE3NWE0ZjQ1ZmNmODkw
ZDBiZDNmODQxNzMxYjZhMzdhNGI3OTA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMCBAQAorMjAxMy0xMi0wMiAgQW50b2luZSBRdWludCAgPGdyYW91dHNAYXBwbGUuY29t
PgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IHBvcG92ZXIgY2FuIG92ZXJsYXAgdGFyZ2V0IGZy
YW1lCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjUw
NjkKKworICAgICAgICBSZXZpZXdlZCBieSBKb3NlcGggUGVjb3Jhcm8uCisKKyAgICAgICAgRml4
IGEgcmVncmVzc2lvbiBpbnRyb2R1Y2VkIGluIGh0dHA6Ly90cmFjLndlYmtpdC5vcmcvY2hhbmdl
c2V0LzE1OTI4Ni4gV2Ugc2hvdWxkIG9ubHkKKyAgICAgICAgb2Zmc2V0IHRoZSBmcmFtZSBvZiB0
aGUgcG9wb3ZlciBpbiB0aGUgeS1heGlzIGlmIHRoZSB0YXJnZXQgZWRnZSBpcyBvbiB0aGUgeC1h
eGlzLCBhbmQKKyAgICAgICAgdmljZSB2ZXJzYS4gV2UgYWxzbyByZW1vdmUgdGhlIG5lZWRzVG9E
cmF3QmFja2dyb3VuZCBjaGVjayBzaW5jZSBpdCBpbmNvcnJlY3RseSBkaXNyZWdhcmRlZAorICAg
ICAgICB0aGUgYW5jaG9yIHBvaW50LiBXZSBub3cgYWx3YXlzIGRyYXcgdGhlIGJhY2tncm91bmQg
d2hpY2ggaXMgYSBsb3Qgc2FmZXIgYW5kIGd1YXJhbnRlZXMKKyAgICAgICAgd2UnbGwgYWx3YXlz
IGRyYXcgYW4gYWRlcXVhdGUgZnJhbWUgYW5kIGFuY2hvciBwb2ludC4KKworICAgICAgICAqIFVz
ZXJJbnRlcmZhY2UvUG9wb3Zlci5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Qb3BvdmVyLnBy
b3RvdHlwZS5fdXBkYXRlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Qb3BvdmVyLnByb3RvdHlw
ZS5fYmVzdE1ldHJpY3NGb3JFZGdlKToKKwogMjAxMy0xMS0yNiAgQW50b2luZSBRdWludCAgPGdy
YW91dHNAYXBwbGUuY29tPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IEFsbG93IHNob3dpbmcg
YSBjb250ZXh0IG1lbnUgb24gYWxsIG1vdXNlIGV2ZW50cy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1BvcG92ZXIuanMgYi9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9Qb3BvdmVyLmpzCmluZGV4IGE0NjI3ZTZjOTYzMWRiOTM5YzYz
ZWU4Yzc2MGNlZmU5NTkyNTNmZjYuLmU5Yjg0YmQ2MzU4MGI2NjgyMGMxMjJmMjgyYzU5NmZjMjE2
Nzc1NWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Bv
cG92ZXIuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvUG9wb3Zl
ci5qcwpAQCAtMjMyLDggKzIzMiw2IEBAIFdlYkluc3BlY3Rvci5Qb3BvdmVyLnByb3RvdHlwZSA9
IHsKICAgICAgICAgdmFyIGFuY2hvclBvaW50OwogICAgICAgICB2YXIgYmVzdEZyYW1lID0gYmVz
dE1ldHJpY3MuZnJhbWU7CiAKLSAgICAgICAgdmFyIG5lZWRzVG9EcmF3QmFja2dyb3VuZCA9ICF0
aGlzLl9mcmFtZS5zaXplLmVxdWFscyhiZXN0RnJhbWUuc2l6ZSkgfHwgdGhpcy5fZWRnZSAhPT0g
YmVzdEVkZ2U7Ci0KICAgICAgICAgdGhpcy5mcmFtZSA9IGJlc3RGcmFtZTsKICAgICAgICAgdGhp
cy5fZWRnZSA9IGJlc3RFZGdlOwogCkBAIC0yNTgsOCArMjU2LDcgQEAgV2ViSW5zcGVjdG9yLlBv
cG92ZXIucHJvdG90eXBlID0gewogCiAgICAgICAgICAgICB0aGlzLl9lbGVtZW50LmNsYXNzTGlz
dC5hZGQodGhpcy5fY3NzQ2xhc3NOYW1lRm9yRWRnZSgpKTsKIAotICAgICAgICAgICAgaWYgKG5l
ZWRzVG9EcmF3QmFja2dyb3VuZCkKLSAgICAgICAgICAgICAgICB0aGlzLl9kcmF3QmFja2dyb3Vu
ZChiZXN0RWRnZSwgYW5jaG9yUG9pbnQpOworICAgICAgICAgICAgdGhpcy5fZHJhd0JhY2tncm91
bmQoYmVzdEVkZ2UsIGFuY2hvclBvaW50KTsKIAogICAgICAgICAgICAgLy8gTWFrZSBzdXJlIGNv
bnRlbnQgaXMgY2VudGVyZWQgaW4gY2FzZSBlaXRoZXIgb2YgdGhlIGRpbWVuc2lvbiBpcyBzbWFs
bGVyIHRoYW4gdGhlIG1pbmltYWwgYm91bmRzLgogICAgICAgICAgICAgaWYgKHRoaXMuX3ByZWZl
cnJlZFNpemUud2lkdGggPCBXZWJJbnNwZWN0b3IuUG9wb3Zlci5NaW5XaWR0aCB8fCB0aGlzLl9w
cmVmZXJyZWRTaXplLmhlaWdodCA8IFdlYkluc3BlY3Rvci5Qb3BvdmVyLk1pbkhlaWdodCkKQEAg
LTM5NCwxNCArMzkxLDE3IEBAIFdlYkluc3BlY3Rvci5Qb3BvdmVyLnByb3RvdHlwZSA9IHsKICAg
ICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAKLSAgICAgICAgaWYgKHggPCBjb250YWluZXJG
cmFtZS5taW5YKCkpCi0gICAgICAgICAgICB4ID0gY29udGFpbmVyRnJhbWUubWluWCgpOyAKLSAg
ICAgICAgaWYgKHkgPCBjb250YWluZXJGcmFtZS5taW5ZKCkpCi0gICAgICAgICAgICB5ID0gY29u
dGFpbmVyRnJhbWUubWluWSgpOwotICAgICAgICBpZiAoeCArIHdpZHRoID4gY29udGFpbmVyRnJh
bWUubWF4WCgpKQotICAgICAgICAgICAgeCArPSBjb250YWluZXJGcmFtZS5tYXhYKCkgLSAoeCAr
IHdpZHRoKTsKLSAgICAgICAgaWYgKHkgKyBoZWlnaHQgPiBjb250YWluZXJGcmFtZS5tYXhZKCkp
Ci0gICAgICAgICAgICB5ICs9IGNvbnRhaW5lckZyYW1lLm1heFkoKSAtICh5ICsgaGVpZ2h0KTsK
KyAgICAgICAgaWYgKGVkZ2UgPT09IFdlYkluc3BlY3Rvci5SZWN0RWRnZS5NSU5fWCB8fCBlZGdl
ID09PSBXZWJJbnNwZWN0b3IuUmVjdEVkZ2UuTUFYX1gpIHsKKyAgICAgICAgICAgIGlmICh5IDwg
Y29udGFpbmVyRnJhbWUubWluWSgpKQorICAgICAgICAgICAgICAgIHkgPSBjb250YWluZXJGcmFt
ZS5taW5ZKCk7CisgICAgICAgICAgICBpZiAoeSArIGhlaWdodCA+IGNvbnRhaW5lckZyYW1lLm1h
eFkoKSkKKyAgICAgICAgICAgICAgICB5ID0gY29udGFpbmVyRnJhbWUubWF4WSgpIC0gaGVpZ2h0
OworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgaWYgKHggPCBjb250YWluZXJGcmFtZS5t
aW5YKCkpCisgICAgICAgICAgICAgICAgeCA9IGNvbnRhaW5lckZyYW1lLm1pblgoKTsgCisgICAg
ICAgICAgICBpZiAoeCArIHdpZHRoID4gY29udGFpbmVyRnJhbWUubWF4WCgpKQorICAgICAgICAg
ICAgICAgIHggPSBjb250YWluZXJGcmFtZS5tYXhYKCkgLSB3aWR0aDsKKyAgICAgICAgfQogCiAg
ICAgICAgIHZhciBwcmVmZXJyZWRGcmFtZSA9IG5ldyBXZWJJbnNwZWN0b3IuUmVjdCh4LCB5LCB3
aWR0aCwgaGVpZ2h0KTsKICAgICAgICAgdmFyIGJlc3RGcmFtZSA9IHByZWZlcnJlZEZyYW1lLmlu
dGVyc2VjdGlvbldpdGhSZWN0KGNvbnRhaW5lckZyYW1lKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>