Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

v0.20.0 generates errors in the console #332

Closed
1 of 3 tasks
h6a8ke1k opened this issue May 1, 2020 · 4 comments
Closed
1 of 3 tasks

v0.20.0 generates errors in the console #332

h6a8ke1k opened this issue May 1, 2020 · 4 comments

Comments

@h6a8ke1k
Copy link

h6a8ke1k commented May 1, 2020

Prerequisites

Please use issues for bugs only! Answer the following questions for yourself before submitting an issue: YOU MAY DELETE THE PREREQUISITES SECTION.

  • I am running the latest version
  • I checked the documentation and found no answer
  • I checked to make sure that this issue has not already been filed

Expected Behavior

No errors in the console.

Current Behavior

This message appears on every web page:

TypeError: `target` argument of Proxy must be an object, got undefined

This message, mentioned by another issue, appears on some web pages:

TypeError: getTime method called on incompatible Object

The reason for the second message is that some js on those pages use Date.prototype.getTime.

Relevant settings

Context (Environment)

Firefox 68 ESR

@sereneblue
Copy link
Owner

Hi @h6a8ke1k,

Can you list the site that these errors appear on?

@h6a8ke1k
Copy link
Author

h6a8ke1k commented May 2, 2020

For the first error: TypeError: `target` argument of Proxy must be an object, got undefined
This error appears on every page, including about:blank.
I investigated the source of the error, and hope that it helps:

        // Proxy access to objects for fingerprint panel in popup
        window.AudioContext = new Proxy(window.AudioContext, {  
          construct: function(target, args) {
            if (!window.Nnrqkx_FP_DETECTED.fpPanel.audioContext) {
              window.Nnrqkx_FP_DETECTED.fpPanel.audioContext = true;
              window.top.postMessage({fp: 'audioContext', id: "Cnjfbqda"}, "*");
            }
            return new target(...args);
          }
        });

the error is generated from the above lines.

I found the reason. It is because I disabled dom.webaudio.enabled flag in about:config before.
Enabling that flag makes the error disappear.
However, I think the audio context spoofing is not strong enough. It seems that disabling webaudio leaks much less fingerprinting information than the spoofing.
Maybe consider adding an option to disable webaudio?

@h6a8ke1k
Copy link
Author

h6a8ke1k commented May 2, 2020

The second error is TypeError: getTime method called on incompatible Object
It appears on some of the websites, an example is https://amiunique.org/.
You can investigate the reason. I am not accustomed to js debugging in Firefox. (Previously always using Chrome to debug.)

Another website mentioned in another issue is https://genius.com/, and I think I have found the issue.
There is code checking String(new Date(NaN)), which should return Invalid Date normally. After timezone spoofing, this error appears.

Hope the information helps.

@sereneblue
Copy link
Owner

Thanks for the detailed report @h6a8ke1k!

While you can disable WebAudio, it's generally better to feed trackers fake data. Not having any data could flag you as a unique individual and disabling features can cause some sites to break. The next update should resolve the issues with the audio context and fixes the bug with the Date object on amiunique.org. Please let me know if you're still experiencing issues after v0.20.2 is released.

This issue was closed.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants