<?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>80165</bug_id>
          
          <creation_ts>2012-03-02 09:05:38 -0800</creation_ts>
          <short_desc>[Qt][WK2] Crash in Frame.cpp when loading index.hu</short_desc>
          <delta_ts>2012-03-06 09:58:06 -0800</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>All</rep_platform>
          <op_sys>Linux</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>Major</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>80294</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Andras Becsi">abecsi</reporter>
          <assigned_to name="Allan Sandfeld Jensen">allan.jensen</assigned_to>
          <cc>allan.jensen</cc>
    
    <cc>ap</cc>
    
    <cc>hausmann</cc>
    
    <cc>jturcotte</cc>
    
    <cc>kenneth</cc>
    
    <cc>manyoso</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>569686</commentid>
    <comment_count>0</comment_count>
    <who name="Andras Becsi">abecsi</who>
    <bug_when>2012-03-02 09:05:38 -0800</bug_when>
    <thetext>When loading the news site index.hu in Qt MiniBrowser the suspending code introduced in r109548 tries to call a methond on a null pointer in Source/WebCore/page/Frame.cpp:318.

0x00007ffff5042184 in WebCore::Frame::setDocument (this=0x1c0fd90, newDoc=...) at ../../../../Source/WebCore/page/Frame.cpp:318
318             document()-&gt;suspendScriptedAnimationControllerCallbacks();
(gdb) bt
#0  0x00007ffff5042184 in WebCore::Frame::setDocument (this=0x1c0fd90, newDoc=...) at ../../../../Source/WebCore/page/Frame.cpp:318
#1  0x00007ffff4f8919c in WebCore::FrameLoader::clear (this=0x1c0fe50, clearWindowProperties=true, clearScriptObjects=true, clearFrameView=true) at ../../../../Source/WebCore/loader/FrameLoader.cpp:548
#2  0x00007ffff4f82d8b in WebCore::DocumentWriter::begin (this=0x1c17050, urlReference=..., dispatch=false, ownerDocument=0x0) at ../../../../Source/WebCore/loader/DocumentWriter.cpp:128
#3  0x00007ffff4f89329 in WebCore::FrameLoader::receivedFirstData (this=0x1c0fe50) at ../../../../Source/WebCore/loader/FrameLoader.cpp:576
#4  0x00007ffff4f8b1ae in WebCore::FrameLoader::willSetEncoding (this=0x1c0fe50) at ../../../../Source/WebCore/loader/FrameLoader.cpp:989
#5  0x00007ffff4f8376c in WebCore::DocumentWriter::setEncoding (this=0x1c17050, name=..., userChosen=false) at ../../../../Source/WebCore/loader/DocumentWriter.cpp:239
#6  0x00007ffff4f774c1 in WebCore::DocumentLoader::commitData (this=0x1c16f30, 
    bytes=0x1580a78 &quot;&lt;html&gt;&lt;head&gt;&lt;title&gt;Edigital :: &lt;/title&gt;&lt;meta http-equiv=\&quot;Content-Type\&quot; content=\&quot;text/html; charset=UTF-8\&quot;&gt;\n&lt;!--[if lt IE 7]&gt;\n&lt;script language=\&quot;JavaScript\&quot;&gt;\nfunction correctPNG() // correctly handle PN&quot;..., length=4639) at ../../../../Source/WebCore/loader/DocumentLoader.cpp:325
#7  0x00007ffff47ecaf1 in WebKit::WebFrameLoaderClient::committedLoad (this=0x1c0f060, loader=0x1c16f30, 
    data=0x1580a78 &quot;&lt;html&gt;&lt;head&gt;&lt;title&gt;Edigital :: &lt;/title&gt;&lt;meta http-equiv=\&quot;Content-Type\&quot; content=\&quot;text/html; charset=UTF-8\&quot;&gt;\n&lt;!--[if lt IE 7]&gt;\n&lt;script language=\&quot;JavaScript\&quot;&gt;\nfunction correctPNG() // correctly handle PN&quot;..., length=4639) at ../../../../Source/WebKit2/WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:839
#8  0x00007ffff4f773e0 in WebCore::DocumentLoader::commitLoad (this=0x1c16f30, 
    data=0x1580a78 &quot;&lt;html&gt;&lt;head&gt;&lt;title&gt;Edigital :: &lt;/title&gt;&lt;meta http-equiv=\&quot;Content-Type\&quot; content=\&quot;text/html; charset=UTF-8\&quot;&gt;\n&lt;!--[if lt IE 7]&gt;\n&lt;script language=\&quot;JavaScript\&quot;&gt;\nfunction correctPNG() // correctly handle PN&quot;..., length=4639) at ../../../../Source/WebCore/loader/DocumentLoader.cpp:313
#9  0x00007ffff4f77612 in WebCore::DocumentLoader::receivedData (this=0x1c16f30, 
    data=0x1580a78 &quot;&lt;html&gt;&lt;head&gt;&lt;title&gt;Edigital :: &lt;/title&gt;&lt;meta http-equiv=\&quot;Content-Type\&quot; content=\&quot;text/html; charset=UTF-8\&quot;&gt;\n&lt;!--[if lt IE 7]&gt;\n&lt;script language=\&quot;JavaScript\&quot;&gt;\nfunction correctPNG() // correctly handle PN&quot;..., length=4639) at ../../../../Source/WebCore/loader/DocumentLoader.cpp:339
#10 0x00007ffff4fab7eb in WebCore::MainResourceLoader::addData (this=0x1c218a0, 
    data=0x1580a78 &quot;&lt;html&gt;&lt;head&gt;&lt;title&gt;Edigital :: &lt;/title&gt;&lt;meta http-equiv=\&quot;Content-Type\&quot; content=\&quot;text/html; charset=UTF-8\&quot;&gt;\n&lt;!--[if lt IE 7]&gt;\n&lt;script language=\&quot;JavaScript\&quot;&gt;\nfunction correctPNG() // correctly handle PN&quot;..., length=4639, allAtOnce=false) at ../../../../Source/WebCore/loader/MainResourceLoader.cpp:170
#11 0x00007ffff4fb9544 in WebCore::ResourceLoader::didReceiveData (this=0x1c218a0, 
    data=0x1580a78 &quot;&lt;html&gt;&lt;head&gt;&lt;title&gt;Edigital :: &lt;/title&gt;&lt;meta http-equiv=\&quot;Content-Type\&quot; content=\&quot;text/html; charset=UTF-8\&quot;&gt;\n&lt;!--[if lt IE 7]&gt;\n&lt;script language=\&quot;JavaScript\&quot;&gt;\nfunction correctPNG() // correctly handle PN&quot;..., length=4639, encodedDataLength=-1, allAtOnce=false) at ../../../../Source/WebCore/loader/ResourceLoader.cpp:287
#12 0x00007ffff4fad03d in WebCore::MainResourceLoader::didReceiveData (this=0x1c218a0, 
    data=0x1580a78 &quot;&lt;html&gt;&lt;head&gt;&lt;title&gt;Edigital :: &lt;/title&gt;&lt;meta http-equiv=\&quot;Content-Type\&quot; content=\&quot;text/html; charset=UTF-8\&quot;&gt;\n&lt;!--[if lt IE 7]&gt;\n&lt;script language=\&quot;JavaScript\&quot;&gt;\nfunction correctPNG() // correctly handle PN&quot;..., length=4639, encodedDataLength=-1, allAtOnce=false) at ../../../../Source/WebCore/loader/MainResourceLoader.cpp:464
#13 0x00007ffff4fb9ecd in WebCore::ResourceLoader::didReceiveData (this=0x1c218a0, 
    data=0x1580a78 &quot;&lt;html&gt;&lt;head&gt;&lt;title&gt;Edigital :: &lt;/title&gt;&lt;meta http-equiv=\&quot;Content-Type\&quot; content=\&quot;text/html; charset=UTF-8\&quot;&gt;\n&lt;!--[if lt IE 7]&gt;\n&lt;script language=\&quot;JavaScript\&quot;&gt;\nfunction correctPNG() // correctly handle PN&quot;..., length=4639, encodedDataLength=-1) at ../../../../Source/WebCore/loader/ResourceLoader.cpp:441
#14 0x00007ffff53c487e in WebCore::QNetworkReplyHandler::forwardData (this=0x1c203e0) at ../../../../Source/WebCore/platform/network/qt/QNetworkReplyHandler.cpp:569
#15 0x00007ffff53c1b93 in WebCore::QNetworkReplyHandlerCallQueue::flush (this=0x1c20418) at ../../../../Source/WebCore/platform/network/qt/QNetworkReplyHandler.cpp:196
...


Null-checking document() before suspending naturally fixes the above issue but the same page ASSERTs in Source/WebCore/xml/XMLHttpRequestProgressEventThrottle.cpp:74 ASSERT(!suspended()) as soon as you start interacting with it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>569866</commentid>
    <comment_count>1</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-03-02 13:04:46 -0800</bug_when>
    <thetext>I cannot reproduce this in Safari (ToT WebKit). What does Qt do differently here?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>570561</commentid>
    <comment_count>2</comment_count>
    <who name="Andras Becsi">abecsi</who>
    <bug_when>2012-03-05 03:59:34 -0800</bug_when>
    <thetext>(In reply to comment #1)
&gt; I cannot reproduce this in Safari (ToT WebKit). What does Qt do differently here?

I still see the crash in the web process with ToT WebKit and Qt MiniBrowser, so I&apos;ll mark this as a Qt specific bug.
Judging from the stacktrace the bug could originate in the Qt networking stack.
CCing people who might know what&apos;s going on here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>570627</commentid>
    <comment_count>3</comment_count>
    <who name="Allan Sandfeld Jensen">allan.jensen</who>
    <bug_when>2012-03-05 06:28:33 -0800</bug_when>
    <thetext>This is apparently two different issues. The first one is a missing guard for m_doc in Frame::setDocument. 

The problem in XMLHttpRequest is deeper. The problem is the threaded loader can not be suspended, and this means progress events can still be emitted while the XMLHttpRequest object is suspended. XMLHttpRequest will set canSuspend() to false in this case, but that does not guarantee that it will not be asked to suspend anyway in some cases (for pageCache for instance).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>570643</commentid>
    <comment_count>4</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2012-03-05 06:48:45 -0800</bug_when>
    <thetext>so how did we end up with suspended frames while loading? Is it normal to see suspendActiveDOMObjectsAndAnimations() calls at this phase of constructing a page?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>570664</commentid>
    <comment_count>5</comment_count>
    <who name="Allan Sandfeld Jensen">allan.jensen</who>
    <bug_when>2012-03-05 07:09:53 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; so how did we end up with suspended frames while loading? Is it normal to see suspendActiveDOMObjectsAndAnimations() calls at this phase of constructing a page?

No, but if the page is loading continuously via xmlhttprequest, then it is inevitable we will end up with a suspended frame during a pan while a xmlhttprequest is running.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>570670</commentid>
    <comment_count>6</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2012-03-05 07:21:25 -0800</bug_when>
    <thetext>(In reply to comment #5)
&gt; (In reply to comment #4)
&gt; &gt; so how did we end up with suspended frames while loading? Is it normal to see suspendActiveDOMObjectsAndAnimations() calls at this phase of constructing a page?
&gt; 
&gt; No, but if the page is loading continuously via xmlhttprequest, then it is inevitable we will end up with a suspended frame during a pan while a xmlhttprequest is running.

I can repro crash without any page interaction (panning, zooming) by just simply loading the page.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>570694</commentid>
    <comment_count>7</comment_count>
    <who name="Allan Sandfeld Jensen">allan.jensen</who>
    <bug_when>2012-03-05 07:53:37 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; (In reply to comment #5)
&gt; &gt; (In reply to comment #4)
&gt; &gt; &gt; so how did we end up with suspended frames while loading? Is it normal to see suspendActiveDOMObjectsAndAnimations() calls at this phase of constructing a page?
&gt; &gt; 
&gt; &gt; No, but if the page is loading continuously via xmlhttprequest, then it is inevitable we will end up with a suspended frame during a pan while a xmlhttprequest is running.
&gt; 
&gt; I can repro crash without any page interaction (panning, zooming) by just simply loading the page.

I meant the second assertion we are seeing after guarding m_doc is triggered by page interaction.

You are right though, the first one crash is actually a bit odd. It is a unset document call so probably during a redirection or reload of something in the page, but there still shouldn&apos;t be any calls suspending active-dom-objects before the users starts interacting with the page. 

It could be that flickable is interpreting some reported state-changes from the WebProcess as a user-input and starts animating them.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>570705</commentid>
    <comment_count>8</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2012-03-05 08:05:25 -0800</bug_when>
    <thetext>(In reply to comment #7)
&gt; (In reply to comment #6)
&gt; &gt; (In reply to comment #5)
&gt; &gt; &gt; (In reply to comment #4)
&gt; &gt; &gt; &gt; so how did we end up with suspended frames while loading? Is it normal to see suspendActiveDOMObjectsAndAnimations() calls at this phase of constructing a page?
&gt; &gt; &gt; 
&gt; &gt; &gt; No, but if the page is loading continuously via xmlhttprequest, then it is inevitable we will end up with a suspended frame during a pan while a xmlhttprequest is running.
&gt; &gt; 
&gt; &gt; I can repro crash without any page interaction (panning, zooming) by just simply loading the page.
&gt; 
&gt; I meant the second assertion we are seeing after guarding m_doc is triggered by page interaction.
&gt; 
&gt; You are right though, the first one crash is actually a bit odd. It is a unset document call so probably during a redirection or reload of something in the page, but there still shouldn&apos;t be any calls suspending active-dom-objects before the users starts interacting with the page. 
&gt; 
&gt; It could be that flickable is interpreting some reported state-changes from the WebProcess as a user-input and starts animating them.

Yea, could very well be. Before the if (document()) check is added (which seems to be checked everywhere in setDocument, so having null m_doc looks like a valid state), we should see why the suspend is triggered in this case. Having DOM objects suspended while loading (and resumed at some point) could potentially make complete load time longer. (so i guess in that sense, it&apos;s good that we&apos;ve got this crash, otherwise it would have gone unnoticed)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>570752</commentid>
    <comment_count>9</comment_count>
      <attachid>130148</attachid>
    <who name="Allan Sandfeld Jensen">allan.jensen</who>
    <bug_when>2012-03-05 09:03:43 -0800</bug_when>
    <thetext>Created attachment 130148
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>570754</commentid>
    <comment_count>10</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2012-03-05 09:07:47 -0800</bug_when>
    <thetext>lgtm</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>570755</commentid>
    <comment_count>11</comment_count>
    <who name="Allan Sandfeld Jensen">allan.jensen</who>
    <bug_when>2012-03-05 09:09:29 -0800</bug_when>
    <thetext>Finally for the problem in XMLHttpRequestProgressEventThrottle.cpp, something like the following solves the problem:

void XMLHttpRequestProgressEventThrottle::dispatchEvent(PassRefPtr&lt;Event&gt; ..
 {
-    ASSERT(!suspended());
+    if (suspended()) {
+        // Discard the current stored event and only store the latest.
+        m_pausedEvent = event;
+        return;
+    }


The problem though is that this still loses progress events that the xmlhttprequest can emit while suspended. I can imagine cases where that might be a problem, though all regression-tests complete successfully.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>570779</commentid>
    <comment_count>12</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-03-05 09:34:54 -0800</bug_when>
    <thetext>So the explanation of why this doesn&apos;t crash on Mac is that this is new Qt-only code, added in r109548.

Please use a separate bug for the XMLHttpRequest issue. It seems possible that the concept of &quot;suspend&quot; introduced in r109548 is just not appropriate for WebKit though.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>570786</commentid>
    <comment_count>13</comment_count>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2012-03-05 09:41:53 -0800</bug_when>
    <thetext>(In reply to comment #12)
&gt; So the explanation of why this doesn&apos;t crash on Mac is that this is new Qt-only code, added in r109548.
&gt; 
&gt; Please use a separate bug for the XMLHttpRequest issue. It seems possible that the concept of &quot;suspend&quot; introduced in r109548 is just not appropriate for WebKit though.

Yes.

We&apos;ve ran into this before, and advised in the original bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>570796</commentid>
    <comment_count>14</comment_count>
      <attachid>130148</attachid>
    <who name="Alexis Menard (darktears)">menard</who>
    <bug_when>2012-03-05 09:53:09 -0800</bug_when>
    <thetext>Comment on attachment 130148
Patch

Possible to write a test case for it?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>570984</commentid>
    <comment_count>15</comment_count>
    <who name="Allan Sandfeld Jensen">allan.jensen</who>
    <bug_when>2012-03-05 13:12:01 -0800</bug_when>
    <thetext>(In reply to comment #13)
&gt; (In reply to comment #12)
&gt; &gt; So the explanation of why this doesn&apos;t crash on Mac is that this is new Qt-only code, added in r109548.
&gt; &gt; 
&gt; &gt; Please use a separate bug for the XMLHttpRequest issue. It seems possible that the concept of &quot;suspend&quot; introduced in r109548 is just not appropriate for WebKit though.
&gt; 
&gt; Yes.
&gt; 
&gt; We&apos;ve ran into this before, and advised in the original bug.

That makes no sense. The bugs encountered here are independent of the new &quot;type&quot; of suspend, and existed with the existing suspend code. It was just harder to reproduce before and not triggered as often. So if nothing else this is exposing a range of tricky suspend bugs so they can be more easily fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>571024</commentid>
    <comment_count>16</comment_count>
      <attachid>130148</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-03-05 14:00:12 -0800</bug_when>
    <thetext>Comment on attachment 130148
Patch

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

&gt; Source/WebCore/page/Frame.cpp:-320
&gt; +        m_doc-&gt;suspendScriptedAnimationControllerCallbacks();
&gt;          animation()-&gt;suspendAnimationsForDocument(document());
&gt; -        document()-&gt;suspendActiveDOMObjects(ActiveDOMObject::PageWillBeSuspended);

One line uses document() (the line unchanged) others use m_doc, isn&apos;t it inline anyway?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>571031</commentid>
    <comment_count>17</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-03-05 14:08:48 -0800</bug_when>
    <thetext>The preferred style is to use a member variable directly, not an accessor function.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>571065</commentid>
    <comment_count>18</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-03-05 14:49:25 -0800</bug_when>
    <thetext>(In reply to comment #17)
&gt; The preferred style is to use a member variable directly, not an accessor function.

OK, good to know. Then we should change it for the 
    animation()-&gt;suspendAnimationsForDocument(document());
line as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>571816</commentid>
    <comment_count>19</comment_count>
      <attachid>130374</attachid>
    <who name="Allan Sandfeld Jensen">allan.jensen</who>
    <bug_when>2012-03-06 07:02:41 -0800</bug_when>
    <thetext>Created attachment 130374
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>571935</commentid>
    <comment_count>20</comment_count>
      <attachid>130374</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-06 09:58:01 -0800</bug_when>
    <thetext>Comment on attachment 130374
Patch

Clearing flags on attachment: 130374

Committed r109931: &lt;http://trac.webkit.org/changeset/109931&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>571936</commentid>
    <comment_count>21</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-06 09:58:06 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>130148</attachid>
            <date>2012-03-05 09:03:43 -0800</date>
            <delta_ts>2012-03-06 07:02:33 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>Patch1</filename>
            <type>text/plain</type>
            <size>1565</size>
            <attacher name="Allan Sandfeld Jensen">allan.jensen</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBhOGE1YTJjLi4yN2FiMWJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYg
QEAKKzIwMTItMDMtMDUgIEFsbGFuIFNhbmRmZWxkIEplbnNlbiAgPGFsbGFuLmplbnNlbkBub2tp
YS5jb20+CisKKyAgICAgICAgW1F0XVtXSzJdIENyYXNoIGluIEZyYW1lLmNwcCB3aGVuIGxvYWRp
bmcgaW5kZXguaHUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTgwMTY1CisKKyAgICAgICAgR3VhcmQgYWdhaW5zdCBwb3NzaWJsZSBudWxsIGRvY3VtZW50
LCB3aGljaCBjYW4gaGFwcGVuCisgICAgICAgIHdoZW4gdW5zZXR0aW5nIGEgZG9jdW1lbnQgaW4g
YSBmcmFtZS4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAqIHBhZ2UvRnJhbWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWU6OnNldERvY3VtZW50
KToKKwogMjAxMi0wMy0wNSAgQWxleGFuZGVyIFBhdmxvdiAgPGFwYXZsb3ZAY2hyb21pdW0ub3Jn
PgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IEluY29ycmVjdCBhcHByb3ByaWF0ZVNlbGVjdG9y
Rm9yKCkgc3VnZ2VzdGlvbiBmb3Igd2hlbiBhIERPTU5vZGUgaGFzIG1vcmUgdGhhbiAyIENTUyBj
bGFzc2VzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRnJhbWUuY3BwCmluZGV4IGQ4MWUzYjcuLjdkYWVmYzcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRnJhbWUuY3BwCkBAIC0zMTQsMTAgKzMxNCwxMCBAQCB2b2lkIEZyYW1lOjpzZXREb2N1bWVu
dChQYXNzUmVmUHRyPERvY3VtZW50PiBuZXdEb2MpCiAgICAgfQogCiAgICAgLy8gU3VzcGVuZCBk
b2N1bWVudCBpZiB0aGlzIGZyYW1lIHdhcyBjcmVhdGVkIGluIHN1c3BlbmRlZCBzdGF0ZS4KLSAg
ICBpZiAoYWN0aXZlRE9NT2JqZWN0c0FuZEFuaW1hdGlvbnNTdXNwZW5kZWQoKSkgewotICAgICAg
ICBkb2N1bWVudCgpLT5zdXNwZW5kU2NyaXB0ZWRBbmltYXRpb25Db250cm9sbGVyQ2FsbGJhY2tz
KCk7CisgICAgaWYgKG1fZG9jICYmIGFjdGl2ZURPTU9iamVjdHNBbmRBbmltYXRpb25zU3VzcGVu
ZGVkKCkpIHsKKyAgICAgICAgbV9kb2MtPnN1c3BlbmRTY3JpcHRlZEFuaW1hdGlvbkNvbnRyb2xs
ZXJDYWxsYmFja3MoKTsKICAgICAgICAgYW5pbWF0aW9uKCktPnN1c3BlbmRBbmltYXRpb25zRm9y
RG9jdW1lbnQoZG9jdW1lbnQoKSk7Ci0gICAgICAgIGRvY3VtZW50KCktPnN1c3BlbmRBY3RpdmVE
T01PYmplY3RzKEFjdGl2ZURPTU9iamVjdDo6UGFnZVdpbGxCZVN1c3BlbmRlZCk7CisgICAgICAg
IG1fZG9jLT5zdXNwZW5kQWN0aXZlRE9NT2JqZWN0cyhBY3RpdmVET01PYmplY3Q6OlBhZ2VXaWxs
QmVTdXNwZW5kZWQpOwogICAgIH0KIH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>130374</attachid>
            <date>2012-03-06 07:02:41 -0800</date>
            <delta_ts>2012-03-06 09:58:01 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-80165-20120306160239.patch</filename>
            <type>text/plain</type>
            <size>1752</size>
            <attacher name="Allan Sandfeld Jensen">allan.jensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA5OTE0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDY4NDg5NmE4NmViMTVi
MzQ0YWRkMDkwYjVlNDBkOGRhM2YzZjQ3Ni4uMjIzZGNkMDJiN2Q3N2FhZDgyMDIyMTI1MjlhMDlj
Njk1ZjM3NTRiOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDEyLTAzLTA2ICBBbGxh
biBTYW5kZmVsZCBKZW5zZW4gIDxhbGxhbi5qZW5zZW5Abm9raWEuY29tPgorCisgICAgICAgIFtR
dF1bV0syXSBDcmFzaCBpbiBGcmFtZS5jcHAgd2hlbiBsb2FkaW5nIGluZGV4Lmh1CisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04MDE2NQorCisgICAgICAg
IEd1YXJkIGFnYWluc3QgcG9zc2libGUgbnVsbCBkb2N1bWVudCwgd2hpY2ggY2FuIGhhcHBlbgor
ICAgICAgICB3aGVuIHVuc2V0dGluZyBhIGRvY3VtZW50IGluIGEgZnJhbWUuCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBwYWdlL0ZyYW1lLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkZyYW1lOjpzZXREb2N1bWVudCk6CisKIDIwMTItMDMtMDYgIEFs
ZXhhbmRlciBGw6Zyw7h5ICA8YWxleGFuZGVyLmZhZXJveUBub2tpYS5jb20+CiAKICAgICAgICAg
UmVuYW1lIG1fdGlsZUNyZWF0aW9uVGltZXIgaW4gdGhlIHRpbGVkIGJhY2tpbmcgc3RvcmUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9GcmFtZS5jcHAKaW5kZXggZDgxZTNiNzQ4MWQyZWU0N2MxZWNhZjBlYjRmYmViOWZlYTUy
YjI0NS4uYWQ5Y2FiOGU5ZDEzYTFmNWJiNzU4MzE3YmJjNzk2MjNjYmU2YWM0MCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9GcmFtZS5jcHAKQEAgLTMxNCwxMCArMzE0LDEwIEBAIHZvaWQgRnJhbWU6OnNldERvY3VtZW50
KFBhc3NSZWZQdHI8RG9jdW1lbnQ+IG5ld0RvYykKICAgICB9CiAKICAgICAvLyBTdXNwZW5kIGRv
Y3VtZW50IGlmIHRoaXMgZnJhbWUgd2FzIGNyZWF0ZWQgaW4gc3VzcGVuZGVkIHN0YXRlLgotICAg
IGlmIChhY3RpdmVET01PYmplY3RzQW5kQW5pbWF0aW9uc1N1c3BlbmRlZCgpKSB7Ci0gICAgICAg
IGRvY3VtZW50KCktPnN1c3BlbmRTY3JpcHRlZEFuaW1hdGlvbkNvbnRyb2xsZXJDYWxsYmFja3Mo
KTsKLSAgICAgICAgYW5pbWF0aW9uKCktPnN1c3BlbmRBbmltYXRpb25zRm9yRG9jdW1lbnQoZG9j
dW1lbnQoKSk7Ci0gICAgICAgIGRvY3VtZW50KCktPnN1c3BlbmRBY3RpdmVET01PYmplY3RzKEFj
dGl2ZURPTU9iamVjdDo6UGFnZVdpbGxCZVN1c3BlbmRlZCk7CisgICAgaWYgKG1fZG9jICYmIGFj
dGl2ZURPTU9iamVjdHNBbmRBbmltYXRpb25zU3VzcGVuZGVkKCkpIHsKKyAgICAgICAgbV9kb2Mt
PnN1c3BlbmRTY3JpcHRlZEFuaW1hdGlvbkNvbnRyb2xsZXJDYWxsYmFja3MoKTsKKyAgICAgICAg
bV9hbmltYXRpb25Db250cm9sbGVyLnN1c3BlbmRBbmltYXRpb25zRm9yRG9jdW1lbnQobV9kb2Mu
Z2V0KCkpOworICAgICAgICBtX2RvYy0+c3VzcGVuZEFjdGl2ZURPTU9iamVjdHMoQWN0aXZlRE9N
T2JqZWN0OjpQYWdlV2lsbEJlU3VzcGVuZGVkKTsKICAgICB9CiB9CiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>