Skip to content

Commit 0f454b7

Browse files
committed
fixed memory leak and thread conflict
1 parent 19ed533 commit 0f454b7

File tree

4 files changed

+9
-6
lines changed

4 files changed

+9
-6
lines changed

inc/extension_qt/qml_web_view_executor.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
#include <vector>
66
#include <map>
77

8+
#include "base/memory/scoped_ptr.h"
89
#include "webdriver_view_executor.h"
910
#include "webdriver_error.h"
1011
#include "extension_qt/qdeclarativewebview.h"
@@ -134,7 +135,7 @@ class QmlWebViewCmdExecutor : public ViewCmdExecutor {
134135
#endif
135136

136137
private:
137-
QWebkitProxy* webkitProxy_;
138+
scoped_ptr<QWebkitProxy> webkitProxy_;
138139
QDeclarativeWebView* view_;
139140
QDeclarativeView* container_;
140141

inc/extension_qt/web_view_executor.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -122,7 +122,7 @@ class QWebViewCmdExecutor : public QViewCmdExecutor {
122122
QWebView* getView(const ViewId& viewId, Error** error);
123123

124124
private:
125-
QWebkitProxy* webkitProxy_;
125+
scoped_ptr<QWebkitProxy> webkitProxy_;
126126
QWebView* view_;
127127

128128
DISALLOW_COPY_AND_ASSIGN(QWebViewCmdExecutor);

src/webdriver/extension_qt/qml_web_view_executor.cc

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,8 @@ namespace webdriver {
2323
session_->logger().Log(kWarningLogLevel, "checkView - no such qml web view("+view_id_.id()+")"); \
2424
*error = new Error(kNoSuchWindow); \
2525
return; \
26-
}
26+
} \
27+
webkitProxy_.reset(new QWebkitProxy(session_, (view_)?view_->page():NULL));
2728

2829
const ViewType QmlWebViewCmdExecutorCreator::QML_WEB_VIEW_TYPE = 0x23f1;
2930

@@ -82,7 +83,7 @@ QmlWebViewCmdExecutor::QmlWebViewCmdExecutor(Session* session, ViewId viewId)
8283

8384
view_ = _getDeclarativeWebView(session, viewId);
8485
container_ = _getDeclarativeView(session, viewId);
85-
webkitProxy_ = new QWebkitProxy(session, (view_)?view_->page():NULL);
86+
//webkitProxy_ = new QWebkitProxy(session, (view_)?view_->page():NULL);
8687
}
8788

8889
QmlWebViewCmdExecutor::~QmlWebViewCmdExecutor() {

src/webdriver/extension_qt/web_view_executor.cc

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,8 @@ namespace webdriver {
3939
session_->logger().Log(kWarningLogLevel, "checkView - no such web view("+view_id_.id()+")"); \
4040
*error = new Error(kNoSuchWindow); \
4141
return; \
42-
}
42+
} \
43+
webkitProxy_.reset(new QWebkitProxy(session_, (view_)?view_->page():NULL));
4344

4445
const ViewType QWebViewCmdExecutorCreator::WEB_VIEW_TYPE = 0x13f0;
4546

@@ -73,7 +74,7 @@ QWebViewCmdExecutor::QWebViewCmdExecutor(Session* session, ViewId viewId)
7374
: QViewCmdExecutor(session, viewId) {
7475

7576
view_ = QWebViewUtil::getWebView(session_, viewId);
76-
webkitProxy_ = new QWebkitProxy(session_, (view_)?view_->page():NULL);
77+
//webkitProxy_.reset(new QWebkitProxy(session_, (view_)?view_->page():NULL));
7778
}
7879

7980
QWebViewCmdExecutor::~QWebViewCmdExecutor() {}

0 commit comments

Comments
 (0)