You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
haikuwebkit/WebDriverTests
Lauro Moura 74809f681a [WPE][WebDriver] Basic fullscreen support for the headless backend
https://bugs.webkit.org/show_bug.cgi?id=229380

Reviewed by Adrian Perez de Castro.

Tools:

r280774 added support for fullscreen in the WindowViewBackend, but
many webdriver tests started failing as they run in the headless
backend.

This commits adds basic support in HeadlessBackend to make some
tests pass. Currently, just storing the fullscreen state and
forwarding the events to the WPE backend functions.

A number of tests are still failing due to the missing multiple window
support (required through the `session` fixtures), but also there are
still some failing that expect the view to be started in
non-fullscreen mode, which does not happen in the headless backend.

* wpe/backends/HeadlessViewBackend.cpp:
(WPEToolingBackends::HeadlessViewBackend::HeadlessViewBackend):
(WPEToolingBackends::HeadlessViewBackend::onDOMFullScreenRequest):
(WPEToolingBackends::HeadlessViewBackend::dispatchFullscreenEvent):
* wpe/backends/HeadlessViewBackend.h:

WebDriverTests:

* TestExpectations.json: Skip some tests still failing, mainly due to multiple window support missing.


Canonical link: https://commits.webkit.org/240817@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@281430 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2 years ago
..
imported [WebDriver] Update config.json after tools update in r269235 3 years ago
ChangeLog [WPE][WebDriver] Basic fullscreen support for the headless backend 2 years ago
README.md [WebDriver] Add info about importing tests 2 years ago
TestExpectations.json [WPE][WebDriver] Basic fullscreen support for the headless backend 2 years ago

README.md

WebDriver tests

Importing tests

There is the import-webdriver-tests script to automate most of the process of checking out the repository and copying the files.

It reads the importer.json of the selected suite (selenium or w3c), which contains the desired commit alongside the list of paths to skip/import.

The cloned repository sits in WebKitBuild/ for easier inspection. For example, to manually check the new commit to be imported.

Once chosen the new commit, update importer.json with its hash and eventual path changes (e.g., new folders to be copied or skipped) and run the import script to update the desired suite:

./Tools/Scripts/import-webdriver-tests --selenium`
./Tools/Scripts/import-webdriver-tests --w3c`

After running the script, if you're using git, you can check which files were added with git status WebDriverTests/ to add them to the new commit. One current limitation of the script is its inability to check for deleted files from the source repository, so this step is still manual.

Beware that when importing Selenium tests, some manual intervention might be needed to remove unsupported code related to Firefox, Chrome, etc. For example:

  • Package imports in WebDriverTests/imported/selenium/py/selenium/webdriver/__init__.py.
  • RemoteConnection objects in WebDriverTests/imported/selenium/py/selenium/webdriver/remote/webdriver.py.

To test the imported suite, run it:

Tools/Scripts/run-webdriver-tests --verbose --wpe --release --display-server=xvfb