From 6d08aa0e4f8f36af2c6a8c364fdd745ef3a69ed4 Mon Sep 17 00:00:00 2001 From: Juha Vainio Date: Thu, 7 Mar 2024 10:35:38 +0200 Subject: [PATCH] Rename visual-viewport to display-feature Also added rest of the parameters which display-feature needs. --- resources/testdriver.js | 10 +++++----- tools/wptrunner/wptrunner/executors/actions.py | 12 +++++++----- .../wptrunner/executors/executorwebdriver.py | 14 ++++++++------ tools/wptrunner/wptrunner/executors/protocol.py | 8 ++++---- tools/wptrunner/wptrunner/testdriver-extra.js | 6 +++--- ...viewport-segments.html => display-feature.html} | 6 ++++-- 6 files changed, 31 insertions(+), 25 deletions(-) rename visual-viewport/{viewport-segments.html => display-feature.html} (82%) diff --git a/resources/testdriver.js b/resources/testdriver.js index c2a72089fedf75..87df7a48416bd3 100644 --- a/resources/testdriver.js +++ b/resources/testdriver.js @@ -1036,9 +1036,9 @@ /** * Sets the viewport orientation. */ - async set_viewport_orientation(orientation, context=null) { - console.log('JV666 TEST_DRIVER testdriver.js set_viewport_orientation: ' + orientation); - return window.test_driver_internal.set_viewport_orientation(orientation, context); + async set_display_feature(orientation, offset, mask_length, context=null) { + console.log('JV666 TEST_DRIVER testdriver.js set_display_feature: ' + orientation + ' ' + offset + ' ' + mask_length); + return window.test_driver_internal.set_display_feature(orientation, offset, mask_length, context); } }; @@ -1225,8 +1225,8 @@ throw new Error("set_device_posture() is not implemented by testdriver-vendor.js"); }, - async set_viewport_orientation(orientation, context=null) { - throw new Error("set_viewport_orientation() is not implemented by testdriver-vendor.js"); + async set_display_feature(orientation, offset, mask_length, context=null) { + throw new Error("set_display_feature() is not implemented by testdriver-vendor.js"); } }; })(); diff --git a/tools/wptrunner/wptrunner/executors/actions.py b/tools/wptrunner/wptrunner/executors/actions.py index a76d519f185238..b6c2781c4db84e 100644 --- a/tools/wptrunner/wptrunner/executors/actions.py +++ b/tools/wptrunner/wptrunner/executors/actions.py @@ -455,8 +455,8 @@ def __call__(self, payload): self.logger.debug("JV666 tools/wptrunner/wptrunner/executors/actions.py set_device_posture: %s" % posture) return self.protocol.device_posture.set_device_posture(posture) -class SetViewportOrientation: - name = "set_viewport_orientation" +class SetDisplayFeature: + name = "set_display_feature" def __init__(self, logger, protocol): self.logger = logger @@ -464,8 +464,10 @@ def __init__(self, logger, protocol): def __call__(self, payload): orientation = payload["orientation"] - self.logger.debug("JV666 tools/wptrunner/wptrunner/executors/actions.py set_viewport_orientation: %s" % orientation) - return self.protocol.viewport.set_viewport_orientation(orientation) + offset = payload["offset"] + mask_length = payload["mask_length"] + self.logger.debug("JV666 tools/wptrunner/wptrunner/executors/actions.py set_display_feature: %s" % orientation) + return self.protocol.display_feature.set_display_feature(orientation, offset, mask_length) actions = [ClickAction, DeleteAllCookiesAction, @@ -502,4 +504,4 @@ def __call__(self, payload): RemoveVirtualSensorAction, GetVirtualSensorInformationAction, SetDevicePostureAction, - SetViewportOrientation] + SetDisplayFeature] diff --git a/tools/wptrunner/wptrunner/executors/executorwebdriver.py b/tools/wptrunner/wptrunner/executors/executorwebdriver.py index ec89ede8539edb..4552300c6eb15f 100644 --- a/tools/wptrunner/wptrunner/executors/executorwebdriver.py +++ b/tools/wptrunner/wptrunner/executors/executorwebdriver.py @@ -36,7 +36,7 @@ FedCMProtocolPart, VirtualSensorProtocolPart, DevicePostureProtocolPart, - ViewportProtocolPart, + DisplayFeatureProtocolPart, merge_dicts) from webdriver.client import Session @@ -442,14 +442,16 @@ def set_device_posture(self, posture): self.logger.debug("JV666 tools/wptrunner/wptrunner/executors/executorwebdriver.py set_device_posture: %s" % posture) return self.webdriver.send_session_command("POST", "deviceposture", body) -class WebDriverViewportPart(ViewportProtocolPart): +class WebDriverDisplayFeaturePart(DisplayFeatureProtocolPart): def setup(self): self.webdriver = self.parent.webdriver - def set_viewport_orientation(self, orientation): + def set_display_feature(self, orientation, offset, mask_length): body = {"orientation": orientation} - self.logger.debug("JV666 tools/wptrunner/wptrunner/executors/executorwebdriver.py set_viewport_orientation: %s" % orientation) - return self.webdriver.send_session_command("POST", "viewportsegments", body) + body.update({"offset": offset}) + body.update({"maskLength": mask_length}) + self.logger.debug("JV666 tools/wptrunner/wptrunner/executors/executorwebdriver.py set_display_feature: %s" % orientation) + return self.webdriver.send_session_command("POST", "displayfeature", body) class WebDriverProtocol(Protocol): implements = [WebDriverBaseProtocolPart, @@ -471,7 +473,7 @@ class WebDriverProtocol(Protocol): WebDriverDebugProtocolPart, WebDriverVirtualSensorPart, WebDriverDevicePosturePart, - WebDriverViewportPart] + WebDriverDisplayFeaturePart] def __init__(self, executor, browser, capabilities, **kwargs): super().__init__(executor, browser) diff --git a/tools/wptrunner/wptrunner/executors/protocol.py b/tools/wptrunner/wptrunner/executors/protocol.py index 7e0fc7aaac7f4c..56fb52f689b3e4 100644 --- a/tools/wptrunner/wptrunner/executors/protocol.py +++ b/tools/wptrunner/wptrunner/executors/protocol.py @@ -813,12 +813,12 @@ class DevicePostureProtocolPart(ProtocolPart): def set_device_posture(self, posture): pass -class ViewportProtocolPart(ProtocolPart): - """Protocol part for Viewport""" +class DisplayFeatureProtocolPart(ProtocolPart): + """Protocol part for Display Feature""" __metaclass__ = ABCMeta - name = "viewport" + name = "display_feature" @abstractmethod - def set_viewport_orientation(self, orientation): + def set_display_feature(self, orientation, offset, mask_length): pass diff --git a/tools/wptrunner/wptrunner/testdriver-extra.js b/tools/wptrunner/wptrunner/testdriver-extra.js index 41f1f8c12bf4ac..8af6285701bfe6 100644 --- a/tools/wptrunner/wptrunner/testdriver-extra.js +++ b/tools/wptrunner/wptrunner/testdriver-extra.js @@ -333,8 +333,8 @@ return create_action("set_device_posture", {posture, context}); }; - window.test_driver_internal.set_viewport_orientation = function(orientation, context=null) { - console.log('JV666 TEST_DRIVER tools/wptrunner/wptrunner/testdriver-extra.js set_viewport_orientation: ' + orientation); - return create_action("set_viewport_orientation", {orientation, context}); + window.test_driver_internal.set_display_feature = function(orientation, offset, mask_length, context=null) { + console.log('JV666 TEST_DRIVER tools/wptrunner/wptrunner/testdriver-extra.js set_display_feature: ' + orientation + ' ' + offset + ' ' + mask_length); + return create_action("set_display_feature", {orientation, offset, mask_length, context}); }; })(); diff --git a/visual-viewport/viewport-segments.html b/visual-viewport/display-feature.html similarity index 82% rename from visual-viewport/viewport-segments.html rename to visual-viewport/display-feature.html index 677dfaa962c793..315f7e974325e5 100644 --- a/visual-viewport/viewport-segments.html +++ b/visual-viewport/display-feature.html @@ -14,7 +14,7 @@ assert_equals(visualViewport.segments, null, "For a viewport not segmented, no segments must be exposed."); // HORIZONTAL - await test_driver.set_viewport_orientation('horizontal'); + await test_driver.set_display_feature('horizontal', 380, 30); assert_equals(window.visualViewport.segments.length, 2); assert_true(matchMedia('(horizontal-viewport-segments: 1)').matches); assert_true(matchMedia('(vertical-viewport-segments: 2)').matches); @@ -30,10 +30,12 @@ { once: true } ); }); - await test_driver.set_viewport_orientation('vertical'); + await test_driver.set_display_feature('vertical', 390, 20); assert_true(await promise) assert_true(matchMedia('(horizontal-viewport-segments: 2)').matches); assert_true(matchMedia('(vertical-viewport-segments: 1)').matches); + assert_not_equals(visualViewport.segments, null, "For a viewport segmented, segments must be exposed."); + console.log('JV666 visualViewport.segments: ' + JSON.stringify(visualViewport.segments, null, 2)); }, 'Viewport segments');