Dooble Web Browser
Version 2.1 (2017.11.11)
An elegant, simple, and zero-dependency Web browser. Dooble should be functional on any operating system where Qt 5.9.x is supported.
The source is readily available at https://github.com/textbrowser/dooble/tree/master/2.x.
Dooble supports the accepting and blocking of specific domains. The Accepted / Blocked Domains window allows for the defining of domains which are to be accepted or blocked. Domains are stored in the SQLite database dooble_accepted_or_blocked_domains.db. An operating mode may also be prepared within this window. Supported operating modes are defined below.
Only the specified domains may be accessed either directly or indirectly.
The specified domains are blocked. While in this mode, Dooble will prevent direct and indirect access to the listed domains.
Note: Defined domains reside in a container which is optimized for rapid (amortized O(1)) discovery.
Note: The bundled Data directory contains the file dooble_accepted_blocked_domains.txt. An import feature is included.
The address widget contains the current page’s URL. The present URL may be inserted in the Favorites container.
The current site’s cookies may be accessed via a context menu. The context menu also allows for the removal of the current site’s certificate exception, if one has been previously accepted.
Note: All address widgets share two common history containers resulting in memory reduction and rapid (amortized O(1)) discovery of history items. The containers are required for displaying previously-accessed URLs in address widgets.
Note: Dooble applies the Levenshtein Distance algorithm during the history discovery process.
Note: Private windows record visited links in the internal history containers.
Web sites may raise SSL/TLS certificate errors. Some of these certificate errors may be overridden.
Once overridden, the Web site and the certificate error are recorded in the SQLite database dooble_certificate_exceptions.db.
Overridden sites are presented in the Certificate Exceptions window. Within this window, exceptions may be revoked.
Note: Certificate errors may be raised by third-party requests.
Note: Version 2.00 of Dooble allows for a single certificate exception to be defined for a given URL. Future revisions may allow for multiple exceptions.
The Clear Items modal dialog may be used to remove an assortment of content.
The Cookies window depicts Dooble’s current cookies. The SQLite database dooble_cookies.db contains cookie data.
If set, only the specified domain's cookies are displayed.
If enabled, unchecked domains will be purged every 15 seconds. Purging occurs in the main thread.
Dooble supports the downloading of data. Active and inactive downloads are depicted in the Downloads window. Active downloads may be canceled. Files associated with canceled downloads are discarded. Dooble does not provide a mechanism for restarting a canceled or interrupted download. Downloads data are stored in the SQLite database dooble_downloads.db.
Favorites are replacements of bookmarks. Included in the Favorites non-modal dialog are various sort options. Favorites, along with history items, are stored in the SQLite database dooble_history.db.
Dooble offers a traditional menu bar. The menu bar’s visibility may be configured via the Display panel in the Settings window. If the menu bar is permanently hidden, its visibility may be modified via the F10 key. Some menu options include mnemonics and shortcuts.
The File menu includes several basic functions.
If permanent credentials are defined, this option is enabled. An authentication dialog is displayed if the option is selected. If credentials are correctly authenticated, global containers are populated. Please note that interface components must be populated via the main thread and this activity may burden Dooble.
Open a new private window. Please also read the Private Windows section for details on private browsing.
A new tab is appended to the end of the tab widget.
Open a new window.
Save the current page. The action invokes a download request. A file-selection dialog is not displayed.
Close the current tab. If the current tab is the only Dooble tab and active downloads exist, a confirmation prompt is displayed.
A modal print dialog is displayed.
Not implemented. Permanently disabled.
Exit Dooble. A confirmation prompt is displayed if active downloads exist.
Display an instance of the modal Clear Items dialog.
Remove contents of the local Visited Links file.
Enables the Find panel.
Display the Settings window.
Display the Accepted / Blocked Domains window.
Display the Certificate Exceptions window.
Display the global Cookies window. If the window is a private window, the private window's cookie container is displayed.
Display the Downloads window.
Display the Favorites non-modal dialog.
Display the History window.
Disable or enable full-screen mode.
Hide or show the status bar.
Display the non-modal About dialog.
Display this document in a Dooble tab.
The History window is a general-purpose container depicting Dooble’s browsing history. A simple search is included. Selected items may be removed via a context menu. The SQLite database dooble_history.db contains history data, along with favorites data.
•Accepted / Blocked domains are stored in a container that’s designed for rapid (amortized O(1)) discovery.
•Authentication is interruptible.
•Constant byte-by-byte comparisons are implemented wherever cryptographic digests are involved.
•Cryptographic keys are zeroed on destruction. Sensitive fields are cleared after use. Please note that these processes do not guarantee that sensitive data is destroyed effectively.
•Dooble does not exercise secure memory.
•History items are safely purged within a dedicated thread.
•The AES and Threefish implementations are not designed to be thread-safe.
•The process of preparing credentials may be interrupted.
When browsing in private windows, Dooble does not save the following data:
•Cookies
•Favicons
•History
•Temporary Files
•Visited Links
While in private windows, Dooble does save:
•Downloads
•Favorites
This section describes some of the areas of the Settings window. Settings values are stored in the SQLite database dooble_settings.db.
Some support windows may be pinned. Pinning is the process of embedding support windows within a Dooble window.
A dedicated thread determines if browsing history has expired. The thread is also responsible for removing expired history data. The thread is safely canceled upon termination of Dooble.
Dooble provides a process of storing authentically-encrypted data in various databases. This process is completely optional. Three separate modes are included:
1.Disabled. This is the default mode. In this mode, Dooble stores data in cleartext.
2.Enabled with a password. Dooble shall permanently store data in authentically-encrypted containers using credentials generated via the provided password.
3.Enabled without a password. Dooble shall store private data in authentically-encrypted containers using session credentials. The data will not be available in future sessions.
Additional specifics are listed bellow.
•CBC is the preferred cipher mode of operation.
•SHA3-512 is the favored hash algorithm.
•The password must contain at least 1 character.
•The process is interruptible.
•The pseudo-random password salt is composed of 64 bytes.
Required for HTML5 storage.
The user agent is sometimes used for content negotiation between the client and server. The initial value is system-dependent. To reset, please clear the field and press the Apply button.
Per Qt’s documentation, XSS Auditing monitors load requests for cross-site scripting attempts. Suspicious scripts are blocked.
Note: Dooble does not remove the local WebEnginePersistentStorage directory during a reset. Please remove this directory after a reset completes.
Dooble requires data streams of random data for an assortment of cryptographic algorithms. This section briefly describes the sources of these data streams for various operating systems.
BSD-like systems acquire pseudo-random data from the /dev/random device.
Linux systems acquire pseudo-random data from the /dev/urandom device.
Please read https://msdn.microsoft.com/en-us/library/windows/desktop/aa379942(v=vs.85).aspx.
Dooble supports the FILE, FTP, GOPHER, and HTTP(S) protocols.
Translations are incomplete. Translating Dooble is quite simple. Please download and install Qt from https://download.qt.io, download Dooble’s source, and become an expert in Qt’s Linguist. Linguist documentation exists at https://doc.qt.io/qt-5/qtlinguist-index.html.