summaryrefslogtreecommitdiff
path: root/src/gmutil.h
AgeCommit message (Collapse)Author
2021-12-27Reserved characters in URLsJaakko Keränen
Making URL encoding a little less convoluted. Now when sending out a request, the URL is fully encoded except for reserved characters. In the internal representation, non-ASCII characters are in decoded form (i.e., IRI). This means that if the user enters a URL in the input field manually, its non-ASCII characters will be percent encoded as well. However, in this case the user is expected to manually escape all reserved characters because the input field can't tell the difference between what is intended to be a reserved separator and what isn't. For example, a server might expect &-separated fields, and if the user enters such fields manually in the URL field, they shouldn't be converted to %26. When forming a query URL in the input dialog, user-entered text is fully percent-encoded because in that case the input is just a generic text string. IssueID #410
2021-12-15macOS: Newlines in native menusJaakko Keränen
Other formatting besides line breaks is ignored for now, although attributed strings could be used here.
2021-12-07Document-specific palettesJaakko Keränen
Manage a color palette separately for each GmDocument, and activate one of them globally whenever a document is being drawn. Palettes are cached in memory.
2021-10-25Document presentation warningsJaakko Keränen
Warn the user about missing glyphs and potentially unsupported ANSI escapes. TODO: Site-specific setting for dismissed warning; fonts preference about missing glyph warnings.
2021-10-01Feeds: Don't forget entries or their unread statusJaakko Keränen
Three important changes: 1) Visited URLs can be marked as "kept" so they will never be discarded due to old age. 2) Feed entries are not discarded from the database until they are removed from the source, and then become too old (six months). 3) Visited feed entry URLs are always flagged as kept, so the (un)read status will not be forgotten.
2021-08-20Added WebP decoding using libwebpJaakko Keränen
2021-07-16Allow override for certificate expiryJaakko Keränen
The user is able to ignore certificate expiry and continue loading the page regardless. This adds a one hour exception to the expiration date.
2021-07-16Improved TOFU implementationJaakko Keränen
If a server sends a different certificate (checked by matching public key fingerprints), abort the connection at the TLS handshake stage. A new error page is shown explaining the situation. A button is provided for conveniently opening Page Information, where trust can be updated. The file format of "visited.txt" was updated, so it is now called "visited.2.txt". The new format includes server port numbers, and the fingerprints are calculated based on public keys. IssueID #308 IssueID #309 IssueID #310
2021-07-13GmCerts: Make the server port knownJaakko Keränen
2021-06-30Canonical URIsJaakko Keränen
Internally, all URIs should be converted to a canonical form so that they can be compared against each other. The canonical form is an IRI with spaces and reserved characters percent-encoded.
2021-05-21Added -u,--url-or-search command line optionJaakko Keränen
Opening an URL or making a search query from the command line. IssueID #232
2021-05-05Gempub: Split to show index and first chapterJaakko Keränen
When opening a Gempub, split the window and show the index page and the first chapter.
2021-05-02Added a Gempub helperJaakko Keränen
`Gempub` opens and parses a Gempub archive and provides access to the contents in a common way.
2021-04-24Gempub cover page; cleanupJaakko Keränen
Use MIME hooks to generate a Gempub cover page with a preloaded cover image. This required applying MIME filtering to "file://" requests as well. Todo: More cleanup, add a gempub.c.
2021-03-14Punycode domains when setting trustJaakko Keränen
2021-02-24Bookmarks: Looking up site iconsJaakko Keränen
Bookmark icons apply to site roots instead of domains. A root includes the user directory if one is found in the URL.
2021-02-23"Go to Root" respects user names in URLJaakko Keränen
The behavior of navigating to root should match what is displayed in the top banner.
2021-02-16Search engine queries via the navbarJaakko Keränen
Any text that doesn't look like a URL is passed onto the configured search URL as a query string. IssueID #157
2021-02-02Stripping the URL fragmentJaakko Keränen
Lagrange will retain URL fragments when parsing gemtext, but will strip them when making requests or when a DocumentWidget's URL is set. This allows opening URLs with fragments in an external browser. IssueID #128
2021-01-18Fixed opening heading feed entries in a tabJaakko Keränen
The heading goto fragment wasn't being stripped appropriately from the URLs.
2021-01-12Fixed: Percent-encode spaces when copyingJaakko Keränen
IssueID #112
2021-01-12Feeds: Strip default Gemini ports from URLsJaakko Keränen
2020-12-28SidebarWidget: Opening feed entries in new tabJaakko Keränen
2020-12-12Added option to show URL paths as encoded or decodedJaakko Keränen
IssueID #73
2020-12-11GmRequest: Punycode for domain namesJaakko Keränen
To support Internationalized Domain Names, we need to encode domain names using Punycode. IssueID #73
2020-12-10Feeds: Show entries in lookup resultsJaakko Keränen
2020-11-07Treat Gopher as an unsupported protocolJaakko Keränen
2020-11-06Automatic redirects to the same schemeJaakko Keränen
IssueID #16
2020-11-04Windows: Improvements to file URL/path handlingJaakko Keränen
IssueID #23
2020-10-27Added a network/TLS error pageJaakko Keränen
There is now an error page shown when the TLS request fails for some reason. Error page theming is also updated at the time when the error page is composed.
2020-10-08Helper for checking a successful status codeJaakko Keränen
2020-08-30Maximum number of redirectsJaakko Keränen
Stop opening links automatically after five redirects.
2020-08-30DocumentWidget: Check for non-Gemini redirectsJaakko Keränen
2020-08-25It's called a "scheme"Jaakko Keränen
2020-08-22Added BSD 2-clause license and copyright noticesJaakko Keränen
2020-08-15Don’t cache content of “about:” pagesJaakko Keränen
2020-08-08Handling "about:home"; GmRequest decouplingJaakko Keränen
GmRequest is given a pointer to the GmCerts to use. Also, timeouts are handled via a posted command so they get processed in the main thread.
2020-08-04Remember scroll positions on visited pagesJaakko Keränen
2020-08-03Server certificate TOFUJaakko Keränen
2020-08-03Working on server certificatesJaakko Keränen
2020-07-29Utility for making absolute URLsJaakko Keränen
2020-07-25Encode spaces in URLsJaakko Keränen
2020-07-24Added GmRequest for handling the requestJaakko Keränen
This feels a little bit too complex, with GmRequest observing TlsRequest and then notifying its own audience. There are still some issues with cancelling requests as well.