diff --git a/src/plugins/webpluginfactory.cpp b/src/plugins/webpluginfactory.cpp index 0831ec5bc..52abe2f0f 100644 --- a/src/plugins/webpluginfactory.cpp +++ b/src/plugins/webpluginfactory.cpp @@ -56,44 +56,24 @@ QObject* WebPluginFactory::create(const QString &mimeType, const QUrl &url, cons return 0; } -// WebPluginFactory* factory = const_cast(this); -// if (!factory) { -// return 0; -// } - -// WebPage* page = factory->parentPage(); -// if (!page) { -// return 0; -// } - - ClickToFlash* ctf = new ClickToFlash(url, argumentNames, argumentValues, m_page); return ctf; } QList WebPluginFactory::plugins() const { -// QList plugins; -// return plugins; + QList plugins; + return plugins; +// QList plugins; // QWebPluginFactory::Plugin plugin; -// plugin.name = QLatin1String("ClickToFlashPlugin"); // Mmmm, it should return this, -// QWebPluginFactory::MimeType mimeType; // but with WebKit 533.3, click2flash -// mimeType.fileExtensions << QLatin1String("swf"); // fails on some pages, like youtube.com -// mimeType.name = QLatin1String("application/x-shockwave-flash"); // so we will return empty QList -// plugin.mimeTypes.append(mimeType); // On some pages it also force to load non-flash -// plugins.append(plugin); // content -> in most cases advertisements. -// return plugins; // Not bad to have it hidden :-) - - QList plugins; - QWebPluginFactory::Plugin plugin; - QWebPluginFactory::MimeType mimeType; +// QWebPluginFactory::MimeType mimeType; - mimeType.fileExtensions << "swf"; - mimeType.name = "application/x-shockwave-flash"; +// mimeType.fileExtensions << "swf"; +// mimeType.name = "application/x-shockwave-flash"; - plugin.name = "ClickToFlashPlugin"; - plugin.mimeTypes.append(mimeType); - plugins.append(plugin); - return plugins; +// plugin.name = "ClickToFlashPlugin"; +// plugin.mimeTypes.append(mimeType); +// plugins.append(plugin); +// return plugins; } diff --git a/src/plugins/webpluginfactory.h b/src/plugins/webpluginfactory.h index a5423006d..0c0a51cc0 100644 --- a/src/plugins/webpluginfactory.h +++ b/src/plugins/webpluginfactory.h @@ -26,11 +26,11 @@ class WebPluginFactory : public QWebPluginFactory { public: WebPluginFactory(WebPage* page); + virtual QObject* create(const QString &mimeType, const QUrl &url, const QStringList &argumentNames, const QStringList &argumentValues) const; QList plugins() const; private: WebPage* m_page; - }; #endif // WEB_PLUGIN_FACTORY_H diff --git a/src/webview/webpage.cpp b/src/webview/webpage.cpp index 0056687fa..9a8508cb0 100644 --- a/src/webview/webpage.cpp +++ b/src/webview/webpage.cpp @@ -203,22 +203,29 @@ void WebPage::handleUnsupportedContent(QNetworkReply* reply) switch (reply->error()) { case QNetworkReply::NoError: - if (reply->header(QNetworkRequest::ContentTypeHeader).isValid()) { + if (!reply->rawHeader("Content-Disposition").isEmpty()) { DownloadManager* dManager = mApp->downManager(); dManager->handleUnsupportedContent(reply, this); return; } - break; + else { + qDebug() << "WebPage::UnsupportedContent" << url << "Attempt to download request without Content-Disposition header!"; + reply->deleteLater(); + return; + } + case QNetworkReply::ProtocolUnknownError: - qDebug() << url << "ProtocolUnknowError"; + qDebug() << "WebPage::UnsupportedContent" << url << "ProtocolUnknowError"; QDesktopServices::openUrl(url); + reply->deleteLater(); return; - break; + default: break; } - qDebug() << "WebPage::UnsupportedContent error" << reply->errorString(); + qDebug() << "WebPage::UnsupportedContent error" << url << reply->errorString(); + reply->deleteLater(); } void WebPage::downloadRequested(const QNetworkRequest &request)