Changeset 252238 in webkit
- Timestamp:
- Nov 8, 2019 7:09:00 AM (4 years ago)
- Location:
- trunk
- Files:
-
- 7 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebDriver/ChangeLog
r252180 r252238 1 2019-11-08 Carlos Garcia Campos <cgarcia@igalia.com> 2 3 WebDriver: implement get page source command 4 https://bugs.webkit.org/show_bug.cgi?id=180399 5 6 Reviewed by Carlos Alberto Lopez Perez. 7 8 * Session.cpp: 9 (WebDriver::Session::getPageSource): 10 * Session.h: 11 * WebDriverService.cpp: 12 (WebDriver::WebDriverService::getPageSource): 13 * WebDriverService.h: 14 1 15 2019-11-07 Carlos Garcia Campos <cgarcia@igalia.com> 2 16 -
trunk/Source/WebDriver/Session.cpp
r252180 r252238 1820 1820 } 1821 1821 1822 void Session::getPageSource(Function<void (CommandResult&&)>&& completionHandler) 1823 { 1824 if (!m_toplevelBrowsingContext) { 1825 completionHandler(CommandResult::fail(CommandResult::ErrorCode::NoSuchWindow)); 1826 return; 1827 } 1828 1829 handleUserPrompts([this, protectedThis = makeRef(*this), completionHandler = WTFMove(completionHandler)](CommandResult&& result) mutable { 1830 if (result.isError()) { 1831 completionHandler(WTFMove(result)); 1832 return; 1833 } 1834 RefPtr<JSON::Object> parameters = JSON::Object::create(); 1835 parameters->setString("browsingContextHandle"_s, m_toplevelBrowsingContext.value()); 1836 parameters->setString("function"_s, "function() { return document.documentElement.outerHTML; }"_s); 1837 parameters->setArray("arguments"_s, JSON::Array::create()); 1838 m_host->sendCommandToBackend("evaluateJavaScriptFunction"_s, WTFMove(parameters), [protectedThis = protectedThis.copyRef(), completionHandler = WTFMove(completionHandler)](SessionHost::CommandResponse&& response) { 1839 if (response.isError || !response.responseObject) { 1840 completionHandler(CommandResult::fail(WTFMove(response.responseObject))); 1841 return; 1842 } 1843 String valueString; 1844 if (!response.responseObject->getString("result"_s, valueString)) { 1845 completionHandler(CommandResult::fail(CommandResult::ErrorCode::UnknownError)); 1846 return; 1847 } 1848 RefPtr<JSON::Value> resultValue; 1849 if (!JSON::Value::parseJSON(valueString, resultValue)) { 1850 completionHandler(CommandResult::fail(CommandResult::ErrorCode::UnknownError)); 1851 return; 1852 } 1853 completionHandler(CommandResult::success(WTFMove(resultValue))); 1854 }); 1855 }); 1856 } 1857 1822 1858 RefPtr<JSON::Value> Session::handleScriptResult(RefPtr<JSON::Value>&& resultValue) 1823 1859 { -
trunk/Source/WebDriver/Session.h
r239427 r252238 108 108 void elementClear(const String& elementID, Function<void (CommandResult&&)>&&); 109 109 void elementSendKeys(const String& elementID, const String& text, Function<void (CommandResult&&)>&&); 110 void getPageSource(Function<void (CommandResult&&)>&&); 110 111 void executeScript(const String& script, RefPtr<JSON::Array>&& arguments, ExecuteScriptMode, Function<void (CommandResult&&)>&&); 111 112 void getAllCookies(Function<void (CommandResult&&)>&&); -
trunk/Source/WebDriver/WebDriverService.cpp
r248846 r252238 154 154 { HTTPMethod::Post, "/session/$sessionId/element/$elementId/value", &WebDriverService::elementSendKeys }, 155 155 156 { HTTPMethod::Get, "/session/$sessionId/source", &WebDriverService::getPageSource }, 156 157 { HTTPMethod::Post, "/session/$sessionId/execute/sync", &WebDriverService::executeScript }, 157 158 { HTTPMethod::Post, "/session/$sessionId/execute/async", &WebDriverService::executeAsyncScript }, … … 1396 1397 } 1397 1398 1399 void WebDriverService::getPageSource(RefPtr<JSON::Object>&& parameters, Function<void (CommandResult&&)>&& completionHandler) 1400 { 1401 // §15.1 Getting Page Source. 1402 // https://w3c.github.io/webdriver/webdriver-spec.html#getting-page-source 1403 if (!findSessionOrCompleteWithError(*parameters, completionHandler)) 1404 return; 1405 1406 m_session->getPageSource(WTFMove(completionHandler)); 1407 } 1408 1398 1409 static bool findScriptAndArgumentsOrCompleteWithError(JSON::Object& parameters, Function<void (CommandResult&&)>& completionHandler, String& script, RefPtr<JSON::Array>& arguments) 1399 1410 { -
trunk/Source/WebDriver/WebDriverService.h
r239427 r252238 100 100 void elementClear(RefPtr<JSON::Object>&&, Function<void (CommandResult&&)>&&); 101 101 void elementSendKeys(RefPtr<JSON::Object>&&, Function<void (CommandResult&&)>&&); 102 void getPageSource(RefPtr<JSON::Object>&&, Function<void (CommandResult&&)>&&); 102 103 void executeScript(RefPtr<JSON::Object>&&, Function<void (CommandResult&&)>&&); 103 104 void executeAsyncScript(RefPtr<JSON::Object>&&, Function<void (CommandResult&&)>&&); -
trunk/WebDriverTests/ChangeLog
r252180 r252238 1 2019-11-08 Carlos Garcia Campos <cgarcia@igalia.com> 2 3 WebDriver: implement get page source command 4 https://bugs.webkit.org/show_bug.cgi?id=180399 5 6 Reviewed by Carlos Alberto Lopez Perez. 7 8 Unskip tests that are now passing. 9 10 * TestExpectations.json: 11 1 12 2019-11-07 Carlos Garcia Campos <cgarcia@igalia.com> 2 13 -
trunk/WebDriverTests/TestExpectations.json
r252180 r252238 399 399 } 400 400 } 401 },402 "imported/w3c/webdriver/tests/get_page_source/source.py": {403 "expected": {"all": {"status": ["SKIP"], "bug": "webkit.org/b/180399"}}404 },405 "imported/w3c/webdriver/tests/get_page_source/user_prompts.py": {406 "expected": {"all": {"status": ["SKIP"], "bug": "webkit.org/b/180399"}}407 401 }, 408 402 "imported/w3c/webdriver/tests/element_click/bubbling.py": {
Note: See TracChangeset
for help on using the changeset viewer.