<?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>138812</bug_id>
          
          <creation_ts>2014-11-17 16:25:26 -0800</creation_ts>
          <short_desc>Web Inspector: Ability to Copy entire CSS Rule from Styles Sidebar</short_desc>
          <delta_ts>2015-06-18 13:44:50 -0700</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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Joseph Pecoraro">joepeck</reporter>
          <assigned_to name="Nobody">webkit-unassigned</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>1049342</commentid>
    <comment_count>0</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2014-11-17 16:25:26 -0800</bug_when>
    <thetext>* SUMMARY
It would be helpful to copy an entire CSS rule from the sidebar. Currently each Rule&apos;s Selector and Properties are separate fields, it would be nice to be able to copy/paste the entire rule (Selector, Properties, and optionally surrounding @media rules block) from the Styles sidebar.

* TEST:
    &lt;style&gt;
    @media (min-width:600px) {
        body { color: red; }
    }
    &lt;/style&gt;
    &lt;body&gt;Test&lt;/body&gt;

* STEPS TO REPRODUCE
1. Inspect &lt;body&gt; on test page
2. Show Styles sidebar
  =&gt; Should be able to copy the body styles from the sidebar somehow

* NOTES
- Would be nice to copy with and without the @media.
- Perhaps right clicking anywhere in the selector/property editors?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1049343</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2014-11-17 16:25:45 -0800</bug_when>
    <thetext>&lt;rdar://problem/19009055&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1049836</commentid>
    <comment_count>2</comment_count>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2014-11-19 10:44:23 -0800</bug_when>
    <thetext>Maybe if the entire selection range of the rule is copied, include the selector too?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1099518</commentid>
    <comment_count>3</comment_count>
      <attachid>254272</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2015-06-04 10:41:16 -0700</bug_when>
    <thetext>Created attachment 254272
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1099520</commentid>
    <comment_count>4</comment_count>
      <attachid>254272</attachid>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2015-06-04 10:46:50 -0700</bug_when>
    <thetext>Comment on attachment 254272
Patch

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

I think a context menu on the rule section would be best.

&gt; Source/WebInspectorUI/UserInterface/Views/CSSStyleDeclarationSection.css:70
&gt; +    cursor: pointer;

Not sure pointer is the right cursor. This might be best as a context menu item. Click to Copy isn&apos;t a typical user action in most places.

&gt; Source/WebInspectorUI/UserInterface/Views/CSSStyleDeclarationSection.js:110
&gt; +    (function(thisObject) {
&gt; +        thisObject._iconElement.addEventListener(&quot;click&quot;, function() {

You should use .bind(this) on the event listener function instead. No need for a closure.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1099569</commentid>
    <comment_count>5</comment_count>
      <attachid>254272</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2015-06-04 12:48:39 -0700</bug_when>
    <thetext>Comment on attachment 254272
Patch

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

&gt; Source/WebInspectorUI/UserInterface/Views/CSSStyleDeclarationSection.js:119
&gt; +                    styleText += &quot;@media&quot; + thisObject._style.ownerRule.mediaList[0].text + &quot; {\n    &quot;;

Seems weird that this would always be mediaList[0]. Does that make sense?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1099614</commentid>
    <comment_count>6</comment_count>
      <attachid>254299</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2015-06-04 14:13:15 -0700</bug_when>
    <thetext>Created attachment 254299
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1099636</commentid>
    <comment_count>7</comment_count>
      <attachid>254299</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2015-06-04 15:00:08 -0700</bug_when>
    <thetext>Comment on attachment 254299
Patch

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

&gt; Source/WebInspectorUI/UserInterface/Views/CSSStyleDeclarationSection.js:108
&gt; +    this._headerElement.addEventListener(&quot;contextmenu&quot;, function(event) {

Style: We would probably have a _handleContextMenuEvent method down below and here we would just have:

    this._headerElement.addEventListener(&quot;contextmenu&quot;, this._handleContextMenuEvent.bind(this));

&gt; Source/WebInspectorUI/UserInterface/Views/CSSStyleDeclarationSection.js:110
&gt; +        if (window.getSelection().toString().length)
&gt; +            return;

What is this bail for?

&gt; Source/WebInspectorUI/UserInterface/Views/CSSStyleDeclarationSection.js:115
&gt; +            InspectorFrontendHost.copyText(this._generateCSSRuleString.call(this));

Nit: this.foo.call(this) is no different than this.foo();

&gt; Source/WebInspectorUI/UserInterface/Views/CSSStyleDeclarationSection.js:293
&gt; +    _generateCSSRuleString: function() {

Style: Brace on new line.

&gt; Source/WebInspectorUI/UserInterface/Views/CSSStyleDeclarationSection.js:301
&gt; +        function repeatText(text, numRepeats) {
&gt; +            var output = &quot;&quot;;
&gt; +
&gt; +            for (var i = 0; i &lt; numRepeats; ++i)
&gt; +                output += text;
&gt; +
&gt; +            return output;
&gt; +        }

Actually, we support String.prototype.repeat. So you could just do:

    &quot;test&quot;.repeat(3)

And get:

    &quot;testtesttest&quot;

&gt; Source/WebInspectorUI/UserInterface/Views/CSSStyleDeclarationSection.js:312
&gt; +                for (var i = numMediaQueries - 1; i &gt;= 0; --i)
&gt; +                    styleText += repeatText(&quot;    &quot;, numMediaQueries - i - 1) + &quot;@media &quot; + mediaList[i].text + &quot; {\n&quot;;

I wonder if this would be a good place to adopt template strings:

    styleText += `${&quot;    &quot;.repeat(numMediaQueries - i - 1)} @media ${mediaList[i].text} {\n`

But maybe I&apos;m just getting too excited. Stick with just strings for now.

&gt; Source/WebInspectorUI/UserInterface/Views/CSSStyleDeclarationSection.js:325
&gt; +            if (styleText.slice(-1) !== &quot;;&quot;)
&gt; +                styleText += &quot;;&quot;;

I think: !styleText.endsWith(&quot;;&quot;) is more expressive.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1099656</commentid>
    <comment_count>8</comment_count>
      <attachid>254299</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2015-06-04 16:11:21 -0700</bug_when>
    <thetext>Comment on attachment 254299
Patch

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

&gt;&gt; Source/WebInspectorUI/UserInterface/Views/CSSStyleDeclarationSection.js:110
&gt;&gt; +            return;
&gt; 
&gt; What is this bail for?

If part of the selector text is highlighted, don&apos;t replace the context menu as someone may want to just copy/paste a selector.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1099665</commentid>
    <comment_count>9</comment_count>
      <attachid>254311</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2015-06-04 16:19:01 -0700</bug_when>
    <thetext>Created attachment 254311
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1103022</commentid>
    <comment_count>10</comment_count>
      <attachid>254311</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-06-18 13:44:44 -0700</bug_when>
    <thetext>Comment on attachment 254311
Patch

Clearing flags on attachment: 254311

Committed r185720: &lt;http://trac.webkit.org/changeset/185720&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1103023</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-06-18 13:44:50 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>254272</attachid>
            <date>2015-06-04 10:41:16 -0700</date>
            <delta_ts>2015-06-04 14:13:12 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-138812-20150604104055.patch</filename>
            <type>text/plain</type>
            <size>3824</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvQ2hhbmdlTG9nCmluZGV4IGExNWE1NWY1MjU2YWNmZjlkZjA2OTE4MWE3NzRl
MWE4ZWRiNDY5NWIuLmZiNjg5OTkyYWE4OTU5MDI1Mzc4MTAzNDYyMzAxNmZlMDRiMjNlYzcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
Ykluc3BlY3RvclVJL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDE1LTA2LTA0ICBEZXZp
biBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBB
YmlsaXR5IHRvIENvcHkgZW50aXJlIENTUyBSdWxlIGZyb20gU3R5bGVzIFNpZGViYXIKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzODgxMgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVXNlckludGVyZmFj
ZS9WaWV3cy9DU1NTdHlsZURlY2xhcmF0aW9uU2VjdGlvbi5jc3M6CisgICAgICAgICguc3R5bGUt
ZGVjbGFyYXRpb24tc2VjdGlvbiA+IC5oZWFkZXIgPiAuaWNvbik6CisgICAgICAgICogVXNlcklu
dGVyZmFjZS9WaWV3cy9DU1NTdHlsZURlY2xhcmF0aW9uU2VjdGlvbi5qczoKKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5DU1NTdHlsZURlY2xhcmF0aW9uU2VjdGlvbik6IEFkZGVkIGV2ZW50IGxpc3Rl
bmVyIHRvIGNvcHkgY29udGVudHMgb2YgQ1NTIHJ1bGUgKGhlYWRlcnMgYW5kIG1lZGlhIGluY2x1
ZGVkKSB0byBjbGlwYm9hcmQgd2hlbiBzZWxlY3RvciBpY29uIGlzIGNsaWNrZWQuCisKIDIwMTUt
MDYtMDMgIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29tPgogCiAgICAgICAgIFdlYiBJ
bnNwZWN0b3I6IGlmIGEga25vd24gQ1NTIHByb3BlcnR5IGhhcyBhbiB1bnN1cHBvcnRlZCB2YWx1
ZSwgb25seSBzdHJpa2V0aHJvdWdoIHRoZSB2YWx1ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYklu
c3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ1NTU3R5bGVEZWNsYXJhdGlvblNlY3Rpb24u
Y3NzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ1NTU3R5bGVE
ZWNsYXJhdGlvblNlY3Rpb24uY3NzCmluZGV4IGViYWNmZmE1MmRlMDJiZGE3NTJiNWZjNThhZjdl
M2U3NTZlMjcwNDUuLjM0ZjkzY2U5Mjc1ZmQ4ZjliMTAzNTY0MDEwMWRjMWU4MzdhZjJjZjcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NTU1N0
eWxlRGVjbGFyYXRpb25TZWN0aW9uLmNzcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNl
ckludGVyZmFjZS9WaWV3cy9DU1NTdHlsZURlY2xhcmF0aW9uU2VjdGlvbi5jc3MKQEAgLTY2LDYg
KzY2LDggQEAKIAogICAgIHdpZHRoOiAxNnB4OwogICAgIGhlaWdodDogMTZweDsKKworICAgIGN1
cnNvcjogcG9pbnRlcjsKIH0KIAogLnN0eWxlLWRlY2xhcmF0aW9uLXNlY3Rpb24gPiAuaGVhZGVy
ID4gLnNlbGVjdG9yIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50
ZXJmYWNlL1ZpZXdzL0NTU1N0eWxlRGVjbGFyYXRpb25TZWN0aW9uLmpzIGIvU291cmNlL1dlYklu
c3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ1NTU3R5bGVEZWNsYXJhdGlvblNlY3Rpb24u
anMKaW5kZXggMjM4ZTI1Njg3ZWZkZThjNzM5Y2NhNTQ5NjliNDY3M2Q3YWI5MmVlYS4uZmY5OTMw
ZDIyYzA2YzFjOGM0ZTFmZDYwZWFlNjk1YTU3YTg1OTY4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ1NTU3R5bGVEZWNsYXJhdGlvblNlY3Rp
b24uanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ1NT
U3R5bGVEZWNsYXJhdGlvblNlY3Rpb24uanMKQEAgLTM5LDYgKzM5LDcgQEAgV2ViSW5zcGVjdG9y
LkNTU1N0eWxlRGVjbGFyYXRpb25TZWN0aW9uID0gZnVuY3Rpb24oc3R5bGUpCiAKICAgICB0aGlz
Ll9pY29uRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImltZyIpOwogICAgIHRoaXMu
X2ljb25FbGVtZW50LmNsYXNzTmFtZSA9ICJpY29uIjsKKyAgICB0aGlzLl9pY29uRWxlbWVudC50
aXRsZSA9ICJDbGljayB0byBDb3B5IjsKICAgICB0aGlzLl9oZWFkZXJFbGVtZW50LmFwcGVuZENo
aWxkKHRoaXMuX2ljb25FbGVtZW50KTsKIAogICAgIHRoaXMuX3NlbGVjdG9yRWxlbWVudCA9IGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQoInNwYW4iKTsKQEAgLTEwNCw2ICsxMDUsNDcgQEAgV2ViSW5z
cGVjdG9yLkNTU1N0eWxlRGVjbGFyYXRpb25TZWN0aW9uID0gZnVuY3Rpb24oc3R5bGUpCiAgICAg
fQogCiAgICAgdGhpcy5yZWZyZXNoKCk7CisKKyAgICAoZnVuY3Rpb24odGhpc09iamVjdCkgewor
ICAgICAgICB0aGlzT2JqZWN0Ll9pY29uRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIs
IGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgaWYgKCF0aGlzT2JqZWN0Ll9zZWxlY3RvckVsZW1l
bnQgfHwgIXRoaXNPYmplY3QuX3N0eWxlIHx8ICFJbnNwZWN0b3JGcm9udGVuZEhvc3QpCisgICAg
ICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgICAgICB2YXIgaGFzTWVkaWFRdWVyeSA9IGZh
bHNlOworICAgICAgICAgICAgdmFyIHN0eWxlVGV4dCA9ICIiOworCisgICAgICAgICAgICBpZiAo
dGhpc09iamVjdC5fc3R5bGUub3duZXJSdWxlKSB7CisgICAgICAgICAgICAgICAgaWYgKHRoaXNP
YmplY3QuX3N0eWxlLm93bmVyUnVsZS5tZWRpYUxpc3QubGVuZ3RoKSB7CisgICAgICAgICAgICAg
ICAgICAgIHN0eWxlVGV4dCArPSAiQG1lZGlhIiArIHRoaXNPYmplY3QuX3N0eWxlLm93bmVyUnVs
ZS5tZWRpYUxpc3RbMF0udGV4dCArICIge1xuICAgICI7CisgICAgICAgICAgICAgICAgICAgIGhh
c01lZGlhUXVlcnkgPSB0cnVlOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAg
IHN0eWxlVGV4dCArPSB0aGlzT2JqZWN0Ll9zdHlsZS5vd25lclJ1bGUuc2VsZWN0b3JUZXh0Owor
ICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICAgICAgc3R5bGVUZXh0ICs9IHRoaXNPYmpl
Y3QuX3NlbGVjdG9yRWxlbWVudC50ZXh0Q29udGVudDsKKworICAgICAgICAgICAgc3R5bGVUZXh0
ICs9ICIge1xuIjsKKworICAgICAgICAgICAgZm9yICh2YXIgcHJvcGVydHkgb2YgdGhpc09iamVj
dC5fc3R5bGUucHJvcGVydGllcykgeworICAgICAgICAgICAgICAgIGlmIChoYXNNZWRpYVF1ZXJ5
KQorICAgICAgICAgICAgICAgICAgICBzdHlsZVRleHQgKz0gIiAgICAiOworCisgICAgICAgICAg
ICAgICAgc3R5bGVUZXh0ICs9ICIgICAgIiArIHByb3BlcnR5LnRleHQ7CisKKyAgICAgICAgICAg
ICAgICBpZiAoc3R5bGVUZXh0LnNsaWNlKC0xKSAhPT0gIjsiKQorICAgICAgICAgICAgICAgICAg
ICBzdHlsZVRleHQgKz0gIjsiOworCisgICAgICAgICAgICAgICAgc3R5bGVUZXh0ICs9ICJcbiI7
CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmIChoYXNNZWRpYVF1ZXJ5KQorICAgICAg
ICAgICAgICAgIHN0eWxlVGV4dCArPSAiICAgIH1cbiI7CisKKyAgICAgICAgICAgIHN0eWxlVGV4
dCArPSAifSI7CisKKyAgICAgICAgICAgIEluc3BlY3RvckZyb250ZW5kSG9zdC5jb3B5VGV4dChz
dHlsZVRleHQpOworICAgICAgICB9KTsKKyAgICB9KHRoaXMpKTsKIH07CiAKIFdlYkluc3BlY3Rv
ci5DU1NTdHlsZURlY2xhcmF0aW9uU2VjdGlvbi5Mb2NrZWRTdHlsZUNsYXNzTmFtZSA9ICJsb2Nr
ZWQiOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>254299</attachid>
            <date>2015-06-04 14:13:15 -0700</date>
            <delta_ts>2015-06-04 16:18:58 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-138812-20150604141253.patch</filename>
            <type>text/plain</type>
            <size>4057</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvQ2hhbmdlTG9nCmluZGV4IGYyODczZWJiOGJlNTQxOTY2NGQ5NWEzMTcyMmU1
MDJkNGQ2YmFlYjIuLmQxYzdkOTJkOGUyOWVkYTJkYzJmM2Q1NmJlZDAzZmM5MDI4MzZmY2YgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
Ykluc3BlY3RvclVJL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDE1LTA2LTA0ICBEZXZp
biBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBB
YmlsaXR5IHRvIENvcHkgZW50aXJlIENTUyBSdWxlIGZyb20gU3R5bGVzIFNpZGViYXIKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzODgxMgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogTG9jYWxpemF0aW9u
cy9lbi5scHJvai9sb2NhbGl6ZWRTdHJpbmdzLmpzOgorICAgICAgICAqIFVzZXJJbnRlcmZhY2Uv
Vmlld3MvQ1NTU3R5bGVEZWNsYXJhdGlvblNlY3Rpb24uanM6CisgICAgICAgIChXZWJJbnNwZWN0
b3IuQ1NTU3R5bGVEZWNsYXJhdGlvblNlY3Rpb24pOiBSaWdodCBjbGlja2luZyBvbiB0aGUgaGVh
ZGVyIG9mIGEgcnVsZSB3aWxsIHJlcGxjYWUgdGhlIGRlZmF1bHQgY29udGV4dCBtZW51IHRvIGFs
bG93IGNvcHlpbmcgb2YgdGhlIGVudGlyZSBydWxlIHRvIHRoZSBjbGlwYm9hcmQuCisgICAgICAg
IChXZWJJbnNwZWN0b3IuQ1NTU3R5bGVEZWNsYXJhdGlvblNlY3Rpb24ucHJvdG90eXBlLl9nZW5l
cmF0ZUNTU1J1bGVTdHJpbmcpOiBHZW5lcmF0ZXMgYSBzdHJpbmcgcmVwcmVzZW50aW5nIHRoZSBm
b3JtYXR0ZWQgQ1NTIHJ1bGUuCisKIDIwMTUtMDYtMDQgIE5pa2l0YSBWYXNpbHlldiAgPG52YXNp
bHlldkBhcHBsZS5jb20+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogRGVjcmVhc2UgdGFicyBo
ZWlnaHQgdG8gbWF0Y2ggU2FmYXJpJ3MgdGFicyBoZWlnaHQKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Mb2NhbGl6YXRpb25zL2VuLmxwcm9qL2xvY2FsaXplZFN0cmluZ3MuanMg
Yi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvTG9jYWxpemF0aW9ucy9lbi5scHJvai9sb2NhbGl6ZWRT
dHJpbmdzLmpzCmluZGV4IDM1Y2ZkMjFmMDE1MWUyZGE2ZjY0ZTI4YTZlNThlN2I5ZWVkNWQ2Nzcu
LmRiM2Q1ZTc4Y2NmMTE5MGZkMjIxMWFmZTUyYjI2ZjI1NjNmMjM3YzYgMTAwNjQ0CkdJVCBiaW5h
cnkgcGF0Y2gKZGVsdGEgMzQKcWNtWD9nbTNoZkU8XyohN2xafmZ9dXNidjRHWlpqWFBXRzg8SXtD
SysqWEMlO3tFWXpabmhqTHwKCmRlbHRhIDE4CmFjbVoyLWpycjc3PF8qITdsVyRySVkoOG9rell6
ZGRsP2Q3WgoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L1ZpZXdzL0NTU1N0eWxlRGVjbGFyYXRpb25TZWN0aW9uLmpzIGIvU291cmNlL1dlYkluc3BlY3Rv
clVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ1NTU3R5bGVEZWNsYXJhdGlvblNlY3Rpb24uanMKaW5k
ZXggMjM4ZTI1Njg3ZWZkZThjNzM5Y2NhNTQ5NjliNDY3M2Q3YWI5MmVlYS4uZGI0MTliODJjNGQx
NzE3ZGYzYmE2MjRmMGM4ZjM2ZjM1MzY4YmY1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3Bl
Y3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ1NTU3R5bGVEZWNsYXJhdGlvblNlY3Rpb24uanMK
KysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ1NTU3R5bGVE
ZWNsYXJhdGlvblNlY3Rpb24uanMKQEAgLTEwNCw2ICsxMDQsMTkgQEAgV2ViSW5zcGVjdG9yLkNT
U1N0eWxlRGVjbGFyYXRpb25TZWN0aW9uID0gZnVuY3Rpb24oc3R5bGUpCiAgICAgfQogCiAgICAg
dGhpcy5yZWZyZXNoKCk7CisKKyAgICB0aGlzLl9oZWFkZXJFbGVtZW50LmFkZEV2ZW50TGlzdGVu
ZXIoImNvbnRleHRtZW51IiwgZnVuY3Rpb24oZXZlbnQpIHsKKyAgICAgICAgaWYgKHdpbmRvdy5n
ZXRTZWxlY3Rpb24oKS50b1N0cmluZygpLmxlbmd0aCkKKyAgICAgICAgICAgIHJldHVybjsKKwor
ICAgICAgICB2YXIgY29udGV4dE1lbnUgPSBuZXcgV2ViSW5zcGVjdG9yLkNvbnRleHRNZW51KGV2
ZW50KTsKKworICAgICAgICBjb250ZXh0TWVudS5hcHBlbmRJdGVtKFdlYkluc3BlY3Rvci5VSVN0
cmluZygiQ29weSBSdWxlIiksIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgSW5zcGVjdG9yRnJv
bnRlbmRIb3N0LmNvcHlUZXh0KHRoaXMuX2dlbmVyYXRlQ1NTUnVsZVN0cmluZy5jYWxsKHRoaXMp
KTsKKyAgICAgICAgfS5iaW5kKHRoaXMpKTsKKworICAgICAgICBjb250ZXh0TWVudS5zaG93KCk7
CisgICAgfS5iaW5kKHRoaXMpKTsKIH07CiAKIFdlYkluc3BlY3Rvci5DU1NTdHlsZURlY2xhcmF0
aW9uU2VjdGlvbi5Mb2NrZWRTdHlsZUNsYXNzTmFtZSA9ICJsb2NrZWQiOwpAQCAtMjc3LDYgKzI5
MCw1MSBAQCBXZWJJbnNwZWN0b3IuQ1NTU3R5bGVEZWNsYXJhdGlvblNlY3Rpb24ucHJvdG90eXBl
ID0gewogCiAgICAgLy8gUHJpdmF0ZQogCisgICAgX2dlbmVyYXRlQ1NTUnVsZVN0cmluZzogZnVu
Y3Rpb24oKSB7CisgICAgICAgIGZ1bmN0aW9uIHJlcGVhdFRleHQodGV4dCwgbnVtUmVwZWF0cykg
eworICAgICAgICAgICAgdmFyIG91dHB1dCA9ICIiOworCisgICAgICAgICAgICBmb3IgKHZhciBp
ID0gMDsgaSA8IG51bVJlcGVhdHM7ICsraSkKKyAgICAgICAgICAgICAgICBvdXRwdXQgKz0gdGV4
dDsKKworICAgICAgICAgICAgcmV0dXJuIG91dHB1dDsKKyAgICAgICAgfQorCisgICAgICAgIHZh
ciBudW1NZWRpYVF1ZXJpZXMgPSAwOworICAgICAgICB2YXIgc3R5bGVUZXh0ID0gIiI7CisKKyAg
ICAgICAgaWYgKHRoaXMuX3N0eWxlLm93bmVyUnVsZSkgeworICAgICAgICAgICAgdmFyIG1lZGlh
TGlzdCA9IHRoaXMuX3N0eWxlLm93bmVyUnVsZS5tZWRpYUxpc3Q7CisgICAgICAgICAgICBpZiAo
bWVkaWFMaXN0Lmxlbmd0aCkgeworICAgICAgICAgICAgICAgIG51bU1lZGlhUXVlcmllcyA9IG1l
ZGlhTGlzdC5sZW5ndGg7CisKKyAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gbnVtTWVkaWFR
dWVyaWVzIC0gMTsgaSA+PSAwOyAtLWkpCisgICAgICAgICAgICAgICAgICAgIHN0eWxlVGV4dCAr
PSByZXBlYXRUZXh0KCIgICAgIiwgbnVtTWVkaWFRdWVyaWVzIC0gaSAtIDEpICsgIkBtZWRpYSAi
ICsgbWVkaWFMaXN0W2ldLnRleHQgKyAiIHtcbiI7CisgICAgICAgICAgICB9CisKKyAgICAgICAg
ICAgIHN0eWxlVGV4dCArPSByZXBlYXRUZXh0KCIgICAgIiwgbnVtTWVkaWFRdWVyaWVzKSArIHRo
aXMuX3N0eWxlLm93bmVyUnVsZS5zZWxlY3RvclRleHQ7CisgICAgICAgIH0gZWxzZQorICAgICAg
ICAgICAgc3R5bGVUZXh0ICs9IHRoaXMuX3NlbGVjdG9yRWxlbWVudC50ZXh0Q29udGVudDsKKwor
ICAgICAgICBzdHlsZVRleHQgKz0gIiB7XG4iOworCisgICAgICAgIGZvciAodmFyIHByb3BlcnR5
IG9mIHRoaXMuX3N0eWxlLnByb3BlcnRpZXMpIHsKKyAgICAgICAgICAgIHN0eWxlVGV4dCArPSBy
ZXBlYXRUZXh0KCIgICAgIiwgbnVtTWVkaWFRdWVyaWVzICsgMSkgKyBwcm9wZXJ0eS50ZXh0LnRy
aW0oKTsKKworICAgICAgICAgICAgaWYgKHN0eWxlVGV4dC5zbGljZSgtMSkgIT09ICI7IikKKyAg
ICAgICAgICAgICAgICBzdHlsZVRleHQgKz0gIjsiOworCisgICAgICAgICAgICBzdHlsZVRleHQg
Kz0gIlxuIjsKKyAgICAgICAgfQorCisgICAgICAgIGZvciAodmFyIGkgPSBudW1NZWRpYVF1ZXJp
ZXM7IGkgPiAwOyAtLWkpCisgICAgICAgICAgICBzdHlsZVRleHQgKz0gcmVwZWF0VGV4dCgiICAg
ICIsIGkpICsgIn1cbiI7CisKKyAgICAgICAgc3R5bGVUZXh0ICs9ICJ9IjsKKworICAgICAgICBy
ZXR1cm4gc3R5bGVUZXh0OworICAgIH0sCisKICAgICBfY29tbWl0U2VsZWN0b3I6IGZ1bmN0aW9u
KG11dGF0aW9ucykKICAgICB7CiAgICAgICAgIGNvbnNvbGUuYXNzZXJ0KHRoaXMuX3N0eWxlLm93
bmVyUnVsZSk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>254311</attachid>
            <date>2015-06-04 16:19:01 -0700</date>
            <delta_ts>2015-06-18 13:44:44 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-138812-20150604161839.patch</filename>
            <type>text/plain</type>
            <size>4031</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvQ2hhbmdlTG9nCmluZGV4IGYyODczZWJiOGJlNTQxOTY2NGQ5NWEzMTcyMmU1
MDJkNGQ2YmFlYjIuLjVkZDk4YjE3MjBlZWE4ZjJhNGEzNWFhNGU3MWUzNjJkMjczNjM2MGYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
Ykluc3BlY3RvclVJL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDE1LTA2LTA0ICBEZXZp
biBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBB
YmlsaXR5IHRvIENvcHkgZW50aXJlIENTUyBSdWxlIGZyb20gU3R5bGVzIFNpZGViYXIKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzODgxMgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogTG9jYWxpemF0aW9u
cy9lbi5scHJvai9sb2NhbGl6ZWRTdHJpbmdzLmpzOgorICAgICAgICAqIFVzZXJJbnRlcmZhY2Uv
Vmlld3MvQ1NTU3R5bGVEZWNsYXJhdGlvblNlY3Rpb24uanM6CisgICAgICAgIChXZWJJbnNwZWN0
b3IuQ1NTU3R5bGVEZWNsYXJhdGlvblNlY3Rpb24pOiBSaWdodCBjbGlja2luZyBvbiB0aGUgaGVh
ZGVyIG9mIGEgcnVsZSB3aWxsIHJlcGxjYWUgdGhlIGRlZmF1bHQgY29udGV4dCBtZW51IHRvIGFs
bG93IGNvcHlpbmcgb2YgdGhlIGVudGlyZSBydWxlIHRvIHRoZSBjbGlwYm9hcmQuCisgICAgICAg
IChXZWJJbnNwZWN0b3IuQ1NTU3R5bGVEZWNsYXJhdGlvblNlY3Rpb24ucHJvdG90eXBlLl9oYW5k
bGVDb250ZXh0TWVudUV2ZW50KTogQ3JlYXRlcyBhIG5ldyBjb250ZXh0IG1lbnUgdG8gY29weSB0
aGUgZW50aXJlIENTUyBydWxlLgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNTU1N0eWxlRGVjbGFy
YXRpb25TZWN0aW9uLnByb3RvdHlwZS5fZ2VuZXJhdGVDU1NSdWxlU3RyaW5nKTogR2VuZXJhdGVz
IGEgc3RyaW5nIHJlcHJlc2VudGluZyB0aGUgZm9ybWF0dGVkIENTUyBydWxlLgorCiAyMDE1LTA2
LTA0ICBOaWtpdGEgVmFzaWx5ZXYgIDxudmFzaWx5ZXZAYXBwbGUuY29tPgogCiAgICAgICAgIFdl
YiBJbnNwZWN0b3I6IERlY3JlYXNlIHRhYnMgaGVpZ2h0IHRvIG1hdGNoIFNhZmFyaSdzIHRhYnMg
aGVpZ2h0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvTG9jYWxpemF0aW9ucy9l
bi5scHJvai9sb2NhbGl6ZWRTdHJpbmdzLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL0xvY2Fs
aXphdGlvbnMvZW4ubHByb2ovbG9jYWxpemVkU3RyaW5ncy5qcwppbmRleCAzNWNmZDIxZjAxNTFl
MmRhNmY2NGUyOGE2ZTU4ZTdiOWVlZDVkNjc3Li5kYjNkNWU3OGNjZjExOTBmZDIyMTFhZmU1MmIy
NmYyNTYzZjIzN2M2IDEwMDY0NApHSVQgYmluYXJ5IHBhdGNoCmRlbHRhIDM0CnFjbVg/Z20zaGZF
PF8qITdsWn5mfXVzYnY0R1paalhQV0c4PEl7Q0srKlhDJTt7RVl6Wm5oakx8CgpkZWx0YSAxOAph
Y21aMi1qcnI3NzxfKiE3bFckcklZKDhva3pZemRkbD9kN1oKCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9DU1NTdHlsZURlY2xhcmF0aW9uU2Vj
dGlvbi5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NTU1N0
eWxlRGVjbGFyYXRpb25TZWN0aW9uLmpzCmluZGV4IDIzOGUyNTY4N2VmZGU4YzczOWNjYTU0OTY5
YjQ2NzNkN2FiOTJlZWEuLjFhYmIwMzE0YmUwNTYzNDA2ZjA4YzA2YzBhNWI4YmY5NWU4ODQwYjMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NT
U1N0eWxlRGVjbGFyYXRpb25TZWN0aW9uLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL1ZpZXdzL0NTU1N0eWxlRGVjbGFyYXRpb25TZWN0aW9uLmpzCkBAIC0xMDQs
NiArMTA0LDggQEAgV2ViSW5zcGVjdG9yLkNTU1N0eWxlRGVjbGFyYXRpb25TZWN0aW9uID0gZnVu
Y3Rpb24oc3R5bGUpCiAgICAgfQogCiAgICAgdGhpcy5yZWZyZXNoKCk7CisKKyAgICB0aGlzLl9o
ZWFkZXJFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoImNvbnRleHRtZW51IiwgdGhpcy5faGFuZGxl
Q29udGV4dE1lbnVFdmVudC5iaW5kKHRoaXMpKTsKIH07CiAKIFdlYkluc3BlY3Rvci5DU1NTdHls
ZURlY2xhcmF0aW9uU2VjdGlvbi5Mb2NrZWRTdHlsZUNsYXNzTmFtZSA9ICJsb2NrZWQiOwpAQCAt
Mjc3LDYgKzI3OSw1NyBAQCBXZWJJbnNwZWN0b3IuQ1NTU3R5bGVEZWNsYXJhdGlvblNlY3Rpb24u
cHJvdG90eXBlID0gewogCiAgICAgLy8gUHJpdmF0ZQogCisgICAgX2hhbmRsZUNvbnRleHRNZW51
RXZlbnQ6IGZ1bmN0aW9uKGV2ZW50KQorICAgIHsKKyAgICAgICAgaWYgKHdpbmRvdy5nZXRTZWxl
Y3Rpb24oKS50b1N0cmluZygpLmxlbmd0aCkKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAg
ICB2YXIgY29udGV4dE1lbnUgPSBuZXcgV2ViSW5zcGVjdG9yLkNvbnRleHRNZW51KGV2ZW50KTsK
KworICAgICAgICBjb250ZXh0TWVudS5hcHBlbmRJdGVtKFdlYkluc3BlY3Rvci5VSVN0cmluZygi
Q29weSBSdWxlIiksIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgSW5zcGVjdG9yRnJvbnRlbmRI
b3N0LmNvcHlUZXh0KHRoaXMuX2dlbmVyYXRlQ1NTUnVsZVN0cmluZygpKTsKKyAgICAgICAgfS5i
aW5kKHRoaXMpKTsKKworICAgICAgICBjb250ZXh0TWVudS5zaG93KCk7CisgICAgfSwKKworICAg
IF9nZW5lcmF0ZUNTU1J1bGVTdHJpbmc6IGZ1bmN0aW9uKCkKKyAgICB7CisgICAgICAgIHZhciBu
dW1NZWRpYVF1ZXJpZXMgPSAwOworICAgICAgICB2YXIgc3R5bGVUZXh0ID0gIiI7CisKKyAgICAg
ICAgaWYgKHRoaXMuX3N0eWxlLm93bmVyUnVsZSkgeworICAgICAgICAgICAgdmFyIG1lZGlhTGlz
dCA9IHRoaXMuX3N0eWxlLm93bmVyUnVsZS5tZWRpYUxpc3Q7CisgICAgICAgICAgICBpZiAobWVk
aWFMaXN0Lmxlbmd0aCkgeworICAgICAgICAgICAgICAgIG51bU1lZGlhUXVlcmllcyA9IG1lZGlh
TGlzdC5sZW5ndGg7CisKKyAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gbnVtTWVkaWFRdWVy
aWVzIC0gMTsgaSA+PSAwOyAtLWkpCisgICAgICAgICAgICAgICAgICAgIHN0eWxlVGV4dCArPSAi
ICAgICIucmVwZWF0KG51bU1lZGlhUXVlcmllcyAtIGkgLSAxKSArICJAbWVkaWEgIiArIG1lZGlh
TGlzdFtpXS50ZXh0ICsgIiB7XG4iOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBzdHls
ZVRleHQgKz0gIiAgICAiLnJlcGVhdChudW1NZWRpYVF1ZXJpZXMpICsgdGhpcy5fc3R5bGUub3du
ZXJSdWxlLnNlbGVjdG9yVGV4dDsKKyAgICAgICAgfSBlbHNlCisgICAgICAgICAgICBzdHlsZVRl
eHQgKz0gdGhpcy5fc2VsZWN0b3JFbGVtZW50LnRleHRDb250ZW50OworCisgICAgICAgIHN0eWxl
VGV4dCArPSAiIHtcbiI7CisKKyAgICAgICAgZm9yICh2YXIgcHJvcGVydHkgb2YgdGhpcy5fc3R5
bGUucHJvcGVydGllcykgeworICAgICAgICAgICAgc3R5bGVUZXh0ICs9ICIgICAgIi5yZXBlYXQo
bnVtTWVkaWFRdWVyaWVzICsgMSkgKyBwcm9wZXJ0eS50ZXh0LnRyaW0oKTsKKworICAgICAgICAg
ICAgaWYgKCFzdHlsZVRleHQuZW5kc1dpdGgoIjsiKSkKKyAgICAgICAgICAgICAgICBzdHlsZVRl
eHQgKz0gIjsiOworCisgICAgICAgICAgICBzdHlsZVRleHQgKz0gIlxuIjsKKyAgICAgICAgfQor
CisgICAgICAgIGZvciAodmFyIGkgPSBudW1NZWRpYVF1ZXJpZXM7IGkgPiAwOyAtLWkpCisgICAg
ICAgICAgICBzdHlsZVRleHQgKz0gIiAgICAiLnJlcGVhdChpKSArICJ9XG4iOworCisgICAgICAg
IHN0eWxlVGV4dCArPSAifSI7CisKKyAgICAgICAgcmV0dXJuIHN0eWxlVGV4dDsKKyAgICB9LAor
CiAgICAgX2NvbW1pdFNlbGVjdG9yOiBmdW5jdGlvbihtdXRhdGlvbnMpCiAgICAgewogICAgICAg
ICBjb25zb2xlLmFzc2VydCh0aGlzLl9zdHlsZS5vd25lclJ1bGUpOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>