From 8343d45f3dfd631a3f5ac4213918f285930eb446 Mon Sep 17 00:00:00 2001 From: matgic78 Date: Thu, 17 Dec 2009 18:22:23 +0100 Subject: Re-implemented previews in homepage without using plugins. Not finished yet : Little things that change: -nice buttons appearing on hover -transitions on hover TODO: -when a preview is empty or when loading, it is very ugly -for now there's no way to choose the page you want to preview -port "closed Tabs" to this new architecture -totally remove PreviewImage classes -eventually, specific contextmenu for previews --- src/webpage.cpp | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'src/webpage.cpp') diff --git a/src/webpage.cpp b/src/webpage.cpp index b2bedffc..59df13e7 100644 --- a/src/webpage.cpp +++ b/src/webpage.cpp @@ -72,6 +72,7 @@ WebPage::WebPage(QObject *parent) : KWebPage(parent, KWalletIntegration) + , m_newTabPage(0) { setForwardUnsupportedContent(true); @@ -114,10 +115,19 @@ bool WebPage::acceptNavigationRequest(QWebFrame *frame, const QNetworkRequest &r if(risp == KMessageBox::Cancel) return false; } + + if (request.url().scheme() == QLatin1String("about")) + { + if(m_newTabPage == 0) + m_newTabPage = new NewTabPage(frame); + m_newTabPage->generate(request.url()); + return false; + } if (frame && m_protHandler.preHandling( request, frame )) { return false; + } m_requestedUrl = request.url(); -- cgit v1.2.1 From 544094302a51b919b1eea86b313ec10d47533a08 Mon Sep 17 00:00:00 2001 From: matgic78 Date: Fri, 15 Jan 2010 17:20:51 +0100 Subject: A new approach for choosing previews : a bar appears, then you browse to the page you want to preview, and then you click a button --- src/webpage.cpp | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) (limited to 'src/webpage.cpp') diff --git a/src/webpage.cpp b/src/webpage.cpp index 59df13e7..340e9805 100644 --- a/src/webpage.cpp +++ b/src/webpage.cpp @@ -72,7 +72,7 @@ WebPage::WebPage(QObject *parent) : KWebPage(parent, KWalletIntegration) - , m_newTabPage(0) + , m_newTabPage(new NewTabPage(mainFrame() )) { setForwardUnsupportedContent(true); @@ -104,6 +104,12 @@ WebPage::~WebPage() } +NewTabPage* WebPage::newTabPage() +{ + return m_newTabPage; +} + + bool WebPage::acceptNavigationRequest(QWebFrame *frame, const QNetworkRequest &request, NavigationType type) { // advise users on resubmitting data @@ -115,14 +121,6 @@ bool WebPage::acceptNavigationRequest(QWebFrame *frame, const QNetworkRequest &r if(risp == KMessageBox::Cancel) return false; } - - if (request.url().scheme() == QLatin1String("about")) - { - if(m_newTabPage == 0) - m_newTabPage = new NewTabPage(frame); - m_newTabPage->generate(request.url()); - return false; - } if (frame && m_protHandler.preHandling( request, frame )) { -- cgit v1.2.1 From 1c1f1edd697aca0bf96d8d61c40e45166b5f1d02 Mon Sep 17 00:00:00 2001 From: matgic78 Date: Wed, 3 Feb 2010 14:51:38 +0100 Subject: Remove m_newtabPage. That was not used anywhere ! --- src/webpage.cpp | 7 ------- 1 file changed, 7 deletions(-) (limited to 'src/webpage.cpp') diff --git a/src/webpage.cpp b/src/webpage.cpp index 340e9805..f2ea412d 100644 --- a/src/webpage.cpp +++ b/src/webpage.cpp @@ -72,7 +72,6 @@ WebPage::WebPage(QObject *parent) : KWebPage(parent, KWalletIntegration) - , m_newTabPage(new NewTabPage(mainFrame() )) { setForwardUnsupportedContent(true); @@ -104,12 +103,6 @@ WebPage::~WebPage() } -NewTabPage* WebPage::newTabPage() -{ - return m_newTabPage; -} - - bool WebPage::acceptNavigationRequest(QWebFrame *frame, const QNetworkRequest &request, NavigationType type) { // advise users on resubmitting data -- cgit v1.2.1 From 067b99a053b6f8b1ccab507be8e828b2f72a1e43 Mon Sep 17 00:00:00 2001 From: Andrea Diamantini Date: Wed, 10 Feb 2010 10:57:57 +0100 Subject: Fix copyright for 0.4 beta release --- src/webpage.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'src/webpage.cpp') diff --git a/src/webpage.cpp b/src/webpage.cpp index f2ea412d..a6e103bd 100644 --- a/src/webpage.cpp +++ b/src/webpage.cpp @@ -6,7 +6,8 @@ * Copyright (C) 2008 Dirk Mueller * Copyright (C) 2008 Urs Wolfer * Copyright (C) 2008 Michael Howell -* Copyright (C) 2008-2009 by Andrea Diamantini +* Copyright (C) 2008-2010 by Andrea Diamantini +* Copyright (C) 2010 by Matthieu Gicquel * * * This program is free software; you can redistribute it and/or -- cgit v1.2.1 From 9aa7ab98bc6200b7bbc266ed98087a322055c24e Mon Sep 17 00:00:00 2001 From: Andrea Diamantini Date: Sat, 13 Feb 2010 01:14:58 +0100 Subject: Honor settings when Opening new link after the current focused page BUG:226520 --- src/webpage.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/webpage.cpp') diff --git a/src/webpage.cpp b/src/webpage.cpp index a6e103bd..9805a3d5 100644 --- a/src/webpage.cpp +++ b/src/webpage.cpp @@ -139,7 +139,7 @@ WebPage *WebPage::createWindow(QWebPage::WebWindowType type) WebTab *w = 0; if(ReKonfig::openTabNoWindow()) { - w = Application::instance()->mainWindow()->mainView()->newWebTab(!ReKonfig::openTabsBack()); + w = Application::instance()->mainWindow()->mainView()->newWebTab(!ReKonfig::openTabsBack(), ReKonfig::openTabsNearCurrent()); } else { -- cgit v1.2.1 From e5360e6ae9b0601279761983637c8649f8503f0c Mon Sep 17 00:00:00 2001 From: Andrea Diamantini Date: Sat, 13 Feb 2010 01:37:29 +0100 Subject: Fixing download code && (hopefully) issues --- src/webpage.cpp | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) (limited to 'src/webpage.cpp') diff --git a/src/webpage.cpp b/src/webpage.cpp index 9805a3d5..a0a4fe21 100644 --- a/src/webpage.cpp +++ b/src/webpage.cpp @@ -162,7 +162,9 @@ void WebPage::handleUnsupportedContent(QNetworkReply *reply) if( offer.isNull() ) // no service can handle this. We can just download it.. { - isLocal ? KMessageBox::sorry(view(), i18n("No service can handle this :(") ) : downloadRequest(reply->request()); + isLocal + ? KMessageBox::sorry(view(), i18n("No service can handle this :(") ) + : downloadRequest( reply->request() ); return; } @@ -173,7 +175,7 @@ void WebPage::handleUnsupportedContent(QNetworkReply *reply) switch ( dlg.askEmbedOrSave() ) { case KParts::BrowserOpenOrSaveQuestion::Save: - downloadRequested(reply->request()); + downloadRequest( reply->request() ); return; case KParts::BrowserOpenOrSaveQuestion::Cancel: return; @@ -320,8 +322,11 @@ void WebPage::downloadRequest(const QNetworkRequest &request) QDBusInterface kget("org.kde.kget", "/KGet", "org.kde.kget.main"); kget.call("addTransfer", srcUrl.prettyUrl(), destUrl.prettyUrl(), true); } + + return; } - else KWebPage::downloadRequest(request); + + KWebPage::downloadRequest(request); } -- cgit v1.2.1 From 3e1ac6fb3f9865bf5bb0c156e985c1a4577b20e0 Mon Sep 17 00:00:00 2001 From: Andrea Diamantini Date: Sun, 14 Feb 2010 11:23:37 +0100 Subject: Krazy issues (1st branch) --- src/webpage.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/webpage.cpp') diff --git a/src/webpage.cpp b/src/webpage.cpp index a0a4fe21..0f66ae93 100644 --- a/src/webpage.cpp +++ b/src/webpage.cpp @@ -283,7 +283,7 @@ void WebPage::downloadRequest(const QNetworkRequest &request) { if (ReKonfig::kgetDownload()) { - //*Copy of kwebpage code (Shouldn't be done in kwepage ?) + //*Copy of kwebpage code (Shouldn't be done in kwebpage ?) KUrl destUrl; KUrl srcUrl (request.url()); -- cgit v1.2.1 From 06eeee98a92cc01b0b193c94c3d7c357a58f9332 Mon Sep 17 00:00:00 2001 From: Andrea Diamantini Date: Sun, 14 Feb 2010 12:23:53 +0100 Subject: Some stupid changes && kDebug sentences added to better debug download system --- src/webpage.cpp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'src/webpage.cpp') diff --git a/src/webpage.cpp b/src/webpage.cpp index 0f66ae93..ea05c15a 100644 --- a/src/webpage.cpp +++ b/src/webpage.cpp @@ -116,7 +116,7 @@ bool WebPage::acceptNavigationRequest(QWebFrame *frame, const QNetworkRequest &r return false; } - if (frame && m_protHandler.preHandling( request, frame )) + if ( frame && m_protHandler.preHandling(request, frame) ) { return false; @@ -162,6 +162,8 @@ void WebPage::handleUnsupportedContent(QNetworkReply *reply) if( offer.isNull() ) // no service can handle this. We can just download it.. { + kDebug() << "no service can handle this. We can just download it.."; + isLocal ? KMessageBox::sorry(view(), i18n("No service can handle this :(") ) : downloadRequest( reply->request() ); @@ -175,6 +177,7 @@ void WebPage::handleUnsupportedContent(QNetworkReply *reply) switch ( dlg.askEmbedOrSave() ) { case KParts::BrowserOpenOrSaveQuestion::Save: + kDebug() << "service handling: download!"; downloadRequest( reply->request() ); return; case KParts::BrowserOpenOrSaveQuestion::Cancel: @@ -204,7 +207,7 @@ void WebPage::loadFinished(bool) } -void WebPage::manageNetworkErrors(QNetworkReply* reply) +void WebPage::manageNetworkErrors(QNetworkReply *reply) { if( reply->error() == QNetworkReply::NoError ) return; -- cgit v1.2.1 From f364b998624e403a33dd1b79983f80b2d058da26 Mon Sep 17 00:00:00 2001 From: Andrea Diamantini Date: Tue, 16 Feb 2010 02:12:45 +0100 Subject: Fixes focus && let Protocol handler to just load on demand the KDirLister class (and delete on finish) --- src/webpage.cpp | 1 - 1 file changed, 1 deletion(-) (limited to 'src/webpage.cpp') diff --git a/src/webpage.cpp b/src/webpage.cpp index ea05c15a..ce2d5e40 100644 --- a/src/webpage.cpp +++ b/src/webpage.cpp @@ -119,7 +119,6 @@ bool WebPage::acceptNavigationRequest(QWebFrame *frame, const QNetworkRequest &r if ( frame && m_protHandler.preHandling(request, frame) ) { return false; - } m_requestedUrl = request.url(); -- cgit v1.2.1 From f02d3a7ecd4e53af215bcec14ef1480cba9840ed Mon Sep 17 00:00:00 2001 From: megabigbug Date: Sun, 21 Feb 2010 12:24:19 +0100 Subject: handle relative urls (needs test with particular encoding) --- src/webpage.cpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'src/webpage.cpp') diff --git a/src/webpage.cpp b/src/webpage.cpp index ce2d5e40..872766ff 100644 --- a/src/webpage.cpp +++ b/src/webpage.cpp @@ -335,17 +335,21 @@ void WebPage::downloadRequest(const QNetworkRequest &request) void WebPage::downloadAllContentsWithKGet() { QList contentList; + KUrl baseUrl(m_requestedUrl); + KUrl relativeUrl; QWebElementCollection images = mainFrame()->documentElement().findAll("img"); foreach(QWebElement img, images) { - contentList.append(img.attribute("src")); + relativeUrl.setEncodedUrl(img.attribute("src").toUtf8(),KUrl::TolerantMode); + contentList.append(QString(baseUrl.resolved(relativeUrl).toEncoded())); } QWebElementCollection links = mainFrame()->documentElement().findAll("a"); foreach(QWebElement link, links) { - contentList.append(link.attribute("href")); + relativeUrl.setEncodedUrl(link.attribute("href").toUtf8(),KUrl::TolerantMode); + contentList.append(QString(baseUrl.resolved(relativeUrl).toEncoded())); } if(!QDBusConnection::sessionBus().interface()->isServiceRegistered("org.kde.kget")) -- cgit v1.2.1 From 49a6031c6bd03fee2c4130fa05e5ae52d9f826e3 Mon Sep 17 00:00:00 2001 From: megabigbug Date: Sun, 21 Feb 2010 13:10:36 +0100 Subject: remove duplicate links --- src/webpage.cpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'src/webpage.cpp') diff --git a/src/webpage.cpp b/src/webpage.cpp index 872766ff..252a9e93 100644 --- a/src/webpage.cpp +++ b/src/webpage.cpp @@ -334,22 +334,22 @@ void WebPage::downloadRequest(const QNetworkRequest &request) void WebPage::downloadAllContentsWithKGet() { - QList contentList; + QSet contents; KUrl baseUrl(m_requestedUrl); KUrl relativeUrl; QWebElementCollection images = mainFrame()->documentElement().findAll("img"); foreach(QWebElement img, images) { - relativeUrl.setEncodedUrl(img.attribute("src").toUtf8(),KUrl::TolerantMode); - contentList.append(QString(baseUrl.resolved(relativeUrl).toEncoded())); + relativeUrl.setEncodedUrl(img.attribute("src").toUtf8(),KUrl::TolerantMode); + contents << baseUrl.resolved(relativeUrl).toString(); } QWebElementCollection links = mainFrame()->documentElement().findAll("a"); foreach(QWebElement link, links) { relativeUrl.setEncodedUrl(link.attribute("href").toUtf8(),KUrl::TolerantMode); - contentList.append(QString(baseUrl.resolved(relativeUrl).toEncoded())); + contents << baseUrl.resolved(relativeUrl).toString(); } if(!QDBusConnection::sessionBus().interface()->isServiceRegistered("org.kde.kget")) @@ -357,5 +357,5 @@ void WebPage::downloadAllContentsWithKGet() KToolInvocation::kdeinitExecWait("kget"); } QDBusInterface kget("org.kde.kget", "/KGet", "org.kde.kget.main"); - kget.call("importLinks", QVariant(contentList)); + kget.call("importLinks", QVariant(contents.toList())); } -- cgit v1.2.1 From ab28170bd85aeb12384eef2cd4da1c2b04361259 Mon Sep 17 00:00:00 2001 From: Andrea Diamantini Date: Mon, 22 Feb 2010 02:06:06 +0100 Subject: Fixes 217521 bug and let us save also some memory (1 QUrl variable for each webpage). It needs testing, obvious, but it seems working well.. BUG:217521 --- src/webpage.cpp | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) (limited to 'src/webpage.cpp') diff --git a/src/webpage.cpp b/src/webpage.cpp index ce2d5e40..9abc1a0b 100644 --- a/src/webpage.cpp +++ b/src/webpage.cpp @@ -72,7 +72,7 @@ WebPage::WebPage(QObject *parent) - : KWebPage(parent, KWalletIntegration) + : KWebPage(parent, KWalletIntegration) { setForwardUnsupportedContent(true); @@ -87,9 +87,10 @@ WebPage::WebPage(QObject *parent) // Web Plugin Factory setPluginFactory(new WebPluginFactory(this)); - - connect(networkAccessManager(), SIGNAL(finished(QNetworkReply*)), this, SLOT(manageNetworkErrors(QNetworkReply*))); + // managing errors + connect(manager, SIGNAL(finished(QNetworkReply*)), this, SLOT(manageNetworkErrors(QNetworkReply*))); + // handling load & content connect(this, SIGNAL(unsupportedContent(QNetworkReply *)), this, SLOT(handleUnsupportedContent(QNetworkReply *))); connect(this, SIGNAL(loadFinished(bool)), this, SLOT(loadFinished(bool))); @@ -121,8 +122,6 @@ bool WebPage::acceptNavigationRequest(QWebFrame *frame, const QNetworkRequest &r return false; } - m_requestedUrl = request.url(); - return KWebPage::acceptNavigationRequest(frame, request, type); } @@ -218,7 +217,10 @@ void WebPage::manageNetworkErrors(QNetworkReply *reply) if( reply->error() == QNetworkReply::ContentAccessDenied ) return; - if( reply->url() != m_requestedUrl ) // prevent favicon loading + // don't bother on elements loading errors: we'll manage just + // main url page ones + WebView *v = qobject_cast(view()); + if( reply->url() != v->url() ) return; if( reply->error() == QNetworkReply::ContentNotFoundError ) -- cgit v1.2.1 From bdcf5e1f3d9f8fa855bbc83aa23fd3f4877fbab2 Mon Sep 17 00:00:00 2001 From: Andrea Diamantini Date: Wed, 24 Feb 2010 11:35:31 +0100 Subject: Moved away the m_requestedUrl call, using currentFrame()->url(). (When you want to download something from a page, you should just have loaded it..) --- src/webpage.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/webpage.cpp') diff --git a/src/webpage.cpp b/src/webpage.cpp index 3143f296..b5318874 100644 --- a/src/webpage.cpp +++ b/src/webpage.cpp @@ -337,7 +337,7 @@ void WebPage::downloadRequest(const QNetworkRequest &request) void WebPage::downloadAllContentsWithKGet() { QSet contents; - KUrl baseUrl(m_requestedUrl); + KUrl baseUrl( currentFrame()->url() ); KUrl relativeUrl; QWebElementCollection images = mainFrame()->documentElement().findAll("img"); -- cgit v1.2.1 From 5f59b5f0c7724662f180f82123dc5c269f41a530 Mon Sep 17 00:00:00 2001 From: Andrea Diamantini Date: Thu, 25 Feb 2010 12:47:30 +0100 Subject: Fix cookies handling. Change WebPage ctor && setting winId for each page in the cookiejar --- src/webpage.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'src/webpage.cpp') diff --git a/src/webpage.cpp b/src/webpage.cpp index b5318874..98a66fe0 100644 --- a/src/webpage.cpp +++ b/src/webpage.cpp @@ -71,7 +71,7 @@ #include -WebPage::WebPage(QObject *parent) +WebPage::WebPage(QWidget *parent) : KWebPage(parent, KWalletIntegration) { setForwardUnsupportedContent(true); @@ -82,6 +82,10 @@ WebPage::WebPage(QObject *parent) // disable QtWebKit cache to just use KIO one.. manager->setCache(0); + // set cookieJar window ID.. + if (parent && parent->window()) + manager->setCookieJarWindowId(parent->window()->winId()); + setNetworkAccessManager(manager); // Web Plugin Factory -- cgit v1.2.1 From 55260346ded1213932026afb21db55362aa466c1 Mon Sep 17 00:00:00 2001 From: Andrea Diamantini Date: Thu, 25 Feb 2010 18:44:31 +0100 Subject: On the road of fixing BUG 227947 a clear (network) error management. --- src/webpage.cpp | 90 +++++++++++++++++++++++++++++---------------------------- 1 file changed, 46 insertions(+), 44 deletions(-) (limited to 'src/webpage.cpp') diff --git a/src/webpage.cpp b/src/webpage.cpp index 98a66fe0..9371d7bf 100644 --- a/src/webpage.cpp +++ b/src/webpage.cpp @@ -74,13 +74,13 @@ WebPage::WebPage(QWidget *parent) : KWebPage(parent, KWalletIntegration) { + // ----- handling unsupported content... setForwardUnsupportedContent(true); + connect(this, SIGNAL(unsupportedContent(QNetworkReply *)), this, SLOT(handleUnsupportedContent(QNetworkReply *))); - // rekonq Network Manager + // ----- rekonq Network Manager NetworkAccessManager *manager = new NetworkAccessManager(this); - - // disable QtWebKit cache to just use KIO one.. - manager->setCache(0); + manager->setCache(0); // disable QtWebKit cache to just use KIO one.. // set cookieJar window ID.. if (parent && parent->window()) @@ -88,14 +88,11 @@ WebPage::WebPage(QWidget *parent) setNetworkAccessManager(manager); - // Web Plugin Factory + // ----- Web Plugin Factory setPluginFactory(new WebPluginFactory(this)); - // managing errors + // ----- last stuffs connect(manager, SIGNAL(finished(QNetworkReply*)), this, SLOT(manageNetworkErrors(QNetworkReply*))); - - // handling load & content - connect(this, SIGNAL(unsupportedContent(QNetworkReply *)), this, SLOT(handleUnsupportedContent(QNetworkReply *))); connect(this, SIGNAL(loadFinished(bool)), this, SLOT(loadFinished(bool))); // protocol handler signals @@ -211,45 +208,50 @@ void WebPage::loadFinished(bool) void WebPage::manageNetworkErrors(QNetworkReply *reply) { - if( reply->error() == QNetworkReply::NoError ) - return; - - if(m_protHandler.postHandling( reply->request(), mainFrame() )) - return; - - // don't bother on adblocked urls - if( reply->error() == QNetworkReply::ContentAccessDenied ) - return; + WebView *v = 0; - // don't bother on elements loading errors: we'll manage just - // main url page ones - WebView *v = qobject_cast(view()); - if( reply->url() != v->url() ) - return; + // NOTE + // These are not all networkreply errors, + // but just that supported directly by KIO - if( reply->error() == QNetworkReply::ContentNotFoundError ) + switch( reply->error() ) { - QList frames; - frames.append(mainFrame()); - while (!frames.isEmpty()) - { - QWebFrame *firstFrame = frames.takeFirst(); + + case QNetworkReply::NoError: // no error. Simple :) + break; + + case QNetworkReply::UnknownNetworkError: // unknown network-related error detected + + if( m_protHandler.postHandling(reply->request(), mainFrame()) ) + break; + + case QNetworkReply::ContentAccessDenied: // access to remote content denied (similar to HTTP error 401) + kDebug() << "We (hopefully) are managing this through the adblock :)"; + break; + + case QNetworkReply::ConnectionRefusedError: // remote server refused connection + case QNetworkReply::HostNotFoundError: // invalid hostname + case QNetworkReply::TimeoutError: // connection time out + case QNetworkReply::OperationCanceledError: // operation canceled via abort() or close() calls + case QNetworkReply::ProxyNotFoundError: // invalid proxy hostname + case QNetworkReply::ContentOperationNotPermittedError: // operation requested on remote content not permitted + case QNetworkReply::ContentNotFoundError: // remote content not found on server (similar to HTTP error 404) + 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() ); + break; + + default: + kDebug() << "Nothing to do here.."; + break; - if (firstFrame->url() == reply->url()) - { - firstFrame->setHtml(errorPage(reply), reply->url()); - return; - } - QList children = firstFrame->childFrames(); - Q_FOREACH(QWebFrame *frame, children) - { - frames.append(frame); - } - } - } - else - { - mainFrame()->setHtml(errorPage(reply), reply->url()); } } -- cgit v1.2.1 From bdcbe016568d7466551661cdbaecedfb43dcbb59 Mon Sep 17 00:00:00 2001 From: Andrea Diamantini Date: Thu, 25 Feb 2010 19:23:09 +0100 Subject: to be really sure about.. Q_ASSERT it! --- src/webpage.cpp | 3 +++ 1 file changed, 3 insertions(+) (limited to 'src/webpage.cpp') diff --git a/src/webpage.cpp b/src/webpage.cpp index 9371d7bf..f1591cee 100644 --- a/src/webpage.cpp +++ b/src/webpage.cpp @@ -69,6 +69,7 @@ #include #include #include +#include WebPage::WebPage(QWidget *parent) @@ -208,6 +209,8 @@ void WebPage::loadFinished(bool) void WebPage::manageNetworkErrors(QNetworkReply *reply) { + Q_ASSERT(reply); + WebView *v = 0; // NOTE -- cgit v1.2.1 From 6faa12680a0d7d2f13c2862628325ab65521004b Mon Sep 17 00:00:00 2001 From: Andrea Diamantini Date: Sat, 13 Mar 2010 23:24:45 +0100 Subject: Implemented automatic adblock update. This (squashed) commit adds this new feature in rekonq, letting people to simply "forgot" adblock and let rekonq do everything for it I added: - a new (rekonq) adblock widget - an asyncronous method to update rules from the net every TOT days - a better AdBlockManager management. What it is actually missing is the adp protocol support to add new subscriptions to adblock. This will come the next week. For now this part seems stable and needs just testing :) --- src/webpage.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'src/webpage.cpp') diff --git a/src/webpage.cpp b/src/webpage.cpp index f1591cee..4caf5a83 100644 --- a/src/webpage.cpp +++ b/src/webpage.cpp @@ -352,15 +352,15 @@ void WebPage::downloadAllContentsWithKGet() QWebElementCollection images = mainFrame()->documentElement().findAll("img"); foreach(QWebElement img, images) { - relativeUrl.setEncodedUrl(img.attribute("src").toUtf8(),KUrl::TolerantMode); - contents << baseUrl.resolved(relativeUrl).toString(); + relativeUrl.setEncodedUrl(img.attribute("src").toUtf8(),KUrl::TolerantMode); + contents << baseUrl.resolved(relativeUrl).toString(); } QWebElementCollection links = mainFrame()->documentElement().findAll("a"); foreach(QWebElement link, links) { - relativeUrl.setEncodedUrl(link.attribute("href").toUtf8(),KUrl::TolerantMode); - contents << baseUrl.resolved(relativeUrl).toString(); + relativeUrl.setEncodedUrl(link.attribute("href").toUtf8(),KUrl::TolerantMode); + contents << baseUrl.resolved(relativeUrl).toString(); } if(!QDBusConnection::sessionBus().interface()->isServiceRegistered("org.kde.kget")) -- cgit v1.2.1 From 220938f8ffd314c6682bc56d772de5b07c09aca9 Mon Sep 17 00:00:00 2001 From: Andrea Diamantini Date: Wed, 17 Mar 2010 00:53:53 +0100 Subject: First Krazy rekonq-git fixes :D --- src/webpage.cpp | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) (limited to 'src/webpage.cpp') diff --git a/src/webpage.cpp b/src/webpage.cpp index 4caf5a83..42193ed0 100644 --- a/src/webpage.cpp +++ b/src/webpage.cpp @@ -312,12 +312,13 @@ void WebPage::downloadRequest(const QNetworkRequest &request) if (finfo.exists()) { QDateTime now = QDateTime::currentDateTime(); - KIO::RenameDialog dlg (view(), i18n("Overwrite File?"), srcUrl, destUrl, - KIO::RenameDialog_Mode(KIO::M_OVERWRITE | KIO::M_SKIP), - -1, finfo.size(), - now.toTime_t(), finfo.created().toTime_t(), - now.toTime_t(), finfo.lastModified().toTime_t()); - result = dlg.exec(); + QPointer dlg = new KIO::RenameDialog( view(), i18n("Overwrite File?"), srcUrl, destUrl, + KIO::RenameDialog_Mode(KIO::M_OVERWRITE | KIO::M_SKIP), + -1, finfo.size(), + now.toTime_t(), finfo.created().toTime_t(), + now.toTime_t(), finfo.lastModified().toTime_t()); + result = dlg->exec(); + delete dlg; } } } -- cgit v1.2.1 From a6ef003dd4c1b6ad08eca4f5adaa4679bbc20bce Mon Sep 17 00:00:00 2001 From: Andrea Diamantini Date: Sat, 20 Mar 2010 22:54:21 +0100 Subject: Downloads Page This commit implements the downloads history page. While it is in an horrible shape, its slots seem working well It needs just some love.. --- src/webpage.cpp | 105 +++++++++++++++++++++++++++++++++++--------------------- 1 file changed, 66 insertions(+), 39 deletions(-) (limited to 'src/webpage.cpp') diff --git a/src/webpage.cpp b/src/webpage.cpp index 42193ed0..0e7b3d8a 100644 --- a/src/webpage.cpp +++ b/src/webpage.cpp @@ -71,6 +71,9 @@ #include #include +// Defines +#define QL1S(x) QLatin1String(x) + WebPage::WebPage(QWidget *parent) : KWebPage(parent, KWalletIntegration) @@ -292,55 +295,76 @@ QString WebPage::errorPage(QNetworkReply *reply) } +// WARNING +// this code is actually copied from KWebPage::downloadRequest to save +// downloads data before. If you have some better ideas about, +// feel free to let us know about :) void WebPage::downloadRequest(const QNetworkRequest &request) { - if (ReKonfig::kgetDownload()) - { - //*Copy of kwebpage code (Shouldn't be done in kwebpage ?) - - KUrl destUrl; - KUrl srcUrl (request.url()); - int result = KIO::R_OVERWRITE; - - do - { - destUrl = KFileDialog::getSaveFileName(srcUrl.fileName(), QString(), view()); - - if (destUrl.isLocalFile()) - { - QFileInfo finfo (destUrl.toLocalFile()); - if (finfo.exists()) - { - QDateTime now = QDateTime::currentDateTime(); - QPointer dlg = new KIO::RenameDialog( view(), i18n("Overwrite File?"), srcUrl, destUrl, - KIO::RenameDialog_Mode(KIO::M_OVERWRITE | KIO::M_SKIP), - -1, finfo.size(), - now.toTime_t(), finfo.created().toTime_t(), - now.toTime_t(), finfo.lastModified().toTime_t()); - result = dlg->exec(); - delete dlg; - } - } - } - while (result == KIO::R_CANCEL && destUrl.isValid()); - - if (result == KIO::R_OVERWRITE && destUrl.isValid()) + KUrl destUrl; + KUrl srcUrl (request.url()); + int result = KIO::R_OVERWRITE; + + do + { + destUrl = KFileDialog::getSaveFileName(srcUrl.fileName(), QString(), view()); + + if (destUrl.isLocalFile()) + { + QFileInfo finfo( destUrl.toLocalFile() ); + if ( finfo.exists() ) + { + QDateTime now = QDateTime::currentDateTime(); + QPointer dlg = new KIO::RenameDialog( view(), + i18n("Overwrite File?"), + srcUrl, + destUrl, + KIO::RenameDialog_Mode(KIO::M_OVERWRITE | KIO::M_SKIP), + -1, + finfo.size(), + now.toTime_t(), + finfo.created().toTime_t(), + now.toTime_t(), + finfo.lastModified().toTime_t() + ); + result = dlg->exec(); + delete dlg; + } + } + } + while ( result == KIO::R_CANCEL && destUrl.isValid() ); + + // now store data + // now, destUrl, srcUrl + Application::historyManager()->addDownload( srcUrl.pathOrUrl() , destUrl.pathOrUrl() ); + + if ( result == KIO::R_OVERWRITE && destUrl.isValid() ) + { + if ( ReKonfig::kgetDownload() ) { - //*End of copy code - //KGet integration: if(!QDBusConnection::sessionBus().interface()->isServiceRegistered("org.kde.kget")) { KToolInvocation::kdeinitExecWait("kget"); } QDBusInterface kget("org.kde.kget", "/KGet", "org.kde.kget.main"); - kget.call("addTransfer", srcUrl.prettyUrl(), destUrl.prettyUrl(), true); + if( kget.isValid() ) + { + kget.call("addTransfer", srcUrl.prettyUrl(), destUrl.prettyUrl(), true); + return; + } } - return; - } - - KWebPage::downloadRequest(request); + // else, use KIO or fallback to it + KIO::Job *job = KIO::file_copy(srcUrl, destUrl, -1, KIO::Overwrite); + QVariant attr = request.attribute(static_cast(KIO::AccessManager::MetaData)); + if (attr.isValid() && attr.type() == QVariant::Map) + job->setMetaData(KIO::MetaData(attr.toMap())); + + job->addMetaData(QL1S("MaxCacheSize"), QL1S("0")); // Don't store in http cache. + job->addMetaData(QL1S("cache"), QL1S("cache")); // Use entry from cache if available. + job->uiDelegate()->setAutoErrorHandlingEnabled(true); + } } @@ -369,5 +393,8 @@ void WebPage::downloadAllContentsWithKGet() KToolInvocation::kdeinitExecWait("kget"); } QDBusInterface kget("org.kde.kget", "/KGet", "org.kde.kget.main"); - kget.call("importLinks", QVariant(contents.toList())); + if( kget.isValid() ) + { + kget.call("importLinks", QVariant(contents.toList())); + } } -- cgit v1.2.1 From 6a34b95f02848f75057f5e913e500115643fde5d Mon Sep 17 00:00:00 2001 From: Andrea Diamantini Date: Mon, 22 Mar 2010 02:46:24 +0100 Subject: First SSL support. checking metadata missing.. --- src/webpage.cpp | 175 ++++++++++++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 150 insertions(+), 25 deletions(-) (limited to 'src/webpage.cpp') diff --git a/src/webpage.cpp b/src/webpage.cpp index 0e7b3d8a..395e9073 100644 --- a/src/webpage.cpp +++ b/src/webpage.cpp @@ -45,6 +45,8 @@ #include "networkaccessmanager.h" #include "adblockmanager.h" +#include "sslinfodialog_p.h" + // KDE Includes #include #include @@ -73,6 +75,32 @@ // Defines #define QL1S(x) QLatin1String(x) +#define QL1C(x) QLatin1Char(x) + + +// Returns true if the scheme and domain of the two urls match... +static bool domainSchemeMatch(const QUrl& u1, const QUrl& u2) +{ + if (u1.scheme() != u2.scheme()) + return false; + + QStringList u1List = u1.host().split(QL1C('.'), QString::SkipEmptyParts); + QStringList u2List = u2.host().split(QL1C('.'), QString::SkipEmptyParts); + + if (qMin(u1List.count(), u2List.count()) < 2) + return false; // better safe than sorry... + + while (u1List.count() > 2) + u1List.removeFirst(); + + while (u2List.count() > 2) + u2List.removeFirst(); + + return (u1List == u2List); +} + + +// --------------------------------------------------------------------------------- WebPage::WebPage(QWidget *parent) @@ -92,6 +120,14 @@ WebPage::WebPage(QWidget *parent) setNetworkAccessManager(manager); + // activate ssl warnings + setSessionMetaData("ssl_activate_warnings", "TRUE"); + + // Override the 'Accept' header sent by QtWebKit which favors XML over HTML! + // Setting the accept meta-data to null will force kio_http to use its own + // default settings for this header. + setSessionMetaData(QL1S("accept"), QString()); + // ----- Web Plugin Factory setPluginFactory(new WebPluginFactory(this)); @@ -100,7 +136,7 @@ WebPage::WebPage(QWidget *parent) connect(this, SIGNAL(loadFinished(bool)), this, SLOT(loadFinished(bool))); // protocol handler signals - connect(&m_protHandler, SIGNAL(downloadUrl(const KUrl &)), this, SLOT(downloadUrl(const KUrl &))); + connect(&_protHandler, SIGNAL(downloadUrl(const KUrl &)), this, SLOT(downloadUrl(const KUrl &))); } @@ -112,21 +148,54 @@ WebPage::~WebPage() bool WebPage::acceptNavigationRequest(QWebFrame *frame, const QNetworkRequest &request, NavigationType type) { - // advise users on resubmitting data - if(type == QWebPage::NavigationTypeFormResubmitted) + if(frame) { - int risp = KMessageBox::warningContinueCancel(view(), - i18n("Are you sure you want to send your data again?"), - i18n("Resend form data") ); - if(risp == KMessageBox::Cancel) + if ( _protHandler.preHandling(request, frame) ) + { return false; + } + + switch (type) + { + case QWebPage::NavigationTypeLinkClicked: + if (_sslInfo.isValid() ) + { + setRequestMetaData("ssl_was_in_use", "TRUE"); + } + break; + + case QWebPage::NavigationTypeFormSubmitted: + break; + + case QWebPage::NavigationTypeFormResubmitted: + if( KMessageBox::warningContinueCancel(view(), + i18n("Are you sure you want to send your data again?"), + i18n("Resend form data") + ) + == KMessageBox::Cancel) + { + return false; + } + break; + + case QWebPage::NavigationTypeReload: + case QWebPage::NavigationTypeBackOrForward: + case QWebPage::NavigationTypeOther: + break; + + default: + break; + } + + if(frame == mainFrame()) + { + setRequestMetaData("main_frame_request", "TRUE"); + } + else + { + setRequestMetaData("main_frame_request", "FALSE"); + } } - - if ( frame && m_protHandler.preHandling(request, frame) ) - { - return false; - } - return KWebPage::acceptNavigationRequest(frame, request, type); } @@ -197,38 +266,67 @@ void WebPage::handleUnsupportedContent(QNetworkReply *reply) } -void WebPage::loadFinished(bool) +void WebPage::loadFinished(bool ok) { + if(!ok) + return; + Application::adblockManager()->applyHidingRules(this); + QStringList list = ReKonfig::walletBlackList(); + // KWallet Integration - // TODO: Add check for sites exempt from automatic form filling... - if (wallet()) + if ( wallet() + && !list.contains( mainFrame()->url().toString() ) + ) { wallet()->fillFormData(mainFrame()); } + + // TODO: implement me! + if(_sslInfo.isValid()) + { + // show an icon in the urlbar + } + else + { + // hide the icon in the urlbar + } } void WebPage::manageNetworkErrors(QNetworkReply *reply) { Q_ASSERT(reply); - - WebView *v = 0; + QWebFrame* frame = qobject_cast(reply->request().originatingObject()); + const bool isMainFrameRequest = (frame == mainFrame()); - // NOTE - // These are not all networkreply errors, + if ( isMainFrameRequest + && _sslInfo.isValid() + && !domainSchemeMatch(reply->url(), _sslInfo.url()) + ) + { + //kDebug() << "Reseting cached SSL info..."; + _sslInfo = WebSslInfo(); + } + + // NOTE: These are not all networkreply errors, // but just that supported directly by KIO - switch( reply->error() ) { - case QNetworkReply::NoError: // no error. Simple :) + case QNetworkReply::NoError: // no error. Simple :) + if ( isMainFrameRequest && !_sslInfo.isValid() ) + { + // Obtain and set the SSL information if any... + _sslInfo.fromMetaData(reply->attribute(static_cast(KIO::AccessManager::MetaData))); + _sslInfo.setUrl(reply->url()); + } break; case QNetworkReply::UnknownNetworkError: // unknown network-related error detected - if( m_protHandler.postHandling(reply->request(), mainFrame()) ) + if( _protHandler.postHandling(reply->request(), mainFrame()) ) break; case QNetworkReply::ContentAccessDenied: // access to remote content denied (similar to HTTP error 401) @@ -247,8 +345,7 @@ void WebPage::manageNetworkErrors(QNetworkReply *reply) // don't bother on elements loading errors: // we'll manage just main url page ones - v = qobject_cast(view()); - if( reply->url() != v->url() ) + if( !isMainFrameRequest ) break; mainFrame()->setHtml( errorPage(reply), reply->url() ); @@ -398,3 +495,31 @@ void WebPage::downloadAllContentsWithKGet() kget.call("importLinks", QVariant(contents.toList())); } } + + +void WebPage::showSSLInfo() +{ + if (_sslInfo.isValid()) + { + QPointer dlg = new KSslInfoDialog ( view() ); + dlg->setSslInfo( _sslInfo.certificateChain(), + _sslInfo.peerAddress().toString(), + mainFrame()->url().host(), + _sslInfo.protocol(), + _sslInfo.ciphers(), + _sslInfo.usedChiperBits(), + _sslInfo.supportedChiperBits(), + KSslInfoDialog::errorsFromString( _sslInfo.certificateErrors() ) + ); + + dlg->open(); + delete dlg; + } + else + { + KMessageBox::information( 0, + i18n("The SSL information for this site appears to be corrupt."), + i18nc("Secure Sockets Layer", "SSL") + ); + } +} -- cgit v1.2.1 From 1c3456d2821b73aa3f616b773499e99facf595f3 Mon Sep 17 00:00:00 2001 From: Andrea Diamantini Date: Mon, 22 Mar 2010 11:31:05 +0100 Subject: Fixing loading checking errors and retrieving ssl metadata. We need just this F*****g awesome bar to show them :) --- src/webpage.cpp | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) (limited to 'src/webpage.cpp') diff --git a/src/webpage.cpp b/src/webpage.cpp index 395e9073..0da17a7b 100644 --- a/src/webpage.cpp +++ b/src/webpage.cpp @@ -148,6 +148,18 @@ WebPage::~WebPage() bool WebPage::acceptNavigationRequest(QWebFrame *frame, const QNetworkRequest &request, NavigationType type) { + KIO::AccessManager *manager = qobject_cast(networkAccessManager()); + KIO::MetaData metaData = manager->requestMetaData(); + + // Get the SSL information sent, if any... + if( metaData.contains(QL1S("ssl_in_use")) ) + { + WebSslInfo info; + info.fromMetaData(metaData.toVariant()); + info.setUrl(request.url()); + _sslInfo = info; + } + if(frame) { if ( _protHandler.preHandling(request, frame) ) @@ -287,10 +299,12 @@ void WebPage::loadFinished(bool ok) if(_sslInfo.isValid()) { // show an icon in the urlbar + kDebug() << "----------------- SSL VALID INFO!!!! ------------------"; } else { // hide the icon in the urlbar + kDebug() << "----------------- SSL INFO NOT VALID... ------------------"; } } @@ -298,6 +312,7 @@ void WebPage::loadFinished(bool ok) void WebPage::manageNetworkErrors(QNetworkReply *reply) { Q_ASSERT(reply); + WebView *v = 0; QWebFrame* frame = qobject_cast(reply->request().originatingObject()); const bool isMainFrameRequest = (frame == mainFrame()); @@ -343,9 +358,10 @@ 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: + // don't bother on elements loading errors: // we'll manage just main url page ones - if( !isMainFrameRequest ) + v = qobject_cast(view()); + if( reply->url() != v->url() ) break; mainFrame()->setHtml( errorPage(reply), reply->url() ); -- cgit v1.2.1 From c7fccbe4aa27b7dbd2eccba9ada4cdceba3490eb Mon Sep 17 00:00:00 2001 From: Andrea Diamantini Date: Mon, 22 Mar 2010 15:30:41 +0100 Subject: Doing "load finished" operations just on ok loading is really NOT a good idea.. --- src/webpage.cpp | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) (limited to 'src/webpage.cpp') diff --git a/src/webpage.cpp b/src/webpage.cpp index 0da17a7b..06e733b0 100644 --- a/src/webpage.cpp +++ b/src/webpage.cpp @@ -278,11 +278,8 @@ void WebPage::handleUnsupportedContent(QNetworkReply *reply) } -void WebPage::loadFinished(bool ok) +void WebPage::loadFinished(bool) { - if(!ok) - return; - Application::adblockManager()->applyHidingRules(this); QStringList list = ReKonfig::walletBlackList(); -- cgit v1.2.1 From 860934af2c429c9676e8a6ad5fa595cfd405d164 Mon Sep 17 00:00:00 2001 From: Andrea Diamantini Date: Fri, 26 Mar 2010 17:32:16 +0100 Subject: This commit lets rekonq embed parts instead of krunning them DISCLAIMER: This code really A LOT of testing. Not for the code itself, but for the parts it lets rekonq use. I'm experiencing a lot of crashes with the Dragon Part, in example. --- src/webpage.cpp | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) (limited to 'src/webpage.cpp') diff --git a/src/webpage.cpp b/src/webpage.cpp index 06e733b0..71cc8be4 100644 --- a/src/webpage.cpp +++ b/src/webpage.cpp @@ -271,9 +271,22 @@ void WebPage::handleUnsupportedContent(QNetworkReply *reply) } } // case KParts::BrowserRun::Embed - KUrl::List list; - list.append(url); - KRun::run(*offer,url,0); + QString html; + html += ""; + html += ""; + html += ""; + html += url.pathOrUrl(); + html += ""; + html += ""; + html += ""; + html += ""; + html += ""; + html += ""; + html += ""; + + mainFrame()->setHtml(html, url); } } -- cgit v1.2.1 From 352168759ea96b35296eaf33790fbe073b69f69b Mon Sep 17 00:00:00 2001 From: Andrea Diamantini Date: Mon, 5 Apr 2010 01:31:13 +0200 Subject: This commit is the first implementation of a new new new urlbar Here are its features: - KLineEdit based - ability to easily add "icons" :) - SSL informations shown (a-la firefox) - smoother animation - cleaner code - data QString, not KUrl based (Users type string, not urls!!!) --- src/webpage.cpp | 35 ++++++++++++++++++----------------- 1 file changed, 18 insertions(+), 17 deletions(-) (limited to 'src/webpage.cpp') diff --git a/src/webpage.cpp b/src/webpage.cpp index 71cc8be4..8dc0ef96 100644 --- a/src/webpage.cpp +++ b/src/webpage.cpp @@ -304,18 +304,9 @@ void WebPage::loadFinished(bool) { wallet()->fillFormData(mainFrame()); } - - // TODO: implement me! - if(_sslInfo.isValid()) - { - // show an icon in the urlbar - kDebug() << "----------------- SSL VALID INFO!!!! ------------------"; - } - else - { - // hide the icon in the urlbar - kDebug() << "----------------- SSL INFO NOT VALID... ------------------"; - } + + if( mainFrame()->url().scheme() == QL1S("https") ) + emit validSSLInfo( _sslInfo.isValid() ); } @@ -538,13 +529,23 @@ void WebPage::showSSLInfo() KSslInfoDialog::errorsFromString( _sslInfo.certificateErrors() ) ); - dlg->open(); + dlg->exec(); delete dlg; - } - else + + return; + } + + if( mainFrame()->url().scheme() == QL1S("https") ) + { + KMessageBox::error( view(), + i18n("The SSL information for this site appears to be corrupt."), + i18nc("Secure Sockets Layer", "SSL") + ); + } + else { - KMessageBox::information( 0, - i18n("The SSL information for this site appears to be corrupt."), + KMessageBox::information( view(), + i18n("This site doesn't contain SSL information."), i18nc("Secure Sockets Layer", "SSL") ); } -- cgit v1.2.1 From 43dc2695d62fd2e4fc01aff608bb2af3e8335040 Mon Sep 17 00:00:00 2001 From: Andrea Diamantini Date: Thu, 8 Apr 2010 02:53:38 +0200 Subject: This is a really big commit, implementing the new urlbar - removed previous SSL animation, we have now a nice yellow lock :) - faster and cleaner animations - reenabled the old stacked widget, to avoid stupid refreshes and fix some regressions - implemented some "right icons": KGet, SSL, RSS. For now, just SSL is full featured - clean up the box :) Some old & unuseful files removed, some icons added - Pano's request: grey text shown everytime in the empty bar Again and again: this is not the first, but the second implementation of the new urlbar UI. About me this is clearly better than the first or the previous. But it needs love :D BUG: 230125 BUG: 231015 CCBUG: 228040 BUG: 227272 --- src/webpage.cpp | 3 --- 1 file changed, 3 deletions(-) (limited to 'src/webpage.cpp') diff --git a/src/webpage.cpp b/src/webpage.cpp index 8dc0ef96..628b0136 100644 --- a/src/webpage.cpp +++ b/src/webpage.cpp @@ -304,9 +304,6 @@ void WebPage::loadFinished(bool) { wallet()->fillFormData(mainFrame()); } - - if( mainFrame()->url().scheme() == QL1S("https") ) - emit validSSLInfo( _sslInfo.isValid() ); } -- cgit v1.2.1 From 7e81a6735dccfd66193b08bcdd0dcde5fdd999c7 Mon Sep 17 00:00:00 2001 From: matgic78 Date: Fri, 9 Apr 2010 19:01:59 +0200 Subject: Do not save infos about canceled downloads --- src/webpage.cpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'src/webpage.cpp') diff --git a/src/webpage.cpp b/src/webpage.cpp index 628b0136..65dda0a0 100644 --- a/src/webpage.cpp +++ b/src/webpage.cpp @@ -445,12 +445,12 @@ void WebPage::downloadRequest(const QNetworkRequest &request) } while ( result == KIO::R_CANCEL && destUrl.isValid() ); - // now store data - // now, destUrl, srcUrl - Application::historyManager()->addDownload( srcUrl.pathOrUrl() , destUrl.pathOrUrl() ); - if ( result == KIO::R_OVERWRITE && destUrl.isValid() ) - { + { + // now store data + // now, destUrl, srcUrl + Application::historyManager()->addDownload( srcUrl.pathOrUrl() , destUrl.pathOrUrl() ); + if ( ReKonfig::kgetDownload() ) { //KGet integration: -- cgit v1.2.1 From 2fc4da5614113a8a184f6bdd05185cc875d9ce27 Mon Sep 17 00:00:00 2001 From: Andrea Diamantini Date: Tue, 20 Apr 2010 00:58:19 +0200 Subject: deleting replies as explained in QNetworkAccessManager docs --- src/webpage.cpp | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) (limited to 'src/webpage.cpp') diff --git a/src/webpage.cpp b/src/webpage.cpp index 65dda0a0..6cc9d531 100644 --- a/src/webpage.cpp +++ b/src/webpage.cpp @@ -251,7 +251,8 @@ void WebPage::handleUnsupportedContent(QNetworkReply *reply) isLocal ? KMessageBox::sorry(view(), i18n("No service can handle this :(") ) : downloadRequest( reply->request() ); - return; + + return reply->deleteLater(); } if(!isLocal) @@ -263,9 +264,11 @@ void WebPage::handleUnsupportedContent(QNetworkReply *reply) case KParts::BrowserOpenOrSaveQuestion::Save: kDebug() << "service handling: download!"; downloadRequest( reply->request() ); - return; + return reply->deleteLater(); + case KParts::BrowserOpenOrSaveQuestion::Cancel: - return; + return reply->deleteLater(); + default: // non extant case break; } @@ -287,6 +290,7 @@ void WebPage::handleUnsupportedContent(QNetworkReply *reply) html += ""; mainFrame()->setHtml(html, url); + return reply->deleteLater(); } } @@ -370,6 +374,8 @@ void WebPage::manageNetworkErrors(QNetworkReply *reply) break; } + + reply->deleteLater(); } -- cgit v1.2.1 From caadc8d30c2cc51dd784bb487c4d696ad1152f92 Mon Sep 17 00:00:00 2001 From: Andrea Diamantini Date: Tue, 20 Apr 2010 11:22:59 +0200 Subject: Partially fixing deleteLater related crashes. But... why these crashes happen if Qt Docs say to delete (later) them? --- src/webpage.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'src/webpage.cpp') diff --git a/src/webpage.cpp b/src/webpage.cpp index 6cc9d531..2b2957f6 100644 --- a/src/webpage.cpp +++ b/src/webpage.cpp @@ -252,7 +252,7 @@ void WebPage::handleUnsupportedContent(QNetworkReply *reply) ? KMessageBox::sorry(view(), i18n("No service can handle this :(") ) : downloadRequest( reply->request() ); - return reply->deleteLater(); + return; } if(!isLocal) @@ -264,7 +264,7 @@ void WebPage::handleUnsupportedContent(QNetworkReply *reply) case KParts::BrowserOpenOrSaveQuestion::Save: kDebug() << "service handling: download!"; downloadRequest( reply->request() ); - return reply->deleteLater(); + return; case KParts::BrowserOpenOrSaveQuestion::Cancel: return reply->deleteLater(); @@ -290,7 +290,7 @@ void WebPage::handleUnsupportedContent(QNetworkReply *reply) html += ""; mainFrame()->setHtml(html, url); - return reply->deleteLater(); + return; } } -- cgit v1.2.1 From f85feb1a9b2a75a6dcfbbad323649c01544a9f0c Mon Sep 17 00:00:00 2001 From: Andrea Diamantini Date: Wed, 21 Apr 2010 01:41:13 +0200 Subject: Nebulon's patch. Reverting a beautiful fix by me letting rekonq joyfully crashing on every non default action --- src/webpage.cpp | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) (limited to 'src/webpage.cpp') diff --git a/src/webpage.cpp b/src/webpage.cpp index 2b2957f6..a75272cd 100644 --- a/src/webpage.cpp +++ b/src/webpage.cpp @@ -267,7 +267,7 @@ void WebPage::handleUnsupportedContent(QNetworkReply *reply) return; case KParts::BrowserOpenOrSaveQuestion::Cancel: - return reply->deleteLater(); + return; default: // non extant case break; @@ -374,8 +374,6 @@ void WebPage::manageNetworkErrors(QNetworkReply *reply) break; } - - reply->deleteLater(); } -- cgit v1.2.1