#include "chrome/test/chromedriver/commands.h"
#include <stddef.h>
#include <algorithm>
#include <functional>
#include <list>
#include <utility>
#include "base/containers/contains.h"
#include "base/functional/bind.h"
#include "base/functional/callback_helpers.h"
#include "base/location.h"
#include "base/logging.h"
#include "base/memory/ptr_util.h"
#include "base/run_loop.h"
#include "base/strings/stringprintf.h"
#include "base/system/sys_info.h"
#include "base/task/current_thread.h"
#include "base/task/single_thread_task_runner.h"
#include "base/values.h"
#include "chrome/test/chromedriver/capabilities.h"
#include "chrome/test/chromedriver/chrome/browser_info.h"
#include "chrome/test/chromedriver/chrome/chrome.h"
#include "chrome/test/chromedriver/chrome/status.h"
#include "chrome/test/chromedriver/constants/version.h"
#include "chrome/test/chromedriver/logging.h"
#include "chrome/test/chromedriver/session.h"
#include "chrome/test/chromedriver/session_commands.h"
#include "chrome/test/chromedriver/session_thread_map.h"
#include "chrome/test/chromedriver/util.h"
namespace {
void WriteChromeDriverExtendedStatus(base::Value::Dict& info) { … }
}
void ExecuteGetStatus(const base::Value::Dict& params,
const std::string& session_id,
const CommandCallback& callback) { … }
void ExecuteBidiSessionStatus(const base::Value::Dict& params,
const std::string& session_id,
const CommandCallback& callback) { … }
void ExecuteCreateSession(SessionThreadMap* session_thread_map,
const Command& init_session_cmd,
const base::Value::Dict& params,
const std::string& host,
const CommandCallback& callback) { … }
void ExecuteBidiSessionNew(SessionThreadMap* session_thread_map,
const Command& init_session_cmd,
const base::Value::Dict& params,
const std::string& resource,
const CommandCallback& callback) { … }
namespace {
void OnGetSession(const base::WeakPtr<size_t>& session_remaining_count,
const base::RepeatingClosure& all_get_session_func,
base::Value::List& session_list,
const Status& status,
std::unique_ptr<base::Value> value,
const std::string& session_id,
bool w3c_compliant) { … }
}
void ExecuteGetSessions(const Command& session_capabilities_command,
SessionThreadMap* session_thread_map,
const base::Value::Dict& params,
const std::string& session_id,
const CommandCallback& callback) { … }
namespace {
void OnSessionQuit(const base::WeakPtr<size_t>& quit_remaining_count,
const base::RepeatingClosure& all_quit_func,
const Status& status,
std::unique_ptr<base::Value> value,
const std::string& session_id,
bool w3c_compliant) { … }
}
void ExecuteQuitAll(const Command& quit_command,
SessionThreadMap* session_thread_map,
const base::Value::Dict& params,
const std::string& session_id,
const CommandCallback& callback) { … }
namespace {
void TerminateSessionThreadOnCommandThread(
SessionThreadMap* session_thread_map,
SessionConnectionMap* session_connection_map,
const std::string& session_id) { … }
void ExecuteSessionCommandOnSessionThread(
const char* command_name,
const std::string& session_id,
const SessionCommand& command,
bool w3c_standard_command,
bool return_ok_without_session,
const base::Value::Dict& params,
scoped_refptr<base::SingleThreadTaskRunner> cmd_task_runner,
const CommandCallback& callback_on_cmd,
const base::RepeatingClosure& terminate_on_cmd) { … }
}
void ExecuteSessionCommand(SessionThreadMap* session_thread_map,
SessionConnectionMap* session_connection_map,
const char* command_name,
const SessionCommand& command,
bool w3c_standard_command,
bool return_ok_without_session,
const base::Value::Dict& params,
const std::string& session_id,
const CommandCallback& callback) { … }
namespace internal {
void CreateSessionOnSessionThreadForTesting(const std::string& id) { … }
}