<?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>48531</bug_id>
          
          <creation_ts>2010-10-28 09:56:08 -0700</creation_ts>
          <short_desc>Assertion failure in DocumentLoader::commitData when loading a media document in WebKit1 on Windows</short_desc>
          <delta_ts>2010-11-01 09:51:54 -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>Page Loading</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Windows XP</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc>http://www.nch.com.au/acm/sample.wav</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar, PlatformOnly</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Adam Roben (:aroben)">aroben</reporter>
          <assigned_to name="Adam Roben (:aroben)">aroben</assigned_to>
          <cc>abarth</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>eric</cc>
    
    <cc>jer.noble</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>301125</commentid>
    <comment_count>0</comment_count>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2010-10-28 09:56:08 -0700</bug_when>
    <thetext>To reproduce:

1. Go to http://www.nch.com.au/acm/sample.wav in a debug build

You&apos;ll hit an assertion in DocumentLoader::commitData:

    ASSERT(m_frame-&gt;document()-&gt;parsing());

The wav file seems to load fine in Release builds.

Here&apos;s the backtrace:


&gt;	WebKit.dll!WebCore::DocumentLoader::commitData(const char * bytes=0x0a9fa008, int length=69300)  Line 306 + 0x35 bytes	C++
 	WebKit.dll!WebFrameLoaderClient::committedLoad(WebCore::DocumentLoader * loader=0x0a888068, const char * data=0x0a9fa008, int length=69300)  Line 497	C++
 	WebKit.dll!WebCore::DocumentLoader::commitLoad(const char * data=0x0a9fa008, int length=69300)  Line 292 + 0x29 bytes	C++
 	WebKit.dll!WebCore::DocumentLoader::receivedData(const char * data=0x0a9fa008, int length=69300)  Line 320	C++
 	WebKit.dll!WebCore::MainResourceLoader::addData(const char * data=0x0a9fa008, int length=69300, bool allAtOnce=false)  Line 157	C++
 	WebKit.dll!WebCore::ResourceLoader::didReceiveData(const char * data=0x0a9fa008, int length=69300, __int64 lengthReceived=69300, bool allAtOnce=false)  Line 262 + 0x1b bytes	C++
 	WebKit.dll!WebCore::MainResourceLoader::didReceiveData(const char * data=0x0a9fa008, int length=69300, __int64 lengthReceived=69300, bool allAtOnce=false)  Line 437	C++
 	WebKit.dll!WebCore::ResourceLoader::didReceiveData(WebCore::ResourceHandle * __formal=0x09825830, const char * data=0x0a9fa008, int length=69300, int lengthReceived=69300)  Line 415 + 0x1f bytes	C++
 	WebKit.dll!WebCore::didReceiveData(_CFURLConnection * conn=0x097d05a0, const __CFData * data=0x097cf750, long originalLength=69300, const void * clientInfo=0x09825830)  Line 214 + 0x2a bytes	C++
 	CFNetwork.dll!URLConnectionClient::_clientDidReceiveData()</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>301131</commentid>
    <comment_count>1</comment_count>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2010-10-28 10:02:25 -0700</bug_when>
    <thetext>Looks like we need to do something similar to r51104: http://trac.webkit.org/changeset/51104</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>301312</commentid>
    <comment_count>2</comment_count>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2010-10-28 13:46:53 -0700</bug_when>
    <thetext>&lt;rdar://problem/8606635&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>302712</commentid>
    <comment_count>3</comment_count>
      <attachid>72511</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2010-11-01 08:43:52 -0700</bug_when>
    <thetext>Created attachment 72511
Cancel main resource loads after we hand them off to the media engine</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>302737</commentid>
    <comment_count>4</comment_count>
      <attachid>72511</attachid>
    <who name="">mitz</who>
    <bug_when>2010-11-01 09:16:26 -0700</bug_when>
    <thetext>Comment on attachment 72511
Cancel main resource loads after we hand them off to the media engine

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

&gt; WebKit/win/ChangeLog:16
&gt; +        after handing off the load to the media engine. This code originall

Missing “y”.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>302742</commentid>
    <comment_count>5</comment_count>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2010-11-01 09:25:05 -0700</bug_when>
    <thetext>View in context: https://bugs.webkit.org/attachment.cgi?id=72511&amp;action=review

Dan beat me to the review, but here are a few more comments:

&gt; WebKit/win/ChangeLog:6
&gt; +        This is the Windows equivalent of r51104. Clearly this code should be
&gt; +        moved to a cross-platform location someday.

Probably worth a bug if we don&apos;t already have one.


&gt; WebKit/win/WebCoreSupport/WebFrameLoaderClient.cpp:500
&gt; +    if (coreFrame-&gt;document()-&gt;isMediaDocument())
&gt; +        loader-&gt;cancelMainResourceLoad(pluginWillHandleLoadError(loader-&gt;response()));

I know that we use the same error in other ports, but canceling the download with &quot;pluginWillHandleLoadError&quot; when we are actually handing it off the the media element seems wrong.


&gt; WebKit/win/WebFrame.cpp:1726
&gt; +    if (error.errorCode() == WebURLErrorCancelled &amp;&amp; error.domain() == String(WebURLErrorDomain))
&gt; +        return false;
&gt; +
&gt; +    if (error.errorCode() == WebKitErrorPlugInWillHandleLoad &amp;&amp; error.domain() == String(WebKitErrorDomain))
&gt; +        return false;
&gt; +

Looking at http://trac.webkit.org/changeset/51104 I see that GTK also returns false if the error is interruptForPolicyChangeError, should we do that as well?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>302746</commentid>
    <comment_count>6</comment_count>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2010-11-01 09:35:33 -0700</bug_when>
    <thetext>View in context: https://bugs.webkit.org/attachment.cgi?id=72511&amp;action=review

&gt; &gt; WebKit/win/ChangeLog:6
&gt; &gt; +        This is the Windows equivalent of r51104. Clearly this code should be
&gt; &gt; +        moved to a cross-platform location someday.
&gt; 
&gt; Probably worth a bug if we don&apos;t already have one.

Filed bug 48762.

&gt; &gt; WebKit/win/WebCoreSupport/WebFrameLoaderClient.cpp:500
&gt; &gt; +    if (coreFrame-&gt;document()-&gt;isMediaDocument())
&gt; &gt; +        loader-&gt;cancelMainResourceLoad(pluginWillHandleLoadError(loader-&gt;response()));
&gt; 
&gt; I know that we use the same error in other ports, but canceling the download with &quot;pluginWillHandleLoadError&quot; when we are actually handing it off the the media element seems wrong.

Agreed. File bug 48763.

&gt; &gt; WebKit/win/WebFrame.cpp:1726
&gt; &gt; +    if (error.errorCode() == WebURLErrorCancelled &amp;&amp; error.domain() == String(WebURLErrorDomain))
&gt; &gt; +        return false;
&gt; &gt; +
&gt; &gt; +    if (error.errorCode() == WebKitErrorPlugInWillHandleLoad &amp;&amp; error.domain() == String(WebKitErrorDomain))
&gt; &gt; +        return false;
&gt; &gt; +
&gt; 
&gt; Looking at http://trac.webkit.org/changeset/51104 I see that GTK also returns false if the error is interruptForPolicyChangeError, should we do that as well?

I was trying to match Mac here, so I think I&apos;ll keep this as-is for now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>302751</commentid>
    <comment_count>7</comment_count>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2010-11-01 09:51:54 -0700</bug_when>
    <thetext>Committed r71032: &lt;http://trac.webkit.org/changeset/71032&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>72511</attachid>
            <date>2010-11-01 08:43:52 -0700</date>
            <delta_ts>2010-11-01 09:16:26 -0700</delta_ts>
            <desc>Cancel main resource loads after we hand them off to the media engine</desc>
            <filename>bug-48531-20101101114354.patch</filename>
            <type>text/plain</type>
            <size>3425</size>
            <attacher name="Adam Roben (:aroben)">aroben</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdC93aW4vQ2hhbmdlTG9nIGIvV2ViS2l0L3dpbi9DaGFuZ2VMb2cK
aW5kZXggY2U1OTQxOTMxNzA0NTdlNTZjNjhiMzVlNjQyNjE2MDc2NzMxNGI3OS4uNWYxYThkMDBi
MDEzZjM0NmUwMDA2YTc0M2I2MzhiNWVkOTk3N2UzNiAxMDA2NDQKLS0tIGEvV2ViS2l0L3dpbi9D
aGFuZ2VMb2cKKysrIGIvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNiBAQAorMjAx
MC0xMS0wMSAgQWRhbSBSb2JlbiAgPGFyb2JlbkBhcHBsZS5jb20+CisKKyAgICAgICAgQ2FuY2Vs
IG1haW4gcmVzb3VyY2UgbG9hZHMgYWZ0ZXIgd2UgaGFuZCB0aGVtIG9mZiB0byB0aGUgbWVkaWEg
ZW5naW5lCisKKyAgICAgICAgVGhpcyBpcyB0aGUgV2luZG93cyBlcXVpdmFsZW50IG9mIHI1MTEw
NC4gQ2xlYXJseSB0aGlzIGNvZGUgc2hvdWxkIGJlCisgICAgICAgIG1vdmVkIHRvIGEgY3Jvc3Mt
cGxhdGZvcm0gbG9jYXRpb24gc29tZWRheS4KKworICAgICAgICBGaXhlcyA8aHR0cDovL3dlYmtp
dC5vcmcvYi80ODUzMT4gPHJkYXI6Ly9wcm9ibGVtLzg2MDY2MzU+IEFzc2VydGlvbgorICAgICAg
ICBmYWlsdXJlIGluIERvY3VtZW50TG9hZGVyOjpjb21taXREYXRhIHdoZW4gbG9hZGluZyBhIG1l
ZGlhIGRvY3VtZW50IGluCisgICAgICAgIFdlYktpdDEgb24gV2luZG93cworCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2Vi
RnJhbWVMb2FkZXJDbGllbnQuY3BwOgorICAgICAgICAoV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmNv
bW1pdHRlZExvYWQpOiBDYW5jZWwgdGhlIG1haW4gcmVzb3VyY2UgbG9hZAorICAgICAgICBhZnRl
ciBoYW5kaW5nIG9mZiB0aGUgbG9hZCB0byB0aGUgbWVkaWEgZW5naW5lLiBUaGlzIGNvZGUgb3Jp
Z2luYWxsCisgICAgICAgIGNhbWUgZnJvbSAtW1dlYkhUTUxSZXByZXNlbnRhdGlvbiByZWNlaXZl
ZERhdGE6d2l0aERhdGFTb3VyY2U6XS4KKworICAgICAgICAqIFdlYkZyYW1lLmNwcDoKKyAgICAg
ICAgKFdlYkZyYW1lOjpzaG91bGRGYWxsQmFjayk6IERvbid0IGZhbGwgYmFjayB3aGVuIGhhbmRp
bmcgdGhlIHJlc291cmNlCisgICAgICAgIGxvYWQgb2ZmIHRvIHRoZSBtZWRpYSBlbmdpbmUgb3Ig
YSBwbHVnaW4uIEFkZGVkIGVycm9yIGRvbWFpbiBjaGVja2luZworICAgICAgICBzbyB0aGF0IHdl
IGRvbid0IHJlbHkgb24gZXJyb3IgY29kZXMgYmVpbmcgdW5pcXVlLgorCiAyMDEwLTEwLTI5ICBE
YW5pZWwgQmF0ZXMgIDxkYmF0ZXNAcmltLmNvbT4KIAogICAgICAgICBObyByZXZpZXcsIHJvbGxp
bmcgb3V0IDcwOTcxLgpkaWZmIC0tZ2l0IGEvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJG
cmFtZUxvYWRlckNsaWVudC5jcHAgYi9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1l
TG9hZGVyQ2xpZW50LmNwcAppbmRleCA2NTkxMzQ3ZDA3NDdmMDFjYTdlZjg1ZGJhZWIzZjMyZWQ4
ZDE0OTQyLi43ODBmOWFkOGFlYjE4YzNmY2U1OGI4NDEzOTE3OTIzODMzMDEzY2EwIDEwMDY0NAot
LS0gYS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcAor
KysgYi9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcApA
QCAtNDk0LDExICs0OTQsMTYgQEAgdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6Y29tbWl0dGVk
TG9hZChEb2N1bWVudExvYWRlciogbG9hZGVyLCBjb25zdCBjaGFyKiBkYXQKICAgICBpZiAoIW1f
bWFudWFsTG9hZGVyKQogICAgICAgICBsb2FkZXItPmNvbW1pdERhdGEoZGF0YSwgbGVuZ3RoKTsK
IAorICAgIC8vIElmIHRoZSBkb2N1bWVudCBpcyBhIHN0YW5kLWFsb25lIG1lZGlhIGRvY3VtZW50
LCBub3cgaXMgdGhlIHJpZ2h0IHRpbWUgdG8gY2FuY2VsIHRoZSBXZWJLaXQgbG9hZC4KKyAgICBG
cmFtZSogY29yZUZyYW1lID0gY29yZShtX3dlYkZyYW1lKTsKKyAgICBpZiAoY29yZUZyYW1lLT5k
b2N1bWVudCgpLT5pc01lZGlhRG9jdW1lbnQoKSkKKyAgICAgICAgbG9hZGVyLT5jYW5jZWxNYWlu
UmVzb3VyY2VMb2FkKHBsdWdpbldpbGxIYW5kbGVMb2FkRXJyb3IobG9hZGVyLT5yZXNwb25zZSgp
KSk7CisKICAgICBpZiAoIW1fbWFudWFsTG9hZGVyKQogICAgICAgICByZXR1cm47CiAKICAgICBp
ZiAoIW1faGFzU2VudFJlc3BvbnNlVG9QbHVnaW4pIHsKLSAgICAgICAgbV9tYW51YWxMb2FkZXIt
PmRpZFJlY2VpdmVSZXNwb25zZShjb3JlKG1fd2ViRnJhbWUpLT5sb2FkZXIoKS0+ZG9jdW1lbnRM
b2FkZXIoKS0+cmVzcG9uc2UoKSk7CisgICAgICAgIG1fbWFudWFsTG9hZGVyLT5kaWRSZWNlaXZl
UmVzcG9uc2UobG9hZGVyLT5yZXNwb25zZSgpKTsKICAgICAgICAgLy8gZGlkUmVjZWl2ZVJlc3Bv
bnNlIHNldHMgdXAgYSBuZXcgc3RyZWFtIHRvIHRoZSBwbHVnLWluLiBvbiBhIGZ1bGwtcGFnZSBw
bHVnLWluLCBhIGZhaWx1cmUgaW4KICAgICAgICAgLy8gc2V0dGluZyB1cCB0aGlzIHN0cmVhbSBj
YW4gY2F1c2UgdGhlIG1haW4gZG9jdW1lbnQgbG9hZCB0byBiZSBjYW5jZWxsZWQsIHNldHRpbmcg
bV9tYW51YWxMb2FkZXIKICAgICAgICAgLy8gdG8gbnVsbApkaWZmIC0tZ2l0IGEvV2ViS2l0L3dp
bi9XZWJGcmFtZS5jcHAgYi9XZWJLaXQvd2luL1dlYkZyYW1lLmNwcAppbmRleCA5ZGI2YTJhMTI1
Y2JjOGY2MzM3NzNiY2JhOGY0NWU3OWNkM2RkYWI0Li5jMWQ5YzIxMzdlZTBhYjgxMjNmNDM2NDk3
MWNkMDgzM2U5NzZjMDYxIDEwMDY0NAotLS0gYS9XZWJLaXQvd2luL1dlYkZyYW1lLmNwcAorKysg
Yi9XZWJLaXQvd2luL1dlYkZyYW1lLmNwcApAQCAtMTcxOCw3ICsxNzE4LDEzIEBAIFJlc291cmNl
RXJyb3IgV2ViRnJhbWU6OnBsdWdpbldpbGxIYW5kbGVMb2FkRXJyb3IoY29uc3QgUmVzb3VyY2VS
ZXNwb25zZSYgcmVzcG9uCiAKIGJvb2wgV2ViRnJhbWU6OnNob3VsZEZhbGxCYWNrKGNvbnN0IFJl
c291cmNlRXJyb3ImIGVycm9yKQogewotICAgIHJldHVybiBlcnJvci5lcnJvckNvZGUoKSAhPSBX
ZWJVUkxFcnJvckNhbmNlbGxlZDsKKyAgICBpZiAoZXJyb3IuZXJyb3JDb2RlKCkgPT0gV2ViVVJM
RXJyb3JDYW5jZWxsZWQgJiYgZXJyb3IuZG9tYWluKCkgPT0gU3RyaW5nKFdlYlVSTEVycm9yRG9t
YWluKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgaWYgKGVycm9yLmVycm9yQ29kZSgp
ID09IFdlYktpdEVycm9yUGx1Z0luV2lsbEhhbmRsZUxvYWQgJiYgZXJyb3IuZG9tYWluKCkgPT0g
U3RyaW5nKFdlYktpdEVycm9yRG9tYWluKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAg
cmV0dXJuIHRydWU7CiB9CiAKIENPTVB0cjxXZWJGcmFtZVBvbGljeUxpc3RlbmVyPiBXZWJGcmFt
ZTo6c2V0VXBQb2xpY3lMaXN0ZW5lcihXZWJDb3JlOjpGcmFtZVBvbGljeUZ1bmN0aW9uIGZ1bmN0
aW9uKQo=
</data>
<flag name="review"
          id="62774"
          type_id="1"
          status="+"
          setter="mitz"
    />
          </attachment>
      

    </bug>

</bugzilla>