浏览代码

Browser: Add `update_cookie` WebDriver IPC endpoint

Through this the WebDriver will be able to change cookies. Needed for
deleting cookies.
Tobias Christiansen 2 年之前
父节点
当前提交
c710780852

+ 10 - 0
Userland/Applications/Browser/WebDriverConnection.cpp

@@ -95,4 +95,14 @@ Messages::WebDriverSessionClient::GetNamedCookieResponse WebDriverConnection::ge
     return { {} };
 }
 
+void WebDriverConnection::update_cookie(Web::Cookie::Cookie const& cookie)
+{
+    if (auto browser_window = m_browser_window.strong_ref()) {
+        auto& tab = browser_window->active_tab();
+        if (tab.on_update_cookie) {
+            tab.on_update_cookie(tab.url(), cookie);
+        }
+    }
+}
+
 }

+ 1 - 0
Userland/Applications/Browser/WebDriverConnection.h

@@ -45,6 +45,7 @@ public:
     virtual void forward() override;
     virtual Messages::WebDriverSessionClient::GetAllCookiesResponse get_all_cookies() override;
     virtual Messages::WebDriverSessionClient::GetNamedCookieResponse get_named_cookie(String const& name) override;
+    virtual void update_cookie(Web::Cookie::Cookie const&) override;
 
 private:
     WebDriverConnection(NonnullOwnPtr<Core::Stream::LocalSocket> socket, NonnullRefPtr<BrowserWindow> browser_window);

+ 1 - 0
Userland/Applications/Browser/WebDriverSessionClient.ipc

@@ -13,5 +13,6 @@ endpoint WebDriverSessionClient {
     forward() =|
     get_all_cookies() => (Vector<Web::Cookie::Cookie> cookies)
     get_named_cookie(String name) => (Optional<Web::Cookie::Cookie> cookie)
+    update_cookie(Web::Cookie::Cookie cookie) =|
 
 }