Re: Dillo Win32 Thoughts

"Benjamin Johnson" <[email protected]>
Newsgroups gmane.comp.web.dillo.devel
Message-ID <op.v3g98kajwkf1rx@boinggloing>
Hmm, looks like I picked the wrong week to unsubscribe... (it's been a  
busy semester so I'm trying to cut back on distractions and inbox clutter)

Roger wrote:
> I had the pleasure of trying out Dillo win32 and I must say I like it.   
> (Itstarts a heck of alot faster then that bloated green lizard thing ...  
> sorry,the name doesn't come to mind right now. ;-)
>Only one or two things.
>1) When I first installed it. I was completely stumped as to how to use  
> thebookmarks.  I was trying to add a bookmark without going to the  
> actual sitefirst.  One thing that could really eleviate all this, is by  
> setting a fewpreset default bookmarks (ie. www.google.com, and other  
> favorite searchengines.)  Notice, there's no "add bookmark" within the  
> menu and you have tohave the insight to right click on the displayed  
> page to get this menu.)

Thanks for the suggestion -- I'll add some presets in the next release.

One small correction: there *is* an "add bookmark" option, but it's  
labeled "Bookmark this page" for consistency with the right-click menu.   
You can also press Ctrl-D to get it, like in Firefox or Opera.

I based my bookmarks interface on Opera's, since that's what I'm  
personally most familiar with (I think Firefox's is similar).  So it makes  
sense to me, but it's probably a bit of a change from mainline Dillo's.   
I'll have to see what other users think so I know if I need to tweak it.

> 2) Copy & paste work only within the displayed page and not within the  
> urlfield.  (Although I really miss middle button pasting in Windows.)

The keyboard shortcuts (Ctrl-C and Ctrl-V, respectively) should work for  
both the page and URL field.

Windows doesn't support X's select-and-middle-click mechanism.  I agree  
that it would be really nice to have -- that and a decent terminal  
emulator like aterm would make my life so much nicer.

> 3) One thing I really dislike about Windows, there's no main package  
> managerlike the Linux distributions for updating all of your other win32  
> open sourcepackages.  Think most packages & drivers have been all  
> implementing their ownupdate check routine within their Help menus,  
> etc.  Now, they just have to getthe idea of updating their own packages,  
> such as Adobe Reader.

That would be nice too, although I'm not a fan of the Linux distribution  
system where you're depending on the distribution maintainers rather than  
the individual package developers to provide updates.  Of course, that all  
goes back to the lack of proper binary compatibility on the platform,  
which is a completely different story altogether.

> Dillo win32, installs within a few seconds or so.  Dillo starts within a  
> fewseconds too.  Dillo win32 is functional as well.

Glad you like it!

Georg wrote:
> what I like about the Win32 version is the fact that it compiles to one 
> standalone executable file. No dpi is used.
>
> Georg

I rather like that, too ;-)

Stephan wrote:
> Hello,
>I just gave Dillo another try on Cygwin/X11 and got it working at
> least partially with cygwin 1.7.9.
>You need to compile FLTK using Cygwin libraries and X11:
> ./configure --enable-cygwin --enable-x11 && make install
>Because the dpis are installed with ".exe" extension (eg
> hello.dpi.exe) they aren't found by dpid. The extension is added by
> automake: http://www.gnu.org/s/hello/manual/automake/EXEEXT.html
> The Makefiles look like this: bookmarks_PROGRAMS = bookmarks.dpi$(EXEEXT)
>I don't know how to break automake of doing this for the dpis only, so
> I modified dpid to use .exe-extension on cygwin (see attached patch).

You can't get rid of the ".exe" extension, because Windows relies on the  
extension to identify executable files (rather than file permissions, like  
on Unix).

> After starting the XServer (/usr/bin/XWin -multiwindow) you can run
> Dillo. Plain browsing with http using proxy and the bookmark & cookie
> dpis does work. The other dpi currently fail.
>- hello-dpi shows the dialog and without pressing any button the
> resultpage (Answer received: Window was closed). After pressing Yes
> dpid logs "ERROR: [a_Capi_dpi_send_data] No open connection found"
> - vsource just crashes
> - file, ftp and https can't connect:
> Dpi_get_server_port: can't read server port from dpid.
> ** ERROR **: dpi.c: can't start dpi daemon
>Looks like the socket implementation of cygwin still has some quirks
> which can maybe tracked down.

First of all, I'll just say from my own experience: sockets on Windows are  
a mess.

The main problem is socket and file handles aren't interchangeable on  
Windows, so you can't e.g. dup2() stdio handles to a socket.  DPI relies  
heavily on that trick, which is the main technical reason there's no  
native DPI on Windows.

As I understand it, Cygwin implements a bunch of clever tricks to emulate  
the Unix sockets behavior, but they're quirky at best because of technical  
differences in the underlying system design.

> Is there any interest to support this target on a source code basis?
>Thanks and Greets,
> Stephan

 From what I've seen, the Dillo developers aren't interested in Windows at  
all, via Cygwin or otherwise.  Of course, I don't want to put words into  
their mouths; Cygwin will probably require less extensive patching than a  
native port like mine, so you may have better luck than I have.

I will say I'm personally not a fan of Cygwin, since it negates all the  
advantages Dillo provides: speed, efficiency, small size, easy  
installation.  A native port like Dillo-Win32 doesn't involve any of  
Cygwin's complexity or overhead, so it's much more useful to the vast  
majority of Windows users.

Side note: I'm working on a patch to provide native DPI on Windows.  So  
far it compiles, but it's not functional yet, and it's *extremely* ugly  
code.  Email me if you want a copy.

Georg wrote:
> I suggest to implement a configure option that causes the dpi functions  
> tobe linked with the main dillo code. The dpic then needs to be adapted  
> tocall these functions directly instead of forking a new process. This  
> wouldgreatly simplify porting Dillo to other platforms.
>I guess the Dillo developers have already done this for their  
> development sothey can step through the entire code with GDB.
>Georg

It's not quite as simple to do as you've described, but that's essentially  
what I've done with Dillo-Win32: move all the DPI functionality into the  
browser.

Some of it, like HTTPS support and the downloader, is new code, but a lot  
of it is straight copy-and-paste -- for example, cookies, and the  
bookmarks backend (but not the user interface).

I've also introduced some new features like a sockets abstraction layer  
that greatly help Dillo's portability.  Dillo-Win32's a bad name for my  
project, because it's not _only_ for Windows, but since that was my  
original target the name stuck.

I'd like to get my code into mainline (that was my goal from the start),  
but it requires extensive changes to Dillo's inner workings, and the DPI  
thing has been a bit of an issue.  I'm not absolutely opposed to it, but I  
think the current implementation is deeply flawed, and I don't believe in  
implementing required functionality through an extension mechanism since  
required functionality is by definition not an extension.

Anyway, sorry for the _obscenely_ long email, but I hope this covers  
everything. :-)  Thanks again for all the feedback, suggestions,  
discussions, distractions, etc.

Cheers,
~Benjamin
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.