<?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>85635</bug_id>
          
          <creation_ts>2012-05-04 10:10:57 -0700</creation_ts>
          <short_desc>Exception in [WebFrame loadRequest:] breaks some WebKit apps</short_desc>
          <delta_ts>2012-05-04 10:44:29 -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>WebKit API</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Mac</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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Brady Eidson">beidson</reporter>
          <assigned_to name="Brady Eidson">beidson</assigned_to>
          <cc>ap</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>616344</commentid>
    <comment_count>0</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2012-05-04 10:10:57 -0700</bug_when>
    <thetext>Starting in http://trac.webkit.org/changeset/112571 some apps started seeing exceptions in [WebFrame loadRequest:] 

The exception is -[NSURL initFileURLWithPath:]: nil string parameter

Some API clients incorrectly use full paths instead of actual file: URLs so r112571 started assuming all invalid URLs might &quot;path as URL&quot; attempts and tried rewriting them.

Other WebKit clients use loadRequest: with a nil NSURLRequest, or with a request that has a nil NSURL.  These URLs are invalid, therefore we started trying to rewrite them, therefore we got the exception.

To continue supporting such clients, we should only rewrite invalid URLs that are also non-null.

In radar as &lt;rdar://problem/11312853&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>616367</commentid>
    <comment_count>1</comment_count>
      <attachid>140264</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2012-05-04 10:22:17 -0700</bug_when>
    <thetext>Created attachment 140264
Patch v1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>616370</commentid>
    <comment_count>2</comment_count>
      <attachid>140264</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-05-04 10:24:17 -0700</bug_when>
    <thetext>Comment on attachment 140264
Patch v1

r=me, however I have a sinking feeling that the same issue may be present in other code I added for the same reason.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>616386</commentid>
    <comment_count>3</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2012-05-04 10:38:06 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 140264 [details])
&gt; r=me, however I have a sinking feeling that the same issue may be present in other code I added for the same reason.

Auditing the sites you changed in 112571 and 107355:
[WebView setMainFrameURL:] was changed to use [NSURL _web_URLWithDataAsString:] on the passed in URL string.  If the URL string is nil, [NSURL _web_URLWithDataAsString] already does the right thing.

[WebFrame loadHTMLString:baseURL:] and
[WebFrame loadAlternateHTMLString:baseURL:forUnreachableURL:] and
[WebFrame loadData:MIMEType:textEncodingName:baseURL:]

...were all changed to use [NSURL _webkit_URLFromURLOrPath] on the passed in URLs.  So if those URLs are nil, [NSURL _webkit_URLFromURLOrPath] will also return nil.

So the case I fixed here was the only one that needed fixing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>616398</commentid>
    <comment_count>4</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2012-05-04 10:44:29 -0700</bug_when>
    <thetext>Fixed in http://trac.webkit.org/changeset/116124</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>140264</attachid>
            <date>2012-05-04 10:22:17 -0700</date>
            <delta_ts>2012-05-04 10:24:17 -0700</delta_ts>
            <desc>Patch v1</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>2162</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQv
bWFjL0NoYW5nZUxvZwppbmRleCAxM2IzM2U0Li5jZDE4Y2JlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTcgQEAKKzIwMTItMDUtMDQgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUu
Y29tPgorCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8xMTMxMjg1Mz4gYW5kIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NTYzNSAKKyAgICAgICAgRXhjZXB0aW9uIGlu
IFtXZWJGcmFtZSBsb2FkUmVxdWVzdDpdIGJyZWFrcyBzb21lIFdlYktpdCBhcHBzCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU29tZSBBUEkgY2xpZW50
cyBwYXNzIGluIG5pbCByZXF1ZXN0cyBvciByZXF1ZXN0cyB3aXRoIG5pbCBVUkxzLgorICAgICAg
ICBJbiByMTEyNTcxIHdlIHN0YXJ0ZWQgcmV3cml0aW5nIHRoZXNlIFVSTHMgcmVzdWx0aW5nIGlu
IGFuIGV4Y2VwdGlvbi4KKyAgICAgICAgU2luY2Ugd2UndmUgc3VwcG9ydGVkIG5pbCByZXF1ZXN0
cyB1bnRpbCBub3csIHdlIHNob3VsZCBub3QgdHJ5IHRvIHJld3JpdGUgdGhlc2UgVVJMcy4KKwor
ICAgICAgICAqIFdlYlZpZXcvV2ViRnJhbWUubW06CisgICAgICAgICgtW1dlYkZyYW1lIGxvYWRS
ZXF1ZXN0Ol0pOiBEb24ndCB0cnkgdG8gcmV3cml0ZSBpbnZhbGlkIFVSTHMgaWYgdGhleSBhcmUg
YWxzbyBudWxsLgorCiAyMDEyLTA1LTAyICBKb24gTGVlICA8am9ubGVlQGFwcGxlLmNvbT4KIAog
ICAgICAgICBNaWdyYXRlIHBlcm1pc3Npb24gZnVuY3Rpb25zIHRvIE5vdGlmaWNhdGlvbiBmcm9t
IE5vdGlmaWNhdGlvbkNlbnRlcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmll
dy9XZWJGcmFtZS5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViRnJhbWUubW0KaW5k
ZXggMjUwOTdjNC4uMDJmNGEzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmll
dy9XZWJGcmFtZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkZyYW1lLm1t
CkBAIC0xMzk1LDkgKzEzOTUsMTMgQEAgLSAodm9pZClsb2FkUmVxdWVzdDooTlNVUkxSZXF1ZXN0
ICopcmVxdWVzdAogICAgICAgICByZXR1cm47CiAKICAgICBSZXNvdXJjZVJlcXVlc3QgcmVzb3Vy
Y2VSZXF1ZXN0KHJlcXVlc3QpOwotICAgIC8vIE1vZGlmeWluZyB0aGUgb3JpZ2luYWwgcmVxdWVz
dCBoZXJlIGJyZWFrcyAtW1dlYkRhdGFTb3VyY2UgaW5pdGlhbFJlcXVlc3RdLCBidXQgd2UgZG9u
J3Qgd2FudAotICAgIC8vIHRvIGltcGxlbWVudCB0aGlzICJwYXRoIGFzIFVSTCIgcXVpcmsgYW55
d2hlcmUgZXhjZXB0IGZvciBBUEkgYm91bmRhcnkuCi0gICAgaWYgKCFyZXNvdXJjZVJlcXVlc3Qu
dXJsKCkuaXNWYWxpZCgpKQorICAgIAorICAgIC8vIFNvbWUgdXNlcnMgb2YgV2ViS2l0IEFQSSBp
bmNvcnJlY3RseSB1c2UgImZpbGUgcGF0aCBhcyBVUkwiIHN0eWxlIHJlcXVlc3RzIHdoaWNoIGFy
ZSBpbnZhbGlkLgorICAgIC8vIEJ5IHJlLXdyaXRpbmcgdGhvc2UgVVJMcyBoZXJlIHdlIHRlY2hu
aWNhbGx5IGJyZWFrIHRoZSAtW1dlYkRhdGFTb3VyY2UgaW5pdGlhbFJlcXVlc3RdIEFQSQorICAg
IC8vIGJ1dCB0aGF0IGlzIG5lY2Vzc2FyeSB0byBpbXBsZW1lbnQgdGhpcyBxdWlyayBvbmx5IGF0
IHRoZSBBUEkgYm91bmRhcnkuCisgICAgLy8gTm90ZSB0aGF0IG90aGVyIHVzZXJzIG9mIFdlYktp
dCBBUEkgdXNlIG5pbCByZXF1ZXN0cyBvciByZXF1ZXN0cyB3aXRoIG5pbCBVUkxzLCBzbyB3ZQor
ICAgIC8vIG9ubHkgaW1wbGVtZW50IHRoaXMgd29ya2Fyb3VuZCB3aGVuIHRoZSByZXF1ZXN0IGhh
ZCBhIG5vbi1uaWwgVVJMLgorICAgIGlmICghcmVzb3VyY2VSZXF1ZXN0LnVybCgpLmlzVmFsaWQo
KSAmJiBbcmVxdWVzdCBVUkxdKQogICAgICAgICByZXNvdXJjZVJlcXVlc3Quc2V0VVJMKFtOU1VS
TCBmaWxlVVJMV2l0aFBhdGg6W1tyZXF1ZXN0IFVSTF0gYWJzb2x1dGVTdHJpbmddXSk7CiAKICAg
ICBjb3JlRnJhbWUtPmxvYWRlcigpLT5sb2FkKHJlc291cmNlUmVxdWVzdCwgZmFsc2UpOwo=
</data>
<flag name="review"
          id="146072"
          type_id="1"
          status="+"
          setter="ap"
    />
          </attachment>
      

    </bug>

</bugzilla>