Skip to content

Commit 110142a

Browse files
committed
added hybrid capabilities qtversion
1 parent d95ff4b commit 110142a

File tree

4 files changed

+52
-0
lines changed

4 files changed

+52
-0
lines changed

inc/extension_qt/q_session_lifecycle_actions.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,9 @@ class QSessionLifeCycleActions : public SessionLifeCycleActions {
2727

2828
Error* ParseAndApplyProxySettings(const base::DictionaryValue* proxy_dict);
2929

30+
bool AddActualQtVersion();
31+
Error* CheckRequiredQtVersion(const base::DictionaryValue *capabilities_dict);
32+
3033
DISALLOW_COPY_AND_ASSIGN(QSessionLifeCycleActions);
3134
};
3235

src/webdriver/extension_qt/common_util.cc

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,5 +38,8 @@ Qt::MouseButton QCommonUtil::ConvertMouseButtonToQtMouseButton(MouseButton butto
3838
return result;
3939
}
4040

41+
std::string QCommonUtil::GetQtVersion() {
42+
return QT_VERSION_STR;
43+
}
4144

4245
} // namespace webdriver

src/webdriver/extension_qt/common_util.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ class QCommonUtil {
2222
static QRect ConvertRectToQRect(const Rect &rect);
2323
static QPoint ConvertPointToQPoint(const Point &p);
2424
static Qt::MouseButton ConvertMouseButtonToQtMouseButton(MouseButton button);
25+
static std::string GetQtVersion();
2526

2627
private:
2728
QCommonUtil() {};

src/webdriver/extension_qt/q_session_lifecycle_actions.cc

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,12 @@
33
#include "extension_qt/vnc_event_dispatcher.h"
44
#include "webdriver_switches.h"
55
#include "webdriver_server.h"
6+
#include "webdriver_view_executor.h"
7+
#include "webdriver_error.h"
68

79
#include "q_proxy_parser.h"
10+
#include "common_util.h"
11+
#include "base/string_util.h"
812

913
namespace webdriver {
1014

@@ -33,6 +37,14 @@ Error* QSessionLifeCycleActions::PostInit(const base::DictionaryValue* desired_c
3337
session_->logger().Log(kInfoLogLevel, "no proxy settings requsted.");
3438
}
3539

40+
AddActualQtVersion();
41+
if (required_capabilities_dict)
42+
error = CheckRequiredQtVersion(required_capabilities_dict);
43+
if (error) {
44+
session_->logger().Log(kWarningLogLevel, "qt version doesn't match...");
45+
return error;
46+
}
47+
3648
return error;
3749
}
3850

@@ -62,4 +74,37 @@ Error* QSessionLifeCycleActions::ParseAndApplyProxySettings(const base::Dictiona
6274
return NULL;
6375
}
6476

77+
bool QSessionLifeCycleActions::AddActualQtVersion() {
78+
base::DictionaryValue *hybrid;
79+
session_->capabilities().caps->GetDictionary(Capabilities::kHybrid, &hybrid);
80+
hybrid->SetString("qtVersion", QCommonUtil::GetQtVersion());
81+
82+
return true;
83+
}
84+
85+
Error* QSessionLifeCycleActions::CheckRequiredQtVersion(const base::DictionaryValue *capabilities_dict) {
86+
const base::DictionaryValue *required_hybrid_caps;
87+
base::DictionaryValue *actual_hybrid_caps;
88+
89+
if (capabilities_dict->GetDictionary(Capabilities::kHybrid, &required_hybrid_caps)) {
90+
if (!session_->capabilities().caps->GetDictionary(Capabilities::kHybrid, &actual_hybrid_caps)) {
91+
return new Error(kUnknownError);
92+
}
93+
std::string required_qtVersion;
94+
std::string actual_qtVersion;
95+
if (required_hybrid_caps->GetString("qtVersion", &required_qtVersion)) {
96+
if (!actual_hybrid_caps->GetString("qtVersion", &actual_qtVersion)) {
97+
return new Error(kUnknownError);
98+
}
99+
if (StringToUpperASCII(required_qtVersion).compare("ANY")
100+
&& required_qtVersion.compare("") && required_qtVersion.compare("*")) {
101+
if(required_qtVersion.at(0) != actual_qtVersion.at(0))
102+
return new Error(kUnknownError);
103+
}
104+
}
105+
}
106+
107+
return NULL;
108+
}
109+
65110
} // namespace webdriver

0 commit comments

Comments
 (0)