Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
openSUSE:11.4:Contrib
kadu-qt4
kadu-inject-js-into-history-fix.patch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File kadu-inject-js-into-history-fix.patch of Package kadu-qt4
Index: kadu-core/gui/widgets/buddy-info-panel.cpp =================================================================== --- kadu-core/gui/widgets/buddy-info-panel.cpp.orig +++ kadu-core/gui/widgets/buddy-info-panel.cpp @@ -52,6 +52,11 @@ BuddyInfoPanel::BuddyInfoPanel(QWidget * setAttribute(Qt::WA_OpaquePaintEvent, false); connect(BuddyPreferredManager::instance(), SIGNAL(buddyUpdated(Buddy&)), this, SLOT(buddyUpdated(Buddy&))); + + page()->currentFrame()->evaluateJavaScript( + "XMLHttpRequest.prototype.open = function() { return false; };" + "XMLHttpRequest.prototype.send = function() { return false; };" + ); } BuddyInfoPanel::~BuddyInfoPanel() Index: kadu-core/gui/widgets/chat-messages-view.cpp =================================================================== --- kadu-core/gui/widgets/chat-messages-view.cpp.orig +++ kadu-core/gui/widgets/chat-messages-view.cpp @@ -62,6 +62,11 @@ ChatMessagesView::ChatMessagesView(const settings()->setAttribute(QWebSettings::JavascriptEnabled, true); settings()->setAttribute(QWebSettings::PluginsEnabled, true); + page()->currentFrame()->evaluateJavaScript( + "XMLHttpRequest.prototype.open = function() { return false; };" + "XMLHttpRequest.prototype.send = function() { return false; };" + ); + connectChat(); connect(this->page()->mainFrame(), SIGNAL(contentsSizeChanged(const QSize &)), this, SLOT(scrollToBottom())); Index: kadu-core/gui/widgets/chat-view-network-access-manager.cpp =================================================================== --- kadu-core/gui/widgets/chat-view-network-access-manager.cpp.orig +++ kadu-core/gui/widgets/chat-view-network-access-manager.cpp @@ -36,6 +36,9 @@ ChatViewNetworkAccessManager::ChatViewNe QNetworkReply * ChatViewNetworkAccessManager::createRequest(QNetworkAccessManager::Operation operation, const QNetworkRequest &request, QIODevice *device) { + if (QNetworkAccessManager::GetOperation != operation && QNetworkAccessManager::HeadOperation != operation) + operation = QNetworkAccessManager::GetOperation; + if (request.url().scheme() != "kaduimg") return QNetworkAccessManager::createRequest(operation, request, device); Index: kadu-core/gui/widgets/chat-view-network-access-manager.h =================================================================== --- kadu-core/gui/widgets/chat-view-network-access-manager.h.orig +++ kadu-core/gui/widgets/chat-view-network-access-manager.h @@ -33,6 +33,7 @@ public: protected: virtual QNetworkReply * createRequest(Operation operation, const QNetworkRequest &request, QIODevice *device); + }; #endif // CHAT_VIEW_NETWORK_ACCESS_MANAGER Index: modules/sql_history/storage/history-sql-storage.cpp =================================================================== --- modules/sql_history/storage/history-sql-storage.cpp.orig +++ modules/sql_history/storage/history-sql-storage.cpp @@ -23,6 +23,7 @@ */ #include <QtCore/QDir> +#include <QtGui/QTextDocument> #include <QtSql/QSqlError> #include <QtSql/QSqlRecord> @@ -991,6 +992,20 @@ void HistorySqlStorage::executeQuery(QSq kdebugm(KDEBUG_INFO, "db query: %s\n", qPrintable(query.executedQuery())); } +QString HistorySqlStorage::stripAllScriptTags(const QString &string) +{ + QString beforeReplace = string; + QString afterReplace = beforeReplace; + + afterReplace.replace("<script", "", Qt::CaseInsensitive); + while (beforeReplace != afterReplace) + { + beforeReplace = afterReplace; + afterReplace.replace("<script", "", Qt::CaseInsensitive); + } + + return afterReplace; +} QList<Message> HistorySqlStorage::messagesFromQuery(QSqlQuery &query) { @@ -1014,7 +1029,7 @@ QList<Message> HistorySqlStorage::messag message.setMessageChat(chat); message.setType(type); message.setMessageSender(sender); - message.setContent(query.value(2).toString()); + message.setContent(stripAllScriptTags(query.value(2).toString())); message.setSendDate(query.value(3).toDateTime()); message.setReceiveDate(query.value(4).toDateTime()); message.setStatus(outgoing ? Message::StatusDelivered : Message::StatusReceived); @@ -1038,7 +1053,7 @@ QList<TimedStatus> HistorySqlStorage::st Status status; status.setType(query.value(1).toString()); - status.setDescription(query.value(2).toString()); + status.setDescription(Qt::escape(query.value(2).toString())); TimedStatus timedStatus(status, query.value(3).toDateTime()); @@ -1059,7 +1074,7 @@ QList<Message> HistorySqlStorage::smsFro message.setType(Message::TypeSystem); message.setReceiveDate(query.value(1).toDateTime()); message.setSendDate(query.value(1).toDateTime()); - message.setContent(query.value(0).toString()); + message.setContent(Qt::escape(query.value(0).toString())); messages.append(message); } Index: modules/sql_history/storage/history-sql-storage.h =================================================================== --- modules/sql_history/storage/history-sql-storage.h.orig +++ modules/sql_history/storage/history-sql-storage.h @@ -60,6 +60,8 @@ class HistorySqlStorage : public History QString chatWhere(const Chat &chat); QString buddyContactsWhere(const Buddy &buddy); + static QString stripAllScriptTags(const QString &string); + void executeQuery(QSqlQuery &query); QList<Message> messagesFromQuery(QSqlQuery &query); QList<TimedStatus> statusesFromQuery(QSqlQuery query);
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor