Open Bug 1403099 Opened 2 years ago Updated 1 year ago

game in http://www.best.io/paper-io has very bad performance due to anti-fingerprinting setting (needs higher resolution timer)

Categories

(Core :: DOM: Security, defect, P5)

55 Branch
x86_64
Windows 7
defect

Tracking

()

Tracking Status
firefox57 --- affected
firefox58 --- affected

People

(Reporter: kalviskajaks, Unassigned)

References

(Blocks 2 open bugs, )

Details

(Whiteboard: [domsecurity-backlog][fingerprinting][fp-triaged])

User Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:55.0) Gecko/20100101 Firefox/55.0
Build ID: 20170824053622

Steps to reproduce:

1) open game located at best.io/paper-io
2) play it


Actual results:

Very bad performance, the fps fluctuating all over the place going as low to 15 at moments. (monitored with fraps)


Expected results:

The game should have been smooth. I tried in chrome, and got 143-144 fps at all moments.
Summary: game in best.io/paper-io has very bad performance → game in http://www.best.io/paper-io has very bad performance
Can you go to perf-html.io, install the profiler add-on, and follow the instructions to obtain a profile while playing the game? You can then "upload" the profile to share it and post the link here.

The site has a lot of ads and stuff running in the background and when I run I get good fps but a lot of CPU usage. It's possible that you are getting different ads or different content that is causing the fps to be lower. The profile will give us more information about what exactly is happening when you run the game. Thanks!
https://perfht.ml/2xyin8e

is this good?
Ok i tried safe mode, and that didn't help at all. Than i tried a new profile and it was butter smooth. Maybe something in about:config. If i will have spare time i will try to hunt down the offending setting.
(In reply to kalviskajaks from comment #2)
> https://perfht.ml/2xyin8e
> 
> is this good?

Thanks, this is exactly what I wanted. It seems to indicate that the compositor thread is compositing smoothly. There are some hiccups on the content thread but nothing jumps out at me as being obviously bad.

(In reply to kalviskajaks from comment #3)
> Ok i tried safe mode, and that didn't help at all. Than i tried a new
> profile and it was butter smooth. Maybe something in about:config. If i will
> have spare time i will try to hunt down the offending setting.

Thanks, that would be useful. Comparing the about:support contents in the default profile and the new profile might make it easier to spot the differences, as some important modified preferences are listed there. Also any differences in the graphics section would be good to know about.
Found it! its 
privacy.resistFingerprinting true
Arthur, do you know who owns the privacy.resistFingerprinting pref and can look into why it might be causing a perf regression here?
Flags: needinfo?(arthuredelstein)
Thanks for reporting this. I am blocking AntiFingerprinting so that anti-fingerprinting team is aware.
Flags: needinfo?(arthuredelstein)
CS, as we discussed in the meeting, please help to follow up this bug. Thanks.
Flags: needinfo?(cfu)
This issue is reproducible using Latest Nightly and Latest Firefox Release on Windows 7 x32.
Component: Untriaged → Graphics
OS: Unspecified → Windows 7
Product: Firefox → Core
Hardware: Unspecified → x86_64
Status: UNCONFIRMED → NEW
Ever confirmed: true
Component: Graphics → DOM: Security
Summary: game in http://www.best.io/paper-io has very bad performance → game in http://www.best.io/paper-io has very bad performance due to anti-fingerprinting setting
very similar issue in agar.io. The player blob is stuttering all over the place with the setting set to true.
According to my local test on macOS 10.12 and Windows 10, the lag is because the JS time resolution is set to 1 sec when this pref is true.

http://searchfox.org/mozilla-central/rev/f54c1723befe6bcc7229f005217d5c681128fcad/toolkit/components/resistfingerprinting/nsRFPService.cpp#276

This affects Date related functions, e.g., new Date() and Date.now().  Without this line, the game can run as smoothly as this pref is false.

However, after briefly tracing the source code of the game, I still can't figure out how this change makes the game so lag.  Need further investigations.
Flags: needinfo?(cfu)
Priority: -- → P5
Summary: game in http://www.best.io/paper-io has very bad performance due to anti-fingerprinting setting → game in http://www.best.io/paper-io has very bad performance due to anti-fingerprinting setting (needs higher resolution timer)
Whiteboard: [domsecurity-backlog]
Whiteboard: [domsecurity-backlog] → [domsecurity-backlog][fingerprinting-breakage]
Whiteboard: [domsecurity-backlog][fingerprinting-breakage] → [domsecurity-backlog][fingerprinting]
Whiteboard: [domsecurity-backlog][fingerprinting] → [domsecurity-backlog][fingerprinting][fp-triaged]
You need to log in before you can comment on or make changes to this bug.