Title: [225386] trunk/Source/WebDriver
Revision
225386
Author
carlo...@webkit.org
Date
2017-12-01 01:47:15 -0800 (Fri, 01 Dec 2017)

Log Message

WebDriver: end point nodes are only allowed to have one session
https://bugs.webkit.org/show_bug.cgi?id=180131

Reviewed by Brian Burg.

We are currently keeping a map of sessions, but our service is always and end point node, so only one session
can exist at a time. Make findSessionOrCompleteWithError() return a boolean instead, failing in case the sessionID
parameter is not found or it doesn't match the current session. Replace the session map and active session
pointer with a single session member and return SessionNotCreated error when new session command is received and
there's an active session.

8. Sessions
A remote end has an associated maximum active sessions (an integer) that defines the number of active sessions
that are supported. This may be “unlimited” for intermediary nodes, but must be exactly one for a remote end
that is an endpoint node.
https://w3c.github.io/webdriver/webdriver-spec.html#dfn-maximum-active-sessions

Fixes: imported/w3c/webdriver/tests/sessions/new_session/default_values.py::test_repeat_new_session

* WebDriverService.cpp:
(WebDriver::WebDriverService::findSessionOrCompleteWithError):
(WebDriver::WebDriverService::newSession):
(WebDriver::WebDriverService::deleteSession):
(WebDriver::WebDriverService::status):
(WebDriver::WebDriverService::setTimeouts):
(WebDriver::WebDriverService::go):
(WebDriver::WebDriverService::getCurrentURL):
(WebDriver::WebDriverService::back):
(WebDriver::WebDriverService::forward):
(WebDriver::WebDriverService::refresh):
(WebDriver::WebDriverService::getTitle):
(WebDriver::WebDriverService::getWindowHandle):
(WebDriver::WebDriverService::setWindowRect):
(WebDriver::WebDriverService::closeWindow):
(WebDriver::WebDriverService::switchToWindow):
(WebDriver::WebDriverService::getWindowHandles):
(WebDriver::WebDriverService::switchToFrame):
(WebDriver::WebDriverService::switchToParentFrame):
(WebDriver::findStrategyAndSelectorOrCompleteWithError):
(WebDriver::WebDriverService::findElement):
(WebDriver::WebDriverService::findElements):
(WebDriver::WebDriverService::findElementFromElement):
(WebDriver::WebDriverService::findElementsFromElement):
(WebDriver::WebDriverService::getActiveElement):
(WebDriver::WebDriverService::isElementSelected):
(WebDriver::WebDriverService::getElementAttribute):
(WebDriver::WebDriverService::getElementText):
(WebDriver::WebDriverService::getElementTagName):
(WebDriver::WebDriverService::getElementRect):
(WebDriver::WebDriverService::isElementEnabled):
(WebDriver::WebDriverService::isElementDisplayed):
(WebDriver::WebDriverService::elementClick):
(WebDriver::WebDriverService::elementClear):
(WebDriver::WebDriverService::elementSendKeys):
(WebDriver::findScriptAndArgumentsOrCompleteWithError):
(WebDriver::WebDriverService::executeScript):
(WebDriver::WebDriverService::executeAsyncScript):
(WebDriver::WebDriverService::getAllCookies):
(WebDriver::WebDriverService::getNamedCookie):
(WebDriver::deserializeCookie):
(WebDriver::WebDriverService::addCookie):
(WebDriver::WebDriverService::deleteCookie):
(WebDriver::WebDriverService::deleteAllCookies):
(WebDriver::WebDriverService::dismissAlert):
(WebDriver::WebDriverService::acceptAlert):
(WebDriver::WebDriverService::getAlertText):
(WebDriver::WebDriverService::sendAlertText):
(WebDriver::WebDriverService::takeScreenshot):
(WebDriver::WebDriverService::takeElementScreenshot):
* WebDriverService.h:

Modified Paths

Diff

Modified: trunk/Source/WebDriver/ChangeLog (225385 => 225386)


--- trunk/Source/WebDriver/ChangeLog	2017-12-01 08:18:40 UTC (rev 225385)
+++ trunk/Source/WebDriver/ChangeLog	2017-12-01 09:47:15 UTC (rev 225386)
@@ -1,3 +1,76 @@
+2017-12-01  Carlos Garcia Campos  <cgar...@igalia.com>
+
+        WebDriver: end point nodes are only allowed to have one session
+        https://bugs.webkit.org/show_bug.cgi?id=180131
+
+        Reviewed by Brian Burg.
+
+        We are currently keeping a map of sessions, but our service is always and end point node, so only one session
+        can exist at a time. Make findSessionOrCompleteWithError() return a boolean instead, failing in case the sessionID
+        parameter is not found or it doesn't match the current session. Replace the session map and active session
+        pointer with a single session member and return SessionNotCreated error when new session command is received and
+        there's an active session.
+
+        8. Sessions
+        A remote end has an associated maximum active sessions (an integer) that defines the number of active sessions
+        that are supported. This may be “unlimited” for intermediary nodes, but must be exactly one for a remote end
+        that is an endpoint node.
+        https://w3c.github.io/webdriver/webdriver-spec.html#dfn-maximum-active-sessions
+
+        Fixes: imported/w3c/webdriver/tests/sessions/new_session/default_values.py::test_repeat_new_session
+
+        * WebDriverService.cpp:
+        (WebDriver::WebDriverService::findSessionOrCompleteWithError):
+        (WebDriver::WebDriverService::newSession):
+        (WebDriver::WebDriverService::deleteSession):
+        (WebDriver::WebDriverService::status):
+        (WebDriver::WebDriverService::setTimeouts):
+        (WebDriver::WebDriverService::go):
+        (WebDriver::WebDriverService::getCurrentURL):
+        (WebDriver::WebDriverService::back):
+        (WebDriver::WebDriverService::forward):
+        (WebDriver::WebDriverService::refresh):
+        (WebDriver::WebDriverService::getTitle):
+        (WebDriver::WebDriverService::getWindowHandle):
+        (WebDriver::WebDriverService::setWindowRect):
+        (WebDriver::WebDriverService::closeWindow):
+        (WebDriver::WebDriverService::switchToWindow):
+        (WebDriver::WebDriverService::getWindowHandles):
+        (WebDriver::WebDriverService::switchToFrame):
+        (WebDriver::WebDriverService::switchToParentFrame):
+        (WebDriver::findStrategyAndSelectorOrCompleteWithError):
+        (WebDriver::WebDriverService::findElement):
+        (WebDriver::WebDriverService::findElements):
+        (WebDriver::WebDriverService::findElementFromElement):
+        (WebDriver::WebDriverService::findElementsFromElement):
+        (WebDriver::WebDriverService::getActiveElement):
+        (WebDriver::WebDriverService::isElementSelected):
+        (WebDriver::WebDriverService::getElementAttribute):
+        (WebDriver::WebDriverService::getElementText):
+        (WebDriver::WebDriverService::getElementTagName):
+        (WebDriver::WebDriverService::getElementRect):
+        (WebDriver::WebDriverService::isElementEnabled):
+        (WebDriver::WebDriverService::isElementDisplayed):
+        (WebDriver::WebDriverService::elementClick):
+        (WebDriver::WebDriverService::elementClear):
+        (WebDriver::WebDriverService::elementSendKeys):
+        (WebDriver::findScriptAndArgumentsOrCompleteWithError):
+        (WebDriver::WebDriverService::executeScript):
+        (WebDriver::WebDriverService::executeAsyncScript):
+        (WebDriver::WebDriverService::getAllCookies):
+        (WebDriver::WebDriverService::getNamedCookie):
+        (WebDriver::deserializeCookie):
+        (WebDriver::WebDriverService::addCookie):
+        (WebDriver::WebDriverService::deleteCookie):
+        (WebDriver::WebDriverService::deleteAllCookies):
+        (WebDriver::WebDriverService::dismissAlert):
+        (WebDriver::WebDriverService::acceptAlert):
+        (WebDriver::WebDriverService::getAlertText):
+        (WebDriver::WebDriverService::sendAlertText):
+        (WebDriver::WebDriverService::takeScreenshot):
+        (WebDriver::WebDriverService::takeElementScreenshot):
+        * WebDriverService.h:
+
 2017-11-30  Carlos Garcia Campos  <cgar...@igalia.com>
 
         WebDriver: locator strategy should be validated before trying to find elements

Modified: trunk/Source/WebDriver/WebDriverService.cpp (225385 => 225386)


--- trunk/Source/WebDriver/WebDriverService.cpp	2017-12-01 08:18:40 UTC (rev 225385)
+++ trunk/Source/WebDriver/WebDriverService.cpp	2017-12-01 09:47:15 UTC (rev 225386)
@@ -343,21 +343,20 @@
     platformParseCapabilities(matchedCapabilities, capabilities);
 }
 
-RefPtr<Session> WebDriverService::findSessionOrCompleteWithError(JSON::Object& parameters, Function<void (CommandResult&&)>& completionHandler)
+bool WebDriverService::findSessionOrCompleteWithError(JSON::Object& parameters, Function<void (CommandResult&&)>& completionHandler)
 {
     String sessionID;
     if (!parameters.getString(ASCIILiteral("sessionId"), sessionID)) {
         completionHandler(CommandResult::fail(CommandResult::ErrorCode::InvalidArgument));
-        return nullptr;
+        return false;
     }
 
-    auto session = m_sessions.get(sessionID);
-    if (!session) {
+    if (!m_session || m_session->id() != sessionID) {
         completionHandler(CommandResult::fail(CommandResult::ErrorCode::InvalidSessionID));
-        return nullptr;
+        return false;
     }
 
-    return session;
+    return true;
 }
 
 RefPtr<JSON::Object> WebDriverService::validatedCapabilities(const JSON::Object& capabilities) const
@@ -576,6 +575,11 @@
 {
     // §8.1 New Session.
     // https://www.w3.org/TR/webdriver/#new-session
+    if (m_session) {
+        completionHandler(CommandResult::fail(CommandResult::ErrorCode::SessionNotCreated, String("Maximum number of active sessions")));
+        return;
+    }
+
     auto matchedCapabilities = processCapabilities(*parameters, completionHandler);
     if (!matchedCapabilities)
         return;
@@ -597,15 +601,14 @@
                 return;
             }
 
-            m_activeSession = session.get();
-            m_sessions.add(session->id(), session);
+            m_session = WTFMove(session);
 
-            const auto& capabilities = session->capabilities();
+            const auto& capabilities = m_session->capabilities();
             if (capabilities.timeouts)
-                session->setTimeouts(capabilities.timeouts.value(), [](CommandResult&&) { });
+                m_session->setTimeouts(capabilities.timeouts.value(), [](CommandResult&&) { });
 
             RefPtr<JSON::Object> resultObject = JSON::Object::create();
-            resultObject->setString(ASCIILiteral("sessionId"), session->id());
+            resultObject->setString(ASCIILiteral("sessionId"), m_session->id());
             RefPtr<JSON::Object> capabilitiesObject = JSON::Object::create();
             if (capabilities.browserName)
                 capabilitiesObject->setString(ASCIILiteral("browserName"), capabilities.browserName.value());
@@ -667,15 +670,13 @@
         return;
     }
 
-    auto session = m_sessions.take(sessionID);
-    if (!session) {
+    if (!m_session || m_session->id() != sessionID) {
         completionHandler(CommandResult::success());
         return;
     }
 
+    auto session = std::exchange(m_session, nullptr);
     session->close([this, session, completionHandler = WTFMove(completionHandler)](CommandResult&& result) mutable {
-        if (m_activeSession == session.get())
-            m_activeSession = nullptr;
         completionHandler(WTFMove(result));
     });
 }
@@ -684,8 +685,7 @@
 {
     // §8.5 Set Timeouts.
     // https://www.w3.org/TR/webdriver/#set-timeouts
-    auto session = findSessionOrCompleteWithError(*parameters, completionHandler);
-    if (!session)
+    if (!findSessionOrCompleteWithError(*parameters, completionHandler))
         return;
 
     auto timeouts = deserializeTimeouts(*parameters);
@@ -694,7 +694,7 @@
         return;
     }
 
-    session->setTimeouts(timeouts.value(), WTFMove(completionHandler));
+    m_session->setTimeouts(timeouts.value(), WTFMove(completionHandler));
 }
 
 void WebDriverService::go(RefPtr<JSON::Object>&& parameters, Function<void (CommandResult&&)>&& completionHandler)
@@ -701,8 +701,7 @@
 {
     // §9.1 Go.
     // https://www.w3.org/TR/webdriver/#go
-    auto session = findSessionOrCompleteWithError(*parameters, completionHandler);
-    if (!session)
+    if (!findSessionOrCompleteWithError(*parameters, completionHandler))
         return;
 
     String url;
@@ -711,12 +710,12 @@
         return;
     }
 
-    session->waitForNavigationToComplete([session, url = "" completionHandler = WTFMove(completionHandler)](CommandResult&& result) mutable {
+    m_session->waitForNavigationToComplete([this, url = "" completionHandler = WTFMove(completionHandler)](CommandResult&& result) mutable {
         if (result.isError()) {
             completionHandler(WTFMove(result));
             return;
         }
-        session->go(url, WTFMove(completionHandler));
+        m_session->go(url, WTFMove(completionHandler));
     });
 }
 
@@ -724,16 +723,15 @@
 {
     // §9.2 Get Current URL.
     // https://www.w3.org/TR/webdriver/#get-current-url
-    auto session = findSessionOrCompleteWithError(*parameters, completionHandler);
-    if (!session)
+    if (!findSessionOrCompleteWithError(*parameters, completionHandler))
         return;
 
-    session->waitForNavigationToComplete([session, completionHandler = WTFMove(completionHandler)](CommandResult&& result) mutable {
+    m_session->waitForNavigationToComplete([this, completionHandler = WTFMove(completionHandler)](CommandResult&& result) mutable {
         if (result.isError()) {
             completionHandler(WTFMove(result));
             return;
         }
-        session->getCurrentURL(WTFMove(completionHandler));
+        m_session->getCurrentURL(WTFMove(completionHandler));
     });
 }
 
@@ -741,16 +739,15 @@
 {
     // §9.3 Back.
     // https://www.w3.org/TR/webdriver/#back
-    auto session = findSessionOrCompleteWithError(*parameters, completionHandler);
-    if (!session)
+    if (!findSessionOrCompleteWithError(*parameters, completionHandler))
         return;
 
-    session->waitForNavigationToComplete([session, completionHandler = WTFMove(completionHandler)](CommandResult&& result) mutable {
+    m_session->waitForNavigationToComplete([this, completionHandler = WTFMove(completionHandler)](CommandResult&& result) mutable {
         if (result.isError()) {
             completionHandler(WTFMove(result));
             return;
         }
-        session->back(WTFMove(completionHandler));
+        m_session->back(WTFMove(completionHandler));
     });
 }
 
@@ -758,16 +755,15 @@
 {
     // §9.4 Forward.
     // https://www.w3.org/TR/webdriver/#forward
-    auto session = findSessionOrCompleteWithError(*parameters, completionHandler);
-    if (!session)
+    if (!findSessionOrCompleteWithError(*parameters, completionHandler))
         return;
 
-    session->waitForNavigationToComplete([session, completionHandler = WTFMove(completionHandler)](CommandResult&& result) mutable {
+    m_session->waitForNavigationToComplete([this, completionHandler = WTFMove(completionHandler)](CommandResult&& result) mutable {
         if (result.isError()) {
             completionHandler(WTFMove(result));
             return;
         }
-        session->forward(WTFMove(completionHandler));
+        m_session->forward(WTFMove(completionHandler));
     });
 }
 
@@ -775,16 +771,15 @@
 {
     // §9.5 Refresh.
     // https://www.w3.org/TR/webdriver/#refresh
-    auto session = findSessionOrCompleteWithError(*parameters, completionHandler);
-    if (!session)
+    if (!findSessionOrCompleteWithError(*parameters, completionHandler))
         return;
 
-    session->waitForNavigationToComplete([session, completionHandler = WTFMove(completionHandler)](CommandResult&& result) mutable {
+    m_session->waitForNavigationToComplete([this, completionHandler = WTFMove(completionHandler)](CommandResult&& result) mutable {
         if (result.isError()) {
             completionHandler(WTFMove(result));
             return;
         }
-        session->refresh(WTFMove(completionHandler));
+        m_session->refresh(WTFMove(completionHandler));
     });
 }
 
@@ -792,16 +787,15 @@
 {
     // §9.6 Get Title.
     // https://www.w3.org/TR/webdriver/#get-title
-    auto session = findSessionOrCompleteWithError(*parameters, completionHandler);
-    if (!session)
+    if (!findSessionOrCompleteWithError(*parameters, completionHandler))
         return;
 
-    session->waitForNavigationToComplete([session, completionHandler = WTFMove(completionHandler)](CommandResult&& result) mutable {
+    m_session->waitForNavigationToComplete([this, completionHandler = WTFMove(completionHandler)](CommandResult&& result) mutable {
         if (result.isError()) {
             completionHandler(WTFMove(result));
             return;
         }
-        session->getTitle(WTFMove(completionHandler));
+        m_session->getTitle(WTFMove(completionHandler));
     });
 }
 
@@ -809,8 +803,8 @@
 {
     // §10.1 Get Window Handle.
     // https://www.w3.org/TR/webdriver/#get-window-handle
-    if (auto session = findSessionOrCompleteWithError(*parameters, completionHandler))
-        session->getWindowHandle(WTFMove(completionHandler));
+    if (findSessionOrCompleteWithError(*parameters, completionHandler))
+        m_session->getWindowHandle(WTFMove(completionHandler));
 }
 
 void WebDriverService::getWindowRect(RefPtr<JSON::Object>&& parameters, Function<void (CommandResult&&)>&& completionHandler)
@@ -817,8 +811,8 @@
 {
     // §10.7.1 Get Window Rect.
     // https://w3c.github.io/webdriver/webdriver-spec.html#get-window-rect
-    if (auto session = findSessionOrCompleteWithError(*parameters, completionHandler))
-        session->getWindowRect(WTFMove(completionHandler));
+    if (findSessionOrCompleteWithError(*parameters, completionHandler))
+        m_session->getWindowRect(WTFMove(completionHandler));
 }
 
 static std::optional<double> valueAsNumberInRange(const JSON::Value& value, double minAllowed = 0, double maxAllowed = INT_MAX)
@@ -881,8 +875,8 @@
     // FIXME: If the remote end does not support the Set Window Rect command for the current
     // top-level browsing context for any reason, return error with error code unsupported operation.
 
-    if (auto session = findSessionOrCompleteWithError(*parameters, completionHandler))
-        session->setWindowRect(x, y, width, height, WTFMove(completionHandler));
+    if (findSessionOrCompleteWithError(*parameters, completionHandler))
+        m_session->setWindowRect(x, y, width, height, WTFMove(completionHandler));
 }
 
 void WebDriverService::closeWindow(RefPtr<JSON::Object>&& parameters, Function<void (CommandResult&&)>&& completionHandler)
@@ -889,11 +883,10 @@
 {
     // §10.2 Close Window.
     // https://www.w3.org/TR/webdriver/#close-window
-    auto session = findSessionOrCompleteWithError(*parameters, completionHandler);
-    if (!session)
+    if (!findSessionOrCompleteWithError(*parameters, completionHandler))
         return;
 
-    session->closeWindow([this, session, completionHandler = WTFMove(completionHandler)](CommandResult&& result) mutable {
+    m_session->closeWindow([this, completionHandler = WTFMove(completionHandler)](CommandResult&& result) mutable {
         if (result.isError()) {
             completionHandler(WTFMove(result));
             return;
@@ -900,11 +893,9 @@
         }
 
         RefPtr<JSON::Array> handles;
-        if (result.result()->asArray(handles) && !handles->length()) {
-            m_sessions.remove(session->id());
-            if (m_activeSession == session.get())
-                m_activeSession = nullptr;
-        }
+        if (result.result()->asArray(handles) && !handles->length())
+            m_session = nullptr;
+
         completionHandler(WTFMove(result));
     });
 }
@@ -913,8 +904,7 @@
 {
     // §10.3 Switch To Window.
     // https://www.w3.org/TR/webdriver/#switch-to-window
-    auto session = findSessionOrCompleteWithError(*parameters, completionHandler);
-    if (!session)
+    if (!findSessionOrCompleteWithError(*parameters, completionHandler))
         return;
 
     String handle;
@@ -923,7 +913,7 @@
         return;
     }
 
-    session->switchToWindow(handle, WTFMove(completionHandler));
+    m_session->switchToWindow(handle, WTFMove(completionHandler));
 }
 
 void WebDriverService::getWindowHandles(RefPtr<JSON::Object>&& parameters, Function<void (CommandResult&&)>&& completionHandler)
@@ -930,8 +920,8 @@
 {
     // §10.4 Get Window Handles.
     // https://www.w3.org/TR/webdriver/#get-window-handles
-    if (auto session = findSessionOrCompleteWithError(*parameters, completionHandler))
-        session->getWindowHandles(WTFMove(completionHandler));
+    if (findSessionOrCompleteWithError(*parameters, completionHandler))
+        m_session->getWindowHandles(WTFMove(completionHandler));
 }
 
 void WebDriverService::switchToFrame(RefPtr<JSON::Object>&& parameters, Function<void (CommandResult&&)>&& completionHandler)
@@ -938,8 +928,7 @@
 {
     // §10.5 Switch To Frame.
     // https://www.w3.org/TR/webdriver/#switch-to-frame
-    auto session = findSessionOrCompleteWithError(*parameters, completionHandler);
-    if (!session)
+    if (!findSessionOrCompleteWithError(*parameters, completionHandler))
         return;
 
     RefPtr<JSON::Value> frameID;
@@ -948,12 +937,12 @@
         return;
     }
 
-    session->waitForNavigationToComplete([session, frameID, completionHandler = WTFMove(completionHandler)](CommandResult&& result) mutable {
+    m_session->waitForNavigationToComplete([this, frameID, completionHandler = WTFMove(completionHandler)](CommandResult&& result) mutable {
         if (result.isError()) {
             completionHandler(WTFMove(result));
             return;
         }
-        session->switchToFrame(WTFMove(frameID), WTFMove(completionHandler));
+        m_session->switchToFrame(WTFMove(frameID), WTFMove(completionHandler));
     });
 }
 
@@ -961,16 +950,15 @@
 {
     // §10.6 Switch To Parent Frame.
     // https://www.w3.org/TR/webdriver/#switch-to-parent-frame
-    auto session = findSessionOrCompleteWithError(*parameters, completionHandler);
-    if (!session)
+    if (!findSessionOrCompleteWithError(*parameters, completionHandler))
         return;
 
-    session->waitForNavigationToComplete([session, completionHandler = WTFMove(completionHandler)](CommandResult&& result) mutable {
+    m_session->waitForNavigationToComplete([this, completionHandler = WTFMove(completionHandler)](CommandResult&& result) mutable {
         if (result.isError()) {
             completionHandler(WTFMove(result));
             return;
         }
-        session->switchToParentFrame(WTFMove(completionHandler));
+        m_session->switchToParentFrame(WTFMove(completionHandler));
     });
 }
 
@@ -1012,8 +1000,7 @@
 {
     // §12.2 Find Element.
     // https://www.w3.org/TR/webdriver/#find-element
-    auto session = findSessionOrCompleteWithError(*parameters, completionHandler);
-    if (!session)
+    if (!findSessionOrCompleteWithError(*parameters, completionHandler))
         return;
 
     String strategy, selector;
@@ -1020,12 +1007,12 @@
     if (!findStrategyAndSelectorOrCompleteWithError(*parameters, completionHandler, strategy, selector))
         return;
 
-    session->waitForNavigationToComplete([session, strategy = WTFMove(strategy), selector = WTFMove(selector), completionHandler = WTFMove(completionHandler)](CommandResult&& result) mutable {
+    m_session->waitForNavigationToComplete([this, strategy = WTFMove(strategy), selector = WTFMove(selector), completionHandler = WTFMove(completionHandler)](CommandResult&& result) mutable {
         if (result.isError()) {
             completionHandler(WTFMove(result));
             return;
         }
-        session->findElements(strategy, selector, Session::FindElementsMode::Single, emptyString(), WTFMove(completionHandler));
+        m_session->findElements(strategy, selector, Session::FindElementsMode::Single, emptyString(), WTFMove(completionHandler));
     });
 }
 
@@ -1033,8 +1020,7 @@
 {
     // §12.3 Find Elements.
     // https://www.w3.org/TR/webdriver/#find-elements
-    auto session = findSessionOrCompleteWithError(*parameters, completionHandler);
-    if (!session)
+    if (!findSessionOrCompleteWithError(*parameters, completionHandler))
         return;
 
     String strategy, selector;
@@ -1041,12 +1027,12 @@
     if (!findStrategyAndSelectorOrCompleteWithError(*parameters, completionHandler, strategy, selector))
         return;
 
-    session->waitForNavigationToComplete([session, strategy = WTFMove(strategy), selector = WTFMove(selector), completionHandler = WTFMove(completionHandler)](CommandResult&& result) mutable {
+    m_session->waitForNavigationToComplete([this, strategy = WTFMove(strategy), selector = WTFMove(selector), completionHandler = WTFMove(completionHandler)](CommandResult&& result) mutable {
         if (result.isError()) {
             completionHandler(WTFMove(result));
             return;
         }
-        session->findElements(strategy, selector, Session::FindElementsMode::Multiple, emptyString(), WTFMove(completionHandler));
+        m_session->findElements(strategy, selector, Session::FindElementsMode::Multiple, emptyString(), WTFMove(completionHandler));
     });
 }
 
@@ -1054,8 +1040,7 @@
 {
     // §12.4 Find Element From Element.
     // https://www.w3.org/TR/webdriver/#find-element-from-element
-    auto session = findSessionOrCompleteWithError(*parameters, completionHandler);
-    if (!session)
+    if (!findSessionOrCompleteWithError(*parameters, completionHandler))
         return;
 
     auto elementID = findElementOrCompleteWithError(*parameters, completionHandler);
@@ -1066,7 +1051,7 @@
     if (!findStrategyAndSelectorOrCompleteWithError(*parameters, completionHandler, strategy, selector))
         return;
 
-    session->findElements(strategy, selector, Session::FindElementsMode::Single, elementID.value(), WTFMove(completionHandler));
+    m_session->findElements(strategy, selector, Session::FindElementsMode::Single, elementID.value(), WTFMove(completionHandler));
 }
 
 void WebDriverService::findElementsFromElement(RefPtr<JSON::Object>&& parameters, Function<void (CommandResult&&)>&& completionHandler)
@@ -1073,8 +1058,7 @@
 {
     // §12.5 Find Elements From Element.
     // https://www.w3.org/TR/webdriver/#find-elements-from-element
-    auto session = findSessionOrCompleteWithError(*parameters, completionHandler);
-    if (!session)
+    if (!findSessionOrCompleteWithError(*parameters, completionHandler))
         return;
 
     auto elementID = findElementOrCompleteWithError(*parameters, completionHandler);
@@ -1085,7 +1069,7 @@
     if (!findStrategyAndSelectorOrCompleteWithError(*parameters, completionHandler, strategy, selector))
         return;
 
-    session->findElements(strategy, selector, Session::FindElementsMode::Multiple, elementID.value(), WTFMove(completionHandler));
+    m_session->findElements(strategy, selector, Session::FindElementsMode::Multiple, elementID.value(), WTFMove(completionHandler));
 }
 
 void WebDriverService::getActiveElement(RefPtr<JSON::Object>&& parameters, Function<void (CommandResult&&)>&& completionHandler)
@@ -1092,16 +1076,15 @@
 {
     // §12.6 Get Active Element.
     // https://w3c.github.io/webdriver/webdriver-spec.html#get-active-element
-    auto session = findSessionOrCompleteWithError(*parameters, completionHandler);
-    if (!session)
+    if (!findSessionOrCompleteWithError(*parameters, completionHandler))
         return;
 
-    session->waitForNavigationToComplete([session, completionHandler = WTFMove(completionHandler)](CommandResult&& result) mutable {
+    m_session->waitForNavigationToComplete([this, completionHandler = WTFMove(completionHandler)](CommandResult&& result) mutable {
         if (result.isError()) {
             completionHandler(WTFMove(result));
             return;
         }
-        session->getActiveElement(WTFMove(completionHandler));
+        m_session->getActiveElement(WTFMove(completionHandler));
     });
 }
 
@@ -1109,8 +1092,7 @@
 {
     // §13.1 Is Element Selected.
     // https://www.w3.org/TR/webdriver/#is-element-selected
-    auto session = findSessionOrCompleteWithError(*parameters, completionHandler);
-    if (!session)
+    if (!findSessionOrCompleteWithError(*parameters, completionHandler))
         return;
 
     auto elementID = findElementOrCompleteWithError(*parameters, completionHandler);
@@ -1117,7 +1099,7 @@
     if (!elementID)
         return;
 
-    session->isElementSelected(elementID.value(), WTFMove(completionHandler));
+    m_session->isElementSelected(elementID.value(), WTFMove(completionHandler));
 }
 
 void WebDriverService::getElementAttribute(RefPtr<JSON::Object>&& parameters, Function<void (CommandResult&&)>&& completionHandler)
@@ -1124,8 +1106,7 @@
 {
     // §13.2 Get Element Attribute.
     // https://www.w3.org/TR/webdriver/#get-element-attribute
-    auto session = findSessionOrCompleteWithError(*parameters, completionHandler);
-    if (!session)
+    if (!findSessionOrCompleteWithError(*parameters, completionHandler))
         return;
 
     auto elementID = findElementOrCompleteWithError(*parameters, completionHandler);
@@ -1138,7 +1119,7 @@
         return;
     }
 
-    session->getElementAttribute(elementID.value(), attribute, WTFMove(completionHandler));
+    m_session->getElementAttribute(elementID.value(), attribute, WTFMove(completionHandler));
 }
 
 void WebDriverService::getElementText(RefPtr<JSON::Object>&& parameters, Function<void (CommandResult&&)>&& completionHandler)
@@ -1145,8 +1126,7 @@
 {
     // §13.5 Get Element Text.
     // https://www.w3.org/TR/webdriver/#get-element-text
-    auto session = findSessionOrCompleteWithError(*parameters, completionHandler);
-    if (!session)
+    if (!findSessionOrCompleteWithError(*parameters, completionHandler))
         return;
 
     auto elementID = findElementOrCompleteWithError(*parameters, completionHandler);
@@ -1153,7 +1133,7 @@
     if (!elementID)
         return;
 
-    session->getElementText(elementID.value(), WTFMove(completionHandler));
+    m_session->getElementText(elementID.value(), WTFMove(completionHandler));
 }
 
 void WebDriverService::getElementTagName(RefPtr<JSON::Object>&& parameters, Function<void (CommandResult&&)>&& completionHandler)
@@ -1160,8 +1140,7 @@
 {
     // §13.6 Get Element Tag Name.
     // https://www.w3.org/TR/webdriver/#get-element-tag-name
-    auto session = findSessionOrCompleteWithError(*parameters, completionHandler);
-    if (!session)
+    if (!findSessionOrCompleteWithError(*parameters, completionHandler))
         return;
 
     auto elementID = findElementOrCompleteWithError(*parameters, completionHandler);
@@ -1168,7 +1147,7 @@
     if (!elementID)
         return;
 
-    session->getElementTagName(elementID.value(), WTFMove(completionHandler));
+    m_session->getElementTagName(elementID.value(), WTFMove(completionHandler));
 }
 
 void WebDriverService::getElementRect(RefPtr<JSON::Object>&& parameters, Function<void (CommandResult&&)>&& completionHandler)
@@ -1175,8 +1154,7 @@
 {
     // §13.7 Get Element Rect.
     // https://www.w3.org/TR/webdriver/#get-element-rect
-    auto session = findSessionOrCompleteWithError(*parameters, completionHandler);
-    if (!session)
+    if (!findSessionOrCompleteWithError(*parameters, completionHandler))
         return;
 
     auto elementID = findElementOrCompleteWithError(*parameters, completionHandler);
@@ -1183,7 +1161,7 @@
     if (!elementID)
         return;
 
-    session->getElementRect(elementID.value(), WTFMove(completionHandler));
+    m_session->getElementRect(elementID.value(), WTFMove(completionHandler));
 }
 
 void WebDriverService::isElementEnabled(RefPtr<JSON::Object>&& parameters, Function<void (CommandResult&&)>&& completionHandler)
@@ -1190,8 +1168,7 @@
 {
     // §13.8 Is Element Enabled.
     // https://www.w3.org/TR/webdriver/#is-element-enabled
-    auto session = findSessionOrCompleteWithError(*parameters, completionHandler);
-    if (!session)
+    if (!findSessionOrCompleteWithError(*parameters, completionHandler))
         return;
 
     auto elementID = findElementOrCompleteWithError(*parameters, completionHandler);
@@ -1198,7 +1175,7 @@
     if (!elementID)
         return;
 
-    session->isElementEnabled(elementID.value(), WTFMove(completionHandler));
+    m_session->isElementEnabled(elementID.value(), WTFMove(completionHandler));
 }
 
 void WebDriverService::isElementDisplayed(RefPtr<JSON::Object>&& parameters, Function<void (CommandResult&&)>&& completionHandler)
@@ -1205,8 +1182,7 @@
 {
     // §C. Element Displayedness.
     // https://www.w3.org/TR/webdriver/#element-displayedness
-    auto session = findSessionOrCompleteWithError(*parameters, completionHandler);
-    if (!session)
+    if (!findSessionOrCompleteWithError(*parameters, completionHandler))
         return;
 
     auto elementID = findElementOrCompleteWithError(*parameters, completionHandler);
@@ -1213,7 +1189,7 @@
     if (!elementID)
         return;
 
-    session->isElementDisplayed(elementID.value(), WTFMove(completionHandler));
+    m_session->isElementDisplayed(elementID.value(), WTFMove(completionHandler));
 }
 
 void WebDriverService::elementClick(RefPtr<JSON::Object>&& parameters, Function<void (CommandResult&&)>&& completionHandler)
@@ -1220,8 +1196,7 @@
 {
     // §14.1 Element Click.
     // https://www.w3.org/TR/webdriver/#element-click
-    auto session = findSessionOrCompleteWithError(*parameters, completionHandler);
-    if (!session)
+    if (!findSessionOrCompleteWithError(*parameters, completionHandler))
         return;
 
     auto elementID = findElementOrCompleteWithError(*parameters, completionHandler);
@@ -1228,7 +1203,7 @@
     if (!elementID)
         return;
 
-    session->elementClick(elementID.value(), WTFMove(completionHandler));
+    m_session->elementClick(elementID.value(), WTFMove(completionHandler));
 }
 
 void WebDriverService::elementClear(RefPtr<JSON::Object>&& parameters, Function<void (CommandResult&&)>&& completionHandler)
@@ -1235,8 +1210,7 @@
 {
     // §14.2 Element Clear.
     // https://www.w3.org/TR/webdriver/#element-clear
-    auto session = findSessionOrCompleteWithError(*parameters, completionHandler);
-    if (!session)
+    if (!findSessionOrCompleteWithError(*parameters, completionHandler))
         return;
 
     auto elementID = findElementOrCompleteWithError(*parameters, completionHandler);
@@ -1243,7 +1217,7 @@
     if (!elementID)
         return;
 
-    session->elementClear(elementID.value(), WTFMove(completionHandler));
+    m_session->elementClear(elementID.value(), WTFMove(completionHandler));
 }
 
 void WebDriverService::elementSendKeys(RefPtr<JSON::Object>&& parameters, Function<void (CommandResult&&)>&& completionHandler)
@@ -1250,8 +1224,7 @@
 {
     // §14.3 Element Send Keys.
     // https://www.w3.org/TR/webdriver/#element-send-keys
-    auto session = findSessionOrCompleteWithError(*parameters, completionHandler);
-    if (!session)
+    if (!findSessionOrCompleteWithError(*parameters, completionHandler))
         return;
 
     auto elementID = findElementOrCompleteWithError(*parameters, completionHandler);
@@ -1283,7 +1256,7 @@
         return;
     }
 
-    session->elementSendKeys(elementID.value(), WTFMove(value), WTFMove(completionHandler));
+    m_session->elementSendKeys(elementID.value(), WTFMove(value), WTFMove(completionHandler));
 }
 
 static bool findScriptAndArgumentsOrCompleteWithError(JSON::Object& parameters, Function<void (CommandResult&&)>& completionHandler, String& script, RefPtr<JSON::Array>& arguments)
@@ -1303,8 +1276,7 @@
 {
     // §15.2.1 Execute Script.
     // https://www.w3.org/TR/webdriver/#execute-script
-    auto session = findSessionOrCompleteWithError(*parameters, completionHandler);
-    if (!session)
+    if (!findSessionOrCompleteWithError(*parameters, completionHandler))
         return;
 
     String script;
@@ -1312,12 +1284,12 @@
     if (!findScriptAndArgumentsOrCompleteWithError(*parameters, completionHandler, script, arguments))
         return;
 
-    session->waitForNavigationToComplete([session, script = WTFMove(script), arguments = WTFMove(arguments), completionHandler = WTFMove(completionHandler)](CommandResult&& result) mutable {
+    m_session->waitForNavigationToComplete([this, script = WTFMove(script), arguments = WTFMove(arguments), completionHandler = WTFMove(completionHandler)](CommandResult&& result) mutable {
         if (result.isError()) {
             completionHandler(WTFMove(result));
             return;
         }
-        session->executeScript(script, WTFMove(arguments), Session::ExecuteScriptMode::Sync, WTFMove(completionHandler));
+        m_session->executeScript(script, WTFMove(arguments), Session::ExecuteScriptMode::Sync, WTFMove(completionHandler));
     });
 }
 
@@ -1325,8 +1297,7 @@
 {
     // §15.2.2 Execute Async Script.
     // https://www.w3.org/TR/webdriver/#execute-async-script
-    auto session = findSessionOrCompleteWithError(*parameters, completionHandler);
-    if (!session)
+    if (!findSessionOrCompleteWithError(*parameters, completionHandler))
         return;
 
     String script;
@@ -1334,12 +1305,12 @@
     if (!findScriptAndArgumentsOrCompleteWithError(*parameters, completionHandler, script, arguments))
         return;
 
-    session->waitForNavigationToComplete([session, script = WTFMove(script), arguments = WTFMove(arguments), completionHandler = WTFMove(completionHandler)](CommandResult&& result) mutable {
+    m_session->waitForNavigationToComplete([this, script = WTFMove(script), arguments = WTFMove(arguments), completionHandler = WTFMove(completionHandler)](CommandResult&& result) mutable {
         if (result.isError()) {
             completionHandler(WTFMove(result));
             return;
         }
-        session->executeScript(script, WTFMove(arguments), Session::ExecuteScriptMode::Async, WTFMove(completionHandler));
+        m_session->executeScript(script, WTFMove(arguments), Session::ExecuteScriptMode::Async, WTFMove(completionHandler));
     });
 }
 
@@ -1347,16 +1318,15 @@
 {
     // §16.1 Get All Cookies.
     // https://w3c.github.io/webdriver/webdriver-spec.html#get-all-cookies
-    auto session = findSessionOrCompleteWithError(*parameters, completionHandler);
-    if (!session)
+    if (!findSessionOrCompleteWithError(*parameters, completionHandler))
         return;
 
-    session->waitForNavigationToComplete([session, completionHandler = WTFMove(completionHandler)](CommandResult&& result) mutable {
+    m_session->waitForNavigationToComplete([this, completionHandler = WTFMove(completionHandler)](CommandResult&& result) mutable {
         if (result.isError()) {
             completionHandler(WTFMove(result));
             return;
         }
-        session->getAllCookies(WTFMove(completionHandler));
+        m_session->getAllCookies(WTFMove(completionHandler));
     });
 }
 
@@ -1364,8 +1334,7 @@
 {
     // §16.2 Get Named Cookie.
     // https://w3c.github.io/webdriver/webdriver-spec.html#get-named-cookie
-    auto session = findSessionOrCompleteWithError(*parameters, completionHandler);
-    if (!session)
+    if (!findSessionOrCompleteWithError(*parameters, completionHandler))
         return;
 
     String name;
@@ -1374,12 +1343,12 @@
         return;
     }
 
-    session->waitForNavigationToComplete([session, name = WTFMove(name), completionHandler = WTFMove(completionHandler)](CommandResult&& result) mutable {
+    m_session->waitForNavigationToComplete([this, name = WTFMove(name), completionHandler = WTFMove(completionHandler)](CommandResult&& result) mutable {
         if (result.isError()) {
             completionHandler(WTFMove(result));
             return;
         }
-        session->getNamedCookie(name, WTFMove(completionHandler));
+        m_session->getNamedCookie(name, WTFMove(completionHandler));
     });
 }
 
@@ -1431,8 +1400,7 @@
 {
     // §16.3 Add Cookie.
     // https://w3c.github.io/webdriver/webdriver-spec.html#add-cookie
-    auto session = findSessionOrCompleteWithError(*parameters, completionHandler);
-    if (!session)
+    if (!findSessionOrCompleteWithError(*parameters, completionHandler))
         return;
 
     RefPtr<JSON::Object> cookieObject;
@@ -1447,12 +1415,12 @@
         return;
     }
 
-    session->waitForNavigationToComplete([session, cookie = WTFMove(cookie), completionHandler = WTFMove(completionHandler)](CommandResult&& result) mutable {
+    m_session->waitForNavigationToComplete([this, cookie = WTFMove(cookie), completionHandler = WTFMove(completionHandler)](CommandResult&& result) mutable {
         if (result.isError()) {
             completionHandler(WTFMove(result));
             return;
         }
-        session->addCookie(cookie.value(), WTFMove(completionHandler));
+        m_session->addCookie(cookie.value(), WTFMove(completionHandler));
     });
 }
 
@@ -1460,8 +1428,7 @@
 {
     // §16.4 Delete Cookie.
     // https://w3c.github.io/webdriver/webdriver-spec.html#delete-cookie
-    auto session = findSessionOrCompleteWithError(*parameters, completionHandler);
-    if (!session)
+    if (!findSessionOrCompleteWithError(*parameters, completionHandler))
         return;
 
     String name;
@@ -1470,12 +1437,12 @@
         return;
     }
 
-    session->waitForNavigationToComplete([session, name = WTFMove(name), completionHandler = WTFMove(completionHandler)](CommandResult&& result) mutable {
+    m_session->waitForNavigationToComplete([this, name = WTFMove(name), completionHandler = WTFMove(completionHandler)](CommandResult&& result) mutable {
         if (result.isError()) {
             completionHandler(WTFMove(result));
             return;
         }
-        session->deleteCookie(name, WTFMove(completionHandler));
+        m_session->deleteCookie(name, WTFMove(completionHandler));
     });
 }
 
@@ -1483,16 +1450,15 @@
 {
     // §16.5 Delete All Cookies.
     // https://w3c.github.io/webdriver/webdriver-spec.html#delete-all-cookies
-    auto session = findSessionOrCompleteWithError(*parameters, completionHandler);
-    if (!session)
+    if (!findSessionOrCompleteWithError(*parameters, completionHandler))
         return;
 
-    session->waitForNavigationToComplete([session, completionHandler = WTFMove(completionHandler)](CommandResult&& result) mutable {
+    m_session->waitForNavigationToComplete([this, completionHandler = WTFMove(completionHandler)](CommandResult&& result) mutable {
         if (result.isError()) {
             completionHandler(WTFMove(result));
             return;
         }
-        session->deleteAllCookies(WTFMove(completionHandler));
+        m_session->deleteAllCookies(WTFMove(completionHandler));
     });
 }
 
@@ -1500,16 +1466,15 @@
 {
     // §18.1 Dismiss Alert.
     // https://w3c.github.io/webdriver/webdriver-spec.html#dismiss-alert
-    auto session = findSessionOrCompleteWithError(*parameters, completionHandler);
-    if (!session)
+    if (!findSessionOrCompleteWithError(*parameters, completionHandler))
         return;
 
-    session->waitForNavigationToComplete([session, completionHandler = WTFMove(completionHandler)](CommandResult&& result) mutable {
+    m_session->waitForNavigationToComplete([this, completionHandler = WTFMove(completionHandler)](CommandResult&& result) mutable {
         if (result.isError()) {
             completionHandler(WTFMove(result));
             return;
         }
-        session->dismissAlert(WTFMove(completionHandler));
+        m_session->dismissAlert(WTFMove(completionHandler));
     });
 }
 
@@ -1517,16 +1482,15 @@
 {
     // §18.2 Accept Alert.
     // https://w3c.github.io/webdriver/webdriver-spec.html#accept-alert
-    auto session = findSessionOrCompleteWithError(*parameters, completionHandler);
-    if (!session)
+    if (!findSessionOrCompleteWithError(*parameters, completionHandler))
         return;
 
-    session->waitForNavigationToComplete([session, completionHandler = WTFMove(completionHandler)](CommandResult&& result) mutable {
+    m_session->waitForNavigationToComplete([this, completionHandler = WTFMove(completionHandler)](CommandResult&& result) mutable {
         if (result.isError()) {
             completionHandler(WTFMove(result));
             return;
         }
-        session->acceptAlert(WTFMove(completionHandler));
+        m_session->acceptAlert(WTFMove(completionHandler));
     });
 }
 
@@ -1534,16 +1498,15 @@
 {
     // §18.3 Get Alert Text.
     // https://w3c.github.io/webdriver/webdriver-spec.html#get-alert-text
-    auto session = findSessionOrCompleteWithError(*parameters, completionHandler);
-    if (!session)
+    if (!findSessionOrCompleteWithError(*parameters, completionHandler))
         return;
 
-    session->waitForNavigationToComplete([session, completionHandler = WTFMove(completionHandler)](CommandResult&& result) mutable {
+    m_session->waitForNavigationToComplete([this, completionHandler = WTFMove(completionHandler)](CommandResult&& result) mutable {
         if (result.isError()) {
             completionHandler(WTFMove(result));
             return;
         }
-        session->getAlertText(WTFMove(completionHandler));
+        m_session->getAlertText(WTFMove(completionHandler));
     });
 }
 
@@ -1551,8 +1514,7 @@
 {
     // §18.4 Send Alert Text.
     // https://w3c.github.io/webdriver/webdriver-spec.html#send-alert-text
-    auto session = findSessionOrCompleteWithError(*parameters, completionHandler);
-    if (!session)
+    if (!findSessionOrCompleteWithError(*parameters, completionHandler))
         return;
 
     String text;
@@ -1561,12 +1523,12 @@
         return;
     }
 
-    session->waitForNavigationToComplete([session, text = WTFMove(text), completionHandler = WTFMove(completionHandler)](CommandResult&& result) mutable {
+    m_session->waitForNavigationToComplete([this, text = WTFMove(text), completionHandler = WTFMove(completionHandler)](CommandResult&& result) mutable {
         if (result.isError()) {
             completionHandler(WTFMove(result));
             return;
         }
-        session->sendAlertText(text, WTFMove(completionHandler));
+        m_session->sendAlertText(text, WTFMove(completionHandler));
     });
 }
 
@@ -1574,16 +1536,15 @@
 {
     // §19.1 Take Screenshot.
     // https://w3c.github.io/webdriver/webdriver-spec.html#take-screenshot
-    auto session = findSessionOrCompleteWithError(*parameters, completionHandler);
-    if (!session)
+    if (!findSessionOrCompleteWithError(*parameters, completionHandler))
         return;
 
-    session->waitForNavigationToComplete([session, completionHandler = WTFMove(completionHandler)](CommandResult&& result) mutable {
+    m_session->waitForNavigationToComplete([this, completionHandler = WTFMove(completionHandler)](CommandResult&& result) mutable {
         if (result.isError()) {
             completionHandler(WTFMove(result));
             return;
         }
-        session->takeScreenshot(std::nullopt, std::nullopt, WTFMove(completionHandler));
+        m_session->takeScreenshot(std::nullopt, std::nullopt, WTFMove(completionHandler));
     });
 }
 
@@ -1591,8 +1552,7 @@
 {
     // §19.2 Take Element Screenshot.
     // https://w3c.github.io/webdriver/webdriver-spec.html#take-element-screenshot
-    auto session = findSessionOrCompleteWithError(*parameters, completionHandler);
-    if (!session)
+    if (!findSessionOrCompleteWithError(*parameters, completionHandler))
         return;
 
     auto elementID = findElementOrCompleteWithError(*parameters, completionHandler);
@@ -1602,12 +1562,12 @@
     bool scrollIntoView = true;
     parameters->getBoolean(ASCIILiteral("scroll"), scrollIntoView);
 
-    session->waitForNavigationToComplete([session, elementID, scrollIntoView, completionHandler = WTFMove(completionHandler)](CommandResult&& result) mutable {
+    m_session->waitForNavigationToComplete([this, elementID, scrollIntoView, completionHandler = WTFMove(completionHandler)](CommandResult&& result) mutable {
         if (result.isError()) {
             completionHandler(WTFMove(result));
             return;
         }
-        session->takeScreenshot(elementID.value(), scrollIntoView, WTFMove(completionHandler));
+        m_session->takeScreenshot(elementID.value(), scrollIntoView, WTFMove(completionHandler));
     });
 }
 

Modified: trunk/Source/WebDriver/WebDriverService.h (225385 => 225386)


--- trunk/Source/WebDriver/WebDriverService.h	2017-12-01 08:18:40 UTC (rev 225385)
+++ trunk/Source/WebDriver/WebDriverService.h	2017-12-01 09:47:15 UTC (rev 225386)
@@ -115,14 +115,13 @@
     std::optional<String> platformMatchCapability(const String&, const RefPtr<JSON::Value>&) const;
     void parseCapabilities(const JSON::Object& desiredCapabilities, Capabilities&) const;
     void platformParseCapabilities(const JSON::Object& desiredCapabilities, Capabilities&) const;
-    RefPtr<Session> findSessionOrCompleteWithError(JSON::Object&, Function<void (CommandResult&&)>&);
+    bool findSessionOrCompleteWithError(JSON::Object&, Function<void (CommandResult&&)>&);
 
     void handleRequest(HTTPRequestHandler::Request&&, Function<void (HTTPRequestHandler::Response&&)>&& replyHandler) override;
     void sendResponse(Function<void (HTTPRequestHandler::Response&&)>&& replyHandler, CommandResult&&) const;
 
     HTTPServer m_server;
-    HashMap<String, RefPtr<Session>> m_sessions;
-    Session* m_activeSession { nullptr };
+    RefPtr<Session> m_session;
 };
 
 } // namespace WebDriver
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to