<?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>190525</bug_id>
          
          <creation_ts>2018-10-12 09:55:32 -0700</creation_ts>
          <short_desc>Web Inspector: Canvas: previews aren&apos;t removed when the parent view is hidden</short_desc>
          <delta_ts>2018-10-12 16:53:31 -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>
          
          <blocked>175485</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Devin Rousso">hi</reporter>
          <assigned_to name="Devin Rousso">hi</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>inspector-bugzilla-changes</cc>
    
    <cc>joepeck</cc>
    
    <cc>mattbaker</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1468460</commentid>
    <comment_count>0</comment_count>
    <who name="Devin Rousso">hi</who>
    <bug_when>2018-10-12 09:55:32 -0700</bug_when>
    <thetext>* STEPS TO REPRODUCE:
1. Inspect &lt;https://devinrousso.com/demo/WebKit/canvas.html&gt;
2. Go to the Canvas tab
3. Refresh the page
4. Go to any other tab
5. Refresh the page
6. Go back to the Canvas tab
 =&gt; A Canvas preview with &quot;No Preview Available&quot; is shown for each canvas that was on the page before it was refreshed</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1468688</commentid>
    <comment_count>1</comment_count>
      <attachid>352231</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2018-10-12 16:17:37 -0700</bug_when>
    <thetext>Created attachment 352231
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1468692</commentid>
    <comment_count>2</comment_count>
      <attachid>352231</attachid>
    <who name="Matt Baker">mattbaker</who>
    <bug_when>2018-10-12 16:22:56 -0700</bug_when>
    <thetext>Comment on attachment 352231
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1468693</commentid>
    <comment_count>3</comment_count>
      <attachid>352231</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2018-10-12 16:23:57 -0700</bug_when>
    <thetext>Comment on attachment 352231
Patch

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

&gt; Source/WebInspectorUI/UserInterface/Views/CanvasTabContentView.js:138
&gt;          for (let canvas of this._canvasCollection) {
&gt; -            if (!canvases.has(canvas))
&gt; +            if (!WI.canvasManager.canvases.includes(canvas))
&gt;                  this._removeCanvas(canvas);
&gt;          }
&gt;  
&gt; -        for (let canvas of canvases) {
&gt; +        for (let canvas of WI.canvasManager.canvases) {
&gt;              if (!this._canvasCollection.has(canvas))
&gt;                  this._addCanvas(canvas);
&gt;          }

Given that `WI.canvasManager.canvases` is a non-simple getter we should only run it once:

    let canvases = WI.canvasManager.canvases;

And use this everywhere instead of `WI.canvasManager.canvases` everywhere.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1468709</commentid>
    <comment_count>4</comment_count>
      <attachid>352236</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2018-10-12 16:35:46 -0700</bug_when>
    <thetext>Created attachment 352236
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1468717</commentid>
    <comment_count>5</comment_count>
    <who name="Matt Baker">mattbaker</who>
    <bug_when>2018-10-12 16:44:37 -0700</bug_when>
    <thetext>(In reply to Joseph Pecoraro from comment #3)
&gt; Comment on attachment 352231 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=352231&amp;action=review
&gt; 
&gt; &gt; Source/WebInspectorUI/UserInterface/Views/CanvasTabContentView.js:138
&gt; &gt;          for (let canvas of this._canvasCollection) {
&gt; &gt; -            if (!canvases.has(canvas))
&gt; &gt; +            if (!WI.canvasManager.canvases.includes(canvas))
&gt; &gt;                  this._removeCanvas(canvas);
&gt; &gt;          }
&gt; &gt;  
&gt; &gt; -        for (let canvas of canvases) {
&gt; &gt; +        for (let canvas of WI.canvasManager.canvases) {
&gt; &gt;              if (!this._canvasCollection.has(canvas))
&gt; &gt;                  this._addCanvas(canvas);
&gt; &gt;          }
&gt; 
&gt; Given that `WI.canvasManager.canvases` is a non-simple getter we should only
&gt; run it once:
&gt; 
&gt;     let canvases = WI.canvasManager.canvases;
&gt; 
&gt; And use this everywhere instead of `WI.canvasManager.canvases` everywhere.

Good eye! I didn&apos;t think to check the getter.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1468719</commentid>
    <comment_count>6</comment_count>
      <attachid>352236</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-10-12 16:52:18 -0700</bug_when>
    <thetext>Comment on attachment 352236
Patch

Clearing flags on attachment: 352236

Committed r237090: &lt;https://trac.webkit.org/changeset/237090&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1468720</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-10-12 16:52:19 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1468722</commentid>
    <comment_count>8</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-10-12 16:53:31 -0700</bug_when>
    <thetext>&lt;rdar://problem/45241822&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>352231</attachid>
            <date>2018-10-12 16:17:37 -0700</date>
            <delta_ts>2018-10-12 16:35:45 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-190525-20181012161736.patch</filename>
            <type>text/plain</type>
            <size>1999</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvQ2hhbmdlTG9nCmluZGV4IDRiOTY4NmY3OGIzYTc5MzQwNTkyZDA4ZTEyMTRk
ZDI4NmUyYzNjMzIuLmRhZjQ3ZTMzYWRjNDQ4Zjk3ZmNlNjg0YjUzMzQwNGU2YTk1ZjNiNzQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
Ykluc3BlY3RvclVJL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDE4LTEwLTEyICBEZXZp
biBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBD
YW52YXM6IHByZXZpZXdzIGFyZW4ndCByZW1vdmVkIHdoZW4gdGhlIHBhcmVudCB2aWV3IGlzIGhp
ZGRlbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkw
NTI1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBV
c2VySW50ZXJmYWNlL1ZpZXdzL0NhbnZhc1RhYkNvbnRlbnRWaWV3LmpzOgorICAgICAgICAoV0ku
Q2FudmFzVGFiQ29udGVudFZpZXcucHJvdG90eXBlLmF0dGFjaGVkKToKKwogMjAxOC0xMC0xMSAg
RGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CiAKICAgICAgICAgV2ViIEluc3BlY3Rv
cjogTmV0d29yazogZGV0YWlsIHZpZXcgcmV2ZXJ0cyB0byAiUmVzcG9uc2UiIHdoZW4gbmV3IHJl
cXVlc3RzIGFyZSBhZGRlZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvVmlld3MvQ2FudmFzVGFiQ29udGVudFZpZXcuanMgYi9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9DYW52YXNUYWJDb250ZW50Vmlldy5qcwppbmRleCBm
MGY1YWQ1YjcxMjZhZmIyZWZlYzdhYmMxNTliZDU3MDg2YzFiMzIwLi5hZTA3M2Y1M2M4M2E4ZjFk
MjgxZGIxZDBlNTM0Y2U1ODhlMmM0NTYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvVXNlckludGVyZmFjZS9WaWV3cy9DYW52YXNUYWJDb250ZW50Vmlldy5qcworKysgYi9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9DYW52YXNUYWJDb250ZW50Vmll
dy5qcwpAQCAtMTI3LDE0ICsxMjcsMTIgQEAgV0kuQ2FudmFzVGFiQ29udGVudFZpZXcgPSBjbGFz
cyBDYW52YXNUYWJDb250ZW50VmlldyBleHRlbmRzIFdJLkNvbnRlbnRCcm93c2VyVGEKICAgICAg
ICAgV0kuY2FudmFzTWFuYWdlci5hZGRFdmVudExpc3RlbmVyKFdJLkNhbnZhc01hbmFnZXIuRXZl
bnQuUmVjb3JkaW5nSW1wb3J0ZWQsIHRoaXMuX3JlY29yZGluZ0ltcG9ydGVkT3JTdG9wcGVkLCB0
aGlzKTsKICAgICAgICAgV0kuQ2FudmFzLmFkZEV2ZW50TGlzdGVuZXIoV0kuQ2FudmFzLkV2ZW50
LlJlY29yZGluZ1N0b3BwZWQsIHRoaXMuX3JlY29yZGluZ0ltcG9ydGVkT3JTdG9wcGVkLCB0aGlz
KTsKIAotICAgICAgICBsZXQgY2FudmFzZXMgPSBuZXcgU2V0KFsuLi50aGlzLl9jYW52YXNDb2xs
ZWN0aW9uLCAuLi5XSS5jYW52YXNNYW5hZ2VyLmNhbnZhc2VzXSk7Ci0KICAgICAgICAgZm9yIChs
ZXQgY2FudmFzIG9mIHRoaXMuX2NhbnZhc0NvbGxlY3Rpb24pIHsKLSAgICAgICAgICAgIGlmICgh
Y2FudmFzZXMuaGFzKGNhbnZhcykpCisgICAgICAgICAgICBpZiAoIVdJLmNhbnZhc01hbmFnZXIu
Y2FudmFzZXMuaW5jbHVkZXMoY2FudmFzKSkKICAgICAgICAgICAgICAgICB0aGlzLl9yZW1vdmVD
YW52YXMoY2FudmFzKTsKICAgICAgICAgfQogCi0gICAgICAgIGZvciAobGV0IGNhbnZhcyBvZiBj
YW52YXNlcykgeworICAgICAgICBmb3IgKGxldCBjYW52YXMgb2YgV0kuY2FudmFzTWFuYWdlci5j
YW52YXNlcykgewogICAgICAgICAgICAgaWYgKCF0aGlzLl9jYW52YXNDb2xsZWN0aW9uLmhhcyhj
YW52YXMpKQogICAgICAgICAgICAgICAgIHRoaXMuX2FkZENhbnZhcyhjYW52YXMpOwogICAgICAg
ICB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>352236</attachid>
            <date>2018-10-12 16:35:46 -0700</date>
            <delta_ts>2018-10-12 16:52:18 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-190525-20181012163546.patch</filename>
            <type>text/plain</type>
            <size>2854</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvQ2hhbmdlTG9nCmluZGV4IDRiOTY4NmY3OGIzYTc5MzQwNTkyZDA4ZTEyMTRk
ZDI4NmUyYzNjMzIuLjQxNGVkYTM2NjE4MTk1OWQ5MWIwZTY3Njg3M2U1YzViODA3NzA5ZGMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
Ykluc3BlY3RvclVJL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDE4LTEwLTEyICBEZXZp
biBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBD
YW52YXM6IHByZXZpZXdzIGFyZW4ndCByZW1vdmVkIHdoZW4gdGhlIHBhcmVudCB2aWV3IGlzIGhp
ZGRlbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkw
NTI1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTWF0dCBCYWtlci4KKworICAgICAgICAqIFVzZXJJ
bnRlcmZhY2UvVmlld3MvQ2FudmFzVGFiQ29udGVudFZpZXcuanM6CisgICAgICAgIChXSS5DYW52
YXNUYWJDb250ZW50Vmlldy5wcm90b3R5cGUuYXR0YWNoZWQpOgorCisgICAgICAgICogVXNlcklu
dGVyZmFjZS9Db250cm9sbGVycy9DYW52YXNNYW5hZ2VyLmpzOgorICAgICAgICAoV0kuQ2FudmFz
TWFuYWdlci5wcm90b3R5cGUuZ2V0IGNhbnZhc2VzKToKKyAgICAgICAgKFdJLkNhbnZhc01hbmFn
ZXIucHJvdG90eXBlLmdldCBzaGFkZXJQcm9ncmFtcyk6CisgICAgICAgIERyaXZlLWJ5OiBzaW1w
bGlmeSB0aGVzZSBnZXR0ZXJzLgorCiAyMDE4LTEwLTExICBEZXZpbiBSb3Vzc28gIDxkcm91c3Nv
QGFwcGxlLmNvbT4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBOZXR3b3JrOiBkZXRhaWwgdmll
dyByZXZlcnRzIHRvICJSZXNwb25zZSIgd2hlbiBuZXcgcmVxdWVzdHMgYXJlIGFkZGVkCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Db250cm9sbGVycy9D
YW52YXNNYW5hZ2VyLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQ29u
dHJvbGxlcnMvQ2FudmFzTWFuYWdlci5qcwppbmRleCAzMDNhNjYyMzFjOTE0MmVkYzVkYTc5NTU2
YzAxZDUwYjY2NDk5YWM0Li5mZDJmODZmYzk5MjdiZDc4OTU1Y2U3MTY0M2UxNzVhZjcwMDQ0ZGM2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Db250cm9s
bGVycy9DYW52YXNNYW5hZ2VyLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50
ZXJmYWNlL0NvbnRyb2xsZXJzL0NhbnZhc01hbmFnZXIuanMKQEAgLTQyLDEyICs0MiwxMiBAQCBX
SS5DYW52YXNNYW5hZ2VyID0gY2xhc3MgQ2FudmFzTWFuYWdlciBleHRlbmRzIFdJLk9iamVjdAog
CiAgICAgZ2V0IGNhbnZhc2VzKCkKICAgICB7Ci0gICAgICAgIHJldHVybiBbLi4udGhpcy5fY2Fu
dmFzSWRlbnRpZmllck1hcC52YWx1ZXMoKV07CisgICAgICAgIHJldHVybiBBcnJheS5mcm9tKHRo
aXMuX2NhbnZhc0lkZW50aWZpZXJNYXAudmFsdWVzKCkpOwogICAgIH0KIAogICAgIGdldCBzaGFk
ZXJQcm9ncmFtcygpCiAgICAgewotICAgICAgICByZXR1cm4gWy4uLnRoaXMuX3NoYWRlclByb2dy
YW1JZGVudGlmaWVyTWFwLnZhbHVlcygpXTsKKyAgICAgICAgcmV0dXJuIEFycmF5LmZyb20odGhp
cy5fc2hhZGVyUHJvZ3JhbUlkZW50aWZpZXJNYXAudmFsdWVzKCkpOwogICAgIH0KIAogICAgIGlt
cG9ydFJlY29yZGluZygpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9WaWV3cy9DYW52YXNUYWJDb250ZW50Vmlldy5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NhbnZhc1RhYkNvbnRlbnRWaWV3LmpzCmluZGV4IGYw
ZjVhZDViNzEyNmFmYjJlZmVjN2FiYzE1OWJkNTcwODZjMWIzMjAuLjkyZmZhNWRjNzA1OWRjYjlh
ODdkYjliMTY2OTQ3ZmUzOWYzMjEyYzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NhbnZhc1RhYkNvbnRlbnRWaWV3LmpzCisrKyBiL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NhbnZhc1RhYkNvbnRlbnRWaWV3
LmpzCkBAIC0xMjcsMTAgKzEyNywxMCBAQCBXSS5DYW52YXNUYWJDb250ZW50VmlldyA9IGNsYXNz
IENhbnZhc1RhYkNvbnRlbnRWaWV3IGV4dGVuZHMgV0kuQ29udGVudEJyb3dzZXJUYQogICAgICAg
ICBXSS5jYW52YXNNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoV0kuQ2FudmFzTWFuYWdlci5FdmVu
dC5SZWNvcmRpbmdJbXBvcnRlZCwgdGhpcy5fcmVjb3JkaW5nSW1wb3J0ZWRPclN0b3BwZWQsIHRo
aXMpOwogICAgICAgICBXSS5DYW52YXMuYWRkRXZlbnRMaXN0ZW5lcihXSS5DYW52YXMuRXZlbnQu
UmVjb3JkaW5nU3RvcHBlZCwgdGhpcy5fcmVjb3JkaW5nSW1wb3J0ZWRPclN0b3BwZWQsIHRoaXMp
OwogCi0gICAgICAgIGxldCBjYW52YXNlcyA9IG5ldyBTZXQoWy4uLnRoaXMuX2NhbnZhc0NvbGxl
Y3Rpb24sIC4uLldJLmNhbnZhc01hbmFnZXIuY2FudmFzZXNdKTsKKyAgICAgICAgbGV0IGNhbnZh
c2VzID0gV0kuY2FudmFzTWFuYWdlci5jYW52YXNlczsKIAogICAgICAgICBmb3IgKGxldCBjYW52
YXMgb2YgdGhpcy5fY2FudmFzQ29sbGVjdGlvbikgewotICAgICAgICAgICAgaWYgKCFjYW52YXNl
cy5oYXMoY2FudmFzKSkKKyAgICAgICAgICAgIGlmICghY2FudmFzZXMuaW5jbHVkZXMoY2FudmFz
KSkKICAgICAgICAgICAgICAgICB0aGlzLl9yZW1vdmVDYW52YXMoY2FudmFzKTsKICAgICAgICAg
fQogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>