WebDriverConnection.cpp 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. /*
  2. * Copyright (c) 2022, Florent Castelli <florent.castelli@gmail.com>
  3. * Copyright (c) 2022, Sam Atkins <atkinssj@serenityos.org>
  4. *
  5. * SPDX-License-Identifier: BSD-2-Clause
  6. */
  7. #include "WebDriverConnection.h"
  8. #include "BrowserWindow.h"
  9. namespace Browser {
  10. WebDriverConnection::WebDriverConnection(NonnullOwnPtr<Core::Stream::LocalSocket> socket, NonnullRefPtr<BrowserWindow> browser_window)
  11. : IPC::ConnectionToServer<WebDriverSessionClientEndpoint, WebDriverSessionServerEndpoint>(*this, move(socket))
  12. , m_browser_window(move(browser_window))
  13. {
  14. }
  15. void WebDriverConnection::quit()
  16. {
  17. dbgln("WebDriverConnection: quit");
  18. if (auto browser_window = m_browser_window.strong_ref())
  19. browser_window->close();
  20. }
  21. Messages::WebDriverSessionClient::GetUrlResponse WebDriverConnection::get_url()
  22. {
  23. dbgln("WebDriverConnection: get_url");
  24. if (auto browser_window = m_browser_window.strong_ref())
  25. return { browser_window->active_tab().url() };
  26. return { URL("") };
  27. }
  28. void WebDriverConnection::set_url(AK::URL const& url)
  29. {
  30. dbgln("WebDriverConnection: set_url {}", url);
  31. if (auto browser_window = m_browser_window.strong_ref())
  32. browser_window->active_tab().load(url);
  33. }
  34. Messages::WebDriverSessionClient::GetTitleResponse WebDriverConnection::get_title()
  35. {
  36. dbgln("WebDriverConnection: get_title");
  37. if (auto browser_window = m_browser_window.strong_ref())
  38. return { browser_window->active_tab().title() };
  39. return { "" };
  40. }
  41. void WebDriverConnection::refresh()
  42. {
  43. dbgln("WebDriverConnection: refresh");
  44. if (auto browser_window = m_browser_window.strong_ref())
  45. browser_window->active_tab().reload();
  46. }
  47. void WebDriverConnection::back()
  48. {
  49. dbgln("WebDriverConnection: back");
  50. if (auto browser_window = m_browser_window.strong_ref())
  51. browser_window->active_tab().go_back();
  52. }
  53. void WebDriverConnection::forward()
  54. {
  55. dbgln("WebDriverConnection: forward");
  56. if (auto browser_window = m_browser_window.strong_ref())
  57. browser_window->active_tab().go_forward();
  58. }
  59. }