diff options
author | Andrea Diamantini <adjam7@gmail.com> | 2010-09-01 01:39:43 +0200 |
---|---|---|
committer | Andrea Diamantini <adjam7@gmail.com> | 2010-09-01 01:39:43 +0200 |
commit | b08c67eb1e45cb94dc6250fe555d84f0c0e7debe (patch) | |
tree | cde7d4e24a8592053842beeb861b60d6180d8195 /src | |
parent | Let urlbar being usable also in fullscreen mode (diff) | |
download | rekonq-b08c67eb1e45cb94dc6250fe555d84f0c0e7debe.tar.xz |
This hacks should fix (a lot of) javascript handling.
Hope this will be properly fixed upstream in KIO...
Please, Jurian & Pano. Let me know if this has been really fixed.
BUG: 242886
Diffstat (limited to 'src')
-rw-r--r-- | src/analyzer/networkanalyzer.cpp | 3 | ||||
-rw-r--r-- | src/networkaccessmanager.cpp | 20 | ||||
-rw-r--r-- | src/protocolhandler.cpp | 1 |
3 files changed, 20 insertions, 4 deletions
diff --git a/src/analyzer/networkanalyzer.cpp b/src/analyzer/networkanalyzer.cpp index c5b08835..d0044f47 100644 --- a/src/analyzer/networkanalyzer.cpp +++ b/src/analyzer/networkanalyzer.cpp @@ -162,7 +162,8 @@ void NetworkAnalyzer::requestFinished( QObject *replyObject ) QString contentType = reply->header( QNetworkRequest::ContentTypeHeader ).toString(); item->setText( 4, contentType ); - if ( status == 302 ) { + if ( status == 302 ) + { QUrl target = reply->attribute( QNetworkRequest::RedirectionTargetAttribute ).toUrl(); item->setText( 5, i18n("Redirect: %1", target.toString() ) ); } diff --git a/src/networkaccessmanager.cpp b/src/networkaccessmanager.cpp index f746087a..73c8b599 100644 --- a/src/networkaccessmanager.cpp +++ b/src/networkaccessmanager.cpp @@ -65,7 +65,7 @@ QNetworkReply *NetworkAccessManager::createRequest(QNetworkAccessManager::Operat QNetworkRequest req = request; req.setAttribute(QNetworkRequest::HttpPipeliningAllowedAttribute, true); req.setRawHeader("Accept-Language", _acceptLanguage); - + KIO::CacheControl cc = KProtocolManager::cacheControl(); switch (cc) { @@ -88,6 +88,20 @@ QNetworkReply *NetworkAccessManager::createRequest(QNetworkAccessManager::Operat break; } + // WARNING + // There are actually 3 exceptions here handled with QNAM + // instead of KIO that need fixes upstream before removing. They are: + // 1) AJAX requests handling + // 2) DeleteOperation + // 3) CustomOperation + + // this is used to handle "AJAX" requests + QByteArray header = req.rawHeader("x-requested-with"); + if(!header.isNull()) + { + return QNetworkAccessManager::createRequest(op, req, outgoingData); + } + switch(op) { case QNetworkAccessManager::HeadOperation: @@ -107,14 +121,14 @@ QNetworkReply *NetworkAccessManager::createRequest(QNetworkAccessManager::Operat kDebug() << "DELETE OPERATION..."; reply = QNetworkAccessManager::createRequest(op, req, outgoingData); if(!reply) - kDebug() << "OOOOOOOOOOOOOOOOOOO DELETE REPLY NULL"; + kDebug() << "oh oh... DELETE REPLY NULL"; break; case QNetworkAccessManager::CustomOperation: kDebug() << "CUSTOM OPERATION..."; reply = QNetworkAccessManager::createRequest(op, req, outgoingData); if(!reply) - kDebug() << "OOOOOOOOOOOOOOOOOOO CUSTOM REPLY NULL"; + kDebug() << "oh oh... CUSTOM REPLY NULL"; break; default: diff --git a/src/protocolhandler.cpp b/src/protocolhandler.cpp index d52433bc..a260ad06 100644 --- a/src/protocolhandler.cpp +++ b/src/protocolhandler.cpp @@ -94,6 +94,7 @@ bool ProtocolHandler::preHandling(const QNetworkRequest &request, QWebFrame *fra // javascript handling if (_url.protocol() == QL1S("javascript")) { + kDebug() << "JAVASCRIPT URL: " << _url; QString scriptSource = _url.authority(); if(scriptSource.isEmpty()) { // if javascript:<code here> then authority() returns |