<?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>106663</bug_id>
          
          <creation_ts>2013-01-11 06:59:27 -0800</creation_ts>
          <short_desc>IconLoader destructor called without calling removeClient().</short_desc>
          <delta_ts>2013-10-03 11:51:13 -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>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>DUPLICATE</resolution>
          <dup_id>120541</dup_id>
          
          <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="Mark Toller">mark.toller</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>ap</cc>
    
    <cc>beidson</cc>
    
    <cc>buildbot</cc>
    
    <cc>dglazkov</cc>
    
    <cc>gtk-ews</cc>
    
    <cc>japhet</cc>
    
    <cc>peter+ews</cc>
    
    <cc>rniwa</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>805238</commentid>
    <comment_count>0</comment_count>
    <who name="Mark Toller">mark.toller</who>
    <bug_when>2013-01-11 06:59:27 -0800</bug_when>
    <thetext>IconLoader uses a CachedRawResource, this class sets a timer and calls back into the IconLoader when the timer fires. However, the IconLoader can be destroyed (on web view destruction) without removing itself from the CachedRawResource, so the timer firing calls into a deleted object causing a crash.

Adding a check into the destructor fixes this problem on our platform (webkit2, gtk based).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>805239</commentid>
    <comment_count>1</comment_count>
      <attachid>182337</attachid>
    <who name="Mark Toller">mark.toller</who>
    <bug_when>2013-01-11 07:00:39 -0800</bug_when>
    <thetext>Created attachment 182337
Call removeClient in the destructor.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>805245</commentid>
    <comment_count>2</comment_count>
      <attachid>182337</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2013-01-11 07:06:38 -0800</bug_when>
    <thetext>Comment on attachment 182337
Call removeClient in the destructor.

Attachment 182337 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/15795669</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>805246</commentid>
    <comment_count>3</comment_count>
      <attachid>182337</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2013-01-11 07:08:10 -0800</bug_when>
    <thetext>Comment on attachment 182337
Call removeClient in the destructor.

Attachment 182337 did not pass qt-wk2-ews (qt):
Output: http://queues.webkit.org/results/15815184</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>805247</commentid>
    <comment_count>4</comment_count>
      <attachid>182337</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2013-01-11 07:08:39 -0800</bug_when>
    <thetext>Comment on attachment 182337
Call removeClient in the destructor.

Attachment 182337 did not pass efl-ews (efl):
Output: http://queues.webkit.org/results/15809335</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>805249</commentid>
    <comment_count>5</comment_count>
      <attachid>182337</attachid>
    <who name="kov&apos;s GTK+ EWS bot">gtk-ews</who>
    <bug_when>2013-01-11 07:12:20 -0800</bug_when>
    <thetext>Comment on attachment 182337
Call removeClient in the destructor.

Attachment 182337 did not pass gtk-ews (gtk):
Output: http://queues.webkit.org/results/15810338</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>805250</commentid>
    <comment_count>6</comment_count>
      <attachid>182337</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-01-11 07:12:49 -0800</bug_when>
    <thetext>Comment on attachment 182337
Call removeClient in the destructor.

Attachment 182337 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/15806380</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>805253</commentid>
    <comment_count>7</comment_count>
      <attachid>182337</attachid>
    <who name="Peter Beverloo (cr-android ews)">peter+ews</who>
    <bug_when>2013-01-11 07:17:40 -0800</bug_when>
    <thetext>Comment on attachment 182337
Call removeClient in the destructor.

Attachment 182337 did not pass cr-android-ews (chromium-android):
Output: http://queues.webkit.org/results/15806381</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>805254</commentid>
    <comment_count>8</comment_count>
      <attachid>182337</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-01-11 07:20:34 -0800</bug_when>
    <thetext>Comment on attachment 182337
Call removeClient in the destructor.

Attachment 182337 did not pass win-ews (win):
Output: http://queues.webkit.org/results/15803439</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>805255</commentid>
    <comment_count>9</comment_count>
      <attachid>182342</attachid>
    <who name="Mark Toller">mark.toller</who>
    <bug_when>2013-01-11 07:22:07 -0800</bug_when>
    <thetext>Created attachment 182342
removed the spurious { from the patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>805326</commentid>
    <comment_count>10</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2013-01-11 09:31:49 -0800</bug_when>
    <thetext>Can you make a regression test for this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>805346</commentid>
    <comment_count>11</comment_count>
    <who name="Mark Toller">mark.toller</who>
    <bug_when>2013-01-11 10:02:01 -0800</bug_when>
    <thetext>(In reply to comment #10)
&gt; Can you make a regression test for this?

I&apos;ve only seen this on our device, and it&apos;s timing related - you have to destroy the webview (which destroys the IconLoader) after the CachedRawResource has been created and the IconLoader added to it, but before the timer (set for 0ms) fires...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>935895</commentid>
    <comment_count>12</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2013-10-03 11:51:03 -0700</bug_when>
    <thetext>This got fixed in bug 120541.

*** This bug has been marked as a duplicate of bug 120541 ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>182337</attachid>
            <date>2013-01-11 07:00:39 -0800</date>
            <delta_ts>2013-01-11 07:22:07 -0800</delta_ts>
            <desc>Call removeClient in the destructor.</desc>
            <filename>iconloader.txt</filename>
            <type>text/plain</type>
            <size>454</size>
            <attacher name="Mark Toller">mark.toller</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9pY29uL0ljb25Mb2FkZXIuY3BwDQo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09DQotLS0gU291cmNlL1dlYkNvcmUvbG9hZGVyL2ljb24vSWNvbkxvYWRlci5jcHAgICAocmV2
aXNpb24gMTM5NDM5KQ0KKysrIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9pY29uL0ljb25Mb2FkZXIu
Y3BwICAgKHdvcmtpbmcgY29weSkNCkBAIC01NCw2ICs1NCw4IEBAIFBhc3NPd25QdHI8SWNvbkxv
YWRlcj4gSWNvbkxvYWRlcjo6Y3JlYXQNCiANCiBJY29uTG9hZGVyOjp+SWNvbkxvYWRlcigpDQog
ew0KKyAgICBpZiAobV9yZXNvdXJjZSkgew0KKyAgICAgICAgbV9yZXNvdXJjZS0+cmVtb3ZlQ2xp
ZW50KHRoaXMpOw0KIH0NCiANCiB2b2lkIEljb25Mb2FkZXI6OnN0YXJ0TG9hZGluZygpDQoNCg==
</data>
<flag name="commit-queue"
          id="200308"
          type_id="3"
          status="-"
          setter="webkit-ews"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>182342</attachid>
            <date>2013-01-11 07:22:07 -0800</date>
            <delta_ts>2013-10-03 11:51:13 -0700</delta_ts>
            <desc>removed the spurious { from the patch.</desc>
            <filename>iconloader.txt</filename>
            <type>text/plain</type>
            <size>453</size>
            <attacher name="Mark Toller">mark.toller</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9pY29uL0ljb25Mb2FkZXIuY3BwDQo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09DQotLS0gU291cmNlL1dlYkNvcmUvbG9hZGVyL2ljb24vSWNvbkxvYWRlci5jcHAgICAocmV2
aXNpb24gMTM5NDM5KQ0KKysrIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9pY29uL0ljb25Mb2FkZXIu
Y3BwICAgKHdvcmtpbmcgY29weSkNCkBAIC01NCw2ICs1NCw4IEBAIFBhc3NPd25QdHI8SWNvbkxv
YWRlcj4gSWNvbkxvYWRlcjo6Y3JlYXQNCiANCiBJY29uTG9hZGVyOjp+SWNvbkxvYWRlcigpDQog
ew0KKyAgICBpZiAobV9yZXNvdXJjZSkgDQorICAgICAgICBtX3Jlc291cmNlLT5yZW1vdmVDbGll
bnQodGhpcyk7DQogfQ0KIA0KIHZvaWQgSWNvbkxvYWRlcjo6c3RhcnRMb2FkaW5nKCkNCg0K
</data>

          </attachment>
      

    </bug>

</bugzilla>