diff options
author | Ben Murdoch <benm@google.com> | 2011-05-13 16:23:25 +0100 |
---|---|---|
committer | Ben Murdoch <benm@google.com> | 2011-05-16 11:35:02 +0100 |
commit | 65f03d4f644ce73618e5f4f50dd694b26f55ae12 (patch) | |
tree | f478babb801e720de7bfaee23443ffe029f58731 /Tools/QtTestBrowser/webpage.h | |
parent | 47de4a2fb7262c7ebdb9cd133ad2c54c187454d0 (diff) | |
download | external_webkit-65f03d4f644ce73618e5f4f50dd694b26f55ae12.zip external_webkit-65f03d4f644ce73618e5f4f50dd694b26f55ae12.tar.gz external_webkit-65f03d4f644ce73618e5f4f50dd694b26f55ae12.tar.bz2 |
Merge WebKit at r75993: Initial merge by git.
Change-Id: I602bbdc3974787a3b0450456a30a7868286921c3
Diffstat (limited to 'Tools/QtTestBrowser/webpage.h')
-rw-r--r-- | Tools/QtTestBrowser/webpage.h | 31 |
1 files changed, 21 insertions, 10 deletions
diff --git a/Tools/QtTestBrowser/webpage.h b/Tools/QtTestBrowser/webpage.h index e62402b..3b856c9 100644 --- a/Tools/QtTestBrowser/webpage.h +++ b/Tools/QtTestBrowser/webpage.h @@ -33,9 +33,10 @@ #ifndef webpage_h #define webpage_h -#include <QFuture> +#include <QMutex> #include <QScopedPointer> #include <QThread> +#include <QWaitCondition> #include <qwebframe.h> #include <qwebpage.h> @@ -70,15 +71,16 @@ private: void applyProxy(); QString m_userAgent; bool m_interruptingJavaScriptEnabled; - QScopedPointer<QtNAMThread> m_qnamThread; + QtNAMThread* m_qnamThread; }; class QtNAMThread : public QThread { public: - QtNAMThread() + QtNAMThread(QObject *parent = 0) + : QThread(parent) + , m_qnam(0) { - m_qnamFuture.reportStarted(); } ~QtNAMThread() { @@ -86,20 +88,29 @@ public: wait(); } - QFuture<QNetworkAccessManager*> networkAccessManager() + QNetworkAccessManager* networkAccessManager() { - return m_qnamFuture.future(); + QMutexLocker lock(&m_mutex); + while (!m_qnam) + m_waitCondition.wait(&m_mutex); + return m_qnam; } protected: void run() { - QNetworkAccessManager qnam; - m_qnamFuture.reportResult(&qnam); - m_qnamFuture.reportFinished(); + Q_ASSERT(!m_qnam); + { + QMutexLocker lock(&m_mutex); + m_qnam = new QNetworkAccessManager; + m_waitCondition.wakeAll(); + } exec(); + delete m_qnam; } private: - QFutureInterface<QNetworkAccessManager*> m_qnamFuture; + QNetworkAccessManager* m_qnam; + QMutex m_mutex; + QWaitCondition m_waitCondition; }; #endif |