ttalvitie/browservice

Mac OS 9 - No Image, Even Address Bar

qrani opened this issue · 13 comments

qrani commented

Been trying to figure this out for a while now. I'm running Mac OS 9.2.2 on my iBook G3, trying to get Browservice (running on Windows) to work. However, when I connect to the server through a browser, it connects, but displays nothing, not even the address bar. It does this with Classilla 9.3.3, Internet Explorer 4.5 (I've also tried 5.0 and 5.5, but those have that issue of looping between pages), Netscape 6.2.1, Netscape 7.0.2, and Opera 6.03. I've tried these arguments:

--chromium-args=use-gl=disabled
--chromium-args=use-gl=egl
--chromium-args=use-gl=angle
--chromium-args=use-gl=swiftshader

As well as some others. I've also tried it on my PowerMac G4, which gives the same issues I've tried running the 32-bit version, which didn't help. I've also tried using directories, connecting to something like:

http://xxx.xxx.xxx.xxx:8080/goto/google.com

Doing this, it still does not display anything. I've also tried doing it on the host (connecting to the server from my Windows computer), which does work. Hell I've even tried connecting them with a different ethernet cable. So based on all of this information:

  • It's not the browser, as I've tried it with many different browsers
  • It's not the computer, as I've tried it with different computers
  • It's not the operating system, based on other posts I've found where people had no issue getting an image running different browsers in Mac OS 9.2.2 and Mac OS 9.2.1
  • It's not the server, since if it was, it wouldn't work connecting from the host

So, why does it not work then? What am I missing? I don't think it's the connection between the machines, as every web browser says it connects, and I've replaced the cable, but still it seems to me like the most likely option.

It seems we are together (#55) in this. Just to rule out any possible connection issues, have you tried running the server with --vice-opt-http-listen-addr=0.0.0.0:8080?

qrani commented

I just tried using a listening address of 0.0.0.0:8080, and it gave a "connection was refused" error

classilla has noscript, did you try enabling scripts globally? that's what fixed this for me

however, even then, there are some remaining issues. see #32 and #33

classilla has noscript, did you try enabling scripts globally? that's what fixed this for me

That does the trick, yes. It's strange that whitelisting the host IP does not work, scripts really must be enabled globally. Thanks for the tip.

yep, i found it strange as well! no problem. now that it seems to work, are you getting an issue with resizing? this is where i'm stuck. was trying to recompile browservice based on what was discussed in #33 but was having trouble

There is indeed this strange issue where the Classilla window can't decide whether or not to include scroll bars, and keeps switching back and forth between both states unpredictably.

ok same here, i'm going to try to test this commit today which apparently should fix the issue, cc @ttalvitie

qrani commented

Tried enabling scripts globally in Classilla, and it does work, but yea, has the resizing issue.

is anyone able to build browservice with the code change i highlighted above and test that it works? i still can't get it working

@luquillito In this case, you only need to rebuild retrojsvice.so/retrojsvice.dll (replacing the library in the binary release package), as it is the only part that the change affects. This should be a bit easier than rebuilding the complete Browservice package as it does not require CEF.

However, for this change, a binary patch may be the easiest solution: just replace
var bodyOverflowHiddenNotSupported = false;
by
var bodyOverflowHiddenNotSupported = true ;
(It is important to keep the length same to avoid breaking the binary; that's why we add an extra space after true.)

Instructions on how to patch:

  • Download the Browservice v0.9.6.4 release package
  • If on Windows:
    • Extract the release package.
    • Open Git Bash/Cygwin in the extracted directory.
    • Run the following commands:
      mv retrojsvice.dll retrojsvice_orig.dll
      sed -b 's/var bodyOverflowHiddenNotSupported = false;/var bodyOverflowHiddenNotSupported = true ;/g' retrojsvice_orig.dll > retrojsvice.dll
      
    • Start browservice.exe in the extracted directory normally.
  • If on Linux:
    • Move the release package to an empty directory.
    • Open terminal in the directory containing the release package.
    • Run the following commands (replacing x86_64 with the correct architecture, if necessary):
      ./browservice-v0.9.6.4-x86_64.AppImage --appimage-extract
      mv squashfs-root/opt/browservice/retrojsvice.so squashfs-root/opt/browservice/retrojsvice_orig.so
      sed -b 's/var bodyOverflowHiddenNotSupported = false;/var bodyOverflowHiddenNotSupported = true ;/g' squashfs-root/opt/browservice/retrojsvice_orig.so > squashfs-root/opt/browservice/retrojsvice.so
      
    • Run Browservice using squashfs-root/AppRun instead of the AppImage:
      squashfs-root/AppRun OPTIONS...
      

Let me know whether this fixes things; if it does, then we could add the fix to the next mainline release.

(And it seems I should really try to improve the instructions and tools for building Browservice so that we wouldn't have to resort to binary patches 😅)

@ttalvitie i can confirm this fixed the issue for me

The resize issue should be fixed in v0.9.6.5.