diff options
Diffstat (limited to 'WebCore/loader/NetscapePlugInStreamLoader.cpp')
-rw-r--r-- | WebCore/loader/NetscapePlugInStreamLoader.cpp | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/WebCore/loader/NetscapePlugInStreamLoader.cpp b/WebCore/loader/NetscapePlugInStreamLoader.cpp index e12ed07..9d0e81b 100644 --- a/WebCore/loader/NetscapePlugInStreamLoader.cpp +++ b/WebCore/loader/NetscapePlugInStreamLoader.cpp @@ -119,6 +119,11 @@ void NetscapePlugInStreamLoader::didCancel(const ResourceError& error) m_client->didFail(this, error); + // If calling didFail spins the run loop the stream loader can reach the terminal state. + // If that's the case we just return early. + if (reachedTerminalState()) + return; + // We need to remove the stream loader after the call to didFail, since didFail can // spawn a new run loop and if the loader has been removed it won't be deferred when // the document loader is asked to defer loading. |