#include "chrome/test/chromedriver/chrome/chrome_desktop_impl.h"
#include <stddef.h>
#include <memory>
#include <utility>
#include "base/files/file_path.h"
#include "base/logging.h"
#include "base/posix/eintr_wrapper.h"
#include "base/process/kill.h"
#include "base/strings/string_util.h"
#include "base/strings/stringprintf.h"
#include "base/system/sys_info.h"
#include "base/threading/platform_thread.h"
#include "base/time/time.h"
#include "build/build_config.h"
#include "chrome/test/chromedriver/chrome/devtools_client.h"
#include "chrome/test/chromedriver/chrome/devtools_client_impl.h"
#include "chrome/test/chromedriver/chrome/devtools_event_listener.h"
#include "chrome/test/chromedriver/chrome/devtools_http_client.h"
#include "chrome/test/chromedriver/chrome/status.h"
#include "chrome/test/chromedriver/chrome/target_utils.h"
#include "chrome/test/chromedriver/chrome/web_view_impl.h"
#include "chrome/test/chromedriver/constants/version.h"
#include "chrome/test/chromedriver/net/timeout.h"
#if BUILDFLAG(IS_POSIX)
#include <errno.h>
#include <signal.h>
#include <sys/wait.h>
#include <unistd.h>
#endif
namespace {
const int kDefaultConnectionType = …;
bool KillProcess(const base::Process& process, bool kill_gracefully) { … }
}
ChromeDesktopImpl::ChromeDesktopImpl(
BrowserInfo browser_info,
std::set<WebViewInfo::Type> window_types,
std::unique_ptr<DevToolsClient> websocket_client,
std::vector<std::unique_ptr<DevToolsEventListener>>
devtools_event_listeners,
std::optional<MobileDevice> mobile_device,
std::string page_load_strategy,
base::Process process,
const base::CommandLine& command,
base::ScopedTempDir* user_data_dir,
base::ScopedTempDir* extension_dir,
bool network_emulation_enabled,
bool autoaccept_beforeunload)
: … { … }
ChromeDesktopImpl::~ChromeDesktopImpl() { … }
Status ChromeDesktopImpl::WaitForPageToLoad(
const std::string& url,
const base::TimeDelta& timeout_raw,
std::unique_ptr<WebView>* web_view,
bool w3c_compliant) { … }
Status ChromeDesktopImpl::GetAsDesktop(ChromeDesktopImpl** desktop) { … }
std::string ChromeDesktopImpl::GetOperatingSystemName() { … }
bool ChromeDesktopImpl::IsMobileEmulationEnabled() const { … }
bool ChromeDesktopImpl::HasTouchScreen() const { … }
bool ChromeDesktopImpl::IsNetworkConnectionEnabled() const { … }
Status ChromeDesktopImpl::QuitImpl() { … }
const base::CommandLine& ChromeDesktopImpl::command() const { … }
int ChromeDesktopImpl::GetNetworkConnection() const { … }
void ChromeDesktopImpl::SetNetworkConnection(
int network_connection) { … }