diff -r 1c3b8676e58c -r 232fbd5a2dcb browsercore/core/network/WebNetworkConnectionManager.cpp --- a/browsercore/core/network/WebNetworkConnectionManager.cpp Tue Jul 06 14:03:49 2010 +0300 +++ b/browsercore/core/network/WebNetworkConnectionManager.cpp Wed Aug 18 09:37:05 2010 +0300 @@ -20,6 +20,7 @@ */ #include "WebNetworkConnectionManager.h" #include "WebNetworkSession.h" +#include "webpagecontroller.h" namespace WRT { @@ -27,7 +28,7 @@ Constructs a WebNetworkConfigurationManager with the given \a parent. */ WebNetworkConnectionManager::WebNetworkConnectionManager(QObject *parent) - : QObject(parent), m_WebNetworkSession(0), m_offlined(false) + : QObject(parent), m_WebNetworkSession(0), m_offlined(false), m_roamingRejected(false) { // set up handlers for Network Configuration Manager signals connect(&m_NetworkConfigurationManager, SIGNAL(updateCompleted()), @@ -40,6 +41,10 @@ this, SLOT(handleOnlineStateChanged(bool))); connect(&m_NetworkConfigurationManager, SIGNAL(configurationChanged(const QNetworkConfiguration&)), this, SLOT(handleConfigurationChanged(const QNetworkConfiguration&))); + + // listen to the signal when the secure page is no longer secure + connect(WebPageController::getSingleton(), SIGNAL(hideSecureIcon()), + this, SLOT(handleHideSecureIcon())); #ifdef QT_MOBILITY_SYSINFO // initialize the mapping between network mode string and SystemNetworkInfo::NetworkMode @@ -117,6 +122,8 @@ // set up handlers for the WebNetworkSession signals connect(m_WebNetworkSession, SIGNAL(sessionConfigurationChanged(const QNetworkConfiguration &)), this, SLOT(handleSessionConfigurationChanged(const QNetworkConfiguration &))); + connect(m_WebNetworkSession, SIGNAL(sessionRoamingRejected(void)), + this, SLOT(handleSessionRoamingRejected(void))); } /*! @@ -136,13 +143,14 @@ */ void WebNetworkConnectionManager::handleConfigurationUpdateCompleted() { - qDebug() << "configurationUpdateCompleted: create new network connection session"; + qDebug() << "configurationUpdateCompleted:"; if (m_WebNetworkSession) { qDebug() << "Delete old network connection session"; deleteSession(); } + qDebug() << "Create new network connection session"; createSession(defaultConfiguration()); } @@ -248,6 +256,24 @@ #endif // QT_MOBILITY_SYSINFO } +void WebNetworkConnectionManager::handleSessionRoamingRejected(void) +{ + qDebug() << "roaming is rejected"; + m_roamingRejected = true; +} + +void WebNetworkConnectionManager::handleHideSecureIcon(void) +{ + qDebug() << "Switch to non-secure page"; + // Update the configuration and restart session if the roaming has been + // rejected and the page become unsecure. + if (m_roamingRejected) + { + m_NetworkConfigurationManager.updateConfigurations(); + m_roamingRejected = false; + } +} + #ifdef QT_MOBILITY_SYSINFO void WebNetworkConnectionManager::initializeMapString(void) {