Closed Bug 1554024 Opened 6 years ago Closed 5 years ago

Intermittent /html/browsers/browsing-the-web/history-traversal/persisted-user-state-restoration/scroll-restoration-navigation-cross-origin.html | Navigating to new page should reset to "auto" and navigating back should restore and respect scroll

Categories

(Core :: DOM: Core & HTML, defect, P2)

defect

Tracking

()

RESOLVED FIXED
mozilla69
Tracking Status
firefox-esr60 --- unaffected
firefox67 --- unaffected
firefox68 --- unaffected
firefox69 --- fixed

People

(Reporter: intermittent-bug-filer, Assigned: hiro)

References

Details

(Keywords: intermittent-failure, regression, Whiteboard: [retriggered][stockwell needswork:owner])

Attachments

(1 file)

Filed by: aciure [at] mozilla.com
Parsed log: https://treeherder.mozilla.org/logviewer.html#?job_id=248084580&repo=mozilla-central
Full log: https://queue.taskcluster.net/v1/task/KdEJ9hCYS3y0CgM1VmyTRw/runs/3/artifacts/public/logs/live_backing.log


[task 2019-05-24T00:03:04.499Z] 00:03:04 INFO - TEST-START | /html/browsers/browsing-the-web/history-traversal/persisted-user-state-restoration/scroll-restoration-navigation-cross-origin.html
[task 2019-05-24T00:03:04.503Z] 00:03:04 INFO - Closing window 2147483674
[task 2019-05-24T00:03:04.832Z] 00:03:04 INFO -
[task 2019-05-24T00:03:04.832Z] 00:03:04 INFO - TEST-UNEXPECTED-FAIL | /html/browsers/browsing-the-web/history-traversal/persisted-user-state-restoration/scroll-restoration-navigation-cross-origin.html | Navigating to new page should reset to "auto" and navigating back should restore and respect scroll restoration mode - assert_equals: scripted scrolling should take effect expected 500 but got 499.79998779296875
[task 2019-05-24T00:03:04.832Z] 00:03:04 INFO - steps<@http://web-platform.test:8000/html/browsers/browsing-the-web/history-traversal/persisted-user-state-restoration/scroll-restoration-navigation-cross-origin.html:38:9
[task 2019-05-24T00:03:04.832Z] 00:03:04 INFO - next<@http://web-platform.test:8000/html/browsers/browsing-the-web/history-traversal/persisted-user-state-restoration/scroll-restoration-navigation-cross-origin.html:64:25
[task 2019-05-24T00:03:04.832Z] 00:03:04 INFO - Test.prototype.step@http://web-platform.test:8000/resources/testharness.js:1587:25
[task 2019-05-24T00:03:04.832Z] 00:03:04 INFO - Test.prototype.step_func/<@http://web-platform.test:8000/resources/testharness.js:1611:35
[task 2019-05-24T00:03:05.054Z] 00:03:05 INFO - TEST-OK | /html/browsers/browsing-the-web/history-traversal/persisted-user-state-restoration/scroll-restoration-navigation-cross-origin.html | took 553ms
[task 2019-05-24T00:03:05.716Z] 00:03:05 INFO - Closing logging queue
[task 2019-05-24T00:03:05.716Z] 00:03:05 INFO - queue closed
[task 2019-05-24T00:03:05.731Z] 00:03:05 INFO - Setting up ssl
[task 2019-05-24T00:03:05.754Z] 00:03:05 INFO - certutil |
[task 2019-05-24T00:03:05.778Z] 00:03:05 INFO - certutil |
[task 2019-05-24T00:03:05.793Z] 00:03:05 INFO - certutil |
[task 2019-05-24T00:03:05.793Z] 00:03:05 INFO - Certificate Nickname Trust Attributes
[task 2019-05-24T00:03:05.793Z] 00:03:05 INFO - SSL,S/MIME,JAR/XPI
[task 2019-05-24T00:03:05.794Z] 00:03:05 INFO -
[task 2019-05-24T00:03:05.794Z] 00:03:05 INFO - web-platform-tests CT,,
[task 2019-05-24T00:03:05.794Z] 00:03:05 INFO -
[task 2019-05-24T00:03:07.580Z] 00:03:07 INFO - adb Granting important runtime permissions to org.mozilla.geckoview.test
[task 2019-05-24T00:03:08.850Z] 00:03:08 INFO - adb launch_application: am start -W -n org.mozilla.geckoview.test/org.mozilla.geckoview.test.TestRunnerActivity -a android.intent.action.MAIN --es env9 MOZ_PROCESS_LOG=/tmp/tmpHvTp9wpidlog --es env8 MOZ_CRASHREPORTER_NO_REPORT=1 --es args "-no-remote -profile /sdcard/tests/profile --marionette about:blank" --es env3 STYLO_THREADS=4 --es env2 MOZ_HIDE_RESULTS_TABLE=1 --es env1 R_LOG_VERBOSE=1 --es env0 MOZ_CRASHREPORTER=1 --es env7 MOZ_DISABLE_NONLOCAL_CONNECTIONS=1 --es env6 R_LOG_DESTINATION=stderr --es env5 MOZ_CRASHREPORTER_SHUTDOWN=1 --es env4 MOZ_LOG=signaling:3,mtransport:4,DataChannel:4,jsep:4 --ez use_multiprocess True --es env10 R_LOG_LEVEL=6
[task 2019-05-24T00:03:10.515Z] 00:03:10 INFO - Starting runner

This started with this merge to central: https://hg.mozilla.org/mozilla-central/pushloghtml?changeset=d551d37b9ad0dd1c8ad2e87c74344f623fc4b694 Couldn't find anything related to the failing test there. It has 65 failures in the last 7 days, all on android-em-7-0-x86_64 opt & debug: https://treeherder.mozilla.org/intermittent-failures.html#/bugdetails?startday=2019-05-27&endday=2019-06-03&tree=all&bug=1554024

Recent failure log: https://treeherder.mozilla.org/#/jobs?repo=mozilla-central&revision=6d71d3ca012438d7eac6e8f9471e198a10eabc70&selectedJob=249637317
Hsin-Yi Tsai, could you please redirect this to someone who can take a look over it? Thank you.

[task 2019-06-02T23:20:26.163Z] 23:20:26 INFO - TEST-OK | /html/browsers/browsing-the-web/history-traversal/persisted-user-state-restoration/scroll-restoration-fragment-scrolling-samedoc.html | took 791ms
[task 2019-06-02T23:20:26.165Z] 23:20:26 INFO - TEST-START | /html/browsers/browsing-the-web/history-traversal/persisted-user-state-restoration/scroll-restoration-navigation-cross-origin.html
[task 2019-06-02T23:20:26.180Z] 23:20:26 INFO - Closing window 2147483674
[task 2019-06-02T23:20:26.704Z] 23:20:26 INFO -
[task 2019-06-02T23:20:26.704Z] 23:20:26 INFO - TEST-UNEXPECTED-FAIL | /html/browsers/browsing-the-web/history-traversal/persisted-user-state-restoration/scroll-restoration-navigation-cross-origin.html | Navigating to new page should reset to "auto" and navigating back should restore and respect scroll restoration mode - assert_equals: scripted scrolling should take effect expected 500 but got 499.79998779296875
[task 2019-06-02T23:20:26.704Z] 23:20:26 INFO - steps<@http://web-platform.test:8000/html/browsers/browsing-the-web/history-traversal/persisted-user-state-restoration/scroll-restoration-navigation-cross-origin.html:38:9
[task 2019-06-02T23:20:26.704Z] 23:20:26 INFO - next<@http://web-platform.test:8000/html/browsers/browsing-the-web/history-traversal/persisted-user-state-restoration/scroll-restoration-navigation-cross-origin.html:64:25
[task 2019-06-02T23:20:26.704Z] 23:20:26 INFO - Test.prototype.step@http://web-platform.test:8000/resources/testharness.js:1587:25
[task 2019-06-02T23:20:26.704Z] 23:20:26 INFO - Test.prototype.step_func/<@http://web-platform.test:8000/resources/testharness.js:1611:35
[task 2019-06-02T23:20:26.936Z] 23:20:26 INFO - TEST-OK | /html/browsers/browsing-the-web/history-traversal/persisted-user-state-restoration/scroll-restoration-navigation-cross-origin.html | took 768ms
[task 2019-06-02T23:20:27.704Z] 23:20:27 INFO - Closing logging queue
[task 2019-06-02T23:20:27.704Z] 23:20:27 INFO - queue closed
[task 2019-06-02T23:20:27.721Z] 23:20:27 INFO - Setting up ssl
[task 2019-06-02T23:20:27.737Z] 23:20:27 INFO - certutil |
[task 2019-06-02T23:20:27.760Z] 23:20:27 INFO - certutil |
[task 2019-06-02T23:20:27.777Z] 23:20:27 INFO - certutil |
[task 2019-06-02T23:20:27.777Z] 23:20:27 INFO - Certificate Nickname Trust Attributes
[task 2019-06-02T23:20:27.777Z] 23:20:27 INFO - SSL,S/MIME,JAR/XPI
[task 2019-06-02T23:20:27.777Z] 23:20:27 INFO -
[task 2019-06-02T23:20:27.777Z] 23:20:27 INFO - web-platform-tests CT,,
[task 2019-06-02T23:20:27.777Z] 23:20:27 INFO -
[task 2019-06-02T23:20:29.614Z] 23:20:29 INFO - adb Granting important runtime permissions to org.mozilla.geckoview.test
[task 2019-06-02T23:20:31.392Z] 23:20:31 INFO - adb launch_application: am start -W -n org.mozilla.geckoview.test/org.mozilla.geckoview.test.TestRunnerActivity -a android.intent.action.MAIN --es env9 MOZ_PROCESS_LOG=/tmp/tmpFeZIH2pidlog --es env8 MOZ_CRASHREPORTER_NO_REPORT=1 --es args "-no-remote -profile /sdcard/tests/profile --marionette about:blank" --es env3 STYLO_THREADS=4 --es env2 MOZ_HIDE_RESULTS_TABLE=1 --es env1 R_LOG_VERBOSE=1 --es env0 MOZ_CRASHREPORTER=1 --es env7 MOZ_DISABLE_NONLOCAL_CONNECTIONS=1 --es env6 R_LOG_DESTINATION=stderr --es env5 MOZ_CRASHREPORTER_SHUTDOWN=1 --es env4 MOZ_LOG=signaling:3,mtransport:4,DataChannel:4,jsep:4 --ez use_multiprocess True --es env10 R_LOG_LEVEL=6
[task 2019-06-02T23:20:33.352Z] 23:20:33 INFO - Starting runner
[task 2019-06-02T23:20:34.813Z] 23:20:34 INFO - TEST-START | /html/browsers/browsing-the-web/history-traversal/persisted-user-state-restoration/scroll-restoration-navigation-samedoc.html

Flags: needinfo?(htsai)

Looking into this merge https://hg.mozilla.org/mozilla-central/pushloghtml?changeset=d551d37b9ad0dd1c8ad2e87c74344f623fc4b694 , I wonder if :hiro's recent change in bug 1553022 has anything to do with this.

Hi :hiro, may I have your thoughts, please?

Flags: needinfo?(htsai) → needinfo?(hikezoe)

Yes. :) Given that all failures are on Android x86_64, I think this is caused by the same cause of bug 1554022 (See a reply in reviews). I will look at this case as well.

That's said, does somebody know what the difference between Android x86_64 and Android x86 is on our CI? Actually I tried to reproduce bug 1554022 locally on Android x86_64 emulator but couldn't reproduce.

Assignee: nobody → hikezoe
Status: NEW → ASSIGNED
Flags: needinfo?(hikezoe)

Unlike bug 1554022, this issue is annoying since window.scrollX is defined as double, so it seems to me that we shouldn't do the layer-pixel alignment in the first place. Other than that I have no idea to solve this failure. (Or we should store the given scroll position in parallel with the layer-pixel aligned position, maybe we should)

I'd really want to know the difference between Android x86_64 and x86 and how commonly we can see the same situation on the Android x86_64.

Geoff, do you know the difference between Android x86_64 and x86 on our CIs especially in terms of the device pixel ratio or something related to it? If you are unsure, would you mind bouncing NI to someone who are familiar with it?
As I commented in bug 1554022 comment 3, both emulator have the same hw.lcd.density so I have no idea there is anything affects the ratio.

FWIW, I can reproduce this failure on Desktop with specifying layout.css.devPixelsPerPx=1.61.

Flags: needinfo?(gbrown)

Android 7.0 x86 and Android 7.0 x86-64 use the same emulator and same Android images: they should be identical at the OS level.

However, Android 7.0 x86 web-platform tests run in an x86 build of Firefox for Android (Fennec), while Android 7.0 x86-64 web-platform tests run in an x86_64 build of the geckoview TestRunnerActivity. So there are at least 3 differences:

  • Fennec vs geckoview TestRunnerActivity
  • 32 bit vs 64 bit build
  • non-e10s vs e10s

:kwierso is the expert on the android web-platform test setup; :snorp is my main contact for all things geckoview.

Flags: needinfo?(gbrown)
Priority: -- → P2

Thank you, Geoff! That's super helpful. I will try GeckoView there, If I couldn't reproduce or even if I can reproduce but it's hard to change the difference which causes this failure, I will simply disable this test on Android x86_86.

I could reproduce the issue locally on GeckoView an Android x86_64 emulator. And it turns out that the difference is the scale value returned by FrameLayerBuilder::GetPaintedLayerScaleForFrame. On GeckoView the scale value is 0.816327, whereas on Fenec it's 1.0. I had been misunderstanding GeckoView (i.e. on x86_64) has a problem, but actually the problem is in Fennec, more precisely on non-E10S.

FrameLayerBuilder::GetPaintedLayerScaleForFrame tries to get the root pres context, but on non-E10S it's actually browser.xul so that scale isn't correct at all, it's always 1.0, which means the layer-pixel alignment has never worked on Fennec as expected. (There might be bug reports on this issue)

So, the behavior on GeckoView (on x86_64) is right in terms of the layer-pixel alignment, but because of the right behavior, this test fails unfortunately. Anyways, I am going to file a bug for the issue for the interaction between the layer-pixel alignment and scrolling APIs and disable this test on Android E10S for now.

Filed bug 1556685 for the issue on the layer-pixel alignment, filed bug 1556683 for the issue on FrameLayerBuilder::GetPaintedLayerScaleForFrame.

The test should work once after we fixed an issue on the interaction between
layer-pixel alignment and scrolling APIs in bug 1538775.

Pushed by hikezoe@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/e1fab8c9b1aa Mark scroll-restoration-navigation-cross-origin.html FAIL on Android E10S (i.e. GeckoView). r=botond
Status: ASSIGNED → RESOLVED
Closed: 5 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla69
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: