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

Display corrupted in Tor browser #2686

Closed
wibud opened this issue Feb 4, 2020 · 3 comments
Closed

Display corrupted in Tor browser #2686

wibud opened this issue Feb 4, 2020 · 3 comments

Comments

@wibud
Copy link

wibud commented Feb 4, 2020

It display corrupted in Tor browser

image

Details

  • Browser and browser version:

image

  • OS version:

image

  • xterm.js version: 4.3.0
@Tyriar
Copy link
Member

Tyriar commented Feb 4, 2020

I guess the Tor browser doesn't support canvas properly? Change rendererType to dom will probably fix, no plans on actioning this.

@Tyriar Tyriar closed this as completed Feb 4, 2020
@hexagonrecursion
Copy link

Canvas work just fine in tor browser except that one feature (image extraction) is intentionally blocked to prevent fingerprinting https://2019.www.torproject.org/projects/torbrowser/design/#fingerprinting-linkability:

HTML5 Canvas Image Extraction

After plugins and plugin-provided information, we believe that the HTML5 Canvas is the single largest fingerprinting threat browsers face today. Studies show that the Canvas can provide an easy-access fingerprinting target: The adversary simply renders WebGL, font, and named color data to a Canvas element, extracts the image buffer, and computes a hash of that image data. Subtle differences in the video card, font packs, and even font and graphics library versions allow the adversary to produce a stable, simple, high-entropy fingerprint of a computer. In fact, the hash of the rendered image can be used almost identically to a tracking cookie by the web server.

This leads to many websites that use xterm.js being broken. It would be great if xtem.js worked fine in tor browser by default.

Firefox also has this feature, but it is currently experimental and is off by default:
https://support.mozilla.org/en-US/kb/firefox-protection-against-fingerprinting

@Tyriar
Copy link
Member

Tyriar commented Jul 6, 2021

Reading canvas image data is critical to how both the canvas and webgl renderers work. Looks like you'll have to use the DOM renderer or click allow:

new Terminal({
  rendererType: 'dom'
});

This will be the default in v5 #3271, allowing embedders to upgrade to the faster implementations and handle falling back.

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

3 participants