diff options
-rw-r--r-- | CMakeLists.txt | 4 | ||||
-rw-r--r-- | src/networkaccessmanager.cpp | 48 | ||||
-rw-r--r-- | src/webpage.cpp | 51 |
3 files changed, 24 insertions, 79 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index 12e9c8cc..56601bbb 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -7,7 +7,7 @@ PROJECT( rekonq ) # Informations to update before to release this package. # rekonq info -SET(REKONQ_VERSION "0.7.52" ) +SET(REKONQ_VERSION "0.7.55" ) configure_file(${CMAKE_CURRENT_SOURCE_DIR}/version.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/version.h ) @@ -22,7 +22,7 @@ CMAKE_MINIMUM_REQUIRED(VERSION 2.6.4) FIND_PACKAGE(Qt4 4.7.0 COMPONENTS QtCore QtGui QtNetwork QtWebKit REQUIRED) -FIND_PACKAGE(KDE4 4.5.0 REQUIRED) +FIND_PACKAGE(KDE4 4.6.90 REQUIRED) INCLUDE(MacroOptionalFindPackage) INCLUDE(FindPackageHandleStandardArgs) diff --git a/src/networkaccessmanager.cpp b/src/networkaccessmanager.cpp index 9a500cf8..78a880e7 100644 --- a/src/networkaccessmanager.cpp +++ b/src/networkaccessmanager.cpp @@ -84,52 +84,12 @@ QNetworkReply *NetworkAccessManager::createRequest(QNetworkAccessManager::Operat req.setAttribute(QNetworkRequest::CacheLoadControlAttribute, QNetworkRequest::PreferCache); break; } - - // WARNING - // There are actually 2 exceptions here handled with QNAM - // instead of KIO that need fixes upstream before removing. They are: - // 1) DeleteOperation - // 2) CustomOperation - - switch (op) - { - case QNetworkAccessManager::HeadOperation: - break; - - case QNetworkAccessManager::GetOperation: + + // Handle GET operations with AdBlock + if (op == QNetworkAccessManager::GetOperation) reply = rApp->adblockManager()->block(req, parentPage); - break; - - case QNetworkAccessManager::PutOperation: - break; - - case QNetworkAccessManager::PostOperation: - break; - - // This particular issue has been solved for KDE Version 4.5.96, - // so we can safely disable this piece of code -#if !KDE_IS_VERSION( 4, 5, 96) - - case QNetworkAccessManager::DeleteOperation: - kDebug() << "DELETE OPERATION..."; - reply = QNetworkAccessManager::createRequest(op, req, outgoingData); - if (!reply) - kDebug() << "OOOOOOOOOOOOOOOOOOO DELETE REPLY NULL"; - break; - - case QNetworkAccessManager::CustomOperation: - kDebug() << "CUSTOM OPERATION..."; - reply = QNetworkAccessManager::createRequest(op, req, outgoingData); - if (!reply) - kDebug() << "OOOOOOOOOOOOOOOOOOO CUSTOM REPLY NULL"; - break; - -#endif - default: - kDebug() << "NON EXTANT CASE..."; - break; - } + if (!reply) reply = AccessManager::createRequest(op, req, outgoingData); diff --git a/src/webpage.cpp b/src/webpage.cpp index 29ee4a40..128d2e34 100644 --- a/src/webpage.cpp +++ b/src/webpage.cpp @@ -263,27 +263,28 @@ WebPage::WebPage(QWidget *parent) // ----- rekonq Network Manager NetworkAccessManager *manager = new NetworkAccessManager(this); - manager->setCache(0); // disable QtWebKit cache to just use KIO one.. - // set cookieJar window ID.. - if (parent && parent->window()) - manager->setCookieJarWindowId(parent->window()->winId()); + // disable QtWebKit cache to just use KIO one.. + manager->setCache(0); + // set cookieJar window.. + if (parent && parent->window()) + manager->setWindow(parent->window()); + + // set network reply object to emit readyRead when it receives meta data + manager->setEmitReadyReadOnMetaDataChange(true); + 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()); + setSessionMetaData( QL1S("ssl_activate_warnings"), QL1S("TRUE") ); // ----- Web Plugin Factory setPluginFactory(new WebPluginFactory(this)); // ----- last stuffs connect(manager, SIGNAL(finished(QNetworkReply*)), this, SLOT(manageNetworkErrors(QNetworkReply*))); + connect(this, SIGNAL(downloadRequested(const QNetworkRequest &)), this, SLOT(downloadRequest(const QNetworkRequest &))); connect(this, SIGNAL(loadStarted()), this, SLOT(loadStarted())); connect(this, SIGNAL(loadFinished(bool)), this, SLOT(loadFinished(bool))); @@ -393,15 +394,10 @@ void WebPage::handleUnsupportedContent(QNetworkReply *reply) { Q_ASSERT(reply); - // Put the job on hold... -#if KDE_IS_VERSION( 4, 5, 96) - kDebug() << "PUT REPLY ON HOLD..."; - KIO::Integration::AccessManager::putReplyOnHold(reply); -#else - reply->abort(); -#endif + if (!reply) + return; - // This is probably needed just in ONE stupid case.. + // handle protocols WebKit cannot handle... if (_protHandler.postHandling(reply->request(), mainFrame())) { kDebug() << "POST HANDLING the unsupported..."; @@ -411,6 +407,8 @@ void WebPage::handleUnsupportedContent(QNetworkReply *reply) if (reply->error() != QNetworkReply::NoError) return; + KIO::Integration::AccessManager::putReplyOnHold(reply); + // get reply url... KUrl replyUrl = reply->url(); @@ -418,7 +416,7 @@ void WebPage::handleUnsupportedContent(QNetworkReply *reply) if(isLocal && KProtocolInfo::isKnownProtocol(replyUrl)) { kDebug() << "WARNING: launching a new app..."; - new KRun(replyUrl, rApp->mainWindow()); // No need to delete KRun, it autodeletes itself + (void)new KRun(replyUrl, rApp->mainWindow(), 0, replyUrl.isLocalFile()); return; } @@ -510,23 +508,9 @@ void WebPage::handleUnsupportedContent(QNetworkReply *reply) // No parts, just app services. Load it! // If the app is a KDE one, publish the slave on hold to let it use it. // Otherwise, run the app and remove it (the io slave...) - if (appService->categories().contains(QL1S("KDE"), Qt::CaseInsensitive)) - { -#if KDE_IS_VERSION( 4, 5, 96) - KIO::Scheduler::publishSlaveOnHold(); -#endif - KRun::run(*appService, replyUrl, 0, false, _suggestedFileName); - return; - } KRun::run(*appService, replyUrl, 0, false, _suggestedFileName); } - // Remove any ioslave that was put on hold... -#if KDE_IS_VERSION( 4, 5, 96) - kDebug() << "REMOVE SLAVES ON HOLD..."; - KIO::Scheduler::removeSlaveOnHold(); -#endif - return; } @@ -609,6 +593,7 @@ void WebPage::manageNetworkErrors(QNetworkReply *reply) break; case QNetworkReply::UnknownNetworkError: // unknown network-related error detected + kDebug() << "------------------ DO WE REALLY NEED THIS??? --------------------"; _protHandler.postHandling(reply->request(), frame); return; |