summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAndrea Diamantini <adjam7@gmail.com>2010-09-01 01:39:43 +0200
committerAndrea Diamantini <adjam7@gmail.com>2010-09-01 01:39:43 +0200
commitb08c67eb1e45cb94dc6250fe555d84f0c0e7debe (patch)
treecde7d4e24a8592053842beeb861b60d6180d8195 /src
parentLet urlbar being usable also in fullscreen mode (diff)
downloadrekonq-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.cpp3
-rw-r--r--src/networkaccessmanager.cpp20
-rw-r--r--src/protocolhandler.cpp1
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