Commit 87a1499e authored by Shengfa Lin's avatar Shengfa Lin Committed by Commit Bot

[chromedriver] Bidi WebSocket connection(II)

Add parsing webSocketUrl for connection

Bug: chromedriver:3588
Change-Id: I39fc933fcf8cfc2a7ff14c7fbf65fa3f1ba832b6
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2389053
Commit-Queue: Shengfa Lin <shengfa@google.com>
Reviewed-by: default avatarJohn Chen <johnchen@chromium.org>
Cr-Commit-Position: refs/heads/master@{#803955}
parent 801943af
...@@ -785,6 +785,8 @@ Status Capabilities::Parse(const base::DictionaryValue& desired_caps, ...@@ -785,6 +785,8 @@ Status Capabilities::Parse(const base::DictionaryValue& desired_caps,
parser_map["timeouts"] = base::BindRepeating(&ParseTimeouts); parser_map["timeouts"] = base::BindRepeating(&ParseTimeouts);
parser_map["strictFileInteractability"] = parser_map["strictFileInteractability"] =
base::BindRepeating(&ParseBoolean, &strict_file_interactability); base::BindRepeating(&ParseBoolean, &strict_file_interactability);
parser_map["webSocketUrl"] =
base::BindRepeating(&ParseBoolean, &webSocketUrl);
if (!w3c_compliant) { if (!w3c_compliant) {
// TODO(https://crbug.com/chromedriver/2596): "unexpectedAlertBehaviour" is // TODO(https://crbug.com/chromedriver/2596): "unexpectedAlertBehaviour" is
// legacy name of "unhandledPromptBehavior", remove when we stop supporting // legacy name of "unhandledPromptBehavior", remove when we stop supporting
......
...@@ -184,6 +184,8 @@ struct Capabilities { ...@@ -184,6 +184,8 @@ struct Capabilities {
Switches switches; Switches switches;
std::set<WebViewInfo::Type> window_types; std::set<WebViewInfo::Type> window_types;
bool webSocketUrl = false;
}; };
bool GetChromeOptionsDictionary(const base::DictionaryValue& params, bool GetChromeOptionsDictionary(const base::DictionaryValue& params,
......
...@@ -83,6 +83,7 @@ struct Session { ...@@ -83,6 +83,7 @@ struct Session {
const std::string id; const std::string id;
bool w3c_compliant; bool w3c_compliant;
bool webSocketUrl = false;
bool quit; bool quit;
bool detach; bool detach;
std::unique_ptr<Chrome> chrome; std::unique_ptr<Chrome> chrome;
......
...@@ -373,6 +373,7 @@ Status ConfigureSession(Session* session, ...@@ -373,6 +373,7 @@ Status ConfigureSession(Session* session,
session->script_timeout = capabilities->script_timeout; session->script_timeout = capabilities->script_timeout;
session->strict_file_interactability = session->strict_file_interactability =
capabilities->strict_file_interactability; capabilities->strict_file_interactability;
session->webSocketUrl = capabilities->webSocketUrl;
Log::Level driver_level = Log::kWarning; Log::Level driver_level = Log::kWarning;
if (capabilities->logging_prefs.count(WebDriverLog::kDriverType)) if (capabilities->logging_prefs.count(WebDriverLog::kDriverType))
driver_level = capabilities->logging_prefs[WebDriverLog::kDriverType]; driver_level = capabilities->logging_prefs[WebDriverLog::kDriverType];
...@@ -605,9 +606,7 @@ Status ExecuteInitSession(const InitSessionParams& bound_params, ...@@ -605,9 +606,7 @@ Status ExecuteInitSession(const InitSessionParams& bound_params,
session->quit = true; session->quit = true;
if (session->chrome != NULL) if (session->chrome != NULL)
session->chrome->Quit(); session->chrome->Quit();
} else { } else if (session->webSocketUrl) {
// TODO only do this when WebSocketUrl capability is specified
// https://bugs.chromium.org/p/chromedriver/issues/detail?id=3588
bound_params.cmd_task_runner->PostTask( bound_params.cmd_task_runner->PostTask(
FROM_HERE, base::BindOnce(&InitSessionForWebSocketConnection, FROM_HERE, base::BindOnce(&InitSessionForWebSocketConnection,
bound_params.session_map, session->id)); bound_params.session_map, session->id));
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment