<?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>227774</bug_id>
          
          <creation_ts>2021-07-07 14:57:33 -0700</creation_ts>
          <short_desc>Web Inspector: Elements Tab DOM Tree does not update when a top-level item in the DOM tree is added/removed</short_desc>
          <delta_ts>2022-09-01 13:04:07 -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>WebKit 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="Patrick Angle">pangle</reporter>
          <assigned_to name="Patrick Angle">pangle</assigned_to>
          <cc>ews-watchlist</cc>
    
    <cc>hi</cc>
    
    <cc>inspector-bugzilla-changes</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1775476</commentid>
    <comment_count>0</comment_count>
    <who name="Patrick Angle">pangle</who>
    <bug_when>2021-07-07 14:57:33 -0700</bug_when>
    <thetext>&lt;rdar://31137058&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1775490</commentid>
    <comment_count>1</comment_count>
      <attachid>433085</attachid>
    <who name="Patrick Angle">pangle</who>
    <bug_when>2021-07-07 15:31:27 -0700</bug_when>
    <thetext>Created attachment 433085
Patch v1.0</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1894862</commentid>
    <comment_count>2</comment_count>
      <attachid>433085</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2022-08-30 10:17:45 -0700</bug_when>
    <thetext>Comment on attachment 433085
Patch v1.0

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

r=me

&gt; Source/WebInspectorUI/UserInterface/Views/DOMTreeUpdater.js:134
&gt; +            if (parentNode.attached &amp;&amp; !parentNode.parentNode) {

I think the only way for this to be true is if `parentNode` is the document, so it might be better to directly check for that instead (especially since we probably will eventually move to a future where nodes can be sent to the frontend without including parent info, so `attached` might be `true` even if the `parentNode` is `null`).  That way you could also rename it to `documentNeedsUpdate`, which IMO is more understandable/reasonable as a reason to update the entire `WI.DOMTreeOutline`.

&gt; Source/WebInspectorUI/UserInterface/Views/DOMTreeUpdater.js:151
&gt; +            this._recentlyModifiedNodes.clear();
&gt; +            this._recentlyModifiedAttributes.clear();

NIT: Instead of duplicating these `clear()` here, you could take the entire `for` below and put it inside an `else` for this.  I personally try to avoid early returns like this cause it means there&apos;s more state one has to keep track of when creating branches in the future, whereas if there&apos;s no `return` then everything always flows down the same path to the same end.

&gt; Source/WebInspectorUI/UserInterface/Views/DOMTreeUpdater.js:167
&gt; -                return;
&gt; +                continue;

LOL oops wonder how many other problems this caused 😅</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1894924</commentid>
    <comment_count>3</comment_count>
      <attachid>433085</attachid>
    <who name="Patrick Angle">pangle</who>
    <bug_when>2022-08-30 14:16:56 -0700</bug_when>
    <thetext>Comment on attachment 433085
Patch v1.0

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

&gt;&gt; Source/WebInspectorUI/UserInterface/Views/DOMTreeUpdater.js:167
&gt;&gt; +                continue;
&gt; 
&gt; LOL oops wonder how many other problems this caused 😅

Such a good bug, I later fixed it anyways apparently https://bugs.webkit.org/show_bug.cgi?id=230289</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1895506</commentid>
    <comment_count>4</comment_count>
    <who name="Patrick Angle">pangle</who>
    <bug_when>2022-09-01 09:32:01 -0700</bug_when>
    <thetext>Pull request: https://github.com/WebKit/WebKit/pull/3914</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1895577</commentid>
    <comment_count>5</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-09-01 13:04:05 -0700</bug_when>
    <thetext>Committed 254062@main (f6c535899310): &lt;https://commits.webkit.org/254062@main&gt;

Reviewed commits have been landed. Closing PR #3914 and removing active labels.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>433085</attachid>
            <date>2021-07-07 15:31:27 -0700</date>
            <delta_ts>2022-08-30 10:17:45 -0700</delta_ts>
            <desc>Patch v1.0</desc>
            <filename>bug-227774-20210707153126.patch</filename>
            <type>text/plain</type>
            <size>4923</size>
            <attacher name="Patrick Angle">pangle</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc5NjIyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZwppbmRleCAy
YzA0NDUwNTE1YzA0NWQzMGViYTc2NDY3YmIwODQ0OTQ3NjI5ZGI4Li44YjBkZTBiNzM1NjlkMzlm
NjlhZjk1MzY3ZjIyNGJmM2I5MjdhNTcyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyNyBAQAorMjAyMS0wNy0wNyAgUGF0cmljayBBbmdsZSAgPHBhbmdsZUBhcHBsZS5jb20+
CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogRWxlbWVudHMgVGFiIERPTSBUcmVlIGRvZXMgbm90
IHVwZGF0ZSB3aGVuIGEgdG9wLWxldmVsIGl0ZW0gaW4gdGhlIERPTSB0cmVlIGlzIGFkZGVkL3Jl
bW92ZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIy
Nzc3NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdo
aWxlIHVubGlrZWx5IHRvIGFmZmVjdCBhIG1ham9yaXR5IG9mIHVzZXJzLCBpdCBpcyBwb3NzaWJs
ZSB0byBjYWxsIGBkb2N1bWVudC53cml0ZSgiIilgIGZvbGxvd2VkIGJ5CisgICAgICAgIGBkb2N1
bWVudC5jbG9zZSgpYCB0byByZXdyaXRlIHRoZSBlbnRpcmUgZG9jdW1lbnRzIGNvbnRlbnRzLCB3
aGljaCBtZWFucyB0b3AtbGV2ZWwgaXRlbXMgaW4gdGhlIERPTSB0cmVlIG91dGxpbmUKKyAgICAg
ICAgdmlldyB3aWxsIG5lZWQgdG8gYmUgcmVtb3ZlZCBhbmQgaW5zZXJ0ZWQuCisKKyAgICAgICAg
UHJldmlvdXNseSwgdXBkYXRlcyB3ZXJlIG9ubHkgcGVyZm9ybWVkIGZvciBub2RlIGluc2VydGlv
bi9kZWxldGlvbiB3aGVuIHRoYXQgbm9kZSBoYWQgYSBwYXJlbnQgbm9kZSByZXByZXNlbnRlZAor
ICAgICAgICBpbiB0aGUgRE9NIHRyZWUuIEhvd2V2ZXIsIHRoaXMgbWVhbnMgZm9yIHRoZSBhYm92
ZSBleGFtcGxlIHdoZXJlIG9uZSBvciBtb3JlIG5vZGVzIHdpbGwgbmV2ZXIgYmUgcmVwcmVzZW50
ZWQgYnkKKyAgICAgICAgYSBwYXJlbnQgbm9kZSBpbiB0aGUgRE9NIHRyZWUgbm8gdXBkYXRlIHdp
bGwgYmUgcGVyZm9ybWVkIHRvIHJlZmxlY3QgdGhvc2UgaW5zZXJ0aW9ucy9kZWxldGlvbnMuIElu
IHRob3NlIGNhc2VzLAorICAgICAgICB3ZSBzaG91bGQgZm9yZ28gdGhlIHBlci1pdGVtIHVwZGF0
aW5nIGFuZCBpbnN0ZWFkIHVwZGF0ZSB0aGUgZW50aXJlIHRyZWUsIHNpbWlsYXIgdG8gaG93IHdl
IGhhbmRsZSBhbGwgb3RoZXIKKyAgICAgICAgaW5zZXJ0aW9ucy9kZWxldGlvbnMgd2hlcmUgd2Ug
d2lsbCB1cGRhdGUgYWxsIGNoaWxkcmVuIG9mIHRoZSB1cGRhdGVkIG5vZGUncyBwYXJlbnQuCisK
KyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL0RPTVRyZWVVcGRhdGVyLmpzOgorICAgICAg
ICAoV0kuRE9NVHJlZVVwZGF0ZXIucHJvdG90eXBlLl91cGRhdGVNb2RpZmllZE5vZGVzKToKKyAg
ICAgICAgSW4gYWRkaXRpb24gdG8gdGhlIHJvb3QgaXNzdWUsIHRoZXJlIGlzIGEgZHJpdmUtYnkg
Zml4IGZvciBhIHR5cG8gdGhhdCBwcmV2ZW50ZWQgYW55IGF0dHJpYnV0ZSBjaGFuZ2VzIGFmdGVy
IGEKKyAgICAgICAgbm9kZSBtaXNzaW5nIGZyb20gdGhlIHRyZWUgZnJvbSB1cGRhdGluZyB0aGVp
ciBlbnRyeSBpbiB0aGUgdHJlZSBkdWUgdG8gdGhlIHVzZSBvZiBgcmV0dXJuYCBpbnN0ZWFkIG9m
CisgICAgICAgIGBjb250aW51ZWAgaW5zaWRlIHRoZSBsb29wLiBUaGlzIGFsc28gbWVhbnQgdGhh
dCB3ZSB3b3VsZCBwZXJwZXR1YWxseSBhdHRlbXB0IHRvIHVwZGF0ZSB0aGVzZSBpdGVtcywgYXMg
dGhleQorICAgICAgICBuZXZlciB3b3VsZCBoYXZlIGJlZW4gY2xlYXJlZCBmcm9tIHRoZSBwZW5k
aW5nIHVwZGF0ZSBzZXRzIGR1ZSB0byB0aGUgZWFybHkgcmV0dXJuLgorCiAyMDIxLTA3LTA2ICBQ
YXRyaWNrIEFuZ2xlICA8cGFuZ2xlQGFwcGxlLmNvbT4KIAogICAgICAgICBXZWIgSW5zcGVjdG9y
OiBFbGVtZW50cyBUYWIgRGV0YWlscyBTaWRlYmFyIG5hdmlnYXRpb24gaXRlbXMgc29tZXRpbWUg
d3JhcCB0byBhIHNlY29uZCBsaW5lCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
VXNlckludGVyZmFjZS9WaWV3cy9ET01UcmVlVXBkYXRlci5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0RPTVRyZWVVcGRhdGVyLmpzCmluZGV4IDZjMGFlOGEx
NmY5NDM2ZWM2YjJlZmJmZjJhYjQ4MjhiMzIxYjgxZTguLjViMmM0NWU4ZWVmZWM3ODRmZDUxNTg0
NDUwMWQ1OGMxYTc0MDNjYWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2Vy
SW50ZXJmYWNlL1ZpZXdzL0RPTVRyZWVVcGRhdGVyLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0RPTVRyZWVVcGRhdGVyLmpzCkBAIC0xMjEsMTEgKzEy
MSwyMSBAQCBXSS5ET01UcmVlVXBkYXRlci5wcm90b3R5cGUgPSB7CiAKICAgICBfdXBkYXRlTW9k
aWZpZWROb2RlczogZnVuY3Rpb24oKQogICAgIHsKKyAgICAgICAgbGV0IHBhcmVudGxlc3NBdHRh
Y2hlZE5vZGVOZWVkc1VwZGF0ZWQgPSBmYWxzZTsKKwogICAgICAgICAvLyBVcGRhdGUgZm9yIGlu
c2VydGlvbnMgYW5kIGRlbGV0aW9ucyBiZWZvcmUgYXR0cmlidXRlIG1vZGlmaWNhdGlvbnMuIFRo
aXMgZW5zdXJlcwogICAgICAgICAvLyB0cmVlIGVsZW1lbnRzIGdldCBjcmVhdGVkIGZvciBuZXds
eSBhdHRhY2hlZCBjaGlsZHJlbiBiZWZvcmUgd2UgdHJ5IHRvIHVwZGF0ZSB0aGVtLgogICAgICAg
ICBsZXQgcGFyZW50RWxlbWVudHNUb1VwZGF0ZSA9IG5ldyBTZXQ7CiAgICAgICAgIGxldCBtYXJr
Tm9kZVBhcmVudEZvclVwZGF0ZSA9ICh2YWx1ZSwga2V5LCBtYXApID0+IHsKKyAgICAgICAgICAg
IGlmIChwYXJlbnRsZXNzQXR0YWNoZWROb2RlTmVlZHNVcGRhdGVkKQorICAgICAgICAgICAgICAg
IHJldHVybjsKKwogICAgICAgICAgICAgbGV0IHBhcmVudE5vZGUgPSB2YWx1ZS5wYXJlbnQ7Cisg
ICAgICAgICAgICBpZiAocGFyZW50Tm9kZS5hdHRhY2hlZCAmJiAhcGFyZW50Tm9kZS5wYXJlbnRO
b2RlKSB7CisgICAgICAgICAgICAgICAgcGFyZW50bGVzc0F0dGFjaGVkTm9kZU5lZWRzVXBkYXRl
ZCA9IHRydWU7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorICAgICAg
ICAgICAgCiAgICAgICAgICAgICBsZXQgcGFyZW50VHJlZUVsZW1lbnQgPSB0aGlzLl90cmVlT3V0
bGluZS5maW5kVHJlZUVsZW1lbnQocGFyZW50Tm9kZSk7CiAgICAgICAgICAgICBpZiAocGFyZW50
VHJlZUVsZW1lbnQpCiAgICAgICAgICAgICAgICAgcGFyZW50RWxlbWVudHNUb1VwZGF0ZS5hZGQo
cGFyZW50VHJlZUVsZW1lbnQpOwpAQCAtMTMzLDYgKzE0MywxNyBAQCBXSS5ET01UcmVlVXBkYXRl
ci5wcm90b3R5cGUgPSB7CiAgICAgICAgIHRoaXMuX3JlY2VudGx5SW5zZXJ0ZWROb2Rlcy5mb3JF
YWNoKG1hcmtOb2RlUGFyZW50Rm9yVXBkYXRlKTsKICAgICAgICAgdGhpcy5fcmVjZW50bHlEZWxl
dGVkTm9kZXMuZm9yRWFjaChtYXJrTm9kZVBhcmVudEZvclVwZGF0ZSk7CiAKKyAgICAgICAgdGhp
cy5fcmVjZW50bHlJbnNlcnRlZE5vZGVzLmNsZWFyKCk7CisgICAgICAgIHRoaXMuX3JlY2VudGx5
RGVsZXRlZE5vZGVzLmNsZWFyKCk7CisKKyAgICAgICAgaWYgKHBhcmVudGxlc3NBdHRhY2hlZE5v
ZGVOZWVkc1VwZGF0ZWQpIHsKKyAgICAgICAgICAgIHRoaXMuX3JlY2VudGx5TW9kaWZpZWROb2Rl
cy5jbGVhcigpOworICAgICAgICAgICAgdGhpcy5fcmVjZW50bHlNb2RpZmllZEF0dHJpYnV0ZXMu
Y2xlYXIoKTsKKworICAgICAgICAgICAgdGhpcy5fdHJlZU91dGxpbmUudXBkYXRlKCk7CisgICAg
ICAgICAgICByZXR1cm47CisgICAgICAgIH0KKwogICAgICAgICBmb3IgKGxldCBwYXJlbnRUcmVl
RWxlbWVudCBvZiBwYXJlbnRFbGVtZW50c1RvVXBkYXRlKSB7CiAgICAgICAgICAgICBpZiAocGFy
ZW50VHJlZUVsZW1lbnQudHJlZU91dGxpbmUgJiYgcGFyZW50VHJlZUVsZW1lbnQubGlzdEl0ZW1F
bGVtZW50KSB7CiAgICAgICAgICAgICAgICAgcGFyZW50VHJlZUVsZW1lbnQudXBkYXRlVGl0bGUo
KTsKQEAgLTE0Myw3ICsxNjQsNyBAQCBXSS5ET01UcmVlVXBkYXRlci5wcm90b3R5cGUgPSB7CiAg
ICAgICAgIGZvciAobGV0IG5vZGUgb2YgdGhpcy5fcmVjZW50bHlNb2RpZmllZE5vZGVzLnZhbHVl
cygpKSB7CiAgICAgICAgICAgICBsZXQgbm9kZVRyZWVFbGVtZW50ID0gdGhpcy5fdHJlZU91dGxp
bmUuZmluZFRyZWVFbGVtZW50KG5vZGUpOwogICAgICAgICAgICAgaWYgKCFub2RlVHJlZUVsZW1l
bnQpCi0gICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgICAgIGNvbnRpbnVlOwog
CiAgICAgICAgICAgICBmb3IgKGxldCBbYXR0cmlidXRlLCBub2Rlc10gb2YgdGhpcy5fcmVjZW50
bHlNb2RpZmllZEF0dHJpYnV0ZXMuZW50cmllcygpKSB7CiAgICAgICAgICAgICAgICAgLy8gRG9u
J3QgcmVwb3J0IHRleHRDb250ZW50IGNoYW5nZXMgYXMgYXR0cmlidXRlIG1vZGlmaWNhdGlvbnMu
CkBAIC0xNTcsOCArMTc4LDYgQEAgV0kuRE9NVHJlZVVwZGF0ZXIucHJvdG90eXBlID0gewogICAg
ICAgICAgICAgbm9kZVRyZWVFbGVtZW50LnVwZGF0ZVRpdGxlKCk7CiAgICAgICAgIH0KIAotICAg
ICAgICB0aGlzLl9yZWNlbnRseUluc2VydGVkTm9kZXMuY2xlYXIoKTsKLSAgICAgICAgdGhpcy5f
cmVjZW50bHlEZWxldGVkTm9kZXMuY2xlYXIoKTsKICAgICAgICAgdGhpcy5fcmVjZW50bHlNb2Rp
ZmllZE5vZGVzLmNsZWFyKCk7CiAgICAgICAgIHRoaXMuX3JlY2VudGx5TW9kaWZpZWRBdHRyaWJ1
dGVzLmNsZWFyKCk7CiAgICAgfSwK
</data>
<flag name="review"
          id="455211"
          type_id="1"
          status="+"
          setter="hi"
    />
          </attachment>
      

    </bug>

</bugzilla>