<?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>78240</bug_id>
          
          <creation_ts>2012-02-09 07:53:06 -0800</creation_ts>
          <short_desc>Callbacks during deferred loads</short_desc>
          <delta_ts>2012-04-11 09:46:48 -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>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>NEW</bug_status>
          <resolution></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>
          <dependson>78486</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter>jochen</reporter>
          <assigned_to>jochen</assigned_to>
          <cc>abarth</cc>
    
    <cc>andersca</cc>
    
    <cc>ap</cc>
    
    <cc>fishd</cc>
    
    <cc>priyajeet.hora</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>553166</commentid>
    <comment_count>0</comment_count>
    <who name="">jochen</who>
    <bug_when>2012-02-09 07:53:06 -0800</bug_when>
    <thetext>Callbacks during deferred loads</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>553167</commentid>
    <comment_count>1</comment_count>
      <attachid>126304</attachid>
    <who name="">jochen</who>
    <bug_when>2012-02-09 07:53:46 -0800</bug_when>
    <thetext>Created attachment 126304
Patch (test only)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>553175</commentid>
    <comment_count>2</comment_count>
    <who name="">jochen</who>
    <bug_when>2012-02-09 07:59:01 -0800</bug_when>
    <thetext>This test-case triggers a ton of problems for me:

On chromium-linux-dbg, I get an ASSERT() about callbacks during deferred load:


ASSERTION FAILED: shouldLoadAsEmptyDocument(r.url()) || !defersLoading()
../../Source/WebCore/loader/MainResourceLoader.cpp(386) : virtual void WebCore::MainResourceLoader::didReceiveResponse(const WebCore::ResourceResponse&amp;)

        WebCore::MainResourceLoader::didReceiveResponse() [0x1acf32c]
        WebCore::ResourceLoader::didReceiveResponse() [0x1ae26cd]
        WebCore::ResourceHandleInternal::didReceiveResponse() [0x53bb87]
        webkit_glue::WebURLLoaderImpl::Context::OnReceivedResponse() [0x5cfe15]
        webkit_glue::WebURLLoaderImpl::Context::HandleDataURL() [0x5d0932]
        base::internal::RunnableAdapter&lt;&gt;::Run() [0x5d2047]
        base::internal::InvokeHelper&lt;&gt;::MakeItSo() [0x5d1fde]
        base::internal::Invoker&lt;&gt;::Run() [0x5d1f69]
        base::Callback&lt;&gt;::Run() [0x5a233d]
        MessageLoop::RunTask() [0x11c6ee8]
        MessageLoop::DeferOrRunPendingTask() [0x11c6fff]
        MessageLoop::DoWork() [0x11c7821]
        base::MessagePumpGlib::HandleDispatch() [0x1227537]
        (anonymous namespace)::WorkSourceDispatch() [0x1226a83]
        0x7fc1315ba8c2
        0x7fc1315be748
        0x7fc1315be8fc
        base::MessagePumpGlib::RunWithDispatcher() [0x12271e6]
        base::MessagePumpGlib::Run() [0x1227614]
        MessageLoop::RunInternal() [0x11c6ba3]
        MessageLoop::RunHandler() [0x11c6a56]
        MessageLoop::Run() [0x11c638b]
        webkit_support::RunMessageLoop() [0x4a3c48]
        WebViewHost::runModal() [0x47bfaa]
        WebKit::ChromeClientImpl::runModal() [0x5122f6]
        WebCore::Chrome::runModal() [0x1b29a5c]
        WebCore::DOMWindow::showModalDialog() [0x1b438ff]
        WebCore::V8DOMWindow::showModalDialogCallback() [0x1870479]
        v8::internal::HandleApiCallHelper&lt;&gt;() [0x12dbf53]
        v8::internal::Builtin_Impl_HandleApiCall() [0x12d69eb]
        v8::internal::Builtin_HandleApiCall() [0x12d69bc]

On chromium-linux-rel, the test passes

On chromium-mac-{rel,dbg}, the assertion is not triggered, but DumpRenderTree never exists the nested message loop

On mac-dbg, the test crashes:

0   DumpRenderTree                	0x000000010c64289b -[UIDelegate webView:createWebViewWithRequest:] + 155 (UIDelegate.mm:142)
1   com.apple.WebKit              	0x000000010d3a60d0 _ZL12CallDelegateP7WebViewP11objc_objectP13objc_selectorS2_ + 176 (WebDelegateImplementationCaching.mm:103)
2   com.apple.WebKit              	0x000000010d3a6015 CallUIDelegate(WebView*, objc_selector*, objc_object*) + 69 (WebDelegateImplementationCaching.mm:439)
3   com.apple.WebKit              	0x000000010d393c2b WebChromeClient::createWindow(WebCore::Frame*, WebCore::FrameLoadRequest const&amp;, WebCore::WindowFeatures const&amp;, WebCore::NavigationAction const&amp;) + 1995 (WebChromeClient.mm:273)
4   com.apple.WebCore             	0x000000010db3d8f0 WebCore::Chrome::createWindow(WebCore::Frame*, WebCore::FrameLoadRequest const&amp;, WebCore::WindowFeatures const&amp;, WebCore::NavigationAction const&amp;) const + 96 (Chrome.cpp:188)
5   com.apple.WebCore             	0x000000010e07bfc6 WebCore::createWindow(WebCore::Frame*, WebCore::Frame*, WebCore::FrameLoadRequest const&amp;, WebCore::WindowFeatures const&amp;, bool&amp;) + 822 (FrameLoader.cpp:3345)
6   com.apple.WebCore             	0x000000010df4b2a1 WebCore::DOMWindow::createWindow(WTF::String const&amp;, WTF::AtomicString const&amp;, WebCore::WindowFeatures const&amp;, WebCore::DOMWindow*, WebCore::Frame*, WebCore::Frame*, void (*)(WebCore::DOMWindow*, void*), void*) + 753 (DOMWindow.cpp:1786)
7   com.apple.WebCore             	0x000000010df4be88 WebCore::DOMWindow::showModalDialog(WTF::String const&amp;, WTF::String const&amp;, WebCore::DOMWindow*, WebCore::DOMWindow*, void (*)(WebCore::DOMWindow*, void*), void*) + 440 (DOMWindow.cpp:1892)
8   com.apple.WebCore             	0x000000010e52e662 WebCore::JSDOMWindow::showModalDialog(JSC::ExecState*) + 402 (JSDOMWindowCustom.cpp:565)
9   com.apple.WebCore             	0x000000010e51daf5 WebCore::jsDOMWindowPrototypeFunctionShowModalDialog(JSC::ExecState*) + 389 (JSDOMWindow.cpp:10962)
10  ???                           	0x00002ebac3001218 0 + 51379670356504
11  com.apple.JavaScriptCore      	0x000000010c9a03a9 JSC::JITCode::execute(JSC::RegisterFile*, JSC::ExecState*, JSC::JSGlobalData*) + 121 (JITCode.h:115)
12  com.apple.JavaScriptCore      	0x000000010c99cda6 JSC::Interpreter::executeCall(JSC::ExecState*, JSC::JSObject*, JSC::CallType, JSC::CallData const&amp;, JSC::JSValue, JSC::ArgList const&amp;) + 1766 (Interpreter.cpp:1083)
13  com.apple.JavaScriptCore      	0x000000010c85facb JSC::call(JSC::ExecState*, JSC::JSValue, JSC::CallType, JSC::CallData const&amp;, JSC::JSValue, JSC::ArgList const&amp;) + 315 (CallData.cpp:39)
14  com.apple.WebCore             	0x000000010e420c33 WebCore::JSMainThreadExecState::call(JSC::ExecState*, JSC::JSValue, JSC::CallType, JSC::CallData const&amp;, JSC::JSValue, JSC::ArgList const&amp;) + 179 (JSMainThreadExecState.h:56)
15  com.apple.WebCore             	0x000000010e420b04 WebCore::JSMainThreadExecState::instrumentedCall(WebCore::Page*, JSC::ExecState*, JSC::JSValue, JSC::CallType, JSC::CallData const&amp;, JSC::JSValue, JSC::ArgList const&amp;) + 420 (JSMainThreadExecState.h:75)
16  com.apple.WebCore             	0x000000010e55d618 WebCore::JSEventListener::handleEvent(WebCore::ScriptExecutionContext*, WebCore::Event*) + 1432 (JSEventListener.cpp:124)
17  com.apple.WebCore             	0x000000010dfde359 WebCore::EventTarget::fireEventListeners(WebCore::Event*, WebCore::EventTargetData*, WTF::Vector&lt;WebCore::RegisteredEventListener, 1ul&gt;&amp;) + 393 (EventTarget.cpp:232)
18  com.apple.WebCore             	0x000000010dfde19b WebCore::EventTarget::fireEventListeners(WebCore::Event*) + 331 (EventTarget.cpp:200)
19  com.apple.WebCore             	0x000000010df43f1a WebCore::DOMWindow::dispatchEvent(WTF::PassRefPtr&lt;WebCore::Event&gt;, WTF::PassRefPtr&lt;WebCore::EventTarget&gt;) + 362 (DOMWindow.cpp:1632)
20  com.apple.WebCore             	0x000000010df4a65b WebCore::DOMWindow::dispatchLoadEvent() + 395 (DOMWindow.cpp:1606)
21  com.apple.WebCore             	0x000000010ddc2ac2 WebCore::Document::dispatchWindowLoadEvent() + 146 (Document.cpp:3720)
22  com.apple.WebCore             	0x000000010ddbfa45 WebCore::Document::implicitClose() + 501 (Document.cpp:2271)
23  com.apple.WebCore             	0x000000010e06ef5b WebCore::FrameLoader::checkCallImplicitClose() + 155 (FrameLoader.cpp:797)
24  com.apple.WebCore             	0x000000010e06ed44 WebCore::FrameLoader::checkCompleted() + 308 (FrameLoader.cpp:744)
25  com.apple.WebCore             	0x000000010e06f034 WebCore::FrameLoader::completed() + 196 (FrameLoader.cpp:1085)
26  com.apple.WebCore             	0x000000010e06ed61 WebCore::FrameLoader::checkCompleted() + 337 (FrameLoader.cpp:747)
27  com.apple.WebCore             	0x000000010e06da53 WebCore::FrameLoader::finishedParsing() + 179 (FrameLoader.cpp:678)
28  com.apple.WebCore             	0x000000010ddcb58f WebCore::Document::finishedParsing() + 591 (Document.cpp:4464)
29  com.apple.WebCore             	0x000000010e246bb4 WebCore::HTMLTreeBuilder::finished() + 148 (HTMLTreeBuilder.cpp:2821)
30  com.apple.WebCore             	0x000000010e17dfc3 WebCore::HTMLDocumentParser::end() + 227 (HTMLDocumentParser.cpp:382)
31  com.apple.WebCore             	0x000000010e17cee6 WebCore::HTMLDocumentParser::attemptToRunDeferredScriptsAndEnd() + 278 (HTMLDocumentParser.cpp:391)
32  com.apple.WebCore             	0x000000010e17ccbc WebCore::HTMLDocumentParser::prepareToStopParsing() + 268 (HTMLDocumentParser.cpp:154)
33  com.apple.WebCore             	0x000000010e17e013 WebCore::HTMLDocumentParser::attemptToEnd() + 67 (HTMLDocumentParser.cpp:403)
34  com.apple.WebCore             	0x000000010e17e068 WebCore::HTMLDocumentParser::finish() + 72 (HTMLDocumentParser.cpp:430)
35  com.apple.WebCore             	0x000000010de24dfa WebCore::DocumentWriter::endIfNotLoadingMainResource() + 282 (DocumentWriter.cpp:234)
36  com.apple.WebCore             	0x000000010de24410 WebCore::DocumentWriter::end() + 48 (DocumentWriter.cpp:213)
37  com.apple.WebCore             	0x000000010de03cab WebCore::DocumentLoader::finishedLoading() + 91 (DocumentLoader.cpp:296)
38  com.apple.WebCore             	0x000000010e078341 WebCore::FrameLoader::finishedLoading() + 81 (FrameLoader.cpp:2071)
39  com.apple.WebCore             	0x000000010e9c2c6e WebCore::MainResourceLoader::didFinishLoading(double) + 318 (MainResourceLoader.cpp:485)
40  com.apple.WebCore             	0x000000010ed79476 WebCore::ResourceLoader::didFinishLoading(WebCore::ResourceHandle*, double) + 198 (ResourceLoader.cpp:452)
41  com.apple.WebCore             	0x000000010ed75cf5 -[WebCoreResourceHandleAsDelegate connectionDidFinishLoading:] + 261 (ResourceHandleMac.mm:887)
42  com.apple.Foundation          	0x00007fff90b03712 ___NSURLConnectionDidFinishLoading_block_invoke_1 + 122
43  com.apple.Foundation          	0x00007fff90b03692 _NSURLConnectionDidFinishLoading + 81
44  com.apple.CFNetwork           	0x00007fff91645ee2 URLConnectionClient::_clientDidFinishLoading(URLConnectionClient::ClientConnectionEventQueue*) + 296
45  com.apple.CFNetwork           	0x00007fff916f5d0e URLConnectionClient::ClientConnectionEventQueue::processAllEventsAndConsumePayload(XConnectionEventInfo&lt;XClientEvent, XClientEventParams&gt;*, long) + 862
46  com.apple.CFNetwork           	0x00007fff916f5efa URLConnectionClient::ClientConnectionEventQueue::processAllEventsAndConsumePayload(XConnectionEventInfo&lt;XClientEvent, XClientEventParams&gt;*, long) + 1354
47  com.apple.CFNetwork           	0x00007fff91620dfd URLConnectionClient::processEvents() + 185
48  com.apple.CFNetwork           	0x00007fff91620ca2 MultiplexerSource::perform() + 212
49  com.apple.CoreFoundation      	0x00007fff8cc3db51 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 17
50  com.apple.CoreFoundation      	0x00007fff8cc3d3bd __CFRunLoopDoSources0 + 253
51  com.apple.CoreFoundation      	0x00007fff8cc641a9 __CFRunLoopRun + 905
52  com.apple.CoreFoundation      	0x00007fff8cc63ae6 CFRunLoopRunSpecific + 230
53  com.apple.Foundation          	0x00007fff90aa704f -[NSRunLoop(NSRunLoop) runMode:beforeDate:] + 267
54  DumpRenderTree                	0x000000010c60844b _ZL7runTestRKSs + 3067 (DumpRenderTree.mm:1348)
55  DumpRenderTree                	0x000000010c60778f _ZL20runTestingServerLoopv + 223 (DumpRenderTree.mm:811)
56  DumpRenderTree                	0x000000010c607094 dumpRenderTree(int, char const**) + 356 (DumpRenderTree.mm:860)
57  DumpRenderTree                	0x000000010c608bec main + 124 (DumpRenderTree.mm:898)
58  DumpRenderTree                	0x000000010c5f3654 start + 52

On mac-wk2-dbg, all tests with showModalDialog are skipped anyway</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>553536</commentid>
    <comment_count>3</comment_count>
    <who name="">jochen</who>
    <bug_when>2012-02-09 15:00:11 -0800</bug_when>
    <thetext>So I figured out that the hang on chromium-mac is due to a difference in how message pump is implemented in chromium-mac (vs. the other chromium flavors): In the attached test, two nested message loops are started. On chromium-mac, the termination signals are both send to the second nested message loop, so the first nested message loop just stays around forever...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>553578</commentid>
    <comment_count>4</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-02-09 15:46:18 -0800</bug_when>
    <thetext>+fishd for fun with showModalDialog and nested message loop</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>553965</commentid>
    <comment_count>5</comment_count>
    <who name="">jochen</who>
    <bug_when>2012-02-10 02:23:02 -0800</bug_when>
    <thetext>ok, here&apos;s what&apos;s happening on chromium-mac at least

the attached test loads to iframes that each have a frameset with a single frame with a data: url in it. The frameset has an onload handler that opens a modal dialog.

When the first frameset finishes loading, the first onload handler is executed, and a nested message loop is started.

On this nested message loop, however, the resource response for the second frameset&apos;s data: url is coming in, resulting in the second onload handler being called on the nested message loop inside the first onload handler.

This should not happen, as the dialog is supposed to be modal.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>554650</commentid>
    <comment_count>6</comment_count>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2012-02-11 11:09:05 -0800</bug_when>
    <thetext>On the Chromium side, we should just run showModalDialog in an app-modal container, as we do for alert.  It is a long-standing bug that we do not.  I think we should also seriously consider removing showModalDialog from the platform.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>554653</commentid>
    <comment_count>7</comment_count>
    <who name="">jochen</who>
    <bug_when>2012-02-11 11:18:47 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; On the Chromium side, we should just run showModalDialog in an app-modal container, as we do for alert.  It is a long-standing bug that we do not.  I think we should also seriously consider removing showModalDialog from the platform.

Would this be enough? I think we might even need to render the dialog in a different process?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>554674</commentid>
    <comment_count>8</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-02-11 13:01:43 -0800</bug_when>
    <thetext>&gt; Would this be enough? I think we might even need to render the dialog in a different process?

showModalDialog has a return value, which we&apos;d need to structured clone across processes (which should be doable).</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>126304</attachid>
            <date>2012-02-09 07:53:46 -0800</date>
            <delta_ts>2012-02-09 10:01:08 -0800</delta_ts>
            <desc>Patch (test only)</desc>
            <filename>bug-78240-20120209165344.patch</filename>
            <type>text/plain</type>
            <size>2099</size>
            <attacher>jochen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA3MjMxCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L2xvYWRlci9jYWxsYmFja3MtZHVyaW5nLWRlZmVycmVkLWxvYWQuaHRtbCBiL0xheW91dFRlc3Rz
L2Zhc3QvbG9hZGVyL2NhbGxiYWNrcy1kdXJpbmctZGVmZXJyZWQtbG9hZC5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjNkMzQ2ZGQxNzZkNTJkYTRhYWU0ZWJkNGZiNDU5MWQ3NDFiY2Q5MWEKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2xvYWRlci9jYWxsYmFja3MtZHVyaW5nLWRlZmVycmVk
LWxvYWQuaHRtbApAQCAtMCwwICsxLDE1IEBACis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdD4KK2lm
ICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxl
ci5kdW1wQXNUZXh0KCk7CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgp
OworICAgIGxheW91dFRlc3RDb250cm9sbGVyLnNldENhbk9wZW5XaW5kb3dzKCk7Cit9Cis8L3Nj
cmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGlmcmFtZSBzcmM9InJlc291cmNlcy9jYWxsYmFja3Mt
ZHVyaW5nLWRlZmVycmVkLWxvYWQtZnJhbWUuaHRtbCI+PC9pZnJhbWU+Cis8aWZyYW1lIHNyYz0i
cmVzb3VyY2VzL2NhbGxiYWNrcy1kdXJpbmctZGVmZXJyZWQtbG9hZC1mcmFtZS5odG1sIj48L2lm
cmFtZT4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvbG9h
ZGVyL3Jlc291cmNlcy9jYWxsYmFja3MtZHVyaW5nLWRlZmVycmVkLWxvYWQtZnJhbWUuaHRtbCBi
L0xheW91dFRlc3RzL2Zhc3QvbG9hZGVyL3Jlc291cmNlcy9jYWxsYmFja3MtZHVyaW5nLWRlZmVy
cmVkLWxvYWQtZnJhbWUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43YzA4ODYzYzg0MWQyZjBkYjI0Yjk0NDIy
YmUzZTZmMDI5MzJlYTM2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9sb2Fk
ZXIvcmVzb3VyY2VzL2NhbGxiYWNrcy1kdXJpbmctZGVmZXJyZWQtbG9hZC1mcmFtZS5odG1sCkBA
IC0wLDAgKzEsMTIgQEAKKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0PgorZnVuY3Rpb24gdGVzdCgp
IHsKKyAgICBzaG93TW9kYWxEaWFsb2coImNhbGxiYWNrcy1kdXJpbmctZGVmZXJyZWQtbG9hZC1t
b2RhbC1kaWFsb2cuaHRtbCIpOworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8ZnJhbWVzZXQgb25s
b2FkPSJ0ZXN0KCkiPgorPGZyYW1lIHNyYz0iZGF0YTp0ZXh0L2h0bWwsZnJhbWUiPgorPC9mcmFt
ZXNldD4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvbG9hZGVyL3Jlc291
cmNlcy9jYWxsYmFja3MtZHVyaW5nLWRlZmVycmVkLWxvYWQtbW9kYWwtZGlhbG9nLmh0bWwgYi9M
YXlvdXRUZXN0cy9mYXN0L2xvYWRlci9yZXNvdXJjZXMvY2FsbGJhY2tzLWR1cmluZy1kZWZlcnJl
ZC1sb2FkLW1vZGFsLWRpYWxvZy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJkNjNhMjdhYWQ3NWI0OGQwMGNk
ODQ2N2U4MGRmMGI0NWM0MmRkMDkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0
L2xvYWRlci9yZXNvdXJjZXMvY2FsbGJhY2tzLWR1cmluZy1kZWZlcnJlZC1sb2FkLW1vZGFsLWRp
YWxvZy5odG1sCkBAIC0wLDAgKzEsMTggQEAKKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0PgorZnVu
Y3Rpb24gY2xvc2VXaW5kb3coKQoreworICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xs
ZXIpIHsKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOworICAgICAg
ICBsYXlvdXRUZXN0Q29udHJvbGxlci5hYm9ydE1vZGFsKCk7CisgICAgfQorICAgIGNsb3NlKCk7
Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKworPGJvZHkgb25sb2FkPSJjbG9zZVdpbmRvdygpIj4K
KyAgICBUaGlzIGlzIGEgbW9kYWwgZGlhbG9nLgorPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>