Horizontal navigation from the keyboards doesn't work if Touch Simulation is enabled
Categories
(DevTools :: Responsive Design Mode, defect, P2)
Tracking
(firefox-esr60 unaffected, firefox63 unaffected, firefox64 wontfix, firefox65 wontfix, firefox66 verified)
Tracking | Status | |
---|---|---|
firefox-esr60 | --- | unaffected |
firefox63 | --- | unaffected |
firefox64 | --- | wontfix |
firefox65 | --- | wontfix |
firefox66 | --- | verified |
People
(Reporter: obotisan, Assigned: bradwerth)
References
(Blocks 2 open bugs, Regression)
Details
(Keywords: regression)
Attachments
(6 files, 8 obsolete files)
Reporter | ||
Updated•7 years ago
|
Comment 2•7 years ago
|
||
Assignee | ||
Comment 3•7 years ago
|
||
Assignee | ||
Comment 4•7 years ago
|
||
Assignee | ||
Comment 5•7 years ago
|
||
Assignee | ||
Comment 6•7 years ago
|
||
Comment 7•7 years ago
|
||
Comment 8•7 years ago
|
||
Assignee | ||
Comment 9•7 years ago
|
||
Updated•7 years ago
|
Updated•7 years ago
|
Updated•7 years ago
|
Assignee | ||
Comment 10•7 years ago
|
||
Assignee | ||
Comment 11•7 years ago
|
||
Assignee | ||
Comment 12•7 years ago
|
||
Assignee | ||
Comment 13•7 years ago
|
||
Assignee | ||
Comment 14•7 years ago
|
||
Comment 15•7 years ago
|
||
Comment 16•7 years ago
|
||
Assignee | ||
Comment 17•7 years ago
|
||
Comment 18•7 years ago
|
||
Comment 19•7 years ago
|
||
Comment 20•7 years ago
|
||
Comment 21•7 years ago
|
||
Assignee | ||
Comment 22•7 years ago
|
||
Comment 23•7 years ago
|
||
Assignee | ||
Comment 24•7 years ago
|
||
Assignee | ||
Comment 25•7 years ago
|
||
Updated•7 years ago
|
Assignee | ||
Comment 26•7 years ago
|
||
Assignee | ||
Comment 27•7 years ago
|
||
Assignee | ||
Comment 28•7 years ago
|
||
Updated•7 years ago
|
Assignee | ||
Comment 29•7 years ago
|
||
Updated•7 years ago
|
Updated•7 years ago
|
Assignee | ||
Comment 30•7 years ago
|
||
Assignee | ||
Comment 31•7 years ago
|
||
Assignee | ||
Comment 32•7 years ago
|
||
Assignee | ||
Comment 33•7 years ago
|
||
![]() |
||
Updated•7 years ago
|
![]() |
||
Updated•7 years ago
|
Assignee | ||
Comment 34•7 years ago
|
||
Assignee | ||
Comment 35•7 years ago
|
||
Updated•7 years ago
|
Updated•7 years ago
|
Updated•7 years ago
|
Updated•7 years ago
|
Updated•7 years ago
|
Assignee | ||
Comment 36•7 years ago
|
||
Assignee | ||
Comment 37•7 years ago
|
||
Updated•7 years ago
|
Updated•7 years ago
|
Updated•7 years ago
|
Updated•7 years ago
|
Updated•7 years ago
|
Updated•7 years ago
|
Updated•7 years ago
|
Updated•7 years ago
|
Assignee | ||
Comment 38•7 years ago
|
||
Comment 39•7 years ago
|
||
![]() |
||
Comment 40•7 years ago
|
||
Backed out 2 changesets (Bug 1504659) for test_innerWidthHeight_script.html failures.
Push with failures: https://treeherder.mozilla.org/#/jobs?repo=autoland&revision=0b7bbe6dda1d98b81149a86c62801e66b40ea32c&selectedJob=220471736
Backout link: https://hg.mozilla.org/integration/autoland/rev/b3639a45cfc3d49ed698ea2cbee64a4ffbe4922c
Failure log: https://treeherder.mozilla.org/logviewer.html#/jobs?job_id=220471736&repo=autoland&lineNumber=5744
[task 2019-01-08T01:15:13.212Z] 01:15:13 INFO - TEST-START | dom/tests/mochitest/dom-level0/test_innerWidthHeight_script.html
[task 2019-01-08T01:15:13.963Z] 01:15:13 INFO - TEST-INFO | started process screentopng
[task 2019-01-08T01:15:14.402Z] 01:15:14 INFO - TEST-INFO | screentopng: exit 0
[task 2019-01-08T01:15:14.406Z] 01:15:14 INFO - TEST-UNEXPECTED-FAIL | dom/tests/mochitest/dom-level0/test_innerWidthHeight_script.html | innerWidth is css viewport width - got 600, expected 320
[task 2019-01-08T01:15:14.406Z] 01:15:14 INFO - SimpleTest.is@SimpleTest/SimpleTest.js:320:5
[task 2019-01-08T01:15:14.406Z] 01:15:14 INFO - runSubTest@dom/tests/mochitest/dom-level0/innerWidthHeight_script.html:13:5
[task 2019-01-08T01:15:14.406Z] 01:15:14 INFO - onload@dom/tests/mochitest/dom-level0/innerWidthHeight_script.html:1:1
[task 2019-01-08T01:15:14.406Z] 01:15:14 INFO - Not taking screenshot here: see the one that was previously logged
[task 2019-01-08T01:15:14.406Z] 01:15:14 INFO - TEST-UNEXPECTED-FAIL | dom/tests/mochitest/dom-level0/test_innerWidthHeight_script.html | innerHeight is css viewport height - got 400, expected 320
[task 2019-01-08T01:15:14.406Z] 01:15:14 INFO - SimpleTest.is@SimpleTest/SimpleTest.js:320:5
[task 2019-01-08T01:15:14.406Z] 01:15:14 INFO - runSubTest@dom/tests/mochitest/dom-level0/innerWidthHeight_script.html:14:5
[task 2019-01-08T01:15:14.406Z] 01:15:14 INFO - onload@dom/tests/mochitest/dom-level0/innerWidthHeight_script.html:1:1
[task 2019-01-08T01:15:14.406Z] 01:15:14 INFO - Not taking screenshot here: see the one that was previously logged
[task 2019-01-08T01:15:14.406Z] 01:15:14 INFO - TEST-UNEXPECTED-FAIL | dom/tests/mochitest/dom-level0/test_innerWidthHeight_script.html | innerWidth returns value that was set - got 600, expected 300
[task 2019-01-08T01:15:14.406Z] 01:15:14 INFO - SimpleTest.is@SimpleTest/SimpleTest.js:320:5
[task 2019-01-08T01:15:14.406Z] 01:15:14 INFO - runSubTest@dom/tests/mochitest/dom-level0/innerWidthHeight_script.html:17:5
[task 2019-01-08T01:15:14.406Z] 01:15:14 INFO - onload@dom/tests/mochitest/dom-level0/innerWidthHeight_script.html:1:1
[task 2019-01-08T01:15:14.406Z] 01:15:14 INFO - Not taking screenshot here: see the one that was previously logged
[task 2019-01-08T01:15:14.406Z] 01:15:14 INFO - TEST-UNEXPECTED-FAIL | dom/tests/mochitest/dom-level0/test_innerWidthHeight_script.html | innerHeight returns value that was set - got 400, expected 300
[task 2019-01-08T01:15:14.407Z] 01:15:14 INFO - SimpleTest.is@SimpleTest/SimpleTest.js:320:5
[task 2019-01-08T01:15:14.407Z] 01:15:14 INFO - runSubTest@dom/tests/mochitest/dom-level0/innerWidthHeight_script.html:21:5
[task 2019-01-08T01:15:14.407Z] 01:15:14 INFO - onload@dom/tests/mochitest/dom-level0/innerWidthHeight_script.html:1:1
[task 2019-01-08T01:15:14.408Z] 01:15:14 INFO - GECKO(5364) | MEMORY STAT | vsize 20973372MB | residentFast 390MB
[task 2019-01-08T01:15:14.408Z] 01:15:14 INFO - TEST-OK | dom/tests/mochitest/dom-level0/test_innerWidthHeight_script.html | took 1007ms
Assignee | ||
Comment 41•7 years ago
|
||
Updated•7 years ago
|
Assignee | ||
Comment 42•7 years ago
|
||
Assignee | ||
Comment 43•7 years ago
|
||
I still can't figure out a way to land this WITHOUT updating our getters and setters of innerWidth and innerHeight, which will have broad impact on web behavior.
At https://searchfox.org/mozilla-central/rev/c3ebaf6de2d481c262c04bb9657eaf76bf47e2ac/dom/base/nsGlobalWindowOuter.cpp#3078, the setter for innerWidth currently does not check if the visual viewport has been set (as the getter does). Instead, it checks if the CSS viewport has been explictly set, then modifies that. This makes test dom/tests/mochitest/dom-level0/test_innerWidthHeight_script.html fail because otherwise sane JS code that sets then gets innerWidth doesn't get the value that it put in because (with this patch) the visual viewport has been overridden by the window opener, and the CSS viewport has been overridden by the meta viewport tag.
Without this patch, the innerWidth setter does one of two things:
- Set the css viewport size only. It will do this if the css viewport has been overridden through a meta viewport tag. This will also effectively set the visual viewport size as long as it hasn't already been overridden.
- Set both viewports to the same value.
With this patch, the innerWidth setter will do one of these two slightly different things:
- Set the visual viewport only. It will do this if the visual viewport has already been overridden.
- Set both viewports to the same value, possibly by manipulating the css viewport override if it has already been overrridden.
This is weird, but it maintains continuity with current behavior and ensures that innerWidth always returns the visual viewport. It does not provide a way for the innerWidth setter to override the visual viewport -- but neither does the current implementation.
Assignee | ||
Comment 44•7 years ago
|
||
Comment 45•7 years ago
|
||
(In reply to Brad Werth [:bradwerth] from comment #43)
I still can't figure out a way to land this WITHOUT updating our getters and setters of innerWidth and innerHeight, which will have broad impact on web behavior.
Note that innerWidth and innerHeight cannot be set by web content, only by internal (chrome JS) code (see this).
So, if we're only changing the behaviour of the setters, that at least should not affect web content.
Comment 46•7 years ago
|
||
(In reply to Botond Ballo [:botond] from comment #45)
(In reply to Brad Werth [:bradwerth] from comment #43)
I still can't figure out a way to land this WITHOUT updating our getters and setters of innerWidth and innerHeight, which will have broad impact on web behavior.
Note that innerWidth and innerHeight cannot be set by web content, only by internal (chrome JS) code (see this).
Ok, I guess that's not entirely true. Looking at the code, it appears that content JS can set innerWidth/Height under the following circumstances:
-
It's a desktop platform rather than mobile
-
The window was opened by the script via window.open()
-
The tab in question is the only tab in its window,
which presumably can happen either if the user has
unchecked "Open links in tabs instead of new windows"
in Preferences, or if the user has closed the original
tab which opened the new one
In any case, this doesn't seem applicable to situations where the visual and layout viewport diverge. (And indeed, the notion of changing innerWidth, which essentially amounts to resizing the browser window, in a mobile context doesn't make sense.) So, I think we're fine.
Comment 47•7 years ago
|
||
(And, in case you're wondering why test_innerWidthHeight_script.html
gets to set innerWidth/Height in spite of it not being a chrome mochitest, it's because it flips the dom.disable_window_move_resize
pref, which seems to control this ability among other things.)
Assignee | ||
Comment 48•7 years ago
|
||
Assignee | ||
Comment 49•7 years ago
|
||
Assignee | ||
Comment 50•7 years ago
|
||
Comment 51•7 years ago
|
||
(In reply to Brad Werth [:bradwerth] (PTO until 1/14/2019) from comment #49)
Created attachment 9035406 [details]
Bug 1504659 Part 5: Update Android reftest expectations.The tests for Bug 1133905 all compare the visibility of scrollbars with
differently-sized css viewports. This patch has some affect on the
viewport sizing that I don't understand, and it causes some of the tests
to start passing and some to start failing.
Interesting; I pulled the patches up to and including Part 4, and ran the bug 1133905 tests locally, to try to reproduce and understand the changes in behaviour, but in my local runs the tests are behaving as per the original expectations.
Comment 52•7 years ago
|
||
(In reply to Botond Ballo [:botond] from comment #51)
Interesting; I pulled the patches up to and including Part 4, and ran the bug 1133905 tests locally, to try to reproduce and understand the changes in behaviour, but in my local runs the tests are behaving as per the original expectations.
Likewise for the bug 12422172 test.
Comment 53•7 years ago
|
||
On the other hand, a Try push shows the test behaviour changing as reflected in the Part 5 patch.
I guess that's because in automation, the tests run on an emulator, which has a different screen size than a device.
Comment 54•7 years ago
|
||
I've tried to reproduce the failures locally in the emulator, without success so far (bug 1519489, bug 1519588). Will keep trying on Monday.
Comment 55•7 years ago
•
|
||
Ok, I was able to get an x86 emulator working, and I can reproduce the test failures.
They seem to be related to the first patch, which comes into play because Android reftests run with apz.allow_zooming=false (wat).
Comment 56•7 years ago
•
|
||
So here are my thoughts on the the changes in test behaviour:
- The tests concern scrollbar rendering behaviour.
- The changes in behaviour are caused by the first patch, likely due to taking different codepaths in
ScrollFrameHelper::LayoutScrollbars()
. - The patch in question only affects the configuration where we use
MobileViewportManager
butapz.allow_zooming=false
. This is the case for Android reftests as mentioned above, but not actual production behaviour on Android, where we run withapz.allow_zooming=true
. Therefore, this patch should not affect production behaviour on Android. - This configuration is, however, used in RDM (after all, that's the point of the patch), so it may alter scrollbar rendering behaviour in RDM.
- The changes to the test expectations suggest that the alterations to scrollbar rendering behaviour may include both regressions (as some tests start to fail) and improvements (as some tests start to pass).
- As this patch fixes a fairly significant regression in RDM behaviour, I think it's reasonable to take it even though it may cause some regressions to scrollbar rendering behaviour in RDM, which seems less severe.
I do think it would be a good idea to investigate and fix the test cases that are still failing, as a follow-up. We already have bug 1308702 on file for the bug 1133905 test failures on Android, so we can use that to track.
Updated•7 years ago
|
Assignee | ||
Comment 57•7 years ago
|
||
Updated•7 years ago
|
Comment 58•7 years ago
|
||
Comment 59•7 years ago
|
||
Backed out for reftest failures on frame-reconstruction-scroll-clamping.html
Backout link: https://hg.mozilla.org/integration/autoland/rev/73cd4b7b53ba8edbc148e40d101fd9427846ea26
Push link: https://treeherder.mozilla.org/#/jobs?repo=autoland&resultStatus=pending%2Crunning%2Csuccess%2Ctestfailed%2Cbusted%2Cexception%2Crunnable&searchStr=android%2C4.3%2Capi16%2B%2Copt%2Creftests%2Ctest-android-em-4.3-arm7-api-16%2Fopt-reftest-28%2Cr%28r28%29&revision=749c9dcbbd7f7d8146a71d8cb2a1acb07db1b8c7
Log link: https://treeherder.mozilla.org/logviewer.html#/jobs?job_id=221902914&repo=autoland&lineNumber=3829
Comment 60•7 years ago
|
||
I am clearing my needinfo since I am sure Brad will be right on top of this.
@Brad, I think you have set your bugzilla to not allow people to needinfo you and therefore I was needinfo instead (I am assuming you might've left this setting on from your pto)
Comment 61•7 years ago
|
||
Brad, with your patches and my patches for bug 1423013 made layout/reftests/transform/compound-1a.html fail[1] on Android. I could reproduce the failure and tracked down that the RefreshVisualViewportSize call [2] in RefreshViewportSize() caused the failure. Though I didn't know that apz.allow_zooming is false on reftest, in the failure case the difference between the test and the reference images looks just a blurry top border of the skewed transform box. Probably there is rounding errors somewhere. Anyway, I've confirmed that with apz.allow_zooming=true the reftest works fine so, given that apz.allow_zooming is true on Android, it's not a big problem I suppose. So please add apz.allow_zooming pref for the reftest here. (I did land my patches before I noticed the pref is disabled in reftest harness).
Thanks!
[1] https://treeherder.mozilla.org/#/jobs?repo=autoland&group_state=expanded&fromchange=749c9dcbbd7f7d8146a71d8cb2a1acb07db1b8c7&tochange=8af061c4dfc01a8ecaff8072b70110f85f1c5060&selectedJob=221919301&searchStr=android%2C4.3%2Capi16%2B%2Copt%2Creftests%2Ctest-android-em-4.3-arm7-api-16%2Fopt-reftest-27%2Cr%28r27%29
[2] https://hg.mozilla.org/integration/autoland/rev/738e1ee854eb24b72679b35252a4889b9603c003#l1.36
Assignee | ||
Comment 62•7 years ago
|
||
Comment 63•7 years ago
|
||
Comment 64•7 years ago
|
||
Comment 65•7 years ago
|
||
Comment 66•7 years ago
|
||
Failure log: https://treeherder.mozilla.org/logviewer.html#/jobs?job_id=222261932&repo=autoland&lineNumber=1955
Ref analyzer: https://hg.mozilla.org/mozilla-central/raw-file/tip/layout/tools/reftest/reftest-analyzer.xhtml#logurl=https://queue.taskcluster.net/v1/task/GjDmfcIOTmmjgR99YHy6Cw/runs/0/artifacts/public/logs/live_backing.log&only_show_unexpected=1
Backout link: https://hg.mozilla.org/integration/autoland/rev/28bcc4da309251ab6c1f10a3d4e67c1c55ee4fad
Assignee | ||
Comment 67•7 years ago
|
||
Assignee | ||
Comment 68•7 years ago
|
||
Comment 69•7 years ago
|
||
![]() |
||
Comment 70•7 years ago
|
||
bugherder |
https://hg.mozilla.org/mozilla-central/rev/ba34bc4f9903
https://hg.mozilla.org/mozilla-central/rev/571aef2b0929
https://hg.mozilla.org/mozilla-central/rev/c017d1d14820
https://hg.mozilla.org/mozilla-central/rev/ddc9999232d6
https://hg.mozilla.org/mozilla-central/rev/d3d3222460fc
Updated•7 years ago
|
Assignee | ||
Updated•7 years ago
|
Comment 71•7 years ago
|
||
I can reproduce this issue with Nightly 65.0a1 (2018-11-05) (64-bit) on Linux x86_64
I am verifying that this is fixed in latest Nightly 66.0a1
Build id 20190117215514
User Agent Mozilla/5.0 (X11; Linux x86_64; rv:66.0) Gecko/20100101 Firefox/66.0
[bugday-20190116]
Assignee | ||
Comment 72•6 years ago
|
||
The test added in this bug now fails with devtools.responsive.metaViewport.enabled
true, which we are trying to enable in Bug 1521934. This is the regression range:
INFO: Last good revision: b8141448e0baa767e8eff61e28c5a418c438f3d2 (2019-07-22)
INFO: First bad revision: 026812d05de4546d50b277499171050bea4296d4 (2019-07-25)
I'm trying to narrow it down further. The fix for this regression (with the pref turned on), will likely be added to Bug 1521934, and this test will be updated to test with the pref on, as I originally intended.
Assignee | ||
Comment 73•6 years ago
|
||
Bug 1567237 seems very likely to the be regression culprit.
Reporter | ||
Comment 74•5 years ago
|
||
I managed to verified the fix on Nightly from 2019-01-17 using Windows 10 x64. The issue was not reproducing anymore.
But the displayed has changed and on the latest Nightly the image is fit to the margins of the screen and there is no horizontal scroll.
Updated•4 years ago
|
Description
•