[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    [Rekonq] b08c67e: This hacks should fix (a lot of) javascript handli
From:       Andrea Diamantini <adjam7 () gmail ! com>
Date:       2010-08-31 23:36:02
Message-ID: 201008312336.o7VNa2jL003777 () kore ! kollide ! net
[Download RAW message or body]

commit b08c67eb1e45cb94dc6250fe555d84f0c0e7debe
Author: Andrea Diamantini <adjam7@gmail.com>
Date:   Wed Sep 1 01:39:43 2010 +0200

    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

diff --git a/src/analyzer/networkanalyzer.cpp b/src/analyzer/networkanalyzer.cpp
index c5b0883..d0044f4 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 f746087..73c8b59 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 d52433b..a260ad0 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
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic