| Summary: | REGRESSION (r179958): Crash in WebCore::DocumentLoader::detachFromFrame when -[id<WebPolicyDelegate> decidePolicyForMIMEType:request:frame:decisionListener:] fails to call -[id<WebPolicyDecisionListener> download|ignore|use] | ||||||
|---|---|---|---|---|---|---|---|
| Product: | WebKit | Reporter: | David Kilzer (:ddkilzer) <ddkilzer> | ||||
| Component: | Page Loading | Assignee: | David Kilzer (:ddkilzer) <ddkilzer> | ||||
| Status: | RESOLVED FIXED | ||||||
| Severity: | Normal | CC: | aestes, beidson, cdumez, commit-queue, japhet, webkit-bug-importer | ||||
| Priority: | P2 | Keywords: | InRadar | ||||
| Version: | 528+ (Nightly build) | ||||||
| Hardware: | Unspecified | ||||||
| OS: | Unspecified | ||||||
| Attachments: |
|
||||||
|
Description
David Kilzer (:ddkilzer)
2015-05-13 17:26:06 PDT
Created attachment 253076 [details]
Patch v1
Comment on attachment 253076 [details] Patch v1 Clearing flags on attachment: 253076 Committed r184323: <http://trac.webkit.org/changeset/184323> All reviewed patches have been landed. Closing bug. Thanks for taking care of this! (In reply to comment #0) > Note that the app SHOULD be calling -download, -ignore or -use inside their > -[id<WebPolicyDelegate> > -decidePolicyForMIMEType:request:frame:decisionListener:] method, but it > shouldn't cause a crash, and there's no easy way to fix this without further > risk of compatibility issues (due to additional callbacks being made). This is not actually true - It's perfectly legal for an app to hang on to the decision listener and call one of the three methods later, asynchronously. That's why it's set up as a listener object instead of requiring a synchronous return value. Yah, these asserts are simply bogus in general. If the client hangs on to the policy listener object for "awhile", 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. |