#ifndef CHROME_TEST_CHROMEDRIVER_CHROME_CHROME_DESKTOP_IMPL_H_
#define CHROME_TEST_CHROMEDRIVER_CHROME_CHROME_DESKTOP_IMPL_H_
#include <string>
#include "base/command_line.h"
#include "base/compiler_specific.h"
#include "base/files/scoped_temp_dir.h"
#include "base/memory/scoped_ptr.h"
#include "base/process/process.h"
#include "chrome/test/chromedriver/chrome/chrome_impl.h"
namespace base {
class TimeDelta;
}
class AutomationExtension;
class DevToolsHttpClient;
class Status;
class WebView;
class ChromeDesktopImpl : public ChromeImpl {
public:
ChromeDesktopImpl(
scoped_ptr<DevToolsHttpClient> client,
ScopedVector<DevToolsEventListener>& devtools_event_listeners,
scoped_ptr<PortReservation> port_reservation,
base::ProcessHandle process,
const base::CommandLine& command,
base::ScopedTempDir* user_data_dir,
base::ScopedTempDir* extension_dir);
virtual ~ChromeDesktopImpl();
Status WaitForPageToLoad(const std::string& url,
const base::TimeDelta& timeout,
scoped_ptr<WebView>* web_view);
Status GetAutomationExtension(AutomationExtension** extension);
virtual ChromeDesktopImpl* GetAsDesktop() OVERRIDE;
virtual std::string GetOperatingSystemName() OVERRIDE;
virtual Status QuitImpl() OVERRIDE;
const base::CommandLine& command() const;
private:
base::ProcessHandle process_;
base::CommandLine command_;
base::ScopedTempDir user_data_dir_;
base::ScopedTempDir extension_dir_;
scoped_ptr<AutomationExtension> automation_extension_;
};
#endif