Commit 3aa11319 authored by samuong's avatar samuong Committed by Commit bot

[chromedriver] Add a sanity check during session initiation

BUG=chromedriver:1058

Review URL: https://codereview.chromium.org/1004333002

Cr-Commit-Position: refs/heads/master@{#320661}
parent 41dfc8a6
...@@ -105,6 +105,32 @@ scoped_ptr<base::DictionaryValue> CreateCapabilities(Chrome* chrome) { ...@@ -105,6 +105,32 @@ scoped_ptr<base::DictionaryValue> CreateCapabilities(Chrome* chrome) {
return caps.Pass(); return caps.Pass();
} }
Status CheckSessionCreated(Session* session) {
WebView* web_view = NULL;
Status status = session->GetTargetWindow(&web_view);
if (status.IsError())
return Status(kSessionNotCreatedException, status);
status = web_view->ConnectIfNecessary();
if (status.IsError())
return Status(kSessionNotCreatedException, status);
base::ListValue args;
scoped_ptr<base::Value> result(new base::FundamentalValue(0));
status = web_view->CallFunction(session->GetCurrentFrameId(),
"function(s) { return 1; }", args, &result);
if (status.IsError())
return Status(kSessionNotCreatedException, status);
int response;
if (!result->GetAsInteger(&response) || response != 1) {
return Status(kSessionNotCreatedException,
"unexpected response from browser");
}
return Status(kOk);
}
Status InitSessionHelper( Status InitSessionHelper(
const InitSessionParams& bound_params, const InitSessionParams& bound_params,
Session* session, Session* session,
...@@ -165,7 +191,7 @@ Status InitSessionHelper( ...@@ -165,7 +191,7 @@ Status InitSessionHelper(
session->force_devtools_screenshot = capabilities.force_devtools_screenshot; session->force_devtools_screenshot = capabilities.force_devtools_screenshot;
session->capabilities = CreateCapabilities(session->chrome.get()); session->capabilities = CreateCapabilities(session->chrome.get());
value->reset(session->capabilities->DeepCopy()); value->reset(session->capabilities->DeepCopy());
return Status(kOk); return CheckSessionCreated(session);
} }
} // namespace } // namespace
......
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