Closed Bug 1522855 Opened 6 years ago Closed 2 years ago

Intermittent testing/marionette/harness/marionette_harness/tests/unit/test_window_rect.py TestWindowRect.test_resize_to_available_screen_size | AssertionError: 1280 not greater than or equal to 1600

Categories

(Testing :: Marionette Client and Harness, defect, P5)

Version 3
defect

Tracking

(Not tracked)

RESOLVED WORKSFORME

People

(Reporter: intermittent-bug-filer, Unassigned)

References

Details

(Keywords: intermittent-failure)

#[markdown(off)]
Filed by: ncsoregi [at] mozilla.com

https://treeherder.mozilla.org/logviewer.html#?job_id=224032421&repo=autoland

https://queue.taskcluster.net/v1/task/bnOZupi7ShuMMNfdB7lqgw/runs/0/artifacts/public/logs/live_backing.log

[task 2019-01-25T14:59:45.493Z] 14:59:45 INFO - 1548428385486 Marionette DEBUG 98 -> [0,9,"WebDriver:GetWindowRect",{}]
[task 2019-01-25T14:59:45.493Z] 14:59:45 INFO - 1548428385487 Marionette DEBUG 98 <- [1,9,null,{"x":0,"y":0,"width":1280,"height":1040}]
[task 2019-01-25T14:59:45.495Z] 14:59:45 INFO - 1548428385491 Marionette DEBUG 98 -> [0,10,"Marionette:GetContext",{}]
[task 2019-01-25T14:59:45.495Z] 14:59:45 INFO - 1548428385491 Marionette DEBUG 98 <- [1,10,null,{"value":"content"}]
[task 2019-01-25T14:59:45.511Z] 14:59:45 INFO - 1548428385506 Marionette DEBUG 98 -> [0,11,"Marionette:SetContext",{"value":"chrome"}]
[task 2019-01-25T14:59:45.511Z] 14:59:45 INFO - 1548428385507 Marionette DEBUG 98 <- [1,11,null,{"value":null}]
[task 2019-01-25T14:59:45.511Z] 14:59:45 INFO - 1548428385508 Marionette DEBUG 98 -> [0,12,"WebDriver:TakeScreenshot",{"highlights":null,"full":true,"hash":false,"id":null,"scroll":true}]
[task 2019-01-25T14:59:45.568Z] 14:59:45 INFO - 1548428385566 Marionette DEBUG 98 <- [1,12,null,{"value":"iVBORw0KGgoAAAANSUhEUgAABQAAAAQQCAYAAAC9RfbYAAAgAElEQVR4nOzdfYzkB33f8YUWgZo2Qm2jNlKjPqSyYlSUpKqMi4kIrQlp ... AAAAAAMCYAAQAAAGBMAAIAAADAmAAEAAAAgDEBCAAAAABjAhAAAAAAxgQgAAAAAIwJQAAAAAAYE4AAAAAAMCYAAQAAAGAsdn3mYYR27o8AAAAASUVORK5CYII="}]
[task 2019-01-25T14:59:45.582Z] 14:59:45 INFO - 1548428385578 Marionette DEBUG 98 -> [0,13,"Marionette:SetContext",{"value":"content"}]
[task 2019-01-25T14:59:45.586Z] 14:59:45 INFO - 1548428385578 Marionette DEBUG 98 <- [1,13,null,{"value":null}]
[task 2019-01-25T14:59:45.591Z] 14:59:45 INFO - 1548428385583 Marionette DEBUG 98 -> [0,14,"Marionette:GetContext",{}]
[task 2019-01-25T14:59:45.593Z] 14:59:45 INFO - 1548428385584 Marionette DEBUG 98 <- [1,14,null,{"value":"content"}]
[task 2019-01-25T14:59:45.594Z] 14:59:45 INFO - 1548428385585 Marionette DEBUG 98 -> [0,15,"Marionette:SetContext",{"value":"content"}]
[task 2019-01-25T14:59:45.596Z] 14:59:45 INFO - 1548428385586 Marionette DEBUG 98 <- [1,15,null,{"value":null}]
[task 2019-01-25T14:59:45.597Z] 14:59:45 INFO - 1548428385587 Marionette DEBUG 98 -> [0,16,"WebDriver:GetPageSource",{}]
[task 2019-01-25T14:59:45.598Z] 14:59:45 INFO - 1548428385592 Marionette DEBUG 98 <- [1,16,null,{"value":"<html><head></head><body></body></html>"}]
[task 2019-01-25T14:59:45.599Z] 14:59:45 INFO - 1548428385593 Marionette DEBUG 98 -> [0,17,"Marionette:SetContext",{"value":"content"}]
[task 2019-01-25T14:59:45.621Z] 14:59:45 INFO - TEST-UNEXPECTED-FAIL | testing/marionette/harness/marionette_harness/tests/unit/test_window_rect.py TestWindowRect.test_resize_to_available_screen_size | AssertionError: 1280 not greater than or equal to 1600
[task 2019-01-25T14:59:45.621Z] 14:59:45 INFO - Traceback (most recent call last):
[task 2019-01-25T14:59:45.622Z] 14:59:45 INFO - File "/builds/worker/workspace/build/venv/lib/python2.7/site-packages/marionette_harness/marionette_test/testcases.py", line 159, in run
[task 2019-01-25T14:59:45.623Z] 14:59:45 INFO - testMethod()
[task 2019-01-25T14:59:45.623Z] 14:59:45 INFO - File "/builds/worker/workspace/build/tests/marionette/tests/testing/marionette/harness/marionette_harness/tests/unit/test_window_rect.py", line 215, in test_resize_to_available_screen_size
[task 2019-01-25T14:59:45.624Z] 14:59:45 INFO - self.assertGreaterEqual(expected_size["width"], self.max["width"])
[task 2019-01-25T14:59:45.625Z] 14:59:45 INFO - TEST-INFO took 211ms

Status: NEW → RESOLVED
Closed: 5 years ago
Resolution: --- → INCOMPLETE
Status: RESOLVED → REOPENED
Resolution: INCOMPLETE → ---
Status: REOPENED → RESOLVED
Closed: 5 years ago5 years ago
Resolution: --- → INCOMPLETE
Status: RESOLVED → REOPENED
Resolution: INCOMPLETE → ---
Status: REOPENED → RESOLVED
Closed: 5 years ago5 years ago
Resolution: --- → INCOMPLETE
Status: RESOLVED → REOPENED
Resolution: INCOMPLETE → ---

There is a discrepancy between what window.screen.available[Height|Width] and window.outer[Height|Width] returns. While the former returns the right information the latter further reduces the value by around 25px for the height at least on Linux. But per MDN the Window.outerHeight property should include the full browser window. So is that a known bug in the Gecko API?

Flags: needinfo?(bugs)

Hmm, looks like the values are different if there is a scrollbar visible and viewport has been zoomed a bit.

I wonder if botond knows how this should work.

I didn't test what other browsers do.

Flags: needinfo?(bugs) → needinfo?(botond)

(In reply to Henrik Skupin (:whimboo) [⌚️UTC+1] from comment #81)

While the former returns the right information the latter further reduces the value by around 25px for the height at least on Linux. But per MDN the Window.outerHeight property should include the full browser window. So is that a known bug in the Gecko API?

I tested this on Linux and Windows, and what I saw is:

  • On Linux, window.screen.availHeight is the full screen height, while window.outerHeight (for a maximized window) seems to exclude both the taskbar height and the height of the window's title bar.
  • On Windows, both values seem to include the full screen height, including the taskbar height (the window doesn't have a title bar on Windows).

I'm not sure which behaviour is per spec, but in any case these issues (inclusion of taskbar, inclusion of title bar) are unrelated to APZ, rather they are likely issues in the respective platform's (Linux or Windows) widget code.

(In reply to Olli Pettay [:smaug] from comment #82)

Hmm, looks like the values are different if there is a scrollbar visible and viewport has been zoomed a bit.

I wonder if botond knows how this should work.

By "zoomed", do you mean pinch-zoom or reflow-zoom? I briefly tried both, and could not reproduce a difference based on zooming (except that with reflow-zoom, both values decrease proportionally to the zoom since they are reported in CSS pixels).

Flags: needinfo?(botond)

(In reply to Botond Ballo [:botond] from comment #83)

I tested this on Linux and Windows, and what I saw is:

  • On Linux, window.screen.availHeight is the full screen height, while window.outerHeight (for a maximized window) seems to exclude both the taskbar height and the height of the window's title bar.

That's different for me. The screen of my Lenovo X230 has a resolution of 1366x768. With the default desktop as used by Mint I have the taskbar visible only. And window.screen.availHeight reports 741, which in this case is not the full screen height. window.outerHeight even only reports 716 pixels. As such we do not report the correct numbers as said on MDN.

I'm not sure which behaviour is per spec, but in any case these issues (inclusion of taskbar, inclusion of title bar) are unrelated to APZ, rather they are likely issues in the respective platform's (Linux or Windows) widget code.

Karl, do you maybe know more here, and why we report different numbers? It would be good to know the maximum size of the application window without actually having to go into maximize mode first.

Flags: needinfo?(karlt)

(In reply to Henrik Skupin (:whimboo) [⌚️UTC+1] from comment #81)

the latter further reduces the value by around 25px for the height at least on Linux. But per MDN the Window.outerHeight property should include the full browser window. So is that a known bug in the Gecko API?

Bug 581863

(In reply to Henrik Skupin (:whimboo) [⌚️UTC+1] from comment #84)

(In reply to Botond Ballo [:botond] from comment #83)

  • On Linux, window.screen.availHeight is the full screen height, while window.outerHeight (for a maximized window) seems to exclude both the taskbar height and the height of the window's title bar.

That's different for me. The screen of my Lenovo X230 has a resolution of 1366x768. With the default desktop as used by Mint I have the taskbar visible only. And window.screen.availHeight reports 741, which in this case is not the full screen height.

availHeight is likely to differ under different window managers. It seems reasonable that it should exclude the taskbar if windows cannot be placed in that area, but, even if windows can be placed over the taskbar, maximized windows may not take advantage of that. Then there will be some window managers that simply don't support availHeight.

It would be good to know the maximum size of the application window without actually having to go into maximize mode first.

I don't know a practical way to determine that, sorry.
To add to the mix, some window managers will remove some or all borders of decorations when windows are maximized, and multiple monitors will add to confusion because windows can span monitors, even though maximized windows will usually not.
If window managers are behaving themselves, then I'd expect availHeight to provide an upper bound on window outer height (which will be greater than or equal to Gecko's window.outerHeight).

Flags: needinfo?(karlt)
No longer blocks: 1602701
Depends on: 1602701

No more failures within the last two months. Closing as WFM.

Status: REOPENED → RESOLVED
Closed: 5 years ago2 years ago
Resolution: --- → WORKSFORME
Product: Testing → Remote Protocol
Moving bug to Testing::Marionette Client and Harness component per bug 1815831.
Component: Marionette → Marionette Client and Harness
Product: Remote Protocol → Testing
You need to log in before you can comment on or make changes to this bug.