<?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>15183</bug_id>
          
          <creation_ts>2007-09-11 13:25:21 -0700</creation_ts>
          <short_desc>Reproducible assertion failure in XMLHttpRequest::didFinishLoading (loader == m_loader)</short_desc>
          <delta_ts>2007-09-13 04:03:22 -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>523.x (Safari 3)</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.4</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>WORKSFORME</resolution>
          
          
          <bug_file_loc>http://www.noobo.co.il/Game.Aspx?gid=8</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar, NeedsReduction</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter>mitz</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>ap</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>634</commentid>
    <comment_count>0</comment_count>
    <who name="">mitz</who>
    <bug_when>2007-09-11 13:25:21 -0700</bug_when>
    <thetext>To reproduce:
Open the URL and when it finishes loading, close the browser window.

Result:
ASSERTION FAILED: loader == m_loader
(WebCore/xml/XMLHttpRequest.cpp:646 virtual void WebCore::XMLHttpRequest::didFinishLoading(WebCore::SubresourceLoader*))</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>635</commentid>
    <comment_count>1</comment_count>
    <who name="">mitz</who>
    <bug_when>2007-09-11 13:27:23 -0700</bug_when>
    <thetext>Backtrace:

0   com.apple.WebCore             	0x021143a8 WebCore::XMLHttpRequest::didFinishLoading(WebCore::SubresourceLoader*) + 132 (XMLHttpRequest.cpp:646)
1   com.apple.WebCore             	0x02111fa0 WebCore::XMLHttpRequest::didFail(WebCore::SubresourceLoader*, WebCore::ResourceError const&amp;) + 64 (XMLHttpRequest.cpp:638)
2   com.apple.WebCore             	0x01ff9708 WebCore::SubresourceLoader::didFail(WebCore::ResourceError const&amp;) + 208 (SubresourceLoader.cpp:213)
3   com.apple.WebCore             	0x01ff8668 WebCore::ResourceLoader::load(WebCore::ResourceRequest const&amp;) + 496 (ResourceLoader.cpp:115)
4   com.apple.WebCore             	0x01ff9af8 WebCore::SubresourceLoader::load(WebCore::ResourceRequest const&amp;) + 152 (SubresourceLoader.cpp:82)
5   com.apple.WebCore             	0x01ff9e8c WebCore::SubresourceLoader::create(WebCore::Frame*, WebCore::SubresourceLoaderClient*, WebCore::ResourceRequest const&amp;, bool, bool, bool) + 884 (SubresourceLoader.cpp:122)
6   com.apple.WebCore             	0x021150dc WebCore::XMLHttpRequest::send(WebCore::String const&amp;, int&amp;) + 2040 (XMLHttpRequest.cpp:461)
7   com.apple.WebCore             	0x01d18108 KJS::JSXMLHttpRequestPrototypeFunction::callAsFunction(KJS::ExecState*, KJS::JSObject*, KJS::List const&amp;) + 2036 (JSXMLHttpRequest.cpp:275)
8   com.apple.JavaScriptCore      	0x004e5d84 KJS::JSObject::call(KJS::ExecState*, KJS::JSObject*, KJS::List const&amp;) + 284
9   com.apple.JavaScriptCore      	0x005060bc KJS::FunctionCallDotNode::evaluate(KJS::ExecState*) + 988
10  com.apple.JavaScriptCore      	0x004f1b4c KJS::ExprStatementNode::execute(KJS::ExecState*) + 216
11  com.apple.JavaScriptCore      	0x004ee274 KJS::SourceElementsNode::execute(KJS::ExecState*) + 620
12  com.apple.JavaScriptCore      	0x004f1d70 KJS::BlockNode::execute(KJS::ExecState*) + 212
13  com.apple.JavaScriptCore      	0x004f2948 KJS::DeclaredFunctionImp::execute(KJS::ExecState*) + 88
14  com.apple.JavaScriptCore      	0x004f336c KJS::FunctionImp::callAsFunction(KJS::ExecState*, KJS::JSObject*, KJS::List const&amp;) + 684
15  com.apple.JavaScriptCore      	0x004e5d84 KJS::JSObject::call(KJS::ExecState*, KJS::JSObject*, KJS::List const&amp;) + 284
16  com.apple.JavaScriptCore      	0x005060bc KJS::FunctionCallDotNode::evaluate(KJS::ExecState*) + 988
17  com.apple.JavaScriptCore      	0x004f1b4c KJS::ExprStatementNode::execute(KJS::ExecState*) + 216
18  com.apple.JavaScriptCore      	0x004ee120 KJS::SourceElementsNode::execute(KJS::ExecState*) + 280
19  com.apple.JavaScriptCore      	0x004f1d70 KJS::BlockNode::execute(KJS::ExecState*) + 212
20  com.apple.JavaScriptCore      	0x004f19d4 KJS::IfNode::execute(KJS::ExecState*) + 500
21  com.apple.JavaScriptCore      	0x004ee274 KJS::SourceElementsNode::execute(KJS::ExecState*) + 620
22  com.apple.JavaScriptCore      	0x004f1d70 KJS::BlockNode::execute(KJS::ExecState*) + 212
23  com.apple.JavaScriptCore      	0x004f2948 KJS::DeclaredFunctionImp::execute(KJS::ExecState*) + 88
24  com.apple.JavaScriptCore      	0x004f336c KJS::FunctionImp::callAsFunction(KJS::ExecState*, KJS::JSObject*, KJS::List const&amp;) + 684
25  com.apple.JavaScriptCore      	0x004e5d84 KJS::JSObject::call(KJS::ExecState*, KJS::JSObject*, KJS::List const&amp;) + 284
26  com.apple.JavaScriptCore      	0x005060bc KJS::FunctionCallDotNode::evaluate(KJS::ExecState*) + 988
27  com.apple.JavaScriptCore      	0x004f1b4c KJS::ExprStatementNode::execute(KJS::ExecState*) + 216
28  com.apple.JavaScriptCore      	0x004ee274 KJS::SourceElementsNode::execute(KJS::ExecState*) + 620
29  com.apple.JavaScriptCore      	0x004f1d70 KJS::BlockNode::execute(KJS::ExecState*) + 212
30  com.apple.JavaScriptCore      	0x004f2948 KJS::DeclaredFunctionImp::execute(KJS::ExecState*) + 88
31  com.apple.JavaScriptCore      	0x004f336c KJS::FunctionImp::callAsFunction(KJS::ExecState*, KJS::JSObject*, KJS::List const&amp;) + 684
32  com.apple.JavaScriptCore      	0x004e5d84 KJS::JSObject::call(KJS::ExecState*, KJS::JSObject*, KJS::List const&amp;) + 284
33  com.apple.JavaScriptCore      	0x005060bc KJS::FunctionCallDotNode::evaluate(KJS::ExecState*) + 988
34  com.apple.JavaScriptCore      	0x004f1b4c KJS::ExprStatementNode::execute(KJS::ExecState*) + 216
35  com.apple.JavaScriptCore      	0x004ee274 KJS::SourceElementsNode::execute(KJS::ExecState*) + 620
36  com.apple.JavaScriptCore      	0x004f1d70 KJS::BlockNode::execute(KJS::ExecState*) + 212
37  com.apple.JavaScriptCore      	0x004f2948 KJS::DeclaredFunctionImp::execute(KJS::ExecState*) + 88
38  com.apple.JavaScriptCore      	0x004f336c KJS::FunctionImp::callAsFunction(KJS::ExecState*, KJS::JSObject*, KJS::List const&amp;) + 684
39  com.apple.JavaScriptCore      	0x004e5d84 KJS::JSObject::call(KJS::ExecState*, KJS::JSObject*, KJS::List const&amp;) + 284
40  com.apple.JavaScriptCore      	0x005060bc KJS::FunctionCallDotNode::evaluate(KJS::ExecState*) + 988
41  com.apple.JavaScriptCore      	0x004f218c KJS::ReturnNode::execute(KJS::ExecState*) + 380
42  com.apple.JavaScriptCore      	0x004ee274 KJS::SourceElementsNode::execute(KJS::ExecState*) + 620
43  com.apple.JavaScriptCore      	0x004f1d70 KJS::BlockNode::execute(KJS::ExecState*) + 212
44  com.apple.JavaScriptCore      	0x004f2948 KJS::DeclaredFunctionImp::execute(KJS::ExecState*) + 88
45  com.apple.JavaScriptCore      	0x004f336c KJS::FunctionImp::callAsFunction(KJS::ExecState*, KJS::JSObject*, KJS::List const&amp;) + 684
46  com.apple.JavaScriptCore      	0x004e5d84 KJS::JSObject::call(KJS::ExecState*, KJS::JSObject*, KJS::List const&amp;) + 284
47  com.apple.JavaScriptCore      	0x005060bc KJS::FunctionCallDotNode::evaluate(KJS::ExecState*) + 988
48  com.apple.JavaScriptCore      	0x004f218c KJS::ReturnNode::execute(KJS::ExecState*) + 380
49  com.apple.JavaScriptCore      	0x004ee120 KJS::SourceElementsNode::execute(KJS::ExecState*) + 280
50  com.apple.JavaScriptCore      	0x004f1d70 KJS::BlockNode::execute(KJS::ExecState*) + 212
51  com.apple.JavaScriptCore      	0x004f2948 KJS::DeclaredFunctionImp::execute(KJS::ExecState*) + 88
52  com.apple.JavaScriptCore      	0x004f336c KJS::FunctionImp::callAsFunction(KJS::ExecState*, KJS::JSObject*, KJS::List const&amp;) + 684
53  com.apple.JavaScriptCore      	0x004e5d84 KJS::JSObject::call(KJS::ExecState*, KJS::JSObject*, KJS::List const&amp;) + 284
54  com.apple.JavaScriptCore      	0x005060bc KJS::FunctionCallDotNode::evaluate(KJS::ExecState*) + 988
55  com.apple.JavaScriptCore      	0x004f1b4c KJS::ExprStatementNode::execute(KJS::ExecState*) + 216
56  com.apple.JavaScriptCore      	0x004ee120 KJS::SourceElementsNode::execute(KJS::ExecState*) + 280
57  com.apple.JavaScriptCore      	0x004f1d70 KJS::BlockNode::execute(KJS::ExecState*) + 212
58  com.apple.JavaScriptCore      	0x004f2948 KJS::DeclaredFunctionImp::execute(KJS::ExecState*) + 88
59  com.apple.JavaScriptCore      	0x004f336c KJS::FunctionImp::callAsFunction(KJS::ExecState*, KJS::JSObject*, KJS::List const&amp;) + 684
60  com.apple.JavaScriptCore      	0x004e5d84 KJS::JSObject::call(KJS::ExecState*, KJS::JSObject*, KJS::List const&amp;) + 284
61  com.apple.JavaScriptCore      	0x005060bc KJS::FunctionCallDotNode::evaluate(KJS::ExecState*) + 988
62  com.apple.JavaScriptCore      	0x004f1b4c KJS::ExprStatementNode::execute(KJS::ExecState*) + 216
63  com.apple.JavaScriptCore      	0x004ee274 KJS::SourceElementsNode::execute(KJS::ExecState*) + 620
64  com.apple.JavaScriptCore      	0x004f1d70 KJS::BlockNode::execute(KJS::ExecState*) + 212
65  com.apple.JavaScriptCore      	0x004ee4bc KJS::TryNode::execute(KJS::ExecState*) + 224
66  com.apple.JavaScriptCore      	0x004ee120 KJS::SourceElementsNode::execute(KJS::ExecState*) + 280
67  com.apple.JavaScriptCore      	0x004f1d70 KJS::BlockNode::execute(KJS::ExecState*) + 212
68  com.apple.JavaScriptCore      	0x004f2948 KJS::DeclaredFunctionImp::execute(KJS::ExecState*) + 88
69  com.apple.JavaScriptCore      	0x004f336c KJS::FunctionImp::callAsFunction(KJS::ExecState*, KJS::JSObject*, KJS::List const&amp;) + 684
70  com.apple.JavaScriptCore      	0x004e5d84 KJS::JSObject::call(KJS::ExecState*, KJS::JSObject*, KJS::List const&amp;) + 284
71  com.apple.JavaScriptCore      	0x00506ff0 KJS::FunctionCallResolveNode::evaluate(KJS::ExecState*) + 788
72  com.apple.JavaScriptCore      	0x004f1b4c KJS::ExprStatementNode::execute(KJS::ExecState*) + 216
73  com.apple.JavaScriptCore      	0x004ee120 KJS::SourceElementsNode::execute(KJS::ExecState*) + 280
74  com.apple.JavaScriptCore      	0x004f1d70 KJS::BlockNode::execute(KJS::ExecState*) + 212
75  com.apple.JavaScriptCore      	0x004f2948 KJS::DeclaredFunctionImp::execute(KJS::ExecState*) + 88
76  com.apple.JavaScriptCore      	0x004f336c KJS::FunctionImp::callAsFunction(KJS::ExecState*, KJS::JSObject*, KJS::List const&amp;) + 684
77  com.apple.JavaScriptCore      	0x004e5d84 KJS::JSObject::call(KJS::ExecState*, KJS::JSObject*, KJS::List const&amp;) + 284
78  com.apple.WebCore             	0x01d25e04 WebCore::JSAbstractEventListener::handleEvent(WebCore::Event*, bool) + 756 (kjs_events.cpp:116)
79  com.apple.WebCore             	0x01ab8aa4 WebCore::Document::handleWindowEvent(WebCore::Event*, bool) + 412 (Document.cpp:2376)
80  com.apple.WebCore             	0x01cc2a90 WebCore::EventTargetNode::dispatchWindowEvent(WebCore::AtomicString const&amp;, bool, bool) + 364 (EventTargetNode.cpp:337)
81  com.apple.WebCore             	0x01fe48c4 WebCore::FrameLoader::stopLoading(bool) + 416 (FrameLoader.cpp:579)
82  com.apple.WebCore             	0x01fe4cf8 WebCore::FrameLoader::closeURL() + 40 (FrameLoader.cpp:645)
83  com.apple.WebCore             	0x01fe4d70 WebCore::FrameLoader::detachFromParent() + 60 (FrameLoader.cpp:3118)
84  com.apple.WebKit              	0x00225434 -[WebView(WebPrivate) _close] + 520

</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>624</commentid>
    <comment_count>2</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2007-09-11 20:59:58 -0700</bug_when>
    <thetext>&lt;rdar://problem/5476100&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>588</commentid>
    <comment_count>3</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2007-09-12 13:35:39 -0700</bug_when>
    <thetext>I can&apos;t get this to reproduce with a debug build of r25517 with Safari 3 Public Beta v. 3.0.3 (522.12.1) on Mac OS X 10.4.10 (8R218).

I did notice that there are number of URL &quot;flashes&quot; that show up if the status bar is enabled on Safari.  When do I know if the page is loading?  Or do I have to close it at just the right time?

</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>561</commentid>
    <comment_count>4</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2007-09-12 21:03:45 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; I did notice that there are number of URL &quot;flashes&quot; that show up if the status
&gt; bar is enabled on Safari.  When do I know if the page is loading?  Or do I have
&gt; to close it at just the right time?

When do I know if the page is *done* loading?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>547</commentid>
    <comment_count>5</comment_count>
    <who name="">mitz</who>
    <bug_when>2007-09-13 04:03:22 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; When do I know if the page is *done* loading?

By &quot;done loading&quot; I meant when the progress bar in the URL field is gone and the progress indicator in the tab disappears.

I am unable to reproduce the bug today. The backtrace makes it seem like it happened when an unload handler sent an XMLHttpRequest, but even when the bug happened I could not follow the JS code that did this.</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>