New Browser 2020 Discussion
#1
New Browser 2020 Discussion
So I've been studying a number of possible solutions for a more recent browser, and I've come up with a few ideas and suggestions.

Before I start, let me explain there's no free lunch with these. We would probably need a community effort/crowd-funded bounty to get someone behind this. 

So IRIX has, moreorless, only a handful of GUI toolkits that are preferred, from most to least:

Motif
FLTK
FOX
EFL
GTK+1
QT3/4
GTK+2

It /is/ possible to port QT5 or GTK3 up to a certain point, but there are other issues. Of these, QT4 and GTK+2 have problems:

1. As I've discussed before, the biggest issue appears to be a lack of support for antialiased text for IRIX. Nekonomicon discussions pointed to Cairo being the cause, but it appears there may be other causes as well. This causes both to not function properly. There are issues with colors sometimes, and the applications are sluggish and painful to use

2. glib has issues on IRIX. In particular, it appears based on some of the issues I've seen that there's no proper support for threading for IRIX. It's also a Linux app, and I've had issues with it on BSDs before. This also partially extends into GTK+1

3. QT uses qmake and the build system is thus a bit esoteric. I've managed to build QT3 before, but 4 and 5 are like trying to break a bolt loose on a car while your junk is in a vise that's slowly closing. 

Presumably, these issues would extend into QT5 and GTK3, as well as cause applications to crash. 

This hampers our ability to provide for the entire echelon of the community, and I would personally not want to leave everyone who doesn't have the most powerful systems in the dust. 

That being said, all is not lost. Here's a few approaches I've brainstormed on and discussed at length, each with their own benefits, drawbacks and more:

1. Amaya

Amaya isn't the most advanced browser in the world, and its age (8 years since last commit) and using of antiquated components like libwww doesn't necessarily make it the best choice, but it does have some benefits:

Mostly complete CSS2/HTML4 rendering specifications.
Written in C, which means it'll be likely faster and more likely to get working on MIPSPro. 
Supports HTTPS, and could be patched to work with a more up-to-date SSL library.
Very permissive license and a well-documented codebase

Drawbacks:

No Javascript support
Uses GTK2 and WxWidgets. Which means the best port would require a rewrite of the UI. 
No HTML5 support
No audio support.

2. Odyssey

I was under the impression for a while this wasn't FOSS, because I couldn't find any repos, but I found their github recently. Odyssey is a descendant of Origyn, a browser for MorphOS. It has multiple frontends, including EFL. Here's the benefits:

Big endian support due to PowerPC ports
Supports HTTPS, and HTML5 video
Permissive license

Drawbacks:

Poor codebase documentation
Just a few minutes of browsing uncovered more than a few GCCisms
A dmedia backend would likely be needed

3. Netsurf

Benefits:

Portability
Multiple frontends

Drawbacks:

Would need a dmedia backend and motif or other frontend made, because it only would be able to use either a "framebuffer" port, or GTK2
No HTML5 support
GPLv2

4. Fifth
An FLTK browser for Linux using a recent port of webkit. 

Benefits: 

FLTK-based
Recent webkit, so presumably good webkit rendering support

Drawbacks:

Linux-only, so no upstream support at all
GCC-isms in code
No dmedia support, and doesn't use an audio shim
GPLv3

There's a lot we can do, but honestly this will require people who are far more clever than me to get around with.

I'm the system admin of this site. Private security technician, licensed locksmith, hack of a c developer and vintage computer enthusiast. 

https://contrib.irixnet.org/raion/ -- contributions and pieces that I'm working on currently. 

https://codeberg.org/SolusRaion -- Code repos I control

Technical problems should be sent my way.
Raion
Chief IRIX Officer

Trade Count: (9)
Posts: 4,240
Threads: 533
Joined: Nov 2017
Location: Eastern Virginia
Website Find Reply
06-15-2020, 11:53 PM
#2
RE: New Browser 2020 Discussion
So I've been spitballing ideas and my friend suggested a crowd fund to hire a developer for a custom browser.

Now, this would probably require in excess of $25,000 USD, and as the IRIX community is too small to make a high mark like that, we'd need a wide appeal, which means such a project would need to fulfill a currently unfilled niche. If we were to do this, we would need a specification that would not only work on multiple platforms, but also be competitive to low end offerings like Dillo or Netsurf.

Shrugging a bit here. I don't know if we can make such a thing happen, but a lot of people seem to want a new browser, and I don't know where we have a sustainable upgrade path. Realistically we can get Firefox 3.6, but that's over 10 years old by this point.

I'm the system admin of this site. Private security technician, licensed locksmith, hack of a c developer and vintage computer enthusiast. 

https://contrib.irixnet.org/raion/ -- contributions and pieces that I'm working on currently. 

https://codeberg.org/SolusRaion -- Code repos I control

Technical problems should be sent my way.
Raion
Chief IRIX Officer

Trade Count: (9)
Posts: 4,240
Threads: 533
Joined: Nov 2017
Location: Eastern Virginia
Website Find Reply
06-23-2020, 07:13 PM
#3
RE: New Browser 2020 Discussion
I wonder if porting an existing fully-fledged browser is the best option. Problem with that is you get a lot of additional baggage that can be very problematic and which can exacerbate the issues. Has anyone looked particularly at the various pitfalls of porting just the underlying rendering engines to IRIX to maybe see which is most feasible? I do wonder if porting a rendering engine then attempting to stick a simple and crude interface on top might be easier than porting a full browser with all its bells whistles and other foibles.

I have seen in the past that with Python 3 and qt, a crude, simple browser can be constructed in a few lines of Python code. Of course, the porting of such packages in the first place is likely a major challenge.

Not saying this is easy by any stretch, and I could be way off the money here, however just curious if this might be a better approach perhaps?

Indigo2 R10000/IMPACT  R10000 195MHz, 384MB RAM, MaxIMPACT (1MB), 36GB 15k & 300GB 10k drives, new/quiet fans, 100Mb G160 NIC, IRIX 6.5.22&
[Image: Fuelb.png] R14000 600MHz, 4GB RAM, V10 Graphics, 72GB 15k & 300GB 10k drives, new/quiet fans, 1Gb NIC, IRIX 6.5.30
O2  in storage...
(This post was last modified: 06-23-2020, 07:35 PM by Trippynet.)
Trippynet
Indigo2 IMPACT

Trade Count: (0)
Posts: 304
Threads: 7
Joined: Dec 2017
Find Reply
06-23-2020, 07:34 PM
#4
RE: New Browser 2020 Discussion
(06-23-2020, 07:34 PM)Trippynet Wrote:  I wonder if porting an existing fully-fledged browser is the best option. Problem with that is you get a lot of additional baggage that can be very problematic and which can exacerbate the issues. Has anyone looked particularly at the various pitfalls of porting just the underlying rendering engines to IRIX to maybe see which is most feasible? I do wonder if porting a rendering engine then attempting to stick a simple and crude interface on top might be easier than porting a full browser with all its bells whistles and other foibles.

We have only three options there:

Gecko, which is increasingly built in Rust. Not even GCC will help there!

Webkit, which would certainly require GCC due to C++11 or higher

Blink, ditto.

The actual "rendering engine" have widget and graphical calls over them. This is why Firefox derivatives use GTK 2 or 3, not QT or Motif or anything. You can't just separate that. Same with webkit and blink.

Additionally, there's a problem of Javascript engines. None of the JS engines, including TenFourFox's, will work out of the box. You'd need to write a JIT from scratch.
(06-23-2020, 07:34 PM)Trippynet Wrote:  I have seen in the past that with Python 3 and qt, a crude, simple browser can be constructed in a few lines of Python code. Of course, the porting of such packages in the first place is likely a major challenge.

Not saying this is easy by any stretch, and I could be way off the money here, however just curious if this might be a better approach perhaps?

In any case, we're going to need to do extensive rewrites to make something work. That's gonna require a full time developer at least to do.

I'm the system admin of this site. Private security technician, licensed locksmith, hack of a c developer and vintage computer enthusiast. 

https://contrib.irixnet.org/raion/ -- contributions and pieces that I'm working on currently. 

https://codeberg.org/SolusRaion -- Code repos I control

Technical problems should be sent my way.
Raion
Chief IRIX Officer

Trade Count: (9)
Posts: 4,240
Threads: 533
Joined: Nov 2017
Location: Eastern Virginia
Website Find Reply
06-23-2020, 11:28 PM
#5
RE: New Browser 2020 Discussion
(06-23-2020, 11:28 PM)Raion Wrote:  In any case, we're going to need to do extensive rewrites to make something work. That's gonna require a full time developer at least to do.

At one time, the idea of creating a newish browser was appealing, but nowadays with half the web neck-deep in crap that requires some shitty feature from the latest browser, seems like a thankless task.

I could see two potential approaches that might be practical :

Build a stripped Fireflop 3.6 (so much crap happening in the background with that thing, removing excess threads has to make it more responsive) and then just ignore sites that require newer "features". Those aren't features, they are garbage, but oh well. That's what much of today's net is. That would limit you to a subset of the web but might be the good subset, so no great loss ?

Use a single-board pci computer and rdp to access any x86 operating system and all its applications onto the Irix desktop. There's got to be one small and light enough to fit into any Octane, O2, Tez, O350 or any of the newish generation.

Option #2 seems like it'd be a lot easier and work better, too.
hamei
broke-down old clunker

Trade Count: (0)
Posts: 380
Threads: 3
Joined: Jul 2019
Location: 上海
Find Reply
06-24-2020, 04:39 AM
#6
RE: New Browser 2020 Discussion
Further thought : So while xfs_repair was running on one of my collection of messed-up disks, I took a refresher course in single-board computers. Wow. LOTS out there that are either low power and small or cheap or fast or whatever you could ask for. There are several that would fit in any SGI ever made, really small.

I've used rdp before to display a fireflop window running on the assistant's computer (don't tell) on my Octane desktop. It worked super. Time to grab a cheap one for a project. And it wouoldn't even have to be an old-style pci-powered device, could be made to fit in, say, a drive slot even on an older box like an Indigo2. Anything that runs 6.5 already has rdp.  You could run a browser that's more powerful than the host in an r4 Indigo Elan Smile

The other thing that is kind of exciting about this is, I could run Windows or Loonix or Mackletosh or even OS/2 programs on the Irix desktop. Angry birds here we come ! What's a hardware virtual machine ? A real machine ? Smile

Off to taobao we go, this should be fun.

Another interesting aspect is, lots of them have wireless. It should be possible to use the sbc as a connection to your wireless network as well .... that could be really handy sometimes.

The bad part is, we'd still be stuck with the garbage browsers that are currently available, but at least we wouldn't have to create a new one.
hamei
broke-down old clunker

Trade Count: (0)
Posts: 380
Threads: 3
Joined: Jul 2019
Location: 上海
Find Reply
06-25-2020, 05:18 AM
#7
RE: New Browser 2020 Discussion
(06-25-2020, 05:18 AM)hamei Wrote:  Further thought : So while xfs_repair was running on one of my collection of messed-up disks, I took a refresher course in single-board computers. Wow. LOTS out there that are either low power and small or cheap or fast or whatever you could ask for. There are several that would fit in any SGI ever made, really small.

I've used rdp before to display a fireflop window running on the assistant's computer (don't tell) on my Octane desktop. It worked super. Time to grab a cheap one for a project. And it wouoldn't even have to be an old-style pci-powered device, could be made to fit in, say, a drive slot even on an older box like an Indigo2. Anything that runs 6.5 already has rdp.  You could run a browser that's more powerful than the host in an r4 Indigo Elan Smile

The other thing that is kind of exciting about this is, I could run Windows or Loonix or Mackletosh or even OS/2 programs on the Irix desktop. Angry birds here we come ! What's a hardware virtual machine ? A real machine ? Smile

Off to taobao we go, this should be fun.

Another interesting aspect is, lots of them have wireless. It should be possible to use the sbc as a connection to your wireless network as well .... that could be really handy sometimes.

The bad part is, we'd still be stuck with the garbage browsers that are currently available, but at least we wouldn't have to create a new one.

I was going to run a raspi3b+ in an Octane drive sled but couldn't find the amperage I needed. Instead it currently sits to one side but acts as a wireless bridge to the SGI's (when they are connected), install server and NFS server. The only thing I don't have resolved yet 100% is rdp, but I haven't really *tried*...

No longer active. Please do not contact me.
(This post was last modified: 06-25-2020, 03:06 PM by Jacques.)
Jacques
Tezro

Trade Count: (0)
Posts: 565
Threads: 53
Joined: May 2018
Location: UK
Find Reply
06-25-2020, 03:06 PM
#8
RE: New Browser 2020 Discussion
I still stuff an ASUS UN62 mini-PC (i5 CPU and 16GB RAM) stuffed in the Octane's PCI cage space.  Fits perfectly.. in fact you could put 2 units in there and get a cluster/VM farm going.  Any other type of smaller device on the market seems to run slow for web browsing and running multiple VMs at the same time.  With VirtualBox running on it, you can rdesktop into a VM's console (VirtualBox runs the RDP server) and have full 3D accel avail to you remotely to run some games, or other apps that need 3D.  DirectX games work over rdesktop this way where they would not if you rdesktop to the Windows VM itself.  At least this way you can run various Windows software... MS office, etc... or even MacOSX all viewed from the same IRIX desktop supporting cut/paste between them all.  

Even on a Modern Mac.. I still run many VMs..  so on SGI hardware.. its the same thing but with hardware assist from a mini-PC.  

   
(This post was last modified: 06-25-2020, 11:13 PM by necron2600.)
necron2600
Octane

Trade Count: (0)
Posts: 127
Threads: 50
Joined: May 2018
Find Reply
06-25-2020, 11:11 PM
#9
RE: New Browser 2020 Discussion
Must admit, I do dream of an add-in card for an SGI which is effectively a modern mini computer (ARM or whatever) and wonder if it would be feasible to use that to render web content with the resulting data being streamed to a simple application on IRIX. Something a bit more targeted and elegant than just RDP of course.

The problems are that it'd require a lot of work to create such a device - as well as the IRIX programming on top, plus pretty much every IRIX machine has a different bus for add-in cards, hence even more work to develop such devices across different SGI machines.

I did work with RDP in the past on my Indigo2 (and submitted a tardist of rdesktop 1.8.3 to nekoware a few years back), but it is still problematic due to later Windows builds not supporting 24 bit colour, so the resulting render looks rather crap in 16bit mode, and still feels sluggish on older SGIs.

A final option is some bespoke work on WebRenderingProxy. This is a tool that uses a modern PC/Mac to render a webpage, before piping an imagemap of that page to the local browser. Theoretically, it allows ancient browsers to display modern (static) pages by rendering an image of them on a modern PC and sending that across with maps to the links, but I could never get it to work properly unfortunately.

Ultimately, web browsing on IRIX using a second machine to do the rendering I do think is likely to be the most feasible solution going forwards, but will still require a lot of work.

Edit: WRP is still being developed it seems, I'll have to try a later version at some point to see how it goes. https://github.com/tenox7/wrp for anyone interested in taking a look...

Indigo2 R10000/IMPACT  R10000 195MHz, 384MB RAM, MaxIMPACT (1MB), 36GB 15k & 300GB 10k drives, new/quiet fans, 100Mb G160 NIC, IRIX 6.5.22&
[Image: Fuelb.png] R14000 600MHz, 4GB RAM, V10 Graphics, 72GB 15k & 300GB 10k drives, new/quiet fans, 1Gb NIC, IRIX 6.5.30
O2  in storage...
(This post was last modified: 06-26-2020, 08:03 PM by Trippynet.)
Trippynet
Indigo2 IMPACT

Trade Count: (0)
Posts: 304
Threads: 7
Joined: Dec 2017
Find Reply
06-26-2020, 08:01 PM
#10
RE: New Browser 2020 Discussion
WRP uses chromium and doesn't work over a network securely. I considered offering an open WRP but it's too insecure.

I'm the system admin of this site. Private security technician, licensed locksmith, hack of a c developer and vintage computer enthusiast. 

https://contrib.irixnet.org/raion/ -- contributions and pieces that I'm working on currently. 

https://codeberg.org/SolusRaion -- Code repos I control

Technical problems should be sent my way.
Raion
Chief IRIX Officer

Trade Count: (9)
Posts: 4,240
Threads: 533
Joined: Nov 2017
Location: Eastern Virginia
Website Find Reply
06-26-2020, 10:09 PM


Forum Jump:


Users browsing this thread: 1 Guest(s)