summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/webpage.cpp29
-rw-r--r--src/webpage.h5
2 files changed, 33 insertions, 1 deletions
diff --git a/src/webpage.cpp b/src/webpage.cpp
index b1fc0da2..34a1e1b6 100644
--- a/src/webpage.cpp
+++ b/src/webpage.cpp
@@ -81,6 +81,8 @@ WebPage::WebPage(QObject *parent)
setNetworkAccessManager(Application::networkAccessManager());
connect(networkAccessManager(), SIGNAL(finished(QNetworkReply*)), this, SLOT(manageNetworkErrors(QNetworkReply*)));
+ setSessionMetaData("ssl_activate_warnings", "TRUE");
+
connect(this, SIGNAL(downloadRequested(const QNetworkRequest &)), this, SLOT(slotDownloadRequested(const QNetworkRequest &)));
connect(this, SIGNAL(unsupportedContent(QNetworkReply *)), this, SLOT(slotHandleUnsupportedContent(QNetworkReply *)));
}
@@ -93,6 +95,21 @@ WebPage::~WebPage()
bool WebPage::acceptNavigationRequest(QWebFrame *frame, const QNetworkRequest &request, NavigationType type)
{
+ // FIXME CHECK this
+ if (frame)
+ {
+ // TODO: Check if we need to flag navigation from javascript as well.
+ // Currently QtWebKit provides no way to distinguish such requests and
+ // lumps them under QWebPage::NavigationTypeOther.
+ if (type == QWebPage::NavigationTypeLinkClicked)
+ {
+ QString scheme = request.url().scheme();
+ if (scheme == "https" || scheme == "webdavs")
+ setRequestMetaData("ssl_was_in_use", "TRUE");
+ }
+ }
+ setRequestMetaData("main_frame_request", (frame->parentFrame() ? "FALSE" : "TRUE"));
+
if (m_keyboardModifiers & Qt::ControlModifier || m_pressedButtons == Qt::MidButton)
{
Application::instance()->loadUrl(request.url(), Rekonq::SettingOpenTab);
@@ -301,3 +318,15 @@ void WebPage::slotDownloadRequested(const QNetworkRequest &request)
job->addMetaData("cache", "cache"); // Use entry from cache if available.
job->uiDelegate()->setAutoErrorHandlingEnabled(true);
}
+
+
+void WebPage::setSessionMetaData(const QString& key, const QString& value)
+{
+ qobject_cast<NetworkAccessManager*>(networkAccessManager())->sessionMetaData()[key] = value;
+}
+
+
+void WebPage::setRequestMetaData(const QString& key, const QString& value)
+{
+ qobject_cast<NetworkAccessManager*>(networkAccessManager())->requestMetaData()[key] = value;
+}
diff --git a/src/webpage.h b/src/webpage.h
index 7137da3d..6934e77c 100644
--- a/src/webpage.h
+++ b/src/webpage.h
@@ -79,7 +79,10 @@ protected:
protected Q_SLOTS:
virtual void slotHandleUnsupportedContent(QNetworkReply *reply);
virtual void slotDownloadRequested(const QNetworkRequest &request);
-
+
+ void setSessionMetaData(const QString& key, const QString& value);
+ void setRequestMetaData(const QString& key, const QString& value);
+
private:
friend class WebView;
QString errorPage(QNetworkReply *);