<?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>51934</bug_id>
          
          <creation_ts>2011-01-05 10:52:30 -0800</creation_ts>
          <short_desc>[Qt] QtWebKit crashes when using XMLHttpRequest from the unload event</short_desc>
          <delta_ts>2011-01-08 18:29:51 -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>Page Loading</component>
          <version>528+ (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>Qt, QtTriaged</keywords>
          <priority>P1</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Yael">yael</reporter>
          <assigned_to name="Benjamin Poulain">benjamin</assigned_to>
          <cc>benjamin</cc>
    
    <cc>commit-queue</cc>
    
    <cc>jturcotte</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>329655</commentid>
    <comment_count>0</comment_count>
    <who name="Yael">yael</who>
    <bug_when>2011-01-05 10:52:30 -0800</bug_when>
    <thetext>To reproduce the crash, open QtTestBrowser, load www.orbitz.com and close QtTestBrowser.
www.orbitz.com sends XMLHTTPRequest during the unload event and that is causing the crash. 


callstack:
0	QObject::thread	qobject.cpp	1387	0x04482945	
1	WebCore::QtNetworkReplyThreadSafeProxy::QtNetworkReplyThreadSafeProxy	QtNAMThreadSafeProxy.cpp	80	0x01e49fff	
2	WebCore::QNetworkReplyHandler::start	QNetworkReplyHandler.cpp	509	0x01e5098b	
3	WebCore::QNetworkReplyHandler::QNetworkReplyHandler	QNetworkReplyHandler.cpp	227	0x01e4eaa3	
4	WebCore::ResourceHandle::start	ResourceHandleQt.cpp	138	0x01e47809	
5	WebCore::ResourceHandle::create	ResourceHandle.cpp	70	0x01c512a4	
6	WebCore::ResourceLoader::start	ResourceLoader.cpp	163	0x01b18635	
7	WebCore::ResourceLoadScheduler::servePendingRequests	ResourceLoadScheduler.cpp	199	0x01b1b6c6	
8	WebCore::ResourceLoadScheduler::scheduleLoad	ResourceLoadScheduler.cpp	122	0x01b1b0a9	
9	WebCore::ResourceLoadScheduler::scheduleSubresourceLoad	ResourceLoadScheduler.cpp	90	0x01b1add6	
10	WebCore::DocumentThreadableLoader::loadRequest	DocumentThreadableLoader.cpp	323	0x01ae41f0	
11	WebCore::DocumentThreadableLoader::DocumentThreadableLoader	DocumentThreadableLoader.cpp	76	0x01ae2109	
12	WebCore::DocumentThreadableLoader::create	DocumentThreadableLoader.cpp	59	0x01ae185b	
13	WebCore::ThreadableLoader::create	ThreadableLoader.cpp	54	0x01b26734	
14	WebCore::XMLHttpRequest::createRequest	XMLHttpRequest.cpp	663	0x01e05335	
15	WebCore::XMLHttpRequest::send	XMLHttpRequest.cpp	543	0x01e04866	
16	WebCore::JSXMLHttpRequest::send	JSXMLHttpRequestCustom.cpp	132	0x01636136	
17	WebCore::jsXMLHttpRequestPrototypeFunctionSend	JSXMLHttpRequest.cpp	486	0x0152d35a	
18	??		0	0x08047c66	
19	JSC::JITCode::execute(JSC::RegisterFile*, JSC::ExecState*, JSC::JSGlobalData*)	/home/yael/webkit/ws1/WebKitBuild/Debug/bin/../lib/libQtWebKit.so.4	0	0x02195520	
20	JSC::Interpreter::executeCall	Interpreter.cpp	849	0x0219279a	
21	JSC::call	CallData.cpp	38	0x021bc8d6	
22	WebCore::JSMainThreadExecState::call	JSMainThreadExecState.h	48	0x015eb02a	
23	WebCore::JSEventListener::handleEvent	JSEventListener.cpp	124	0x0161dd81	
24	WebCore::EventTarget::fireEventListeners	EventTarget.cpp	342	0x0180c084	
25	WebCore::EventTarget::fireEventListeners	EventTarget.cpp	311	0x0180bf0b	
26	WebCore::DOMWindow::dispatchEvent	DOMWindow.cpp	1549	0x01b612d3	
27	WebCore::FrameLoader::stopLoading	FrameLoader.cpp	394	0x01aec33d	
28	WebCore::FrameLoader::closeURL	FrameLoader.cpp	466	0x01aec794	
29	WebCore::FrameLoader::detachFromParent	FrameLoader.cpp	2558	0x01af669f	
30	QWebPage::~QWebPage	qwebpage.cpp	1942	0x01eb7ced	
31	WebPage::~WebPage	webpage.h	44	0x0807cacc	
32	QObjectPrivate::deleteChildren	qobject.cpp	1949	0x04483796	
33	QWidget::~QWidget	qwidget.cpp	1589	0x037dd046	
34	QMainWindow::~QMainWindow	qmainwindow.cpp	329	0x03cb5bc1	
35	MainWindow::~MainWindow	mainwindow.h	41	0x0806f09a	
36	LauncherWindow::~LauncherWindow	launcherwindow.cpp	59	0x08067ddb	
37	qDeleteInEventHandler	qobject.cpp	3980	0x04487af4	
38	QObject::event	qobject.cpp	1194	0x044824e2	
39	QWidget::event	qwidget.cpp	8646	0x037efc20	
40	QMainWindow::event	qmainwindow.cpp	1417	0x03cb7e03	
41	QApplicationPrivate::notify_helper	qapplication.cpp	4396	0x037817b6	
42	QApplication::notify	qapplication.cpp	4361	0x03781622	
43	QCoreApplication::notifyInternal	qcoreapplication.cpp	732	0x0446962f	
44	QCoreApplication::sendEvent	qcoreapplication.h	215	0x0806e631	
45	QCoreApplicationPrivate::sendPostedEvents	qcoreapplication.cpp	1373	0x0446a6f9	
46	QCoreApplication::sendPostedEvents	qcoreapplication.cpp	1266	0x0446a3b1	
47	QCoreApplication::sendPostedEvents	qcoreapplication.h	220	0x0384fea2	
48	postEventSourceDispatch	qeventdispatcher_glib.cpp	277	0x044a22e0	
49	g_main_context_dispatch	/lib/libglib-2.0.so.0	0	0x0534f5e5	
50	??	/lib/libglib-2.0.so.0	0	0x053532d8	
51	g_main_context_iteration	/lib/libglib-2.0.so.0	0	0x053534b8	
52	QEventDispatcherGlib::processEvents	qeventdispatcher_glib.cpp	415	0x044a3312	
53	QGuiEventDispatcherGlib::processEvents	qguieventdispatcher_glib.cpp	204	0x0385c5fe	
54	QEventLoop::processEvents	qeventloop.cpp	149	0x044669ef	
55	QEventLoop::exec	qeventloop.cpp	201	0x04466b34	
56	QCoreApplication::exec	qcoreapplication.cpp	1009	0x04469d21	
57	QApplication::exec	qapplication.cpp	3672	0x0377ec50	
58	launcherMain	main.cpp	41	0x080707ff	
59	main	main.cpp	255	0x0807293f</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>331199</commentid>
    <comment_count>1</comment_count>
      <attachid>78311</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2011-01-08 09:07:14 -0800</bug_when>
    <thetext>Created attachment 78311
Test case

Reduction.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>331210</commentid>
    <comment_count>2</comment_count>
      <attachid>78315</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2011-01-08 10:02:10 -0800</bug_when>
    <thetext>Created attachment 78315
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>331211</commentid>
    <comment_count>3</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2011-01-08 10:02:56 -0800</bug_when>
    <thetext>It is not as bad as I thought. It is just a little but in QtTestBrowser, not an issue with WebKit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>331213</commentid>
    <comment_count>4</comment_count>
      <attachid>78315</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2011-01-08 10:06:54 -0800</bug_when>
    <thetext>Comment on attachment 78315
Patch

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

&gt; Tools/ChangeLog:12
&gt; +        When accessing the network from the destructor of QWebPage, the network access manager
&gt; +        was already deleted because the object WebPage was already destructed.
&gt; +
&gt; +        This solve the problem by linking the lifetime of the object to the web page. The object
&gt; +        is now destructed in the destructor of QObject.

This is a bit confusing... when you say &quot;web page&quot; it is hard to know wether you refer to QWebPage or WebPage.

&gt; Tools/QtTestBrowser/webpage.cpp:131
&gt; -        m_qnamThread.reset(new QtNAMThread);
&gt; +        if (!m_qnamThread)
&gt; +            m_qnamThread = new QtNAMThread(this);

Wouldn&apos;t it be easier to keep the QScopedPointer and just check !m_quamThread-&gt;data() or so?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>331214</commentid>
    <comment_count>5</comment_count>
      <attachid>78317</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2011-01-08 10:12:46 -0800</bug_when>
    <thetext>Created attachment 78317
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>331215</commentid>
    <comment_count>6</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2011-01-08 10:15:29 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; &gt; +        This solve the problem by linking the lifetime of the object to the web page. The object
&gt; &gt; +        is now destructed in the destructor of QObject.
&gt; 
&gt; This is a bit confusing... when you say &quot;web page&quot; it is hard to know wether you refer to QWebPage or WebPage.

Funny, I had the feeling the changelog wasn&apos;t great but couldn&apos;t find what is the problem. Is it better now?

 
&gt; &gt; Tools/QtTestBrowser/webpage.cpp:131
&gt; &gt; -        m_qnamThread.reset(new QtNAMThread);
&gt; &gt; +        if (!m_qnamThread)
&gt; &gt; +            m_qnamThread = new QtNAMThread(this);
&gt; 
&gt; Wouldn&apos;t it be easier to keep the QScopedPointer and just check !m_quamThread-&gt;data() or so?

QScopedPointer is the problem. Because they exist in WebPage. The order of destructor is: WebPage-&gt;QWebPage-&gt;QObject. If you destroy the qnam in WebPage, you have problems when accessing it in QWebPage.

I could use QWeakPointer, but I don&apos;t think that would improve anything here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>331216</commentid>
    <comment_count>7</comment_count>
      <attachid>78317</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2011-01-08 10:23:00 -0800</bug_when>
    <thetext>Comment on attachment 78317
Patch

Why does QWebPage need to access it in its destructor? It seems that the nam is already set to 0 then: setNetworkAccessManager(0); in the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>331217</commentid>
    <comment_count>8</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2011-01-08 10:26:41 -0800</bug_when>
    <thetext>(In reply to comment #7)
&gt; (From update of attachment 78317 [details])
&gt; Why does QWebPage need to access it in its destructor?

Look at the backtrace from Yael or at the test case. It is simply that the page send some XHR in response to the unload event.

&gt; It seems that the nam is already set to 0 then: setNetworkAccessManager(0); in the patch

It is set to 0 when you call 
WebPage::setQnamThreaded(false).
I am pretty sure that cannot work but it was in the original code so I kept the logic.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>331241</commentid>
    <comment_count>9</comment_count>
    <who name="Yael">yael</who>
    <bug_when>2011-01-08 11:51:41 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; It is not as bad as I thought. It is just a little but in QtTestBrowser, not an issue with WebKit.

I am glad to hear that. Thanks for fixing it anyways.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>331344</commentid>
    <comment_count>10</comment_count>
      <attachid>78317</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-01-08 18:29:44 -0800</bug_when>
    <thetext>Comment on attachment 78317
Patch

Clearing flags on attachment: 78317

Committed r75340: &lt;http://trac.webkit.org/changeset/75340&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>331345</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-01-08 18:29:51 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>78311</attachid>
            <date>2011-01-08 09:07:14 -0800</date>
            <delta_ts>2011-01-08 09:07:14 -0800</delta_ts>
            <desc>Test case</desc>
            <filename>index.html</filename>
            <type>text/html</type>
            <size>425</size>
            <attacher name="Benjamin Poulain">benjamin</attacher>
            
              <data encoding="base64">PGh0bWw+CiAgPGhlYWQ+CiAgICA8c2NyaXB0PgogICAgICBmdW5jdGlvbiBzZW5kWGhyKCkKICAg
ICAgewogICAgICAgICAgdmFyIHhociA9IG5ldyBYTUxIdHRwUmVxdWVzdDsKICAgICAgICAgIHho
ci5vcGVuKCJHRVQiLHdpbmRvdy5sb2NhdGlvbix0cnVlKTsKICAgICAgICAgIHhoci5vbnJlYWR5
c3RhdGVjaGFuZ2UgPSBmdW5jdGlvbigpIHsgY29uc29sZS5sb2coInN0YXRlID0gIiArIHhoci5y
ZWFkeVN0YXRlKTsgfTsKICAgICAgICAgIHhoci5zZW5kKG51bGwpOwogICAgICB9CiAgICAgIHdp
bmRvdy5hZGRFdmVudExpc3RlbmVyKCJ1bmxvYWQiLCBzZW5kWGhyLCBmYWxzZSk7CiAgICA8L3Nj
cmlwdD4KICA8L2hlYWQ+CiAgPGJvZHk+CiAgICA8aDE+Q2xvc2UgdGhlIHdpbmRvdyB0byBjcmFz
aC48L2gxPgogIDwvYm9keT4KPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>78315</attachid>
            <date>2011-01-08 10:02:10 -0800</date>
            <delta_ts>2011-01-08 10:12:40 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-51934-20110108190721.patch</filename>
            <type>text/plain</type>
            <size>2736</size>
            <attacher name="Benjamin Poulain">benjamin</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCAzNjRl
OTQxNjcyODYwOTRhZWVmNTcyMjI2ZGQ4MGNkZGQ2NjdhYzYwLi4xMmJkZGI3MTdkMTE1ZjA3NThl
YzgzNjBkMTVmODk4YjlmZjE0MTI2IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIv
VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIwMTEtMDEtMDggIEJlbmphbWluIFBv
dWxhaW4gIDxiZW5qYW1pbi5wb3VsYWluQG5va2lhLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbUXRdIFF0V2ViS2l0IGNyYXNoZXMgd2hlbiB1
c2luZyBYTUxIdHRwUmVxdWVzdCBmcm9tIHRoZSB1bmxvYWQgZXZlbnQKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUxOTM0CisKKyAgICAgICAgV2hlbiBh
Y2Nlc3NpbmcgdGhlIG5ldHdvcmsgZnJvbSB0aGUgZGVzdHJ1Y3RvciBvZiBRV2ViUGFnZSwgdGhl
IG5ldHdvcmsgYWNjZXNzIG1hbmFnZXIKKyAgICAgICAgd2FzIGFscmVhZHkgZGVsZXRlZCBiZWNh
dXNlIHRoZSBvYmplY3QgV2ViUGFnZSB3YXMgYWxyZWFkeSBkZXN0cnVjdGVkLgorCisgICAgICAg
IFRoaXMgc29sdmUgdGhlIHByb2JsZW0gYnkgbGlua2luZyB0aGUgbGlmZXRpbWUgb2YgdGhlIG9i
amVjdCB0byB0aGUgd2ViIHBhZ2UuIFRoZSBvYmplY3QKKyAgICAgICAgaXMgbm93IGRlc3RydWN0
ZWQgaW4gdGhlIGRlc3RydWN0b3Igb2YgUU9iamVjdC4KKworICAgICAgICAqIFF0VGVzdEJyb3dz
ZXIvd2VicGFnZS5jcHA6CisgICAgICAgIChXZWJQYWdlOjpXZWJQYWdlKToKKyAgICAgICAgKFdl
YlBhZ2U6OnNldFFuYW1UaHJlYWRlZCk6CisgICAgICAgICogUXRUZXN0QnJvd3Nlci93ZWJwYWdl
Lmg6CisgICAgICAgIChRdE5BTVRocmVhZDo6UXROQU1UaHJlYWQpOgorCiAyMDExLTAxLTA4ICBB
ZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CiAKICAgICAgICAgVGVhY2ggc3ZuLWFwcGx5
IGhvdyB0byByZS13cml0ZSBXZWJDb3JlIHRvIFNvdXJjZS9XZWJDb3JlLgpkaWZmIC0tZ2l0IGEv
VG9vbHMvUXRUZXN0QnJvd3Nlci93ZWJwYWdlLmNwcCBiL1Rvb2xzL1F0VGVzdEJyb3dzZXIvd2Vi
cGFnZS5jcHAKaW5kZXggMTVmNmRiMDcxYTk0ZmU2MmE4ZWQzZjkwNzIwMGE5ZTQ1N2E3MWQxMS4u
OWUwYzQ5ZTY5ZDg5MWFkMDcxOTY4YzA3YTFlZDI3NmNhZDdiNjQ2NCAxMDA2NDQKLS0tIGEvVG9v
bHMvUXRUZXN0QnJvd3Nlci93ZWJwYWdlLmNwcAorKysgYi9Ub29scy9RdFRlc3RCcm93c2VyL3dl
YnBhZ2UuY3BwCkBAIC00NSw2ICs0NSw3IEBAIFdlYlBhZ2U6OldlYlBhZ2UoUU9iamVjdCogcGFy
ZW50KQogICAgIDogUVdlYlBhZ2UocGFyZW50KQogICAgICwgbV91c2VyQWdlbnQoKQogICAgICwg
bV9pbnRlcnJ1cHRpbmdKYXZhU2NyaXB0RW5hYmxlZChmYWxzZSkKKyAgICAsIG1fcW5hbVRocmVh
ZCgwKQogewogICAgIGFwcGx5UHJveHkoKTsKIApAQCAtMTI2LDEyICsxMjcsMTQgQEAgdm9pZCBX
ZWJQYWdlOjpzZXRRbmFtVGhyZWFkZWQoYm9vbCB0aHJlYWRlZCkKICAgICAgICAgcmV0dXJuOwog
CiAgICAgaWYgKHRocmVhZGVkKSB7Ci0gICAgICAgIG1fcW5hbVRocmVhZC5yZXNldChuZXcgUXRO
QU1UaHJlYWQpOworICAgICAgICBpZiAoIW1fcW5hbVRocmVhZCkKKyAgICAgICAgICAgIG1fcW5h
bVRocmVhZCA9IG5ldyBRdE5BTVRocmVhZCh0aGlzKTsKICAgICAgICAgbV9xbmFtVGhyZWFkLT5z
dGFydCgpOwogICAgICAgICBzZXROZXR3b3JrQWNjZXNzTWFuYWdlcihtX3FuYW1UaHJlYWQtPm5l
dHdvcmtBY2Nlc3NNYW5hZ2VyKCkpOwogICAgIH0gZWxzZSB7CiAgICAgICAgIHNldE5ldHdvcmtB
Y2Nlc3NNYW5hZ2VyKDApOwotICAgICAgICBtX3FuYW1UaHJlYWQucmVzZXQoKTsKKyAgICAgICAg
ZGVsZXRlIG1fcW5hbVRocmVhZDsKKyAgICAgICAgbV9xbmFtVGhyZWFkID0gMDsKICAgICB9CiAK
ICAgICBRdDo6Q29ubmVjdGlvblR5cGUgY29ubmVjdGlvblR5cGUgPSB0aHJlYWRlZCA/IFF0OjpC
bG9ja2luZ1F1ZXVlZENvbm5lY3Rpb24gOiBRdDo6RGlyZWN0Q29ubmVjdGlvbjsKZGlmZiAtLWdp
dCBhL1Rvb2xzL1F0VGVzdEJyb3dzZXIvd2VicGFnZS5oIGIvVG9vbHMvUXRUZXN0QnJvd3Nlci93
ZWJwYWdlLmgKaW5kZXggZTYyNDAyYjdlYTVlNGI2NjdmMjVmMzkzZTk3NWI2ZWEyYTRhNjljYS4u
ZmE5M2JhYmMyNjg0YTdkY2UzODUwZjIzYTY5OWFkYzgxOWFkYzJjMCAxMDA2NDQKLS0tIGEvVG9v
bHMvUXRUZXN0QnJvd3Nlci93ZWJwYWdlLmgKKysrIGIvVG9vbHMvUXRUZXN0QnJvd3Nlci93ZWJw
YWdlLmgKQEAgLTcwLDEzICs3MCwxNCBAQCBwcml2YXRlOgogICAgIHZvaWQgYXBwbHlQcm94eSgp
OwogICAgIFFTdHJpbmcgbV91c2VyQWdlbnQ7CiAgICAgYm9vbCBtX2ludGVycnVwdGluZ0phdmFT
Y3JpcHRFbmFibGVkOwotICAgIFFTY29wZWRQb2ludGVyPFF0TkFNVGhyZWFkPiBtX3FuYW1UaHJl
YWQ7CisgICAgUXROQU1UaHJlYWQqIG1fcW5hbVRocmVhZDsKIH07CiAKIAogY2xhc3MgUXROQU1U
aHJlYWQgOiBwdWJsaWMgUVRocmVhZCB7CiBwdWJsaWM6Ci0gICAgUXROQU1UaHJlYWQoKQorICAg
IFF0TkFNVGhyZWFkKFFPYmplY3QgKnBhcmVudCA9IDApCisgICAgICAgIDogUVRocmVhZChwYXJl
bnQpCiAgICAgewogICAgICAgICBtX3FuYW1GdXR1cmUucmVwb3J0U3RhcnRlZCgpOwogICAgIH0K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>78317</attachid>
            <date>2011-01-08 10:12:46 -0800</date>
            <delta_ts>2011-01-08 18:29:44 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-51934-20110108191757.patch</filename>
            <type>text/plain</type>
            <size>2757</size>
            <attacher name="Benjamin Poulain">benjamin</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCAzNjRl
OTQxNjcyODYwOTRhZWVmNTcyMjI2ZGQ4MGNkZGQ2NjdhYzYwLi4wNGJhMTQ0MTJiZWU3M2IyZjVi
M2M5OGE4ZDhiNGY2MTg5Y2VlOTlhIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIv
VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIwMTEtMDEtMDggIEJlbmphbWluIFBv
dWxhaW4gIDxiZW5qYW1pbi5wb3VsYWluQG5va2lhLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbUXRdIFF0V2ViS2l0IGNyYXNoZXMgd2hlbiB1
c2luZyBYTUxIdHRwUmVxdWVzdCBmcm9tIHRoZSB1bmxvYWQgZXZlbnQKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUxOTM0CisKKyAgICAgICAgV2hlbiBh
Y2Nlc3NpbmcgdGhlIG5ldHdvcmsgZnJvbSB0aGUgZGVzdHJ1Y3RvciBvZiBRV2ViUGFnZSwgdGhl
IG5ldHdvcmsgYWNjZXNzIG1hbmFnZXIKKyAgICAgICAgd2FzIGFscmVhZHkgZGVsZXRlZCBiZWNh
dXNlIHRoZSBvYmplY3QgV2ViUGFnZSB3YXMgYWxyZWFkeSBkZXN0cnVjdGVkLgorCisgICAgICAg
IFRoaXMgc29sdmUgdGhlIHByb2JsZW0gYnkgbGlua2luZyB0aGUgbGlmZXRpbWUgb2YgdGhlIG5l
dHdvcmsgYWNjZXNzIG1hbmFnZXIgdG8gV2ViUGFnZSdzIFFPYmplY3QuCisgICAgICAgIFRoZSBv
YmplY3QgaXMgbm93IGRlc3RydWN0ZWQgaW4gdGhlIGRlc3RydWN0b3Igb2YgUU9iamVjdC4KKwor
ICAgICAgICAqIFF0VGVzdEJyb3dzZXIvd2VicGFnZS5jcHA6CisgICAgICAgIChXZWJQYWdlOjpX
ZWJQYWdlKToKKyAgICAgICAgKFdlYlBhZ2U6OnNldFFuYW1UaHJlYWRlZCk6CisgICAgICAgICog
UXRUZXN0QnJvd3Nlci93ZWJwYWdlLmg6CisgICAgICAgIChRdE5BTVRocmVhZDo6UXROQU1UaHJl
YWQpOgorCiAyMDExLTAxLTA4ICBBZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CiAKICAg
ICAgICAgVGVhY2ggc3ZuLWFwcGx5IGhvdyB0byByZS13cml0ZSBXZWJDb3JlIHRvIFNvdXJjZS9X
ZWJDb3JlLgpkaWZmIC0tZ2l0IGEvVG9vbHMvUXRUZXN0QnJvd3Nlci93ZWJwYWdlLmNwcCBiL1Rv
b2xzL1F0VGVzdEJyb3dzZXIvd2VicGFnZS5jcHAKaW5kZXggMTVmNmRiMDcxYTk0ZmU2MmE4ZWQz
ZjkwNzIwMGE5ZTQ1N2E3MWQxMS4uOWUwYzQ5ZTY5ZDg5MWFkMDcxOTY4YzA3YTFlZDI3NmNhZDdi
NjQ2NCAxMDA2NDQKLS0tIGEvVG9vbHMvUXRUZXN0QnJvd3Nlci93ZWJwYWdlLmNwcAorKysgYi9U
b29scy9RdFRlc3RCcm93c2VyL3dlYnBhZ2UuY3BwCkBAIC00NSw2ICs0NSw3IEBAIFdlYlBhZ2U6
OldlYlBhZ2UoUU9iamVjdCogcGFyZW50KQogICAgIDogUVdlYlBhZ2UocGFyZW50KQogICAgICwg
bV91c2VyQWdlbnQoKQogICAgICwgbV9pbnRlcnJ1cHRpbmdKYXZhU2NyaXB0RW5hYmxlZChmYWxz
ZSkKKyAgICAsIG1fcW5hbVRocmVhZCgwKQogewogICAgIGFwcGx5UHJveHkoKTsKIApAQCAtMTI2
LDEyICsxMjcsMTQgQEAgdm9pZCBXZWJQYWdlOjpzZXRRbmFtVGhyZWFkZWQoYm9vbCB0aHJlYWRl
ZCkKICAgICAgICAgcmV0dXJuOwogCiAgICAgaWYgKHRocmVhZGVkKSB7Ci0gICAgICAgIG1fcW5h
bVRocmVhZC5yZXNldChuZXcgUXROQU1UaHJlYWQpOworICAgICAgICBpZiAoIW1fcW5hbVRocmVh
ZCkKKyAgICAgICAgICAgIG1fcW5hbVRocmVhZCA9IG5ldyBRdE5BTVRocmVhZCh0aGlzKTsKICAg
ICAgICAgbV9xbmFtVGhyZWFkLT5zdGFydCgpOwogICAgICAgICBzZXROZXR3b3JrQWNjZXNzTWFu
YWdlcihtX3FuYW1UaHJlYWQtPm5ldHdvcmtBY2Nlc3NNYW5hZ2VyKCkpOwogICAgIH0gZWxzZSB7
CiAgICAgICAgIHNldE5ldHdvcmtBY2Nlc3NNYW5hZ2VyKDApOwotICAgICAgICBtX3FuYW1UaHJl
YWQucmVzZXQoKTsKKyAgICAgICAgZGVsZXRlIG1fcW5hbVRocmVhZDsKKyAgICAgICAgbV9xbmFt
VGhyZWFkID0gMDsKICAgICB9CiAKICAgICBRdDo6Q29ubmVjdGlvblR5cGUgY29ubmVjdGlvblR5
cGUgPSB0aHJlYWRlZCA/IFF0OjpCbG9ja2luZ1F1ZXVlZENvbm5lY3Rpb24gOiBRdDo6RGlyZWN0
Q29ubmVjdGlvbjsKZGlmZiAtLWdpdCBhL1Rvb2xzL1F0VGVzdEJyb3dzZXIvd2VicGFnZS5oIGIv
VG9vbHMvUXRUZXN0QnJvd3Nlci93ZWJwYWdlLmgKaW5kZXggZTYyNDAyYjdlYTVlNGI2NjdmMjVm
MzkzZTk3NWI2ZWEyYTRhNjljYS4uZmE5M2JhYmMyNjg0YTdkY2UzODUwZjIzYTY5OWFkYzgxOWFk
YzJjMCAxMDA2NDQKLS0tIGEvVG9vbHMvUXRUZXN0QnJvd3Nlci93ZWJwYWdlLmgKKysrIGIvVG9v
bHMvUXRUZXN0QnJvd3Nlci93ZWJwYWdlLmgKQEAgLTcwLDEzICs3MCwxNCBAQCBwcml2YXRlOgog
ICAgIHZvaWQgYXBwbHlQcm94eSgpOwogICAgIFFTdHJpbmcgbV91c2VyQWdlbnQ7CiAgICAgYm9v
bCBtX2ludGVycnVwdGluZ0phdmFTY3JpcHRFbmFibGVkOwotICAgIFFTY29wZWRQb2ludGVyPFF0
TkFNVGhyZWFkPiBtX3FuYW1UaHJlYWQ7CisgICAgUXROQU1UaHJlYWQqIG1fcW5hbVRocmVhZDsK
IH07CiAKIAogY2xhc3MgUXROQU1UaHJlYWQgOiBwdWJsaWMgUVRocmVhZCB7CiBwdWJsaWM6Ci0g
ICAgUXROQU1UaHJlYWQoKQorICAgIFF0TkFNVGhyZWFkKFFPYmplY3QgKnBhcmVudCA9IDApCisg
ICAgICAgIDogUVRocmVhZChwYXJlbnQpCiAgICAgewogICAgICAgICBtX3FuYW1GdXR1cmUucmVw
b3J0U3RhcnRlZCgpOwogICAgIH0K
</data>

          </attachment>
      

    </bug>

</bugzilla>