summaryrefslogtreecommitdiff
path: root/src/3rdparty/webkit/WebCore/platform/network
diff options
context:
space:
mode:
Diffstat (limited to 'src/3rdparty/webkit/WebCore/platform/network')
-rw-r--r--src/3rdparty/webkit/WebCore/platform/network/NetworkStateNotifier.h6
-rw-r--r--src/3rdparty/webkit/WebCore/platform/network/qt/NetworkStateNotifierPrivate.h2
-rw-r--r--src/3rdparty/webkit/WebCore/platform/network/qt/NetworkStateNotifierQt.cpp25
3 files changed, 28 insertions, 5 deletions
diff --git a/src/3rdparty/webkit/WebCore/platform/network/NetworkStateNotifier.h b/src/3rdparty/webkit/WebCore/platform/network/NetworkStateNotifier.h
index f8c56540f5..700a062e8f 100644
--- a/src/3rdparty/webkit/WebCore/platform/network/NetworkStateNotifier.h
+++ b/src/3rdparty/webkit/WebCore/platform/network/NetworkStateNotifier.h
@@ -56,7 +56,11 @@ public:
void setNetworkStateChangedFunction(void (*)());
bool onLine() const { return m_isOnLine; }
-
+
+#if (PLATFORM(QT) && ENABLE(QT_BEARER))
+ void setNetworkAccessAllowed(bool);
+#endif
+
private:
bool m_isOnLine;
void (*m_networkStateChangedFunction)();
diff --git a/src/3rdparty/webkit/WebCore/platform/network/qt/NetworkStateNotifierPrivate.h b/src/3rdparty/webkit/WebCore/platform/network/qt/NetworkStateNotifierPrivate.h
index 7af6392120..536b06a074 100644
--- a/src/3rdparty/webkit/WebCore/platform/network/qt/NetworkStateNotifierPrivate.h
+++ b/src/3rdparty/webkit/WebCore/platform/network/qt/NetworkStateNotifierPrivate.h
@@ -37,10 +37,12 @@ public:
~NetworkStateNotifierPrivate();
public slots:
void onlineStateChanged(bool);
+ void networkAccessPermissionChanged(bool);
public:
QtMobility::QNetworkConfigurationManager* m_configurationManager;
bool m_online;
+ bool m_networkAccessAllowed;
NetworkStateNotifier* m_notifier;
};
diff --git a/src/3rdparty/webkit/WebCore/platform/network/qt/NetworkStateNotifierQt.cpp b/src/3rdparty/webkit/WebCore/platform/network/qt/NetworkStateNotifierQt.cpp
index f74398b937..e694264875 100644
--- a/src/3rdparty/webkit/WebCore/platform/network/qt/NetworkStateNotifierQt.cpp
+++ b/src/3rdparty/webkit/WebCore/platform/network/qt/NetworkStateNotifierQt.cpp
@@ -30,6 +30,7 @@ namespace WebCore {
NetworkStateNotifierPrivate::NetworkStateNotifierPrivate(NetworkStateNotifier* notifier)
: m_configurationManager(new QNetworkConfigurationManager())
, m_online(m_configurationManager->isOnline())
+ , m_networkAccessAllowed(true)
, m_notifier(notifier)
{
Q_ASSERT(notifier);
@@ -42,7 +43,18 @@ void NetworkStateNotifierPrivate::onlineStateChanged(bool isOnline)
return;
m_online = isOnline;
- m_notifier->updateState();
+ if (m_networkAccessAllowed)
+ m_notifier->updateState();
+}
+
+void NetworkStateNotifierPrivate::networkAccessPermissionChanged(bool isAllowed)
+{
+ if (isAllowed == m_networkAccessAllowed)
+ return;
+
+ m_networkAccessAllowed = isAllowed;
+ if (m_online)
+ m_notifier->updateState();
}
NetworkStateNotifierPrivate::~NetworkStateNotifierPrivate()
@@ -52,10 +64,10 @@ NetworkStateNotifierPrivate::~NetworkStateNotifierPrivate()
void NetworkStateNotifier::updateState()
{
- if (m_isOnLine == p->m_online)
+ if (m_isOnLine == (p->m_online && p->m_networkAccessAllowed))
return;
- m_isOnLine = p->m_online;
+ m_isOnLine = p->m_online && p->m_networkAccessAllowed;
if (m_networkStateChangedFunction)
m_networkStateChangedFunction();
}
@@ -65,7 +77,12 @@ NetworkStateNotifier::NetworkStateNotifier()
, m_networkStateChangedFunction(0)
{
p = new NetworkStateNotifierPrivate(this);
- m_isOnLine = p->m_online;
+ m_isOnLine = p->m_online && p->m_networkAccessAllowed;
+}
+
+void NetworkStateNotifier::setNetworkAccessAllowed(bool isAllowed)
+{
+ p->networkAccessPermissionChanged(isAllowed);
}
} // namespace WebCore