diff -r 79859ed3eea9 -r 919f36ff910f webengine/osswebengine/WebKit/s60/plugins/PluginStream.cpp --- a/webengine/osswebengine/WebKit/s60/plugins/PluginStream.cpp Tue Aug 31 16:17:46 2010 +0300 +++ b/webengine/osswebengine/WebKit/s60/plugins/PluginStream.cpp Wed Sep 01 12:28:30 2010 +0100 @@ -15,7 +15,7 @@ * */ -#include +#include #include "../../bidi.h" #include "Frame.h" @@ -56,7 +56,7 @@ m_loaderclient->stop(); } -void PluginStream::createNPStreamL(TPtrC8 url, TPtrC16 mimetype, long long length) +void PluginStream::createNPStreamL(TPtrC8 url, TPtrC16 mimetype, long long length, const char* headers) { NPError error( NPERR_NO_ERROR ); @@ -84,7 +84,8 @@ m_stream->url = url16->AllocL(); m_stream->end = length; m_stream->lastmodified = 0; - m_stream->notifyData = m_notifydata; + m_stream->notifyData = m_notifydata; + m_stream->headers = headers; error = m_pluginskin->getNPPluginFucs()->newstream ( m_pluginskin->getNPP(), @@ -203,7 +204,7 @@ } -void PluginStream::destroyStream(int reason) +void PluginStream::destroyStream(int reason, TDesC* failedUrl) { if (m_streamDestroyed) return; m_streamDestroyed = true; @@ -235,8 +236,17 @@ } - if ( m_pluginskin->getNPPluginFucs() && m_pluginskin->getNPPluginFucs()->destroystream ) { - m_pluginskin->getNPPluginFucs()->destroystream( m_pluginskin->getNPP(), m_stream, npreason); + if ( m_pluginskin->getNPPluginFucs() ) { + + if (m_stream && m_pluginskin->getNPPluginFucs()->destroystream){ + m_pluginskin->getNPPluginFucs()->destroystream( m_pluginskin->getNPP(), m_stream, npreason); + if (m_loaderclient->notify() && m_pluginskin->getNPPluginFucs()->urlnotify) + m_pluginskin->getNPPluginFucs()->urlnotify( m_pluginskin->getNPP(), m_stream->url->Des(), npreason, m_notifydata); + } + + if(!m_stream && m_loaderclient->notify() && failedUrl && m_pluginskin->getNPPluginFucs()->urlnotify){ + m_pluginskin->getNPPluginFucs()->urlnotify( m_pluginskin->getNPP(), *failedUrl, npreason, m_notifydata); + } } if (reason == KErrNone) {