Skip to content

Commit

Permalink
MEGA MERGE with dilloNG-Dillo3.1X: added support for floats, internal…
Browse files Browse the repository at this point in the history
… HTTPS protocol handler, more modern CSS and many other things
  • Loading branch information
crossbower committed Mar 11, 2023
1 parent de39a88 commit cbbfa3b
Show file tree
Hide file tree
Showing 281 changed files with 59,648 additions and 6,519 deletions.
41 changes: 41 additions & 0 deletions ChangeLog
Expand Up @@ -6,6 +6,47 @@ Here we list changes that are relatively significant and/or visible to the
user. For a history of changes in full detail, see our Mercurial repository
at http://hg.dillo.org/dillo


dillo-3.1 [not released yet]

+- Floating elements.
- Redesign of widget sizes ("GROWS").
- Applied CSS attribute 'width' to all elements, 'height' is now also
supported.
- Suport for 'min-width', 'max-width', 'min-height' and 'max-height'.
- Suport for 'display: inline-block'.
- <BUTTON>'s are now inline.
- Image aspect ratio is preserved when one dimension is specified by a
percentage value.
- New dillorc options 'adjust_min_width' and 'adjust_table_min_width'.
- Make building of test/ files more robust.
- Work on collapsing spaces: more cases supported.
- Fix crash that's possible searching for text while page still being built.
Patches: Sebastian Geerken
+- HTML5 character references.
- Give images lower priority when requesting resources (responsiveness).
- Reuse of connections for HTTP (disable w/ http_persistent_conns in dillorc).
- Abort failed queries.
- HTTP Strict Transport Security (disable with http_strict_transport_security
preference in dillorc).
- Fix bug when closing popup using window manager (bug introduced in 3.0.3).
- Block mixed content.
- Improve cookies date recognition.
- use mbed TLS ( https://tls.mbed.org/ )
- Iterate through the IP addrs for a host when trying to connect().
Patches: corvid
+- Doxygen fixes.
Patch: Jeremy Henty
+- Move HTTPS from dpi into the browser, enable SNI, check more locations for
CA bundles and add --with-ca-certs-file and --with-ca-certs-dir to
configure, some improvement to security warning popups, etc.
Patch: corvid, Benjamin Johnson
+- Fix bookmarks DPI crash.
- Fix OSX compilation issue with xembed.
Patches: Johannes Hofmann

-----------------------------------------------------------------------------

dillo-3.0.5 [June 30, 2015]

+- Image buffer/cache improvements.
Expand Down
2,661 changes: 1,756 additions & 905 deletions Doxyfile

Large diffs are not rendered by default.

6 changes: 6 additions & 0 deletions Makefile.options
Expand Up @@ -27,11 +27,17 @@ LIBFLTK_CXXFLAGS = $(LIBFLTK_CFLAGS) -fvisibility-inlines-hidden
LIBFLTK_LDFLAGS = $(LDFLAGS) -Wl,-rpath,/usr/local/lib -L/usr/X11R6/lib -lfltk -lXcursor -lXfixes -lXext -lXft -lfontconfig -lXinerama -lpthread -lm -lX11 -lXdmcp -lXau

HTTPS_LDFLAGS = -lcrypto -lssl
MBED_TLS_LDFLAGS = -lmbedtls -lmbedx509 -lmbedcrypto

LIBPNG16_CXXFLAGS = -I/usr/local/include/libpng16

DILLO_LDFLAGS = -ljpeg -L/usr/local/lib -lpng -L/usr/local/lib -Wl,-rpath,/usr/local/lib -L/usr/X11R6/lib -lfltk -lXcursor -lXfixes -lXext -lXft -lfontconfig -lXinerama -lpthread -lm -lX11 -lXdmcp -lXau -lz -liconv -lX11

# == HTTPS CERTS ==

CA_CERTS_FILE = /etc/ssl/cert.pem
CA_CERTS_DIR = /etc/ssl/

# == INSTALL PATHS ==

PREFIX = /usr/local
Expand Down
4 changes: 2 additions & 2 deletions README
Expand Up @@ -27,8 +27,8 @@ dillorc.
Here's a list of some old well-known problems of dillo:

* no FRAMES rendering
* no https (there's a barebones prototype, enable it with:
./configure --enable-ssl ).
* https code not yet fully trusted
(enable it with: ./configure --enable-ssl ).


--------
Expand Down
62 changes: 62 additions & 0 deletions README.md
@@ -0,0 +1,62 @@
# Overview
[![screenshot](https://raw.githubusercontent.com/w00fpack/dilloNG/main/screenshots/main.jpg)](https://raw.githubusercontent.com/w00fpack/dilloNG/main/screenshots/main.jpg)

Dillo is a lightweight (about 10MB) Linux web browser that does not use Javascript.. This DilloNG is a port of the official Dillo that is located at https://www.dillo.org. It holds new concepts that will hopefully make it into the official releases. This repository will also help with CI/CD automation.

Lightweight browsers, such as Dillo, are beneficial for loading websites quickly. Also, lightweight web browsers can work on older hardware where common browser would take up too many resources, that could freeze up your computer.

Because javascript is not used, extra bloat is not needed to be downloaded. If you have a slow internet connection, a web page that might have taken 3MB to download might only be 400kB with DilloNG.

Finally, your online experience can be more secure with DilloNG. Not only does it not use Javascript, rules can also be defined per website domain. These rules can block connecting to certain domains, block ads and trackers, and require sites to use encryption.

Note that not websites will work correctly without Javascript, so be forewarned.

# Browser Features

Here is a screenshot of the Speed Dial page. DilloNG also comes with an extensive list of bookmarks that showcase some websites that work without Javascript.
[![screenshot](https://raw.githubusercontent.com/w00fpack/dilloNG/main/screenshots/speeddial.jpg)](https://raw.githubusercontent.com/w00fpack/dilloNG/main/screenshots/speeddial.jpg)

DilloNG does not play media, such as audio and video, in the browser. Instead you can run media using your preferred desktop media player. The benefit is that playback will usually be more streamlined, without jitter. Your media player might also have options, such as video caching of live streams, recording, streaming and downconverting.
[![screenshot](https://raw.githubusercontent.com/w00fpack/dilloNG/main/screenshots/media_playing.png)](https://raw.githubusercontent.com/w00fpack/dilloNG/main/media_playing.png))

# Installation

## Pre-built Releases

Please check under releases

## Requirements

Please see https://www.dillo.org for requirement details.
*FLTK 1.3
* mbedtls

### Optional
* wget - for downloads

## INSTALLATION AND COMPILING

There is an INSTALL file in this repository that might be of value. You can also visit https://www.dillo.org for installation details details.

./autogen.sh
./configure --prefix=/usr --sysconfdir=/etc --enable-ssl --with-ca-certs-dir=/etc/ssl/certs
make
make install

# Quickstart

1. Obtain a release for your OS distribution, or compile Dillo from this repository's source code
2. Install the application, and Click on the "DilloNG" menu option.
3. Browse the internet the way you normally would

# Contributing

If you can use Mercurial, you can use the official code repository at htps://dillo.org. If you would like to use this GIT repository to submit code changes, please open pull requests against [the GitHub repository](https://github.com/w00fpack/dilloNG/edit/master/README.md). Patches submitted in issues, email, or elsewhere will likely be ignored. Here's some general guidelines when submitting PRs:

* In your pull request, please:
* Describe the changes, why they were necessary, etc
* Describe how the changes affect existing behaviour
* Describe how you tested and validated your changes
* Include any relevant screenshots/evidence demonstrating that the changes work and have been tested

[wiki]: https://github.com/w00fpack/dilloNG/wiki
6 changes: 3 additions & 3 deletions config.h
Expand Up @@ -74,7 +74,7 @@
#define PACKAGE_NAME "dillo"

/* Define to the full name and version of this package. */
#define PACKAGE_STRING "dillo 3.0.5"
#define PACKAGE_STRING "dillo 3.2.0"

/* Define to the one symbol short name of this package. */
#define PACKAGE_TARNAME "dillo"
Expand All @@ -83,7 +83,7 @@
#define PACKAGE_URL ""

/* Define to the version of this package. */
#define PACKAGE_VERSION "3.0.5"
#define PACKAGE_VERSION "3.2.0"

/* The size of `char', as computed by sizeof. */
#define SIZEOF_CHAR 1
Expand All @@ -104,7 +104,7 @@
#define STDC_HEADERS 1

/* Version number of package */
#define VERSION "3.0.5"
#define VERSION "3.2.0"

/* Define for Solaris 2.5.1 so the uint32_t typedef from <sys/synch.h>,
<pthread.h>, or <semaphore.h> is not used. If the typedef were allowed, the
Expand Down
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
3 changes: 3 additions & 0 deletions doc/Images.txt → devdoc/Images.txt
@@ -1,5 +1,8 @@
January 2009, --Jcid

Update June 2015: See also doc/dw-images-and-backgrounds.doc, or
../html/dw-images-and-backgrounds.html (generated by doxygen).

------
IMAGES
------
Expand Down
File renamed without changes.
51 changes: 51 additions & 0 deletions devdoc/README
@@ -0,0 +1,51 @@
README: Last update Jul 2009

These documents cover dillo's internals.
For user help, see http://www.dillo.org/dillo3-help.html

--------------------------------------------------------------------------

These documents need a review.
*.txt were current with Dillo1, but many have since become more or
less out-of-date.
*.doc are doxygen source for the Dillo Widget (dw) component, and
were written for Dillo2.

They will give you an overview of what's going on, but take them
with a pinch of salt.

Of course I'd like to have *.txt as doxygen files too!
If somebody wants to make this conversion, please let me know
to assign higher priority to updating these docs.

--
Jorge.-

--------------------------------------------------------------------------
FILE DESCRIPTION STATE
--------------------------------------------------------------------------
NC_design.txt Naming&Coding design (Be sure to Current
read it before any other doc)
Dillo.txt General overview of the program Current
IO.txt Extensive introduction Current
Cache.txt Informative description Current
Images.txt Image handling and processing Current
HtmlParser.txt A versatile parser Current
Dw.txt The New Dillo Widget (Overview) Current
Imgbuf.txt Image buffers Pending
Selection.txt Selections, and link activation Current (?)
Cookies.txt Explains how to enable cookies Current
Dpid.txt Dillo plugin daemon Current
--------------------------------------------------------------------------


* BTW, there's a small program (srch) within the src/ dir. It searches
tokens within the whole code (*.[ch]). It has proven very useful.
Ex: ./srch a_Image_write
./srch todo:

* Please submit your patches with 'hg diff'.


Happy coding!
--Jcid
File renamed without changes.
Binary file added devdoc/dw-example-screenshot.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
63 changes: 63 additions & 0 deletions devdoc/dw-fixed-positions.doc
@@ -0,0 +1,63 @@
/** \page dw-fixed-positions Fixed positions

In some cases, widgets or widget content must be positioned relative
to the viewport. As in the CSS specification, these positions will be
called "fixed positions". This must not be confused with "fixedly
positioned elements" (see \ref dw-out-of-flow), which are a special
case of fixed positions.


Applications
============

As defined by CSS
-----------------

- "position: fixed"; see \ref dw-out-of-flow.
- "background-attachment: fixed"; see \ref dw-images-and-backgrounds.

Idea for tables
---------------

Often, tables have a header, which contains informations necessary to
interpret the columns in the table body. For this, HTML defines the elements
&lt;thead&gt; and &lt;tbody&gt;
<sup><a href="#note-table-footer" id="ref-table-footer">[1]</a></sup>.

For large tables, the problem occurs that the table header gets out of
the reader's view. In paged media, where a large table covers multiple
pages, this is often solved by *repeating* the table header on each
page occupied by the table. When using a viewport, a table larger than
the vieport could be displayed like this:

1. If the top of the table is within the viewport, show the table
header at the usual position.
2. As soon as top of the table gets above the top border of the
viewport, keep the table header at the viewport top, so that it is
still visible (this means, it moves down, relative to the
*canvas*). This way, the header is still visible, so our objective
is achieved.
3. When scrolling further down, at some point the table body gets out
of the viewport again, and so should the table header.

(Some images would be nice.)

These ideas should be considered when developing a design for fixed
positions.


Design sketch
==============

[...]


----------------------------------------------------------------------

<sup><a href="#ref-table-footer" id="note-table-footer">[1]</a></sup>
... and also &lt;tfoot&gt;, which is not discussed here, for reasons
of simplicity. However, it is obvious that &lt;tfoot&gt; should be
dealt with in an analogue way as &lt;thead&gt;.


*/
Binary file added devdoc/dw-floats-01.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

0 comments on commit cbbfa3b

Please sign in to comment.