<?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>30520</bug_id>
          
          <creation_ts>2009-10-19 10:16:05 -0700</creation_ts>
          <short_desc>Enable creation of custom SidebarTreeElements for different ProfileTypes</short_desc>
          <delta_ts>2009-10-21 06:57:25 -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 (Deprecated)</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>0</everconfirmed>
          <reporter name="Alexander Pavlov (apavlov)">apavlov</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>pfeldman</cc>
    
    <cc>timothy</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>155762</commentid>
    <comment_count>0</comment_count>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2009-10-19 10:16:05 -0700</bug_when>
    <thetext>Currently ProfileSidebarTreeElement is always created as the sidebar tree node for profiles. This is too limiting for some types of profiles which would rather provide their own tree elements (e.g. they require non-empty subtitles).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>155790</commentid>
    <comment_count>1</comment_count>
      <attachid>41433</attachid>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2009-10-19 11:17:41 -0700</bug_when>
    <thetext>Created attachment 41433
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>155799</commentid>
    <comment_count>2</comment_count>
      <attachid>41433</attachid>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2009-10-19 11:40:48 -0700</bug_when>
    <thetext>Comment on attachment 41433
patch

&gt; +    sidebarTreeElementForProfile: function(profile)
&gt; +    {
&gt; +        return new WebInspector.ProfileSidebarTreeElement(profile);
&gt; +    },

Why does this return a new tree element each time? Shouldn&apos;t this return the same one each time? If not, then this function needs a &quot;create&quot; prefix.


&gt; +    createView: function(profile)
&gt; +    {
&gt; +        return undefined;
&gt; +    },
&gt; +
&gt; +    sidebarTreeElementForProfile: function(profile)
&gt; +    {
&gt; +        return undefined;
&gt; +    },

It is better to use null in cases like this. But why do these exist?


&gt; +    viewForProfile: function(profile)
&gt; +    {
&gt; +        if (!profile._profileView)
&gt; +            profile._profileView = this.createView(profile);
&gt; +        return profile._profileView;
&gt;      }

I am confused why there are multiple versions of these functions. Also this clearly calls &quot;this.createView&quot;, which just returns undefined. Can you explain this? I don&apos;t think the functions that just return &quot;undefined&quot; are needed or useful.


&gt; +    _parseKey: function(key)
&gt; +    {
&gt; +        var match = key.match(/^([^\/]+)\/([^\/]+)$/);
&gt; +        if (match)
&gt; +            return [unescape(match[1]), unescape(match[2])];
&gt; +        return undefined;
&gt; +    },

Better to return null.


&gt; +    _viewForProfile: function(profile)
&gt; +    {
&gt; +        for (var key in this._profilesIdMap) {
&gt; +            if (this._profilesIdMap[key] === profile) {
&gt; +                var parsedKey = this._parseKey(key);
&gt; +                if (parsedKey)
&gt; +                    return this.getProfileType(parsedKey[1]).viewForProfile(profile);
&gt; +            }
&gt; +        }
&gt; +        return undefined;
&gt; +    },

Better to return null.


r-. This needs clerified and not have functions that do nothing but return undefined. (Or explained with good comments.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>155808</commentid>
    <comment_count>3</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2009-10-19 11:49:30 -0700</bug_when>
    <thetext>&gt; +    _viewForProfile: function(profile)
&gt; +    {
&gt; +        for (var key in this._profilesIdMap) {
&gt; +            if (this._profilesIdMap[key] === profile) {
&gt; +                var parsedKey = this._parseKey(key);
&gt; +                if (parsedKey)
&gt; +                    return this.getProfileType(parsedKey[1]).viewForProfile(profile);

This sounds much more complex than &quot;profile.type.viewForProfile(profile)&quot;.
Should we make profile have this property in order to get rid of key parsing?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>155853</commentid>
    <comment_count>4</comment_count>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2009-10-19 13:10:55 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; &gt; +    _viewForProfile: function(profile)
&gt; &gt; +    {
&gt; &gt; +        for (var key in this._profilesIdMap) {
&gt; &gt; +            if (this._profilesIdMap[key] === profile) {
&gt; &gt; +                var parsedKey = this._parseKey(key);
&gt; &gt; +                if (parsedKey)
&gt; &gt; +                    return this.getProfileType(parsedKey[1]).viewForProfile(profile);
&gt; 
&gt; This sounds much more complex than &quot;profile.type.viewForProfile(profile)&quot;.
&gt; Should we make profile have this property in order to get rid of key parsing?

Good point. I was trying to decrease coupling as much as possible but this one seems fine.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>155856</commentid>
    <comment_count>5</comment_count>
      <attachid>41433</attachid>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2009-10-19 13:22:10 -0700</bug_when>
    <thetext>Comment on attachment 41433
patch

I understand this design better now. You should add comments to each function that the ProfileType subclasses should implement.

I also think ProfileType.sidebarTreeElementForProfile should be ProfileType.createSidebarTreeElementForProfile to show it returns a new instance each time.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>156120</commentid>
    <comment_count>6</comment_count>
      <attachid>41493</attachid>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2009-10-20 03:20:56 -0700</bug_when>
    <thetext>Created attachment 41493
patch (fixed)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>156322</commentid>
    <comment_count>7</comment_count>
      <attachid>41493</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2009-10-20 15:47:13 -0700</bug_when>
    <thetext>Comment on attachment 41493
patch (fixed)

&gt; +    // Must be implemented by subclasses.
&gt; +    createView: function(profile)

Nit, can be done in subsequent patch: usually abstract methods that are implemented in concrete classes are named as doCreateSomething*.
Otherwise it is easy to get confused on what should be overriden and what not.

&gt; +    {
&gt; +        throw new Error(&quot;Needs implemented.&quot;);
&gt; +    },

&quot;Not implemented&quot; ?

&gt;  
&gt; +        profile._type = profileType;

This looks like a hack: what if concrete profile object already has this property?
Either declare it a hack and name it &quot;__profilesPanelProfileType&quot; or make profile define &quot;type&quot; getter and put it into docs.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>156345</commentid>
    <comment_count>8</comment_count>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2009-10-20 17:04:25 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; (From update of attachment 41493 [details])
&gt; &gt; +    // Must be implemented by subclasses.
&gt; &gt; +    createView: function(profile)
&gt; 
&gt; Nit, can be done in subsequent patch: usually abstract methods that are
&gt; implemented in concrete classes are named as doCreateSomething*.
&gt; Otherwise it is easy to get confused on what should be overriden and what not.

This is not something we normally do in WebKit. I think the normal names are better.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>156449</commentid>
    <comment_count>9</comment_count>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2009-10-21 03:25:59 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; (From update of attachment 41493 [details])
&gt; &gt; +    // Must be implemented by subclasses.
&gt; &gt; +    createView: function(profile)
&gt; 
&gt; Nit, can be done in subsequent patch: usually abstract methods that are
&gt; implemented in concrete classes are named as doCreateSomething*.
&gt; Otherwise it is easy to get confused on what should be overriden and what not.

Timothy has commented on this one.

&gt; &gt; +    {
&gt; &gt; +        throw new Error(&quot;Needs implemented.&quot;);
&gt; &gt; +    },
&gt; 
&gt; &quot;Not implemented&quot; ?

This is fine, as in &quot;Has a comment that points out this needs implemented when network headers are added&quot; (WebCore/ChangeLog, 2008-05-13) or at the bottom of Comment #2. And, it was suggested by Timothy.

&gt; &gt;  
&gt; &gt; +        profile._type = profileType;
&gt; 
&gt; This looks like a hack: what if concrete profile object already has this
&gt; property?
&gt; Either declare it a hack and name it &quot;__profilesPanelProfileType&quot; or make
&gt; profile define &quot;type&quot; getter and put it into docs.

Profiles should be definitely ProfileType-agnostic since ProfileTypes deal with visual representation of profiles, and they are bound only at the point of the addProfileHeader() invocation. That&apos;s why I was parsing the keys (which was cleaner than &quot;caching&quot; ProfileTypes inside profiles) rather than using an explicit association. I will stick to &quot;__profilesPanelProfileType&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>156452</commentid>
    <comment_count>10</comment_count>
      <attachid>41560</attachid>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2009-10-21 03:30:55 -0700</bug_when>
    <thetext>Created attachment 41560
patch (rename field)

Renamed the &quot;cached&quot; ProfileType field inside profiles.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>156474</commentid>
    <comment_count>11</comment_count>
      <attachid>41560</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2009-10-21 06:57:20 -0700</bug_when>
    <thetext>Comment on attachment 41560
patch (rename field)

Clearing flags on attachment: 41560

Committed r49905: &lt;http://trac.webkit.org/changeset/49905&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>156475</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2009-10-21 06:57:25 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>41433</attachid>
            <date>2009-10-19 11:17:41 -0700</date>
            <delta_ts>2009-10-20 03:20:56 -0700</delta_ts>
            <desc>patch</desc>
            <filename>createelement.patch</filename>
            <type>text/plain</type>
            <size>5219</size>
            <attacher name="Alexander Pavlov (apavlov)">apavlov</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
NTQwZmQ0Ni4uOWIyNzk2NiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNyBAQAorMjAwOS0xMC0xOSAgQWxleGFuZGVyIFBh
dmxvdiAgPGFwYXZsb3ZAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIEVuYWJsZSBjcmVhdGlvbiBvZiBjdXN0b20gU2lkZWJhclRy
ZWVFbGVtZW50cyBmb3IgZGlmZmVyZW50IFByb2ZpbGVUeXBlcworCisgICAgICAgIFByb2ZpbGVU
eXBlcyBjYW4gbm93IGNyZWF0ZSBzaWRlYmFyIHRyZWUgZWxlbWVudHMgb2YgY3VzdG9tIHR5cGVz
LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzA1MjAK
KworICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvUHJvZmlsZVZpZXcuanM6CisgICAgICAg
IChXZWJJbnNwZWN0b3IuQ1BVUHJvZmlsZVR5cGUucHJvdG90eXBlLnNldFJlY29yZGluZ1Byb2Zp
bGUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNQVVByb2ZpbGVUeXBlLnByb3RvdHlwZS5zaWRl
YmFyVHJlZUVsZW1lbnRGb3JQcm9maWxlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5DUFVQcm9m
aWxlVHlwZS5wcm90b3R5cGUuY3JlYXRlVmlldyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ1BV
UHJvZmlsZS5wcm90b3R5cGUuZ2V0IGhlYWQpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1l
bmQvUHJvZmlsZXNQYW5lbC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Qcm9maWxlVHlwZS5w
cm90b3R5cGUuYnV0dG9uQ2xpY2tlZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUHJvZmlsZVR5
cGUucHJvdG90eXBlLmNyZWF0ZVZpZXcpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlByb2ZpbGVU
eXBlLnByb3RvdHlwZS5zaWRlYmFyVHJlZUVsZW1lbnRGb3JQcm9maWxlKToKKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5Qcm9maWxlVHlwZS5wcm90b3R5cGUudmlld0ZvclByb2ZpbGUpOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLlByb2ZpbGVzUGFuZWwucHJvdG90eXBlLl9wYXJzZUtleSk6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuUHJvZmlsZXNQYW5lbC5wcm90b3R5cGUuYWRkUHJvZmlsZUhlYWRl
cik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUHJvZmlsZXNQYW5lbC5wcm90b3R5cGUuc2hvd1By
b2ZpbGUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlByb2ZpbGVzUGFuZWwucHJvdG90eXBlLl92
aWV3Rm9yUHJvZmlsZSk6CisKIDIwMDktMTAtMTkgIEVyaWMgQ2FybHNvbiAgPGVyaWMuY2FybHNv
bkBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgU2ltb24gRnJhc2VyLgpkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Byb2ZpbGVWaWV3LmpzIGIvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Byb2ZpbGVWaWV3LmpzCmluZGV4IGVlOTYzNDUuLjdjZDZl
NTkgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Qcm9maWxlVmlldy5q
cworKysgYi9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUHJvZmlsZVZpZXcuanMKQEAgLTYw
Miw2ICs2MDIsMTYgQEAgV2ViSW5zcGVjdG9yLkNQVVByb2ZpbGVUeXBlLnByb3RvdHlwZSA9IHsK
ICAgICBzZXRSZWNvcmRpbmdQcm9maWxlOiBmdW5jdGlvbihpc1Byb2ZpbGluZykKICAgICB7CiAg
ICAgICAgIHRoaXMuX3JlY29yZGluZyA9IGlzUHJvZmlsaW5nOworICAgIH0sCisKKyAgICBzaWRl
YmFyVHJlZUVsZW1lbnRGb3JQcm9maWxlOiBmdW5jdGlvbihwcm9maWxlKQorICAgIHsKKyAgICAg
ICAgcmV0dXJuIG5ldyBXZWJJbnNwZWN0b3IuUHJvZmlsZVNpZGViYXJUcmVlRWxlbWVudChwcm9m
aWxlKTsKKyAgICB9LAorCisgICAgY3JlYXRlVmlldzogZnVuY3Rpb24ocHJvZmlsZSkKKyAgICB7
CisgICAgICAgIHJldHVybiBuZXcgV2ViSW5zcGVjdG9yLkNQVVByb2ZpbGVWaWV3KHByb2ZpbGUp
OwogICAgIH0KIH0KIApAQCAtNjI3LDE4ICs2MzcsNSBAQCBXZWJJbnNwZWN0b3IuQ1BVUHJvZmls
ZS5wcm90b3R5cGUgPSB7CiAgICAgZ2V0IGhlYWQoKQogICAgIHsKICAgICAgICAgcmV0dXJuIHRo
aXMucmVwcmVzZW50ZWRPYmplY3QuaGVhZDsKLSAgICB9LAotCi0gICAgY3JlYXRlVmlldzogZnVu
Y3Rpb24oKQotICAgIHsKLSAgICAgICAgcmV0dXJuIG5ldyBXZWJJbnNwZWN0b3IuQ1BVUHJvZmls
ZVZpZXcodGhpcyk7Ci0gICAgfSwKLQotICAgIC8vIEZJWE1FOiBFeHRyYWN0IHRoaXMgaW50byBh
IHN1cGVyY2xhc3Mgc28gdGhhdCBjcmVhdGVWaWV3IGNhbiBiZSBzaW1wbHkgb3ZlcnJpZGRlbiBi
eSBzdWJjbGFzc2VzLgotICAgIHZpZXdGb3JQcm9maWxlOiBmdW5jdGlvbigpCi0gICAgewotICAg
ICAgICBpZiAoIXRoaXMuX3Byb2ZpbGVWaWV3KQotICAgICAgICAgICAgdGhpcy5fcHJvZmlsZVZp
ZXcgPSB0aGlzLmNyZWF0ZVZpZXcoKTsKLSAgICAgICAgcmV0dXJuIHRoaXMuX3Byb2ZpbGVWaWV3
OwogICAgIH0KIH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Qcm9m
aWxlc1BhbmVsLmpzIGIvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Byb2ZpbGVzUGFuZWwu
anMKaW5kZXggNTVlMjg2ZS4uZTcyMjQwMiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9pbnNwZWN0b3Iv
ZnJvbnQtZW5kL1Byb2ZpbGVzUGFuZWwuanMKKysrIGIvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQt
ZW5kL1Byb2ZpbGVzUGFuZWwuanMKQEAgLTYxLDYgKzYxLDIzIEBAIFdlYkluc3BlY3Rvci5Qcm9m
aWxlVHlwZS5wcm90b3R5cGUgPSB7CiAKICAgICBidXR0b25DbGlja2VkOiBmdW5jdGlvbigpCiAg
ICAgeworICAgIH0sCisKKyAgICBjcmVhdGVWaWV3OiBmdW5jdGlvbihwcm9maWxlKQorICAgIHsK
KyAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDsKKyAgICB9LAorCisgICAgc2lkZWJhclRyZWVFbGVt
ZW50Rm9yUHJvZmlsZTogZnVuY3Rpb24ocHJvZmlsZSkKKyAgICB7CisgICAgICAgIHJldHVybiB1
bmRlZmluZWQ7CisgICAgfSwKKworICAgIHZpZXdGb3JQcm9maWxlOiBmdW5jdGlvbihwcm9maWxl
KQorICAgIHsKKyAgICAgICAgaWYgKCFwcm9maWxlLl9wcm9maWxlVmlldykKKyAgICAgICAgICAg
IHByb2ZpbGUuX3Byb2ZpbGVWaWV3ID0gdGhpcy5jcmVhdGVWaWV3KHByb2ZpbGUpOworICAgICAg
ICByZXR1cm4gcHJvZmlsZS5fcHJvZmlsZVZpZXc7CiAgICAgfQogfQogCkBAIC0yMTAsOSArMjI3
LDE4IEBAIFdlYkluc3BlY3Rvci5Qcm9maWxlc1BhbmVsLnByb3RvdHlwZSA9IHsKICAgICAgICAg
cmV0dXJuIGVzY2FwZSh0ZXh0KSArICcvJyArIGVzY2FwZShwcm9maWxlVHlwZUlkKTsKICAgICB9
LAogCisgICAgX3BhcnNlS2V5OiBmdW5jdGlvbihrZXkpCisgICAgeworICAgICAgICB2YXIgbWF0
Y2ggPSBrZXkubWF0Y2goL14oW15cL10rKVwvKFteXC9dKykkLyk7CisgICAgICAgIGlmIChtYXRj
aCkKKyAgICAgICAgICAgIHJldHVybiBbdW5lc2NhcGUobWF0Y2hbMV0pLCB1bmVzY2FwZShtYXRj
aFsyXSldOworICAgICAgICByZXR1cm4gdW5kZWZpbmVkOworICAgIH0sCisKICAgICBhZGRQcm9m
aWxlSGVhZGVyOiBmdW5jdGlvbih0eXBlSWQsIHByb2ZpbGUpCiAgICAgewotICAgICAgICB2YXIg
c2lkZWJhclBhcmVudCA9IHRoaXMuZ2V0UHJvZmlsZVR5cGUodHlwZUlkKS50cmVlRWxlbWVudDsK
KyAgICAgICAgdmFyIHByb2ZpbGVUeXBlID0gdGhpcy5nZXRQcm9maWxlVHlwZSh0eXBlSWQpOwor
ICAgICAgICB2YXIgc2lkZWJhclBhcmVudCA9IHByb2ZpbGVUeXBlLnRyZWVFbGVtZW50OwogICAg
ICAgICB2YXIgc21hbGwgPSBmYWxzZTsKICAgICAgICAgdmFyIGFsdGVybmF0ZVRpdGxlOwogCkBA
IC0yNTcsNyArMjgzLDcgQEAgV2ViSW5zcGVjdG9yLlByb2ZpbGVzUGFuZWwucHJvdG90eXBlID0g
ewogICAgICAgICAgICAgfQogICAgICAgICB9CiAKLSAgICAgICAgdmFyIHByb2ZpbGVUcmVlRWxl
bWVudCA9IG5ldyBXZWJJbnNwZWN0b3IuUHJvZmlsZVNpZGViYXJUcmVlRWxlbWVudChwcm9maWxl
KTsKKyAgICAgICAgdmFyIHByb2ZpbGVUcmVlRWxlbWVudCA9IHByb2ZpbGVUeXBlLnNpZGViYXJU
cmVlRWxlbWVudEZvclByb2ZpbGUocHJvZmlsZSk7CiAgICAgICAgIHByb2ZpbGVUcmVlRWxlbWVu
dC5zbWFsbCA9IHNtYWxsOwogICAgICAgICBpZiAoYWx0ZXJuYXRlVGl0bGUpCiAgICAgICAgICAg
ICBwcm9maWxlVHJlZUVsZW1lbnQubWFpblRpdGxlID0gYWx0ZXJuYXRlVGl0bGU7CkBAIC0yNzYs
NyArMzAyLDcgQEAgV2ViSW5zcGVjdG9yLlByb2ZpbGVzUGFuZWwucHJvdG90eXBlID0gewogICAg
ICAgICBpZiAodGhpcy52aXNpYmxlVmlldykKICAgICAgICAgICAgIHRoaXMudmlzaWJsZVZpZXcu
aGlkZSgpOwogCi0gICAgICAgIHZhciB2aWV3ID0gcHJvZmlsZS52aWV3Rm9yUHJvZmlsZSgpOwor
ICAgICAgICB2YXIgdmlldyA9IHRoaXMuX3ZpZXdGb3JQcm9maWxlKHByb2ZpbGUpOwogCiAgICAg
ICAgIHZpZXcuc2hvdyh0aGlzLnByb2ZpbGVWaWV3cyk7CiAKQEAgLTI5Miw2ICszMTgsMTggQEAg
V2ViSW5zcGVjdG9yLlByb2ZpbGVzUGFuZWwucHJvdG90eXBlID0gewogICAgICAgICAgICAgdGhp
cy5wcm9maWxlVmlld1N0YXR1c0Jhckl0ZW1zQ29udGFpbmVyLmFwcGVuZENoaWxkKHN0YXR1c0Jh
ckl0ZW1zW2ldKTsKICAgICB9LAogCisgICAgX3ZpZXdGb3JQcm9maWxlOiBmdW5jdGlvbihwcm9m
aWxlKQorICAgIHsKKyAgICAgICAgZm9yICh2YXIga2V5IGluIHRoaXMuX3Byb2ZpbGVzSWRNYXAp
IHsKKyAgICAgICAgICAgIGlmICh0aGlzLl9wcm9maWxlc0lkTWFwW2tleV0gPT09IHByb2ZpbGUp
IHsKKyAgICAgICAgICAgICAgICB2YXIgcGFyc2VkS2V5ID0gdGhpcy5fcGFyc2VLZXkoa2V5KTsK
KyAgICAgICAgICAgICAgICBpZiAocGFyc2VkS2V5KQorICAgICAgICAgICAgICAgICAgICByZXR1
cm4gdGhpcy5nZXRQcm9maWxlVHlwZShwYXJzZWRLZXlbMV0pLnZpZXdGb3JQcm9maWxlKHByb2Zp
bGUpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiB1bmRlZmluZWQ7
CisgICAgfSwKKwogICAgIHNob3dWaWV3OiBmdW5jdGlvbih2aWV3KQogICAgIHsKICAgICAgICAg
dGhpcy5zaG93UHJvZmlsZSh2aWV3LnByb2ZpbGUpOwo=
</data>
<flag name="review"
          id="22826"
          type_id="1"
          status="-"
          setter="timothy"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>41493</attachid>
            <date>2009-10-20 03:20:56 -0700</date>
            <delta_ts>2009-10-21 03:30:55 -0700</delta_ts>
            <desc>patch (fixed)</desc>
            <filename>createelement.patch</filename>
            <type>text/plain</type>
            <size>4514</size>
            <attacher name="Alexander Pavlov (apavlov)">apavlov</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
NTQwZmQ0Ni4uYjA3YzMyYyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNSBAQAorMjAwOS0xMC0yMCAgQWxleGFuZGVyIFBh
dmxvdiAgPGFwYXZsb3ZAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIEVuYWJsZSBjcmVhdGlvbiBvZiBjdXN0b20gU2lkZWJhclRy
ZWVFbGVtZW50cyBmb3IgZGlmZmVyZW50IFByb2ZpbGVUeXBlcworCisgICAgICAgIFByb2ZpbGVU
eXBlcyBjYW4gbm93IGNyZWF0ZSBzaWRlYmFyIHRyZWUgZWxlbWVudHMgb2YgY3VzdG9tIHR5cGVz
LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzA1MjAK
KworICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvUHJvZmlsZVZpZXcuanM6CisgICAgICAg
IChXZWJJbnNwZWN0b3IuQ1BVUHJvZmlsZVR5cGUucHJvdG90eXBlLnNldFJlY29yZGluZ1Byb2Zp
bGUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNQVVByb2ZpbGVUeXBlLnByb3RvdHlwZS5jcmVh
dGVTaWRlYmFyVHJlZUVsZW1lbnRGb3JQcm9maWxlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5D
UFVQcm9maWxlVHlwZS5wcm90b3R5cGUuY3JlYXRlVmlldyk6CisgICAgICAgIChXZWJJbnNwZWN0
b3IuQ1BVUHJvZmlsZS5wcm90b3R5cGUuZ2V0IGhlYWQpOgorICAgICAgICAqIGluc3BlY3Rvci9m
cm9udC1lbmQvUHJvZmlsZXNQYW5lbC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Qcm9maWxl
VHlwZS5wcm90b3R5cGUuYnV0dG9uQ2xpY2tlZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUHJv
ZmlsZVR5cGUucHJvdG90eXBlLnZpZXdGb3JQcm9maWxlKToKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5Qcm9maWxlVHlwZS5wcm90b3R5cGUuY3JlYXRlVmlldyk6CisgICAgICAgIChXZWJJbnNwZWN0
b3IuUHJvZmlsZVR5cGUucHJvdG90eXBlLmNyZWF0ZVNpZGViYXJUcmVlRWxlbWVudEZvclByb2Zp
bGUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlByb2ZpbGVzUGFuZWwucHJvdG90eXBlLmFkZFBy
b2ZpbGVIZWFkZXIpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlByb2ZpbGVzUGFuZWwucHJvdG90
eXBlLnNob3dQcm9maWxlKToKKwogMjAwOS0xMC0xOSAgRXJpYyBDYXJsc29uICA8ZXJpYy5jYXJs
c29uQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBTaW1vbiBGcmFzZXIuCmRpZmYg
LS1naXQgYS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUHJvZmlsZVZpZXcuanMgYi9XZWJD
b3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUHJvZmlsZVZpZXcuanMKaW5kZXggZWU5NjM0NS4uYWZj
ZWQ0MSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Byb2ZpbGVWaWV3
LmpzCisrKyBiL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Qcm9maWxlVmlldy5qcwpAQCAt
NjAyLDYgKzYwMiwxNiBAQCBXZWJJbnNwZWN0b3IuQ1BVUHJvZmlsZVR5cGUucHJvdG90eXBlID0g
ewogICAgIHNldFJlY29yZGluZ1Byb2ZpbGU6IGZ1bmN0aW9uKGlzUHJvZmlsaW5nKQogICAgIHsK
ICAgICAgICAgdGhpcy5fcmVjb3JkaW5nID0gaXNQcm9maWxpbmc7CisgICAgfSwKKworICAgIGNy
ZWF0ZVNpZGViYXJUcmVlRWxlbWVudEZvclByb2ZpbGU6IGZ1bmN0aW9uKHByb2ZpbGUpCisgICAg
eworICAgICAgICByZXR1cm4gbmV3IFdlYkluc3BlY3Rvci5Qcm9maWxlU2lkZWJhclRyZWVFbGVt
ZW50KHByb2ZpbGUpOworICAgIH0sCisKKyAgICBjcmVhdGVWaWV3OiBmdW5jdGlvbihwcm9maWxl
KQorICAgIHsKKyAgICAgICAgcmV0dXJuIG5ldyBXZWJJbnNwZWN0b3IuQ1BVUHJvZmlsZVZpZXco
cHJvZmlsZSk7CiAgICAgfQogfQogCkBAIC02MjcsMTggKzYzNyw1IEBAIFdlYkluc3BlY3Rvci5D
UFVQcm9maWxlLnByb3RvdHlwZSA9IHsKICAgICBnZXQgaGVhZCgpCiAgICAgewogICAgICAgICBy
ZXR1cm4gdGhpcy5yZXByZXNlbnRlZE9iamVjdC5oZWFkOwotICAgIH0sCi0KLSAgICBjcmVhdGVW
aWV3OiBmdW5jdGlvbigpCi0gICAgewotICAgICAgICByZXR1cm4gbmV3IFdlYkluc3BlY3Rvci5D
UFVQcm9maWxlVmlldyh0aGlzKTsKLSAgICB9LAotCi0gICAgLy8gRklYTUU6IEV4dHJhY3QgdGhp
cyBpbnRvIGEgc3VwZXJjbGFzcyBzbyB0aGF0IGNyZWF0ZVZpZXcgY2FuIGJlIHNpbXBseSBvdmVy
cmlkZGVuIGJ5IHN1YmNsYXNzZXMuCi0gICAgdmlld0ZvclByb2ZpbGU6IGZ1bmN0aW9uKCkKLSAg
ICB7Ci0gICAgICAgIGlmICghdGhpcy5fcHJvZmlsZVZpZXcpCi0gICAgICAgICAgICB0aGlzLl9w
cm9maWxlVmlldyA9IHRoaXMuY3JlYXRlVmlldygpOwotICAgICAgICByZXR1cm4gdGhpcy5fcHJv
ZmlsZVZpZXc7CiAgICAgfQogfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQt
ZW5kL1Byb2ZpbGVzUGFuZWwuanMgYi9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUHJvZmls
ZXNQYW5lbC5qcwppbmRleCA1NWUyODZlLi5iNTQxZTI4IDEwMDY0NAotLS0gYS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvUHJvZmlsZXNQYW5lbC5qcworKysgYi9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvUHJvZmlsZXNQYW5lbC5qcwpAQCAtNjEsNiArNjEsMjUgQEAgV2ViSW5zcGVj
dG9yLlByb2ZpbGVUeXBlLnByb3RvdHlwZSA9IHsKIAogICAgIGJ1dHRvbkNsaWNrZWQ6IGZ1bmN0
aW9uKCkKICAgICB7CisgICAgfSwKKworICAgIHZpZXdGb3JQcm9maWxlOiBmdW5jdGlvbihwcm9m
aWxlKQorICAgIHsKKyAgICAgICAgaWYgKCFwcm9maWxlLl9wcm9maWxlVmlldykKKyAgICAgICAg
ICAgIHByb2ZpbGUuX3Byb2ZpbGVWaWV3ID0gdGhpcy5jcmVhdGVWaWV3KHByb2ZpbGUpOworICAg
ICAgICByZXR1cm4gcHJvZmlsZS5fcHJvZmlsZVZpZXc7CisgICAgfSwKKworICAgIC8vIE11c3Qg
YmUgaW1wbGVtZW50ZWQgYnkgc3ViY2xhc3Nlcy4KKyAgICBjcmVhdGVWaWV3OiBmdW5jdGlvbihw
cm9maWxlKQorICAgIHsKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJOZWVkcyBpbXBsZW1lbnRl
ZC4iKTsKKyAgICB9LAorCisgICAgLy8gTXVzdCBiZSBpbXBsZW1lbnRlZCBieSBzdWJjbGFzc2Vz
LgorICAgIGNyZWF0ZVNpZGViYXJUcmVlRWxlbWVudEZvclByb2ZpbGU6IGZ1bmN0aW9uKHByb2Zp
bGUpCisgICAgeworICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIk5lZWRzIGltcGxlbWVudGVkLiIp
OwogICAgIH0KIH0KIApAQCAtMjEyLDEwICsyMzEsMTIgQEAgV2ViSW5zcGVjdG9yLlByb2ZpbGVz
UGFuZWwucHJvdG90eXBlID0gewogCiAgICAgYWRkUHJvZmlsZUhlYWRlcjogZnVuY3Rpb24odHlw
ZUlkLCBwcm9maWxlKQogICAgIHsKLSAgICAgICAgdmFyIHNpZGViYXJQYXJlbnQgPSB0aGlzLmdl
dFByb2ZpbGVUeXBlKHR5cGVJZCkudHJlZUVsZW1lbnQ7CisgICAgICAgIHZhciBwcm9maWxlVHlw
ZSA9IHRoaXMuZ2V0UHJvZmlsZVR5cGUodHlwZUlkKTsKKyAgICAgICAgdmFyIHNpZGViYXJQYXJl
bnQgPSBwcm9maWxlVHlwZS50cmVlRWxlbWVudDsKICAgICAgICAgdmFyIHNtYWxsID0gZmFsc2U7
CiAgICAgICAgIHZhciBhbHRlcm5hdGVUaXRsZTsKIAorICAgICAgICBwcm9maWxlLl90eXBlID0g
cHJvZmlsZVR5cGU7CiAgICAgICAgIHRoaXMuX3Byb2ZpbGVzLnB1c2gocHJvZmlsZSk7CiAgICAg
ICAgIHRoaXMuX3Byb2ZpbGVzSWRNYXBbdGhpcy5fbWFrZUtleShwcm9maWxlLnVpZCwgdHlwZUlk
KV0gPSBwcm9maWxlOwogCkBAIC0yNTcsNyArMjc4LDcgQEAgV2ViSW5zcGVjdG9yLlByb2ZpbGVz
UGFuZWwucHJvdG90eXBlID0gewogICAgICAgICAgICAgfQogICAgICAgICB9CiAKLSAgICAgICAg
dmFyIHByb2ZpbGVUcmVlRWxlbWVudCA9IG5ldyBXZWJJbnNwZWN0b3IuUHJvZmlsZVNpZGViYXJU
cmVlRWxlbWVudChwcm9maWxlKTsKKyAgICAgICAgdmFyIHByb2ZpbGVUcmVlRWxlbWVudCA9IHBy
b2ZpbGVUeXBlLmNyZWF0ZVNpZGViYXJUcmVlRWxlbWVudEZvclByb2ZpbGUocHJvZmlsZSk7CiAg
ICAgICAgIHByb2ZpbGVUcmVlRWxlbWVudC5zbWFsbCA9IHNtYWxsOwogICAgICAgICBpZiAoYWx0
ZXJuYXRlVGl0bGUpCiAgICAgICAgICAgICBwcm9maWxlVHJlZUVsZW1lbnQubWFpblRpdGxlID0g
YWx0ZXJuYXRlVGl0bGU7CkBAIC0yNzYsNyArMjk3LDcgQEAgV2ViSW5zcGVjdG9yLlByb2ZpbGVz
UGFuZWwucHJvdG90eXBlID0gewogICAgICAgICBpZiAodGhpcy52aXNpYmxlVmlldykKICAgICAg
ICAgICAgIHRoaXMudmlzaWJsZVZpZXcuaGlkZSgpOwogCi0gICAgICAgIHZhciB2aWV3ID0gcHJv
ZmlsZS52aWV3Rm9yUHJvZmlsZSgpOworICAgICAgICB2YXIgdmlldyA9IHByb2ZpbGUuX3R5cGUu
dmlld0ZvclByb2ZpbGUocHJvZmlsZSk7CiAKICAgICAgICAgdmlldy5zaG93KHRoaXMucHJvZmls
ZVZpZXdzKTsKIAo=
</data>
<flag name="review"
          id="22899"
          type_id="1"
          status="-"
          setter="pfeldman"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>41560</attachid>
            <date>2009-10-21 03:30:55 -0700</date>
            <delta_ts>2009-10-21 06:57:19 -0700</delta_ts>
            <desc>patch (rename field)</desc>
            <filename>createelement.patch</filename>
            <type>text/plain</type>
            <size>4556</size>
            <attacher name="Alexander Pavlov (apavlov)">apavlov</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
NTQwZmQ0Ni4uYjA3YzMyYyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNSBAQAorMjAwOS0xMC0yMCAgQWxleGFuZGVyIFBh
dmxvdiAgPGFwYXZsb3ZAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIEVuYWJsZSBjcmVhdGlvbiBvZiBjdXN0b20gU2lkZWJhclRy
ZWVFbGVtZW50cyBmb3IgZGlmZmVyZW50IFByb2ZpbGVUeXBlcworCisgICAgICAgIFByb2ZpbGVU
eXBlcyBjYW4gbm93IGNyZWF0ZSBzaWRlYmFyIHRyZWUgZWxlbWVudHMgb2YgY3VzdG9tIHR5cGVz
LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzA1MjAK
KworICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvUHJvZmlsZVZpZXcuanM6CisgICAgICAg
IChXZWJJbnNwZWN0b3IuQ1BVUHJvZmlsZVR5cGUucHJvdG90eXBlLnNldFJlY29yZGluZ1Byb2Zp
bGUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNQVVByb2ZpbGVUeXBlLnByb3RvdHlwZS5jcmVh
dGVTaWRlYmFyVHJlZUVsZW1lbnRGb3JQcm9maWxlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5D
UFVQcm9maWxlVHlwZS5wcm90b3R5cGUuY3JlYXRlVmlldyk6CisgICAgICAgIChXZWJJbnNwZWN0
b3IuQ1BVUHJvZmlsZS5wcm90b3R5cGUuZ2V0IGhlYWQpOgorICAgICAgICAqIGluc3BlY3Rvci9m
cm9udC1lbmQvUHJvZmlsZXNQYW5lbC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Qcm9maWxl
VHlwZS5wcm90b3R5cGUuYnV0dG9uQ2xpY2tlZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUHJv
ZmlsZVR5cGUucHJvdG90eXBlLnZpZXdGb3JQcm9maWxlKToKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5Qcm9maWxlVHlwZS5wcm90b3R5cGUuY3JlYXRlVmlldyk6CisgICAgICAgIChXZWJJbnNwZWN0
b3IuUHJvZmlsZVR5cGUucHJvdG90eXBlLmNyZWF0ZVNpZGViYXJUcmVlRWxlbWVudEZvclByb2Zp
bGUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlByb2ZpbGVzUGFuZWwucHJvdG90eXBlLmFkZFBy
b2ZpbGVIZWFkZXIpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlByb2ZpbGVzUGFuZWwucHJvdG90
eXBlLnNob3dQcm9maWxlKToKKwogMjAwOS0xMC0xOSAgRXJpYyBDYXJsc29uICA8ZXJpYy5jYXJs
c29uQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBTaW1vbiBGcmFzZXIuCmRpZmYg
LS1naXQgYS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUHJvZmlsZVZpZXcuanMgYi9XZWJD
b3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUHJvZmlsZVZpZXcuanMKaW5kZXggZWU5NjM0NS4uYWZj
ZWQ0MSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Byb2ZpbGVWaWV3
LmpzCisrKyBiL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Qcm9maWxlVmlldy5qcwpAQCAt
NjAyLDYgKzYwMiwxNiBAQCBXZWJJbnNwZWN0b3IuQ1BVUHJvZmlsZVR5cGUucHJvdG90eXBlID0g
ewogICAgIHNldFJlY29yZGluZ1Byb2ZpbGU6IGZ1bmN0aW9uKGlzUHJvZmlsaW5nKQogICAgIHsK
ICAgICAgICAgdGhpcy5fcmVjb3JkaW5nID0gaXNQcm9maWxpbmc7CisgICAgfSwKKworICAgIGNy
ZWF0ZVNpZGViYXJUcmVlRWxlbWVudEZvclByb2ZpbGU6IGZ1bmN0aW9uKHByb2ZpbGUpCisgICAg
eworICAgICAgICByZXR1cm4gbmV3IFdlYkluc3BlY3Rvci5Qcm9maWxlU2lkZWJhclRyZWVFbGVt
ZW50KHByb2ZpbGUpOworICAgIH0sCisKKyAgICBjcmVhdGVWaWV3OiBmdW5jdGlvbihwcm9maWxl
KQorICAgIHsKKyAgICAgICAgcmV0dXJuIG5ldyBXZWJJbnNwZWN0b3IuQ1BVUHJvZmlsZVZpZXco
cHJvZmlsZSk7CiAgICAgfQogfQogCkBAIC02MjcsMTggKzYzNyw1IEBAIFdlYkluc3BlY3Rvci5D
UFVQcm9maWxlLnByb3RvdHlwZSA9IHsKICAgICBnZXQgaGVhZCgpCiAgICAgewogICAgICAgICBy
ZXR1cm4gdGhpcy5yZXByZXNlbnRlZE9iamVjdC5oZWFkOwotICAgIH0sCi0KLSAgICBjcmVhdGVW
aWV3OiBmdW5jdGlvbigpCi0gICAgewotICAgICAgICByZXR1cm4gbmV3IFdlYkluc3BlY3Rvci5D
UFVQcm9maWxlVmlldyh0aGlzKTsKLSAgICB9LAotCi0gICAgLy8gRklYTUU6IEV4dHJhY3QgdGhp
cyBpbnRvIGEgc3VwZXJjbGFzcyBzbyB0aGF0IGNyZWF0ZVZpZXcgY2FuIGJlIHNpbXBseSBvdmVy
cmlkZGVuIGJ5IHN1YmNsYXNzZXMuCi0gICAgdmlld0ZvclByb2ZpbGU6IGZ1bmN0aW9uKCkKLSAg
ICB7Ci0gICAgICAgIGlmICghdGhpcy5fcHJvZmlsZVZpZXcpCi0gICAgICAgICAgICB0aGlzLl9w
cm9maWxlVmlldyA9IHRoaXMuY3JlYXRlVmlldygpOwotICAgICAgICByZXR1cm4gdGhpcy5fcHJv
ZmlsZVZpZXc7CiAgICAgfQogfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQt
ZW5kL1Byb2ZpbGVzUGFuZWwuanMgYi9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUHJvZmls
ZXNQYW5lbC5qcwppbmRleCA1NWUyODZlLi5hNWEzNTRlIDEwMDY0NAotLS0gYS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvUHJvZmlsZXNQYW5lbC5qcworKysgYi9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvUHJvZmlsZXNQYW5lbC5qcwpAQCAtNjEsNiArNjEsMjUgQEAgV2ViSW5zcGVj
dG9yLlByb2ZpbGVUeXBlLnByb3RvdHlwZSA9IHsKIAogICAgIGJ1dHRvbkNsaWNrZWQ6IGZ1bmN0
aW9uKCkKICAgICB7CisgICAgfSwKKworICAgIHZpZXdGb3JQcm9maWxlOiBmdW5jdGlvbihwcm9m
aWxlKQorICAgIHsKKyAgICAgICAgaWYgKCFwcm9maWxlLl9wcm9maWxlVmlldykKKyAgICAgICAg
ICAgIHByb2ZpbGUuX3Byb2ZpbGVWaWV3ID0gdGhpcy5jcmVhdGVWaWV3KHByb2ZpbGUpOworICAg
ICAgICByZXR1cm4gcHJvZmlsZS5fcHJvZmlsZVZpZXc7CisgICAgfSwKKworICAgIC8vIE11c3Qg
YmUgaW1wbGVtZW50ZWQgYnkgc3ViY2xhc3Nlcy4KKyAgICBjcmVhdGVWaWV3OiBmdW5jdGlvbihw
cm9maWxlKQorICAgIHsKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJOZWVkcyBpbXBsZW1lbnRl
ZC4iKTsKKyAgICB9LAorCisgICAgLy8gTXVzdCBiZSBpbXBsZW1lbnRlZCBieSBzdWJjbGFzc2Vz
LgorICAgIGNyZWF0ZVNpZGViYXJUcmVlRWxlbWVudEZvclByb2ZpbGU6IGZ1bmN0aW9uKHByb2Zp
bGUpCisgICAgeworICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIk5lZWRzIGltcGxlbWVudGVkLiIp
OwogICAgIH0KIH0KIApAQCAtMjEyLDEwICsyMzEsMTIgQEAgV2ViSW5zcGVjdG9yLlByb2ZpbGVz
UGFuZWwucHJvdG90eXBlID0gewogCiAgICAgYWRkUHJvZmlsZUhlYWRlcjogZnVuY3Rpb24odHlw
ZUlkLCBwcm9maWxlKQogICAgIHsKLSAgICAgICAgdmFyIHNpZGViYXJQYXJlbnQgPSB0aGlzLmdl
dFByb2ZpbGVUeXBlKHR5cGVJZCkudHJlZUVsZW1lbnQ7CisgICAgICAgIHZhciBwcm9maWxlVHlw
ZSA9IHRoaXMuZ2V0UHJvZmlsZVR5cGUodHlwZUlkKTsKKyAgICAgICAgdmFyIHNpZGViYXJQYXJl
bnQgPSBwcm9maWxlVHlwZS50cmVlRWxlbWVudDsKICAgICAgICAgdmFyIHNtYWxsID0gZmFsc2U7
CiAgICAgICAgIHZhciBhbHRlcm5hdGVUaXRsZTsKIAorICAgICAgICBwcm9maWxlLl9fcHJvZmls
ZXNQYW5lbFByb2ZpbGVUeXBlID0gcHJvZmlsZVR5cGU7CiAgICAgICAgIHRoaXMuX3Byb2ZpbGVz
LnB1c2gocHJvZmlsZSk7CiAgICAgICAgIHRoaXMuX3Byb2ZpbGVzSWRNYXBbdGhpcy5fbWFrZUtl
eShwcm9maWxlLnVpZCwgdHlwZUlkKV0gPSBwcm9maWxlOwogCkBAIC0yNTcsNyArMjc4LDcgQEAg
V2ViSW5zcGVjdG9yLlByb2ZpbGVzUGFuZWwucHJvdG90eXBlID0gewogICAgICAgICAgICAgfQog
ICAgICAgICB9CiAKLSAgICAgICAgdmFyIHByb2ZpbGVUcmVlRWxlbWVudCA9IG5ldyBXZWJJbnNw
ZWN0b3IuUHJvZmlsZVNpZGViYXJUcmVlRWxlbWVudChwcm9maWxlKTsKKyAgICAgICAgdmFyIHBy
b2ZpbGVUcmVlRWxlbWVudCA9IHByb2ZpbGVUeXBlLmNyZWF0ZVNpZGViYXJUcmVlRWxlbWVudEZv
clByb2ZpbGUocHJvZmlsZSk7CiAgICAgICAgIHByb2ZpbGVUcmVlRWxlbWVudC5zbWFsbCA9IHNt
YWxsOwogICAgICAgICBpZiAoYWx0ZXJuYXRlVGl0bGUpCiAgICAgICAgICAgICBwcm9maWxlVHJl
ZUVsZW1lbnQubWFpblRpdGxlID0gYWx0ZXJuYXRlVGl0bGU7CkBAIC0yNzYsNyArMjk3LDcgQEAg
V2ViSW5zcGVjdG9yLlByb2ZpbGVzUGFuZWwucHJvdG90eXBlID0gewogICAgICAgICBpZiAodGhp
cy52aXNpYmxlVmlldykKICAgICAgICAgICAgIHRoaXMudmlzaWJsZVZpZXcuaGlkZSgpOwogCi0g
ICAgICAgIHZhciB2aWV3ID0gcHJvZmlsZS52aWV3Rm9yUHJvZmlsZSgpOworICAgICAgICB2YXIg
dmlldyA9IHByb2ZpbGUuX19wcm9maWxlc1BhbmVsUHJvZmlsZVR5cGUudmlld0ZvclByb2ZpbGUo
cHJvZmlsZSk7CiAKICAgICAgICAgdmlldy5zaG93KHRoaXMucHJvZmlsZVZpZXdzKTsKIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>