From 425a13cba17f271e211b1355d04f697cad2795e8 Mon Sep 17 00:00:00 2001 From: Andrea Diamantini Date: Sun, 25 Apr 2010 02:37:12 +0200 Subject: Fix error pages show --- src/webpage.cpp | 21 +++++++++++---------- src/webpage.h | 1 + 2 files changed, 12 insertions(+), 10 deletions(-) diff --git a/src/webpage.cpp b/src/webpage.cpp index b6f26f19..021856f7 100644 --- a/src/webpage.cpp +++ b/src/webpage.cpp @@ -148,6 +148,8 @@ WebPage::~WebPage() bool WebPage::acceptNavigationRequest(QWebFrame *frame, const QNetworkRequest &request, NavigationType type) { + _loadingUrl = request.url(); + KIO::AccessManager *manager = qobject_cast(networkAccessManager()); KIO::MetaData metaData = manager->requestMetaData(); @@ -308,8 +310,13 @@ void WebPage::handleUnsupportedContent(QNetworkReply *reply) } -void WebPage::loadFinished(bool) +void WebPage::loadFinished(bool ok) { + kDebug() << "==========================="; + kDebug() << ok; + kDebug() << mainFrame()->url(); + kDebug() << "==========================="; + Application::adblockManager()->applyHidingRules(this); QStringList list = ReKonfig::walletBlackList(); @@ -327,7 +334,7 @@ void WebPage::loadFinished(bool) void WebPage::manageNetworkErrors(QNetworkReply *reply) { Q_ASSERT(reply); - WebView *v = 0; + QWebFrame* frame = qobject_cast(reply->request().originatingObject()); const bool isMainFrameRequest = (frame == mainFrame()); @@ -355,7 +362,6 @@ void WebPage::manageNetworkErrors(QNetworkReply *reply) break; case QNetworkReply::UnknownNetworkError: // unknown network-related error detected - if( _protHandler.postHandling(reply->request(), mainFrame()) ) break; @@ -373,13 +379,8 @@ void WebPage::manageNetworkErrors(QNetworkReply *reply) case QNetworkReply::ProtocolUnknownError: // Unknown protocol case QNetworkReply::ProtocolInvalidOperationError: // requested operation is invalid for this protocol - // don't bother on elements loading errors: - // we'll manage just main url page ones - v = qobject_cast(view()); - if( reply->url() != v->url() ) - break; - - mainFrame()->setHtml( errorPage(reply), reply->url() ); + if(reply->url() == _loadingUrl) + mainFrame()->setHtml( errorPage(reply), reply->url() ); break; default: diff --git a/src/webpage.h b/src/webpage.h index dcd40cf6..7c1ac2a5 100644 --- a/src/webpage.h +++ b/src/webpage.h @@ -80,6 +80,7 @@ private slots: private: QString errorPage(QNetworkReply *); + QUrl _loadingUrl; ProtocolHandler _protHandler; WebSslInfo _sslInfo; -- cgit v1.2.1