Skip to content

Commit 58bfd9d

Browse files
committed
close session if no windows found
1 parent d1a0527 commit 58bfd9d

File tree

1 file changed

+18
-0
lines changed

1 file changed

+18
-0
lines changed

Diff for: src/webdriver/commands/webdriver_command.cc

+18
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
#include "webdriver_session_manager.h"
2020
#include "webdriver_util.h"
2121
#include "webdriver_view_executor.h"
22+
#include "webdriver_view_enumerator.h"
2223

2324
namespace webdriver {
2425

@@ -52,6 +53,23 @@ bool WebDriverCommand::Init(Response* const response) {
5253
message += " with params " + JsonStringifyForDisplay(parameters_.GetRawPointer());
5354
session_->logger().Log(kFineLogLevel, message);
5455

56+
// terminate session if no views found
57+
std::vector<ViewId> views;
58+
59+
session_->RunSessionTask(base::Bind(
60+
&ViewEnumerator::EnumerateViews,
61+
session_,
62+
&views));
63+
64+
if (views.empty()) {
65+
// Session manages its own lifetime, so do not call delete.
66+
session_->Terminate();
67+
68+
response->SetError(
69+
new Error(kSessionNotFound, "Session not found: " + session_id_));
70+
return false;
71+
}
72+
5573
if (ShouldRunPreAndPostCommandHandlers()) {
5674
Error* error = session_->BeforeExecuteCommand();
5775
if (error) {

0 commit comments

Comments
 (0)