views: mac: Enable WindowTestRunnerViews

This commit is contained in:
Nik Pavlov 2023-03-13 17:24:25 +00:00 committed by Marshall Greenblatt
parent 25c811254c
commit ee888e5b3f

View File

@ -15,9 +15,7 @@
#include "tests/cefclient/browser/test_runner.h"
#include "tests/cefclient/browser/window_test_runner.h"
#if defined(OS_WIN) || defined(OS_LINUX)
#include "tests/cefclient/browser/window_test_runner_views.h"
#endif
#if defined(OS_WIN)
#include "tests/cefclient/browser/window_test_runner_win.h"
@ -40,11 +38,9 @@ const char kMessageRestoreName[] = "WindowTest.Restore";
// Create the appropriate platform test runner object.
std::unique_ptr<WindowTestRunner> CreateWindowTestRunner() {
#if defined(OS_WIN) || defined(OS_LINUX)
if (MainContext::Get()->UseViews()) {
return std::make_unique<WindowTestRunnerViews>();
}
#endif
#if defined(OS_WIN)
return std::make_unique<WindowTestRunnerWin>();
@ -57,6 +53,22 @@ std::unique_ptr<WindowTestRunner> CreateWindowTestRunner() {
#endif
}
// Parse the comma-delimited list of integer values.
std::vector<int> ParsePosition(const std::string& message_name) {
std::vector<int> vec;
const std::string& vals = message_name.substr(sizeof(kMessagePositionName));
std::stringstream ss(vals);
int i;
while (ss >> i) {
vec.push_back(i);
if (ss.peek() == ',') {
ss.ignore();
}
}
return vec;
}
// Handle messages in the browser process.
class Handler : public CefMessageRouterBrowserSide::Handler {
public:
@ -77,19 +89,7 @@ class Handler : public CefMessageRouterBrowserSide::Handler {
const std::string& message_name = request;
if (message_name.find(kMessagePositionName) == 0) {
// Parse the comma-delimited list of integer values.
std::vector<int> vec;
const std::string& vals =
message_name.substr(sizeof(kMessagePositionName));
std::stringstream ss(vals);
int i;
while (ss >> i) {
vec.push_back(i);
if (ss.peek() == ',') {
ss.ignore();
}
}
const auto vec = ParsePosition(message_name);
if (vec.size() == 4) {
// Execute SetPos() on the main thread.
runner_->SetPos(browser, vec[0], vec[1], vec[2], vec[3]);