-
Notifications
You must be signed in to change notification settings - Fork 15
Terminal not loading in some browsers #2
Comments
This means |
I'm looking into it. Need to open-source Puter.js ASAP! |
I still haven't been able to replicate this |
I'm on Linux. Chromium Version 123.0.6298.0 (Developer Build) (64-bit) off tip-of-tree builds from a couple days ago. |
Do you have any privacy extensions? The terminal uses canvas and it's known to be blocked by some extensions because some websites seem to abuse canvas (idk how they do it though) |
No "privacy" extensions. |
Does this occur on the stable build of Chromium too?
AFAIK, WebGPL rendering and then analyzing GPU-specific behaviour. It's wild. |
Why are you using QuickJS and SpiderMonkey has been compiled to WASM for use as a JavaScript runtime in the browser - without using any images. See https://bellard.org/jslinux/ and https://github.com/mozilla-spidermonkey/sm-wasi-demo. Is the idea to send data over the network for this and render images that just look like a terminal and other applications? Just use a |
We don't do this; xtermjs does this.
I understand where you're coming from, because it's just text right? The trouble is, terminal emulators are actually emulating the VT100, and getting consistent behavior across different browsers to emulate this in a textarea would be incredibly difficult, if even possible. I think xtermjs made a good choice using canvas. |
I don't know what to tell you. The live demonstration doesn't work. |
Loads on Firefox Nightly 124. Doesn't load on Chromium 123. |
Unable to reproduce on |
Can you post a screenshot of you writing to the terminal application and DevTools on Chromium 123? |
I got it working launching a new instance without the flags I ordnarily have set. Now I'm going through the flags one by one to see which one makes your application not work.
|
Looks like when The following errors are thrown
|
Good catch! I had a suspicion that third-party "something" would be involved. Although it seems to be in the opposite direction I'd expect; third party partitioning enabled should be more restrictive right? We'll have to investigate this more but this was a huge help, thanks for finding that. |
I dtarted using that flag because something changed in Chromium source code where I was embeddeding an |
It's possible. Multiple ways. Just use the Here is one way to send arbtritrary commands from the browser to Another way, that is specified, is using Native Messaging https://github.com/guest271314/NativeMessagingHosts. |
I could just as well say "just use xtermjs". The textarea input handling is still not trivial, considering:
Although it turns out performance is one of the benefits of using canvas, whereas I just assumed it was more the other things I just mentioned. |
@jelveh this is the culprit (when the flag mentioned before is enabled):
puter.js should wrap every call on |
It should be possible to render a real terminal in the browser. Chrome's Native Client used the I'm skeptical of using images for text and arbitrary data streaming to the browser. However it doesn't look like this is intended to be a real terminal with host read, write, executable capabilities. That's my interest in terminals in the browser. That's what I've been doing using Native Messaging and other means. |
Re
I would suggest substituting using WHATWG File System and using origin private system to write directories and files rather than |
We're not using localStorage for that, Puter's API provides a filesystem powered by our backend technologies. |
I see. I generally block third-party cookies and site data, too, in addition to |
Chrome is getting rid of third party cookies anyhow so we're not relying on them anymore |
As reported by this user.
The text was updated successfully, but these errors were encountered: