<?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>144975</bug_id>
          
          <creation_ts>2015-05-13 17:26:06 -0700</creation_ts>
          <short_desc>REGRESSION (r179958): Crash in WebCore::DocumentLoader::detachFromFrame when -[id&lt;WebPolicyDelegate&gt; decidePolicyForMIMEType:request:frame:decisionListener:] fails to call -[id&lt;WebPolicyDecisionListener&gt; download|ignore|use]</short_desc>
          <delta_ts>2015-05-13 22:12:13 -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>Unspecified</rep_platform>
          <op_sys>Unspecified</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="David Kilzer (:ddkilzer)">ddkilzer</reporter>
          <assigned_to name="David Kilzer (:ddkilzer)">ddkilzer</assigned_to>
          <cc>aestes</cc>
    
    <cc>beidson</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>japhet</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1094662</commentid>
    <comment_count>0</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2015-05-13 17:26:06 -0700</bug_when>
    <thetext>If an app overrides -decidePolicyForMIMEType:request:frame:decisionListener: in their id&lt;WebPolicyDelegate&gt; object and doesn&apos;t call one of three methods on id&lt;WebPolicyDecisionListener&gt; (-download, -ignore or -use), then the app will crash due to a RELEASE_ASSERT() added in r179958.

&lt;http://trac.webkit.org/r179958&gt;

This was not the intention of these RELEASE_ASSERT() changes (they were to catch the cause of a different crash which we think we found the cause of), so we can change these back to Debug-only ASSERT() statements.

Note that the app SHOULD be calling -download, -ignore or -use inside their -[id&lt;WebPolicyDelegate&gt; -decidePolicyForMIMEType:request:frame:decisionListener:] method, but it shouldn&apos;t cause a crash, and there&apos;s no easy way to fix this without further risk of compatibility issues (due to additional callbacks being made).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1094663</commentid>
    <comment_count>1</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2015-05-13 17:26:21 -0700</bug_when>
    <thetext>&lt;rdar://problem/20905401&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1094664</commentid>
    <comment_count>2</comment_count>
      <attachid>253076</attachid>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2015-05-13 17:32:57 -0700</bug_when>
    <thetext>Created attachment 253076
Patch v1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1094677</commentid>
    <comment_count>3</comment_count>
      <attachid>253076</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-05-13 18:22:32 -0700</bug_when>
    <thetext>Comment on attachment 253076
Patch v1

Clearing flags on attachment: 253076

Committed r184323: &lt;http://trac.webkit.org/changeset/184323&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1094678</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-05-13 18:22:37 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1094679</commentid>
    <comment_count>5</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-05-13 18:28:44 -0700</bug_when>
    <thetext>Thanks for taking care of this!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1094721</commentid>
    <comment_count>6</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2015-05-13 22:08:28 -0700</bug_when>
    <thetext>(In reply to comment #0)
&gt; Note that the app SHOULD be calling -download, -ignore or -use inside their
&gt; -[id&lt;WebPolicyDelegate&gt;
&gt; -decidePolicyForMIMEType:request:frame:decisionListener:] method, but it
&gt; shouldn&apos;t cause a crash, and there&apos;s no easy way to fix this without further
&gt; risk of compatibility issues (due to additional callbacks being made).

This is not actually true - It&apos;s perfectly legal for an app to hang on to the decision listener and call one of the three methods later, asynchronously.

That&apos;s why it&apos;s set up as a listener object instead of requiring a synchronous return value.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1094724</commentid>
    <comment_count>7</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2015-05-13 22:12:13 -0700</bug_when>
    <thetext>Yah, these asserts are simply bogus in general.

If the client hangs on to the policy listener object for &quot;awhile&quot;, say maybe to ask the user what they want to do, and the document is torn down in the meantime... DocumentLoader should handle that gracefully, release build or not.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>253076</attachid>
            <date>2015-05-13 17:32:57 -0700</date>
            <delta_ts>2015-05-13 18:22:32 -0700</delta_ts>
            <desc>Patch v1</desc>
            <filename>bug-144975-20150513173134.patch</filename>
            <type>text/plain</type>
            <size>2858</size>
            <attacher name="David Kilzer (:ddkilzer)">ddkilzer</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg0MzE4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTgyZDc0YWY1OGRjMDhh
ZWVkMzZjYjJlNGIwNWZmNDkwNDM1YjU2ZS4uZmIwMmU3OGJkZjdiNjBmYTM1OGU3MjUwYTU5MWUx
ZTdkY2ZkMDc1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDE1LTA1LTEzICBEYXZp
ZCBLaWx6ZXIgIDxkZGtpbHplckBhcHBsZS5jb20+CisKKyAgICAgICAgUkVHUkVTSU9OIChyMTc5
OTU4KTogQ3Jhc2ggaW4gV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXI6OmRldGFjaEZyb21GcmFtZSB3
aGVuIC1baWQ8V2ViUG9saWN5RGVsZWdhdGU+IGRlY2lkZVBvbGljeUZvck1JTUVUeXBlOnJlcXVl
c3Q6ZnJhbWU6ZGVjaXNpb25MaXN0ZW5lcjpdIGZhaWxzIHRvIGNhbGwgLVtpZDxXZWJQb2xpY3lE
ZWNpc2lvbkxpc3RlbmVyPiBkb3dubG9hZHxpZ25vcmV8dXNlXQorICAgICAgICA8aHR0cDovL3dl
YmtpdC5vcmcvYi8xNDQ5NzU+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgVGhpcyBjaGFuZ2UgcmV2ZXJ0cyByMTc5OTU4LiAgSXQgY2hhbmdlcyBSRUxF
QVNFX0FTU0VSVCooKQorICAgICAgICBzdGF0ZW1lbnRzIGJhY2sgdG8gRGVidWctb25seSBBU1NF
UlQqKCkgc3RhdGVtZW50cy4KKworICAgICAgICAqIGxvYWRlci9Eb2N1bWVudExvYWRlci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudExvYWRlcjo6fkRvY3VtZW50TG9hZGVyKToKKyAg
ICAgICAgKFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyOjpjb250aW51ZUFmdGVyQ29udGVudFBvbGlj
eSk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudExvYWRlcjo6ZGV0YWNoRnJvbUZyYW1lKToK
KwogMjAxNS0wNS0xMyAgQW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+CiAKICAgICAg
ICAgQ2FjaGVkIENTUyBpbWFnZSByZXNvdXJjZXMgZG9uJ3Qgc2hvdyB1cCBhZnRlciByZWxvYWRp
bmcgPGh0dHA6Ly9uaWdodGx5LndlYmtpdC5vcmcvc3RhcnQvPgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9Eb2N1bWVudExvYWRlci5jcHAKaW5kZXggMjBkZWNmODgwNDNkMjFjM2JkOTRkY2RmZTFjOTg0
MWZjMDliNTQxZC4uYjI1MDM2ZWQzMzdhZmU1YWQyYjNiMmM0ZDUyZTA5ZTc4NWNhOTA2MiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwCkBAIC0xNjIsNyArMTYyLDcg
QEAgUmVzb3VyY2VMb2FkZXIqIERvY3VtZW50TG9hZGVyOjptYWluUmVzb3VyY2VMb2FkZXIoKSBj
b25zdAogRG9jdW1lbnRMb2FkZXI6On5Eb2N1bWVudExvYWRlcigpCiB7CiAgICAgQVNTRVJUKCFt
X2ZyYW1lIHx8IGZyYW1lTG9hZGVyKCktPmFjdGl2ZURvY3VtZW50TG9hZGVyKCkgIT0gdGhpcyB8
fCAhaXNMb2FkaW5nKCkpOwotICAgIFJFTEVBU0VfQVNTRVJUX1dJVEhfTUVTU0FHRSghbV93YWl0
aW5nRm9yQ29udGVudFBvbGljeSwgIlRoZSBjb250ZW50IHBvbGljeSBjYWxsYmFjayBzaG91bGQg
bmV2ZXIgb3V0bGl2ZSBpdHMgRG9jdW1lbnRMb2FkZXIuIik7CisgICAgQVNTRVJUX1dJVEhfTUVT
U0FHRSghbV93YWl0aW5nRm9yQ29udGVudFBvbGljeSwgIlRoZSBjb250ZW50IHBvbGljeSBjYWxs
YmFjayBzaG91bGQgbmV2ZXIgb3V0bGl2ZSBpdHMgRG9jdW1lbnRMb2FkZXIuIik7CiAgICAgaWYg
KG1faWNvbkxvYWREZWNpc2lvbkNhbGxiYWNrKQogICAgICAgICBtX2ljb25Mb2FkRGVjaXNpb25D
YWxsYmFjay0+aW52YWxpZGF0ZSgpOwogICAgIGlmIChtX2ljb25EYXRhQ2FsbGJhY2spCkBAIC02
NjcsNyArNjY3LDcgQEAgdm9pZCBEb2N1bWVudExvYWRlcjo6cmVzcG9uc2VSZWNlaXZlZChDYWNo
ZWRSZXNvdXJjZSogcmVzb3VyY2UsIGNvbnN0IFJlc291cmNlUmUKIAogdm9pZCBEb2N1bWVudExv
YWRlcjo6Y29udGludWVBZnRlckNvbnRlbnRQb2xpY3koUG9saWN5QWN0aW9uIHBvbGljeSkKIHsK
LSAgICBSRUxFQVNFX0FTU0VSVChtX3dhaXRpbmdGb3JDb250ZW50UG9saWN5KTsKKyAgICBBU1NF
UlQobV93YWl0aW5nRm9yQ29udGVudFBvbGljeSk7CiAgICAgbV93YWl0aW5nRm9yQ29udGVudFBv
bGljeSA9IGZhbHNlOwogICAgIGlmIChpc1N0b3BwaW5nKCkpCiAgICAgICAgIHJldHVybjsKQEAg
LTkyNyw3ICs5MjcsNyBAQCB2b2lkIERvY3VtZW50TG9hZGVyOjpkZXRhY2hGcm9tRnJhbWUoKQog
ICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6bG9hZGVyRGV0YWNoZWRGcm9tRnJhbWUoKm1f
ZnJhbWUsICp0aGlzKTsKICAgICBtX2ZyYW1lID0gbnVsbHB0cjsKICAgICAvLyBUaGUgY2FsbCB0
byBzdG9wTG9hZGluZygpIGFib3ZlIHNob3VsZCBoYXZlIGNhbmNlbGVkIGFueSBwZW5kaW5nIGNv
bnRlbnQgcG9saWN5IGNoZWNrLgotICAgIFJFTEVBU0VfQVNTRVJUX1dJVEhfTUVTU0FHRSghbV93
YWl0aW5nRm9yQ29udGVudFBvbGljeSwgIlRoZSBjb250ZW50IHBvbGljeSBjYWxsYmFjayBuZWVk
cyBhIHZhbGlkIGZyYW1lLiIpOworICAgIEFTU0VSVF9XSVRIX01FU1NBR0UoIW1fd2FpdGluZ0Zv
ckNvbnRlbnRQb2xpY3ksICJUaGUgY29udGVudCBwb2xpY3kgY2FsbGJhY2sgbmVlZHMgYSB2YWxp
ZCBmcmFtZS4iKTsKIH0KIAogdm9pZCBEb2N1bWVudExvYWRlcjo6Y2xlYXJNYWluUmVzb3VyY2VM
b2FkZXIoKQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>