<?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>58027</bug_id>
          
          <creation_ts>2011-04-07 03:59:42 -0700</creation_ts>
          <short_desc>Avoid leaking document when leaving google.com due to geolocation permission request</short_desc>
          <delta_ts>2011-10-19 17:27:45 -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>PC</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>1</everconfirmed>
          <reporter name="Kenneth Rohde Christiansen">kenneth</reporter>
          <assigned_to name="Satish Sampath">satish</assigned_to>
          <cc>jknotten</cc>
    
    <cc>kling</cc>
    
    <cc>satish</cc>
    
    <cc>steveblock</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>381226</commentid>
    <comment_count>0</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2011-04-07 03:59:42 -0700</bug_when>
    <thetext>SSIA</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>381229</commentid>
    <comment_count>1</comment_count>
      <attachid>88606</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2011-04-07 04:08:49 -0700</bug_when>
    <thetext>Created attachment 88606
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>381232</commentid>
    <comment_count>2</comment_count>
      <attachid>88606</attachid>
    <who name="John Knottenbelt">jknotten</who>
    <bug_when>2011-04-07 04:24:34 -0700</bug_when>
    <thetext>Comment on attachment 88606
Patch

This seems correct to me. If we are removing the notifiers from the oneShots and watchers list, it also makes sense to remove them from the other lists too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>382144</commentid>
    <comment_count>3</comment_count>
      <attachid>88606</attachid>
    <who name="Steve Block">steveblock</who>
    <bug_when>2011-04-08 04:35:28 -0700</bug_when>
    <thetext>Comment on attachment 88606
Patch

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

&gt; Source/WebCore/ChangeLog:11
&gt; +        In fatalErrorOccurred (which is called on cancellation), the notifier

What do you mean by &apos;cancellation&apos;? Can you elaborate in the bug exactly what the problem is? Presumably it&apos;s not unique to google.com?

&gt; Source/WebCore/ChangeLog:18
&gt; +

Can you add a test for this? If not, you should explain here why not.

&gt; Source/WebCore/page/Geolocation.cpp:342
&gt; +    m_requestsAwaitingCachedPosition.remove(notifier);

I think that the only way for a notifier to be in this list when it encounters a fatal error is when Geolocation::reset() is called. Is this what you&apos;re protecting against?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>382158</commentid>
    <comment_count>4</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2011-04-08 05:08:13 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 88606 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=88606&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/ChangeLog:11
&gt; &gt; +        In fatalErrorOccurred (which is called on cancellation), the notifier
&gt; 
&gt; What do you mean by &apos;cancellation&apos;? Can you elaborate in the bug exactly what the problem is? Presumably it&apos;s not unique to google.com?

Reloading the page or loading another one, leaks document() probably due to event holding a ref to document (presumable TargetEvent).

It probably happens on other pages as well (using watchPosition?), but I didn&apos;t manage to trigger the leak with my own simple tests, and debugging what exactly is happening on google.com is pretty hard due to the obscured javascript code.

&gt; 
&gt; &gt; Source/WebCore/ChangeLog:18
&gt; &gt; +
&gt; 
&gt; Can you add a test for this? If not, you should explain here why not.

The test can only work for ports using the PREEMPT_... build flag, and I am not sure now to actually test this, so any help is appreciated. Testing it is hard due to the reloading, plus the fact that I cannot AFAIK count the document references from LayoutTestController.

&gt; &gt; Source/WebCore/page/Geolocation.cpp:342
&gt; &gt; +    m_requestsAwaitingCachedPosition.remove(notifier);
&gt; 
&gt; I think that the only way for a notifier to be in this list when it encounters a fatal error is when Geolocation::reset() is called. Is this what you&apos;re protecting against?

I added this one for completions sake. It can be left out.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>382193</commentid>
    <comment_count>5</comment_count>
      <attachid>88606</attachid>
    <who name="Steve Block">steveblock</who>
    <bug_when>2011-04-08 06:19:15 -0700</bug_when>
    <thetext>Comment on attachment 88606
Patch

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

&gt;&gt;&gt; Source/WebCore/ChangeLog:11
&gt;&gt;&gt; +        In fatalErrorOccurred (which is called on cancellation), the notifier
&gt;&gt; 
&gt;&gt; What do you mean by &apos;cancellation&apos;? Can you elaborate in the bug exactly what the problem is? Presumably it&apos;s not unique to google.com?
&gt; 
&gt; Reloading the page or loading another one, leaks document() probably due to event holding a ref to document (presumable TargetEvent).
&gt; 
&gt; It probably happens on other pages as well (using watchPosition?), but I didn&apos;t manage to trigger the leak with my own simple tests, and debugging what exactly is happening on google.com is pretty hard due to the obscured javascript code.

Do you see this only on Chromium? I think it would be good to understand a little more about the problem before we make the fix. The Geolocation callbacks don&apos;t ref their ScriptExecutionContext, so I don&apos;t see how removing this notifier from this list will avoid a leak. Presumably the Geolocation object is leaked too?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>382766</commentid>
    <comment_count>6</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2011-04-09 04:20:31 -0700</bug_when>
    <thetext>
&gt; Do you see this only on Chromium? I think it would be good to understand a little more about the problem before we make the fix. The Geolocation callbacks don&apos;t ref their ScriptExecutionContext, so I don&apos;t see how removing this notifier from this list will avoid a leak. Presumably the Geolocation object is leaked too?

This happens on our Qt WebKit2 port (a branch on gitorious). It was pretty hard to debug because Document is ref&apos;ed for each event, but adding this plugged the leak.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>408360</commentid>
    <comment_count>7</comment_count>
      <attachid>88606</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-05-23 15:09:20 -0700</bug_when>
    <thetext>Comment on attachment 88606
Patch

We need to find some way to test this.  Manual tests are fine.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>409563</commentid>
    <comment_count>8</comment_count>
      <attachid>88606</attachid>
    <who name="John Knottenbelt">jknotten</who>
    <bug_when>2011-05-25 03:18:22 -0700</bug_when>
    <thetext>Comment on attachment 88606
Patch

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

A test to count the number of notifiers left in the lists after page reload should be possible. However, exposing this count seems only useful for this particular test case. Is there a way to add this test without complicating the interfaces of the Geolocation, GeolocationController, GeolocationClient and embedder-specific client classes?

&gt;&gt;&gt; Source/WebCore/page/Geolocation.cpp:342
&gt;&gt;&gt; +    m_requestsAwaitingCachedPosition.remove(notifier);
&gt;&gt; 
&gt;&gt; I think that the only way for a notifier to be in this list when it encounters a fatal error is when Geolocation::reset() is called. Is this what you&apos;re protecting against?
&gt; 
&gt; I added this one for completions sake. It can be left out.

Steve: Yes, we can get a build up of notifiers in this case, since the main Frame (and therefore Geolocation instance) is reused across page reloads.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>409568</commentid>
    <comment_count>9</comment_count>
    <who name="John Knottenbelt">jknotten</who>
    <bug_when>2011-05-25 03:33:45 -0700</bug_when>
    <thetext>fast/dom/Geolocation/page-reload-cancel-permission-requests.html is a related test that tests that geolocation permission requests are properly cancelled at the GeolocationClient on page reload.

(In reply to comment #8)
&gt; (From update of attachment 88606 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=88606&amp;action=review
&gt; 
&gt; A test to count the number of notifiers left in the lists after page reload should be possible. However, exposing this count seems only useful for this particular test case. Is there a way to add this test without complicating the interfaces of the Geolocation, GeolocationController, GeolocationClient and embedder-specific client classes?
&gt; 
&gt; &gt;&gt;&gt; Source/WebCore/page/Geolocation.cpp:342
&gt; &gt;&gt;&gt; +    m_requestsAwaitingCachedPosition.remove(notifier);
&gt; &gt;&gt; 
&gt; &gt;&gt; I think that the only way for a notifier to be in this list when it encounters a fatal error is when Geolocation::reset() is called. Is this what you&apos;re protecting against?
&gt; &gt; 
&gt; &gt; I added this one for completions sake. It can be left out.
&gt; 
&gt; Steve: Yes, we can get a build up of notifiers in this case, since the main Frame (and therefore Geolocation instance) is reused across page reloads.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>483991</commentid>
    <comment_count>10</comment_count>
    <who name="Satish Sampath">satish</who>
    <bug_when>2011-10-14 08:28:38 -0700</bug_when>
    <thetext>I&apos;ve noticed the same issue. I&apos;ve tested only with Chromium so not sure if it happens with other browsers as well. FWIW, I found adding the following to the Geolocation::reset() method works as well.

#if USE(PREEMPT_GEOLOCATION_PERMISSION)
    m_pendingForPermissionNotifiers.remove(notifier);
#endif</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>483992</commentid>
    <comment_count>11</comment_count>
    <who name="Satish Sampath">satish</who>
    <bug_when>2011-10-14 08:31:44 -0700</bug_when>
    <thetext>I can also confirm that the leaking of Document was due to these pending GeoNotifier objects. In chromium these were creating a persistent v8 handle which weren&apos;t released properly (as these were still alive when the page closed) caused the whole DOM to be leaked when the page closed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>484003</commentid>
    <comment_count>12</comment_count>
    <who name="Satish Sampath">satish</who>
    <bug_when>2011-10-14 08:46:12 -0700</bug_when>
    <thetext>Sorry, I should&apos;ve mentioned that I used this code in the reset() method:

#if USE(PREEMPT_GEOLOCATION_PERMISSION)
    m_pendingForPermissionNotifiers.clear();
#endif</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>484015</commentid>
    <comment_count>13</comment_count>
    <who name="John Knottenbelt">jknotten</who>
    <bug_when>2011-10-14 09:26:03 -0700</bug_when>
    <thetext>I think we should also be removing the watch from  m_pendingForPermissionNotifiers in Geolocation::clearWatch to avoid potential build up of watches by repeated calls to watchPosition and clearWatch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>484559</commentid>
    <comment_count>14</comment_count>
      <attachid>111130</attachid>
    <who name="Satish Sampath">satish</who>
    <bug_when>2011-10-15 02:11:51 -0700</bug_when>
    <thetext>Created attachment 111130
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>484573</commentid>
    <comment_count>15</comment_count>
      <attachid>111130</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2011-10-15 05:52:12 -0700</bug_when>
    <thetext>Comment on attachment 111130
Patch

Nice, but can you implement John&apos;s suggestion as well? It could be a follow up.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>484600</commentid>
    <comment_count>16</comment_count>
      <attachid>111130</attachid>
    <who name="John Knottenbelt">jknotten</who>
    <bug_when>2011-10-15 10:25:53 -0700</bug_when>
    <thetext>Comment on attachment 111130
Patch

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

&gt; Source/WebCore/page/Geolocation.cpp:344
&gt; +#if USE(PREEMPT_GEOLOCATION_PERMISSION)

The change to Geolocation::reset() is enough - m_pendingForPermissionNotifiers is cleared in Geolocation::setIsAllowed. All other calls to setFatalError are called after permission has been determined, so the notifier won&apos;t be in this list.

It would be good to move these lines to Geolocation::clearWatch(), though, to avoid a potential build up of watches in this set.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>484755</commentid>
    <comment_count>17</comment_count>
      <attachid>111130</attachid>
    <who name="Satish Sampath">satish</who>
    <bug_when>2011-10-16 02:18:02 -0700</bug_when>
    <thetext>Comment on attachment 111130
Patch

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

&gt;&gt; Source/WebCore/page/Geolocation.cpp:344
&gt;&gt; +#if USE(PREEMPT_GEOLOCATION_PERMISSION)
&gt; 
&gt; The change to Geolocation::reset() is enough - m_pendingForPermissionNotifiers is cleared in Geolocation::setIsAllowed. All other calls to setFatalError are called after permission has been determined, so the notifier won&apos;t be in this list.
&gt; 
&gt; It would be good to move these lines to Geolocation::clearWatch(), though, to avoid a potential build up of watches in this set.

Will do.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>484757</commentid>
    <comment_count>18</comment_count>
      <attachid>111178</attachid>
    <who name="Satish Sampath">satish</who>
    <bug_when>2011-10-16 02:24:03 -0700</bug_when>
    <thetext>Created attachment 111178
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>484758</commentid>
    <comment_count>19</comment_count>
      <attachid>111178</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2011-10-16 02:33:45 -0700</bug_when>
    <thetext>Comment on attachment 111178
Patch

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

&gt; Source/WebCore/page/Geolocation.cpp:178
&gt; +Geolocation::GeoNotifier* Geolocation::Watchers::get(int id)

WebKit style would be to call this method for &quot;find&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>484759</commentid>
    <comment_count>20</comment_count>
      <attachid>111178</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2011-10-16 02:35:58 -0700</bug_when>
    <thetext>Comment on attachment 111178
Patch

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

&gt; Source/WebCore/page/Geolocation.cpp:436
&gt; +    GeoNotifier* notifier = m_watchers.get(watchId);
&gt; +    if (notifier)
&gt; +        m_pendingForPermissionNotifiers.remove(notifier);

You could change this into:

 if (GeoNotifier* notifier = m_watchers.find(watchId))
     m_pendingForPermissionNotifiers.remove(notifier);</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>484760</commentid>
    <comment_count>21</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2011-10-16 02:40:20 -0700</bug_when>
    <thetext>
&gt; &gt; The change to Geolocation::reset() is enough - m_pendingForPermissionNotifiers is cleared in Geolocation::setIsAllowed.

I think it would be better do document such behavior using ASSERTs if possible.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>484817</commentid>
    <comment_count>22</comment_count>
      <attachid>111178</attachid>
    <who name="Satish Sampath">satish</who>
    <bug_when>2011-10-16 14:13:42 -0700</bug_when>
    <thetext>Comment on attachment 111178
Patch

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

&gt;&gt; Source/WebCore/page/Geolocation.cpp:178
&gt;&gt; +Geolocation::GeoNotifier* Geolocation::Watchers::get(int id)
&gt; 
&gt; WebKit style would be to call this method for &quot;find&quot;

Will do

&gt;&gt; Source/WebCore/page/Geolocation.cpp:436
&gt;&gt; +        m_pendingForPermissionNotifiers.remove(notifier);
&gt; 
&gt; You could change this into:
&gt; 
&gt;  if (GeoNotifier* notifier = m_watchers.find(watchId))
&gt;      m_pendingForPermissionNotifiers.remove(notifier);

Will do</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>484818</commentid>
    <comment_count>23</comment_count>
      <attachid>111186</attachid>
    <who name="Satish Sampath">satish</who>
    <bug_when>2011-10-16 14:15:26 -0700</bug_when>
    <thetext>Created attachment 111186
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>484992</commentid>
    <comment_count>24</comment_count>
      <attachid>111186</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2011-10-17 01:39:11 -0700</bug_when>
    <thetext>Comment on attachment 111186
Patch

John are you OK with this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>484993</commentid>
    <comment_count>25</comment_count>
    <who name="John Knottenbelt">jknotten</who>
    <bug_when>2011-10-17 01:43:53 -0700</bug_when>
    <thetext>(In reply to comment #24)
&gt; (From update of attachment 111186 [details])
&gt; John are you OK with this?

Looks good to me. thanks for reviewing!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>485000</commentid>
    <comment_count>26</comment_count>
      <attachid>111186</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-10-17 02:01:29 -0700</bug_when>
    <thetext>Comment on attachment 111186
Patch

Clearing flags on attachment: 111186

Committed r97594: &lt;http://trac.webkit.org/changeset/97594&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>485001</commentid>
    <comment_count>27</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-10-17 02:01:38 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>485176</commentid>
    <comment_count>28</comment_count>
      <attachid>111186</attachid>
    <who name="Steve Block">steveblock</who>
    <bug_when>2011-10-17 08:32:58 -0700</bug_when>
    <thetext>Comment on attachment 111186
Patch

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

&gt; Source/WebCore/page/Geolocation.h:116
&gt; +        GeoNotifier* find(int id);

Do we need this new method? All we do with the GeoNotifier returned by this method is pass it to remove(GeoNotifier*), but Watchers already offers a remove(int id) method, which achieves the same thing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>485178</commentid>
    <comment_count>29</comment_count>
      <attachid>111186</attachid>
    <who name="Satish Sampath">satish</who>
    <bug_when>2011-10-17 08:38:46 -0700</bug_when>
    <thetext>Comment on attachment 111186
Patch

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

&gt;&gt; Source/WebCore/page/Geolocation.h:116
&gt;&gt; +        GeoNotifier* find(int id);
&gt; 
&gt; Do we need this new method? All we do with the GeoNotifier returned by this method is pass it to remove(GeoNotifier*), but Watchers already offers a remove(int id) method, which achieves the same thing.

You&apos;re right, I don&apos;t know how I missed that :/ Will upload a patch to remove this method and use remove(int id) instead.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>485182</commentid>
    <comment_count>30</comment_count>
      <attachid>111186</attachid>
    <who name="Satish Sampath">satish</who>
    <bug_when>2011-10-17 08:45:09 -0700</bug_when>
    <thetext>Comment on attachment 111186
Patch

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

&gt;&gt;&gt; Source/WebCore/page/Geolocation.h:116
&gt;&gt;&gt; +        GeoNotifier* find(int id);
&gt;&gt; 
&gt;&gt; Do we need this new method? All we do with the GeoNotifier returned by this method is pass it to remove(GeoNotifier*), but Watchers already offers a remove(int id) method, which achieves the same thing.
&gt; 
&gt; You&apos;re right, I don&apos;t know how I missed that :/ Will upload a patch to remove this method and use remove(int id) instead.

m_pendingForPermissionNotifiers is not part of m_watchers. So calling Watchers::remove(int id) can&apos;t remove this pending item. So leaving it as is.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>485199</commentid>
    <comment_count>31</comment_count>
    <who name="Steve Block">steveblock</who>
    <bug_when>2011-10-17 09:14:26 -0700</bug_when>
    <thetext>&gt;&gt;&gt;&gt; Source/WebCore/page/Geolocation.cpp:342
&gt;&gt;&gt;&gt; +    m_requestsAwaitingCachedPosition.remove(notifier);
&gt;&gt;&gt; 
&gt;&gt;&gt; I think that the only way for a notifier to be in this list when it encounters a fatal error is when Geolocation::reset() is called. Is this what you&apos;re protecting against?
&gt;&gt; I added this one for completions sake. It can be left out.
&gt; Steve: Yes, we can get a build up of notifiers in this case, since the main Frame (and therefore Geolocation instance) is reused across page reloads.

John, are you still concerned about this? How exactly do we handle cancelling regular requests in this case? It looks like the only time we do any cancelling of requests is when reset() or disconectFrame() is called. Is either of these called in this case? If you think there&apos;s a problem, let&apos;s open a new bug, preferably with a test case.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>485248</commentid>
    <comment_count>32</comment_count>
    <who name="John Knottenbelt">jknotten</who>
    <bug_when>2011-10-17 10:17:54 -0700</bug_when>
    <thetext>Steve, are you asking about my earlier proposed change to Geolocation::fatalErrorOccurred? If so, I think it&apos;s not necessary to make any changes there now as they will be cleared up in ::reset() with Satish&apos;s change.

(In reply to comment #31)
&gt; &gt;&gt;&gt;&gt; Source/WebCore/page/Geolocation.cpp:342
&gt; &gt;&gt;&gt;&gt; +    m_requestsAwaitingCachedPosition.remove(notifier);
&gt; &gt;&gt;&gt; 
&gt; &gt;&gt;&gt; I think that the only way for a notifier to be in this list when it encounters a fatal error is when Geolocation::reset() is called. Is this what you&apos;re protecting against?
&gt; &gt;&gt; I added this one for completions sake. It can be left out.
&gt; &gt; Steve: Yes, we can get a build up of notifiers in this case, since the main Frame (and therefore Geolocation instance) is reused across page reloads.
&gt; 
&gt; John, are you still concerned about this? How exactly do we handle cancelling regular requests in this case? It looks like the only time we do any cancelling of requests is when reset() or disconectFrame() is called. Is either of these called in this case? If you think there&apos;s a problem, let&apos;s open a new bug, preferably with a test case.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>486867</commentid>
    <comment_count>33</comment_count>
    <who name="Steve Block">steveblock</who>
    <bug_when>2011-10-19 10:03:18 -0700</bug_when>
    <thetext>Yes, I was talking about your comment about clearing m_requestsAwaitingCachedPosition in fatalErrorOccurred() in the first patch set uploaded to this bug. Satish&apos;s patch doesn&apos;t touch m_requestsAwaitingCachedPosition, right?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>487167</commentid>
    <comment_count>34</comment_count>
    <who name="John Knottenbelt">jknotten</who>
    <bug_when>2011-10-19 17:27:45 -0700</bug_when>
    <thetext>Steve, I&apos;m not sure if there is a problem there now. I&apos;ve opened https://bugs.webkit.org/show_bug.cgi?id=70461 to track an investigation of the question.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>88606</attachid>
            <date>2011-04-07 04:08:49 -0700</date>
            <delta_ts>2011-10-15 02:11:39 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>0001-Avoid-leaking-document-when-leaving-google.com-due-t.patch</filename>
            <type>text/plain</type>
            <size>2497</size>
            <attacher name="Kenneth Rohde Christiansen">kenneth</attacher>
            
              <data encoding="base64">RnJvbSBmYzFiNDdhNDFjMDgzZWM1MzYyZmRhMGRjODA0Njk2NjBiZGE2N2M5IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBLZW5uZXRoIFJvaGRlIENocmlzdGlhbnNlbiA8a2VubmV0aEB3
ZWJraXQub3JnPgpEYXRlOiBUaHUsIDcgQXByIDIwMTEgMTI6NTQ6MjIgKzAyMDAKU3ViamVjdDog
W1BBVENIXSBBdm9pZCBsZWFraW5nIGRvY3VtZW50IHdoZW4gbGVhdmluZyBnb29nbGUuY29tIGR1
ZSB0byBnZW9sb2NhdGlvbgogcGVybWlzc2lvbiByZXF1ZXN0CiBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTgwMjcKClJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgoK
RG9uZSBpbiBjb29wZXJhdGlvbiB3aXRoIEpvaG4gS25vdHRlbmJlbHQgPGprbm90dGVuQGNocm9t
aXVtLm9yZz4KCkluIGZhdGFsRXJyb3JPY2N1cnJlZCAod2hpY2ggaXMgY2FsbGVkIG9uIGNhbmNl
bGxhdGlvbiksIHRoZSBub3RpZmllcgp3YXMgbmVpdGhlciByZW1vdmVkIGZyb20gbV9wZW5kaW5n
Rm9yUGVybWlzc2lvbk5vdGlmaWVycyBub3IKbV9yZXF1ZXN0c0F3YWl0aW5nQ2FjaGVkUG9zaXRp
b24uIFRoZSBmb3JtZXIgaXMgdXNlZCBvbmx5IHdoZW4KUFJFRU1QVF9HRU9MT0NBVElPTl9QRVJN
SVNTSU9OIGlzIHVzZWQuCgoqIHBhZ2UvR2VvbG9jYXRpb24uY3BwOgooV2ViQ29yZTo6R2VvbG9j
YXRpb246OmZhdGFsRXJyb3JPY2N1cnJlZCk6Ci0tLQogU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
ICAgICAgICAgICAgfCAgIDE4ICsrKysrKysrKysrKysrKysrKwogU291cmNlL1dlYkNvcmUvcGFn
ZS9HZW9sb2NhdGlvbi5jcHAgfCAgICA0ICsrKysKIDIgZmlsZXMgY2hhbmdlZCwgMjIgaW5zZXJ0
aW9ucygrKSwgMCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZWViNmJlOC4uZmMyOWMwMCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDExLTA0LTA3ICBLZW5uZXRoIFJvaGRlIENo
cmlzdGlhbnNlbiAgPGtlbm5ldGhAd2Via2l0Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBdm9pZCBsZWFraW5nIGRvY3VtZW50IHdoZW4gbGVh
dmluZyBnb29nbGUuY29tIGR1ZSB0byBnZW9sb2NhdGlvbgorICAgICAgICBwZXJtaXNzaW9uIHJl
cXVlc3QKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU4
MDI3CisKKyAgICAgICAgRG9uZSBpbiBjb29wZXJhdGlvbiB3aXRoIEpvaG4gS25vdHRlbmJlbHQg
PGprbm90dGVuQGNocm9taXVtLm9yZz4KKworICAgICAgICBJbiBmYXRhbEVycm9yT2NjdXJyZWQg
KHdoaWNoIGlzIGNhbGxlZCBvbiBjYW5jZWxsYXRpb24pLCB0aGUgbm90aWZpZXIKKyAgICAgICAg
d2FzIG5laXRoZXIgcmVtb3ZlZCBmcm9tIG1fcGVuZGluZ0ZvclBlcm1pc3Npb25Ob3RpZmllcnMg
bm9yCisgICAgICAgIG1fcmVxdWVzdHNBd2FpdGluZ0NhY2hlZFBvc2l0aW9uLiBUaGUgZm9ybWVy
IGlzIHVzZWQgb25seSB3aGVuCisgICAgICAgIFBSRUVNUFRfR0VPTE9DQVRJT05fUEVSTUlTU0lP
TiBpcyB1c2VkLgorCisgICAgICAgICogcGFnZS9HZW9sb2NhdGlvbi5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpHZW9sb2NhdGlvbjo6ZmF0YWxFcnJvck9jY3VycmVkKToKKwogMjAxMS0wNC0wNyAg
QWxpY2UgQm94aGFsbCAgPGFib3hoYWxsQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdl
ZCBieSBSeW9zdWtlIE5pd2EuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0dlb2xv
Y2F0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvR2VvbG9jYXRpb24uY3BwCmluZGV4IDJh
NDYzNWYuLjRmMzVlMTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvR2VvbG9jYXRp
b24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvR2VvbG9jYXRpb24uY3BwCkBAIC0zMzYs
NiArMzM2LDEwIEBAIHZvaWQgR2VvbG9jYXRpb246OmZhdGFsRXJyb3JPY2N1cnJlZChHZW9sb2Nh
dGlvbjo6R2VvTm90aWZpZXIqIG5vdGlmaWVyKQogICAgIC8vIFRoaXMgcmVxdWVzdCBoYXMgZmFp
bGVkIGZhdGFsbHkuIFJlbW92ZSBpdCBmcm9tIG91ciBsaXN0cy4KICAgICBtX29uZVNob3RzLnJl
bW92ZShub3RpZmllcik7CiAgICAgbV93YXRjaGVycy5yZW1vdmUobm90aWZpZXIpOworI2lmIFVT
RShQUkVFTVBUX0dFT0xPQ0FUSU9OX1BFUk1JU1NJT04pCisgICAgbV9wZW5kaW5nRm9yUGVybWlz
c2lvbk5vdGlmaWVycy5yZW1vdmUobm90aWZpZXIpOworI2VuZGlmCisgICAgbV9yZXF1ZXN0c0F3
YWl0aW5nQ2FjaGVkUG9zaXRpb24ucmVtb3ZlKG5vdGlmaWVyKTsKIAogICAgIGlmICghaGFzTGlz
dGVuZXJzKCkpCiAgICAgICAgIHN0b3BVcGRhdGluZygpOwotLSAKMS43LjEKCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>111130</attachid>
            <date>2011-10-15 02:11:51 -0700</date>
            <delta_ts>2011-10-16 02:23:57 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-58027-20111015101149.patch</filename>
            <type>text/plain</type>
            <size>1619</size>
            <attacher name="Satish Sampath">satish</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBjZWY4OTBjYjRmMjQ5OTJiZDFiZGY1OTE0NDEzMTM2N2I2MWEzNDYyLi5h
NDY5MjJkYmIxZTVhODFmNzc4YmRjODI2MWZkMWVhNGE1OWNhYjczIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTUgQEAKKzIwMTEtMTAtMTUgIFNhdGlzaCBTYW1wYXRoICA8c2F0aXNoQGNocm9taXVt
Lm9yZz4KKworICAgICAgICBBdm9pZCBsZWFraW5nIGRvY3VtZW50IHdoZW4gbGVhdmluZyBnb29n
bGUuY29tIGR1ZSB0byBnZW9sb2NhdGlvbgorICAgICAgICBwZXJtaXNzaW9uIHJlcXVlc3QuCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01ODAyNworCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogcGFnZS9HZW9s
b2NhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHZW9sb2NhdGlvbjo6cmVzZXQpOgorICAg
ICAgICAoV2ViQ29yZTo6R2VvbG9jYXRpb246OmZhdGFsRXJyb3JPY2N1cnJlZCk6CisKIDIwMTEt
MTAtMTQgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KIAogICAgICAgICBVcGRhdGUg
ZXhwZWN0ZWQgcmVzdWx0cy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvR2VvbG9j
YXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9HZW9sb2NhdGlvbi5jcHAKaW5kZXggMTlm
OWFjN2IwMGU4MDU1NTVhM2JhZjI4MmZiODUyYThlYjc0NjExZC4uNjVmYWQ4NjJjNzRkYmZiYjM2
ZjBhMWY0NThjYjc0M2QzMWEzNzNjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9H
ZW9sb2NhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9HZW9sb2NhdGlvbi5jcHAK
QEAgLTI1Myw2ICsyNTMsOSBAQCB2b2lkIEdlb2xvY2F0aW9uOjpyZXNldCgpCiAgICAgbV9hbGxv
d0dlb2xvY2F0aW9uID0gVW5rbm93bjsKICAgICBjYW5jZWxBbGxSZXF1ZXN0cygpOwogICAgIHN0
b3BVcGRhdGluZygpOworI2lmIFVTRShQUkVFTVBUX0dFT0xPQ0FUSU9OX1BFUk1JU1NJT04pCisg
ICAgbV9wZW5kaW5nRm9yUGVybWlzc2lvbk5vdGlmaWVycy5jbGVhcigpOworI2VuZGlmCiB9CiAK
IHZvaWQgR2VvbG9jYXRpb246OmRpc2Nvbm5lY3RGcmFtZSgpCkBAIC0zMzgsNiArMzQxLDkgQEAg
dm9pZCBHZW9sb2NhdGlvbjo6ZmF0YWxFcnJvck9jY3VycmVkKEdlb2xvY2F0aW9uOjpHZW9Ob3Rp
Zmllciogbm90aWZpZXIpCiAgICAgLy8gVGhpcyByZXF1ZXN0IGhhcyBmYWlsZWQgZmF0YWxseS4g
UmVtb3ZlIGl0IGZyb20gb3VyIGxpc3RzLgogICAgIG1fb25lU2hvdHMucmVtb3ZlKG5vdGlmaWVy
KTsKICAgICBtX3dhdGNoZXJzLnJlbW92ZShub3RpZmllcik7CisjaWYgVVNFKFBSRUVNUFRfR0VP
TE9DQVRJT05fUEVSTUlTU0lPTikKKyAgICBtX3BlbmRpbmdGb3JQZXJtaXNzaW9uTm90aWZpZXJz
LnJlbW92ZShub3RpZmllcik7CisjZW5kaWYKIAogICAgIGlmICghaGFzTGlzdGVuZXJzKCkpCiAg
ICAgICAgIHN0b3BVcGRhdGluZygpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>111178</attachid>
            <date>2011-10-16 02:24:03 -0700</date>
            <delta_ts>2011-10-16 14:15:19 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-58027-20111016102402.patch</filename>
            <type>text/plain</type>
            <size>2794</size>
            <attacher name="Satish Sampath">satish</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBjZWY4OTBjYjRmMjQ5OTJiZDFiZGY1OTE0NDEzMTM2N2I2MWEzNDYyLi43
NmRhNjEyN2VmNTdhMjg3NGY5NjA0NzM3ZGMzNWZjN2FjZDE5YWM0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTggQEAKKzIwMTEtMTAtMTUgIFNhdGlzaCBTYW1wYXRoICA8c2F0aXNoQGNocm9taXVt
Lm9yZz4KKworICAgICAgICBBdm9pZCBsZWFraW5nIGRvY3VtZW50IHdoZW4gbGVhdmluZyBnb29n
bGUuY29tIGR1ZSB0byBnZW9sb2NhdGlvbgorICAgICAgICBwZXJtaXNzaW9uIHJlcXVlc3QuCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01ODAyNworCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogcGFnZS9HZW9s
b2NhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHZW9sb2NhdGlvbjo6V2F0Y2hlcnM6Omdl
dCk6IGFkZGVkCisgICAgICAgIChXZWJDb3JlOjpHZW9sb2NhdGlvbjo6cmVzZXQpOiBjbGVhcmVk
IGFsbCBwZW5kaW5nIG5vdGlmaWVycy4KKyAgICAgICAgKFdlYkNvcmU6Okdlb2xvY2F0aW9uOjpj
bGVhcldhdGNoKTogcmVtb3ZlZCBmcm9tIHBlbmRpbmcgbm90aWZpZXIgc2V0LgorICAgICAgICAq
IHBhZ2UvR2VvbG9jYXRpb24uaDoKKyAgICAgICAgKFdlYkNvcmU6Okdlb2xvY2F0aW9uOjpXYXRj
aGVyczo6Z2V0KTogYWRkZWQKKwogMjAxMS0xMC0xNCAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3ZWJr
aXQub3JnPgogCiAgICAgICAgIFVwZGF0ZSBleHBlY3RlZCByZXN1bHRzLgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGFnZS9HZW9sb2NhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0dlb2xvY2F0aW9uLmNwcAppbmRleCAxOWY5YWM3YjAwZTgwNTU1NWEzYmFmMjgyZmI4NTJhOGVi
NzQ2MTFkLi5lMTdiMDJjNmEwYzE5MzFmYjMyNDdkMGNjZmRjMzNhZjExN2FiNjQ2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0dlb2xvY2F0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0dlb2xvY2F0aW9uLmNwcApAQCAtMTc1LDYgKzE3NSwxNSBAQCB2b2lkIEdlb2xv
Y2F0aW9uOjpXYXRjaGVyczo6c2V0KGludCBpZCwgUGFzc1JlZlB0cjxHZW9Ob3RpZmllcj4gcHJw
Tm90aWZpZXIpCiAgICAgbV9ub3RpZmllclRvSWRNYXAuc2V0KG5vdGlmaWVyLnJlbGVhc2UoKSwg
aWQpOwogfQogCitHZW9sb2NhdGlvbjo6R2VvTm90aWZpZXIqIEdlb2xvY2F0aW9uOjpXYXRjaGVy
czo6Z2V0KGludCBpZCkKK3sKKyAgICBBU1NFUlQoaWQgPiAwKTsKKyAgICBJZFRvTm90aWZpZXJN
YXA6Oml0ZXJhdG9yIGl0ZXIgPSBtX2lkVG9Ob3RpZmllck1hcC5maW5kKGlkKTsKKyAgICBpZiAo
aXRlciA9PSBtX2lkVG9Ob3RpZmllck1hcC5lbmQoKSkKKyAgICAgICAgcmV0dXJuIDA7CisgICAg
cmV0dXJuIGl0ZXItPnNlY29uZC5nZXQoKTsKK30KKwogdm9pZCBHZW9sb2NhdGlvbjo6V2F0Y2hl
cnM6OnJlbW92ZShpbnQgaWQpCiB7CiAgICAgQVNTRVJUKGlkID4gMCk7CkBAIC0yNTMsNiArMjYy
LDkgQEAgdm9pZCBHZW9sb2NhdGlvbjo6cmVzZXQoKQogICAgIG1fYWxsb3dHZW9sb2NhdGlvbiA9
IFVua25vd247CiAgICAgY2FuY2VsQWxsUmVxdWVzdHMoKTsKICAgICBzdG9wVXBkYXRpbmcoKTsK
KyNpZiBVU0UoUFJFRU1QVF9HRU9MT0NBVElPTl9QRVJNSVNTSU9OKQorICAgIG1fcGVuZGluZ0Zv
clBlcm1pc3Npb25Ob3RpZmllcnMuY2xlYXIoKTsKKyNlbmRpZgogfQogCiB2b2lkIEdlb2xvY2F0
aW9uOjpkaXNjb25uZWN0RnJhbWUoKQpAQCAtNDE4LDYgKzQzMCwxMSBAQCB2b2lkIEdlb2xvY2F0
aW9uOjpjbGVhcldhdGNoKGludCB3YXRjaElkKQogICAgIGlmICh3YXRjaElkIDwgZmlyc3RBdmFp
bGFibGVXYXRjaElkKQogICAgICAgICByZXR1cm47CiAKKyNpZiBVU0UoUFJFRU1QVF9HRU9MT0NB
VElPTl9QRVJNSVNTSU9OKQorICAgIEdlb05vdGlmaWVyKiBub3RpZmllciA9IG1fd2F0Y2hlcnMu
Z2V0KHdhdGNoSWQpOworICAgIGlmIChub3RpZmllcikKKyAgICAgICAgbV9wZW5kaW5nRm9yUGVy
bWlzc2lvbk5vdGlmaWVycy5yZW1vdmUobm90aWZpZXIpOworI2VuZGlmCiAgICAgbV93YXRjaGVy
cy5yZW1vdmUod2F0Y2hJZCk7CiAgICAgCiAgICAgaWYgKCFoYXNMaXN0ZW5lcnMoKSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvR2VvbG9jYXRpb24uaCBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvR2VvbG9jYXRpb24uaAppbmRleCAwNGI5MGRiZjQxNWMwNTUyMjg4ZWU3YTQ2NjIyZWJi
MmNjNzY1M2Y2Li4wZWE1YjE1MzEzZjg0YmRkZDE0MjRmMDUxODhlMGM4ZjNlZTI4ODIwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0dlb2xvY2F0aW9uLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9HZW9sb2NhdGlvbi5oCkBAIC0xMTMsNiArMTEzLDcgQEAgcHJpdmF0ZToKICAg
ICBjbGFzcyBXYXRjaGVycyB7CiAgICAgcHVibGljOgogICAgICAgICB2b2lkIHNldChpbnQgaWQs
IFBhc3NSZWZQdHI8R2VvTm90aWZpZXI+KTsKKyAgICAgICAgR2VvTm90aWZpZXIqIGdldChpbnQg
aWQpOwogICAgICAgICB2b2lkIHJlbW92ZShpbnQgaWQpOwogICAgICAgICB2b2lkIHJlbW92ZShH
ZW9Ob3RpZmllciopOwogICAgICAgICBib29sIGNvbnRhaW5zKEdlb05vdGlmaWVyKikgY29uc3Q7
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>111186</attachid>
            <date>2011-10-16 14:15:26 -0700</date>
            <delta_ts>2011-10-17 08:45:08 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-58027-20111016221524.patch</filename>
            <type>text/plain</type>
            <size>2808</size>
            <attacher name="Satish Sampath">satish</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA3Yjc3ODJlZDJlZmM4ZGY2YWFiZWZmMTc3MDQyN2QyZTVhNDU1ZjBiLi41
NjBlOWViMTMzYjIyYmQxOTFmYTE3YmNhODBkOTUwZmFjZjkwYjlkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTggQEAKKzIwMTEtMTAtMTUgIFNhdGlzaCBTYW1wYXRoICA8c2F0aXNoQGNocm9taXVt
Lm9yZz4KKworICAgICAgICBBdm9pZCBsZWFraW5nIGRvY3VtZW50IHdoZW4gbGVhdmluZyBnb29n
bGUuY29tIGR1ZSB0byBnZW9sb2NhdGlvbgorICAgICAgICBwZXJtaXNzaW9uIHJlcXVlc3QuCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01ODAyNworCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogcGFnZS9HZW9s
b2NhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHZW9sb2NhdGlvbjo6V2F0Y2hlcnM6OmZp
bmQpOiBhZGRlZAorICAgICAgICAoV2ViQ29yZTo6R2VvbG9jYXRpb246OnJlc2V0KTogY2xlYXJl
ZCBhbGwgcGVuZGluZyBub3RpZmllcnMuCisgICAgICAgIChXZWJDb3JlOjpHZW9sb2NhdGlvbjo6
Y2xlYXJXYXRjaCk6IHJlbW92ZWQgZnJvbSBwZW5kaW5nIG5vdGlmaWVyIHNldC4KKyAgICAgICAg
KiBwYWdlL0dlb2xvY2F0aW9uLmg6CisgICAgICAgIChXZWJDb3JlOjpHZW9sb2NhdGlvbjo6V2F0
Y2hlcnM6OmZpbmQpOiBhZGRlZAorCiAyMDExLTEwLTE2ICBEbWl0cnkgTG9tb3YgIDxkc2xvbW92
QGdvb2dsZS5jb20+CiAKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTcwMTg2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0dlb2xvY2F0aW9u
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvR2VvbG9jYXRpb24uY3BwCmluZGV4IDE5ZjlhYzdi
MDBlODA1NTU1YTNiYWYyODJmYjg1MmE4ZWI3NDYxMWQuLjFkYWVhNzQ0OTZlNjhjNTBjMTM2OGNj
MmQyOTRlMDdlMTk5Nzg4MDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvR2VvbG9j
YXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvR2VvbG9jYXRpb24uY3BwCkBAIC0x
NzUsNiArMTc1LDE1IEBAIHZvaWQgR2VvbG9jYXRpb246OldhdGNoZXJzOjpzZXQoaW50IGlkLCBQ
YXNzUmVmUHRyPEdlb05vdGlmaWVyPiBwcnBOb3RpZmllcikKICAgICBtX25vdGlmaWVyVG9JZE1h
cC5zZXQobm90aWZpZXIucmVsZWFzZSgpLCBpZCk7CiB9CiAKK0dlb2xvY2F0aW9uOjpHZW9Ob3Rp
ZmllciogR2VvbG9jYXRpb246OldhdGNoZXJzOjpmaW5kKGludCBpZCkKK3sKKyAgICBBU1NFUlQo
aWQgPiAwKTsKKyAgICBJZFRvTm90aWZpZXJNYXA6Oml0ZXJhdG9yIGl0ZXIgPSBtX2lkVG9Ob3Rp
Zmllck1hcC5maW5kKGlkKTsKKyAgICBpZiAoaXRlciA9PSBtX2lkVG9Ob3RpZmllck1hcC5lbmQo
KSkKKyAgICAgICAgcmV0dXJuIDA7CisgICAgcmV0dXJuIGl0ZXItPnNlY29uZC5nZXQoKTsKK30K
Kwogdm9pZCBHZW9sb2NhdGlvbjo6V2F0Y2hlcnM6OnJlbW92ZShpbnQgaWQpCiB7CiAgICAgQVNT
RVJUKGlkID4gMCk7CkBAIC0yNTMsNiArMjYyLDkgQEAgdm9pZCBHZW9sb2NhdGlvbjo6cmVzZXQo
KQogICAgIG1fYWxsb3dHZW9sb2NhdGlvbiA9IFVua25vd247CiAgICAgY2FuY2VsQWxsUmVxdWVz
dHMoKTsKICAgICBzdG9wVXBkYXRpbmcoKTsKKyNpZiBVU0UoUFJFRU1QVF9HRU9MT0NBVElPTl9Q
RVJNSVNTSU9OKQorICAgIG1fcGVuZGluZ0ZvclBlcm1pc3Npb25Ob3RpZmllcnMuY2xlYXIoKTsK
KyNlbmRpZgogfQogCiB2b2lkIEdlb2xvY2F0aW9uOjpkaXNjb25uZWN0RnJhbWUoKQpAQCAtNDE4
LDYgKzQzMCwxMCBAQCB2b2lkIEdlb2xvY2F0aW9uOjpjbGVhcldhdGNoKGludCB3YXRjaElkKQog
ICAgIGlmICh3YXRjaElkIDwgZmlyc3RBdmFpbGFibGVXYXRjaElkKQogICAgICAgICByZXR1cm47
CiAKKyNpZiBVU0UoUFJFRU1QVF9HRU9MT0NBVElPTl9QRVJNSVNTSU9OKQorICAgIGlmIChHZW9O
b3RpZmllciogbm90aWZpZXIgPSBtX3dhdGNoZXJzLmZpbmQod2F0Y2hJZCkpCisgICAgICAgIG1f
cGVuZGluZ0ZvclBlcm1pc3Npb25Ob3RpZmllcnMucmVtb3ZlKG5vdGlmaWVyKTsKKyNlbmRpZgog
ICAgIG1fd2F0Y2hlcnMucmVtb3ZlKHdhdGNoSWQpOwogICAgIAogICAgIGlmICghaGFzTGlzdGVu
ZXJzKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0dlb2xvY2F0aW9uLmggYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL0dlb2xvY2F0aW9uLmgKaW5kZXggMDRiOTBkYmY0MTVjMDU1MjI4
OGVlN2E0NjYyMmViYjJjYzc2NTNmNi4uYjI3ZDgwYjk4NjEzNjA0ZWZiMmQwY2JhOGE4ZjE0NjI4
OGI3NTlmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9HZW9sb2NhdGlvbi5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvR2VvbG9jYXRpb24uaApAQCAtMTEzLDYgKzExMyw3IEBA
IHByaXZhdGU6CiAgICAgY2xhc3MgV2F0Y2hlcnMgewogICAgIHB1YmxpYzoKICAgICAgICAgdm9p
ZCBzZXQoaW50IGlkLCBQYXNzUmVmUHRyPEdlb05vdGlmaWVyPik7CisgICAgICAgIEdlb05vdGlm
aWVyKiBmaW5kKGludCBpZCk7CiAgICAgICAgIHZvaWQgcmVtb3ZlKGludCBpZCk7CiAgICAgICAg
IHZvaWQgcmVtb3ZlKEdlb05vdGlmaWVyKik7CiAgICAgICAgIGJvb2wgY29udGFpbnMoR2VvTm90
aWZpZXIqKSBjb25zdDsK
</data>

          </attachment>
      

    </bug>

</bugzilla>