<feed xmlns='http://www.w3.org/2005/Atom'>
<title>atril/backend, branch libgepub-support</title>
<subtitle>MATE document viewer</subtitle>
<link rel='alternate' type='text/html' href='http://git.mate-desktop.org/atril/'/>
<entry>
<title>epub: Expose GepubDoc handle via EvDocument virtual method</title>
<updated>2026-06-09T16:38:12+00:00</updated>
<author>
<name>Victor Kareh</name>
<email>vkareh@redhat.com</email>
</author>
<published>2026-06-05T16:49:47+00:00</published>
<link rel='alternate' type='text/html' href='http://git.mate-desktop.org/atril/commit/?id=f7fec97c96e49e573bd7b8c301b0f4ed3954ba5d'/>
<id>f7fec97c96e49e573bd7b8c301b0f4ed3954ba5d</id>
<content type='text'>
Add a get_doc_handle virtual method to EvDocumentClass so the view layer
can obtain the underlying GepubDoc without depending on backend types
directly. This prepares for replacing EvWebView with GepubWidget which
needs the GepubDoc to render content.

Assisted-by: OpenCode:claude-opus-4-6
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Add a get_doc_handle virtual method to EvDocumentClass so the view layer
can obtain the underlying GepubDoc without depending on backend types
directly. This prepares for replacing EvWebView with GepubWidget which
needs the GepubDoc to render content.

Assisted-by: OpenCode:claude-opus-4-6
</pre>
</div>
</content>
</entry>
<entry>
<title>epub: Remove dead code and unused virtual methods</title>
<updated>2026-06-09T16:38:12+00:00</updated>
<author>
<name>Victor Kareh</name>
<email>vkareh@redhat.com</email>
</author>
<published>2026-05-14T19:26:23+00:00</published>
<link rel='alternate' type='text/html' href='http://git.mate-desktop.org/atril/commit/?id=7ee1b635fa7ee2fe50dc6ea9c203daf0ad3819a3'/>
<id>7ee1b635fa7ee2fe50dc6ea9c203daf0ad3819a3</id>
<content type='text'>
Remove the bundled minizip directory, unused includes, and the night
mode virtual methods from EvDocumentClass which are no longer called by
any code. Night mode is now handled entirely through WebKit user
stylesheets.

Assisted-by: OpenCode:claude-opus-4-6
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Remove the bundled minizip directory, unused includes, and the night
mode virtual methods from EvDocumentClass which are no longer called by
any code. Night mode is now handled entirely through WebKit user
stylesheets.

Assisted-by: OpenCode:claude-opus-4-6
</pre>
</div>
</content>
</entry>
<entry>
<title>epub: Pre-compute page paths and disable find interface</title>
<updated>2026-06-09T16:38:12+00:00</updated>
<author>
<name>Victor Kareh</name>
<email>vkareh@redhat.com</email>
</author>
<published>2026-05-14T19:15:14+00:00</published>
<link rel='alternate' type='text/html' href='http://git.mate-desktop.org/atril/commit/?id=63828db6e427c64e9fc968f9bc5c4f4e26306914'/>
<id>63828db6e427c64e9fc968f9bc5c4f4e26306914</id>
<content type='text'>
Pre-compute all page URI paths at load time so get_page is thread-safe
and does not mutate GepubDoc state. Remove the EvDocumentFind interface
because the threaded find job is incompatible with the single-threaded
GepubDoc and WebKit. EPUB search will be reimplemented using WebKit's
native find controller in a future commit.

Assisted-by: OpenCode:claude-opus-4-6
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Pre-compute all page URI paths at load time so get_page is thread-safe
and does not mutate GepubDoc state. Remove the EvDocumentFind interface
because the threaded find job is incompatible with the single-threaded
GepubDoc and WebKit. EPUB search will be reimplemented using WebKit's
native find controller in a future commit.

Assisted-by: OpenCode:claude-opus-4-6
</pre>
</div>
</content>
</entry>
<entry>
<title>epub: Implement night mode using WebKit user stylesheets</title>
<updated>2026-06-09T16:38:12+00:00</updated>
<author>
<name>Victor Kareh</name>
<email>vkareh@redhat.com</email>
</author>
<published>2026-05-14T18:56:22+00:00</published>
<link rel='alternate' type='text/html' href='http://git.mate-desktop.org/atril/commit/?id=3557de01f62eb9b57db7a42c0101905c9c989efd'/>
<id>3557de01f62eb9b57db7a42c0101905c9c989efd</id>
<content type='text'>
Replace the old approach of modifying extracted HTML files on disk with
a WebKitUserStyleSheet injected via the WebKitUserContentManager. This
is cleaner and works with the new libgepub backend which no longer
extracts files to a temporary directory.

Assisted-by: OpenCode:claude-opus-4-6
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Replace the old approach of modifying extracted HTML files on disk with
a WebKitUserStyleSheet injected via the WebKitUserContentManager. This
is cleaner and works with the new libgepub backend which no longer
extracts files to a temporary directory.

Assisted-by: OpenCode:claude-opus-4-6
</pre>
</div>
</content>
</entry>
<entry>
<title>epub: Replace backend internals with libgepub</title>
<updated>2026-06-09T16:38:12+00:00</updated>
<author>
<name>Victor Kareh</name>
<email>vkareh@redhat.com</email>
</author>
<published>2026-05-14T18:49:59+00:00</published>
<link rel='alternate' type='text/html' href='http://git.mate-desktop.org/atril/commit/?id=d6a01f8611cf9bac65b856065906c5c1358f9e7d'/>
<id>d6a01f8611cf9bac65b856065906c5c1358f9e7d</id>
<content type='text'>
Replace the hand-rolled EPUB parsing with libgepub. This removes the
bundled minizip library, custom XML utilities, and temporary directory
extraction in favor of GepubDoc which handles archive access, metadata,
spine navigation, and table of contents. An epub:// URI scheme handler
serves resources directly from the archive without extracting to disk.
Search and night mode are stubbed as no-ops pending follow-up commits.

Assisted-by: OpenCode:claude-opus-4-6
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Replace the hand-rolled EPUB parsing with libgepub. This removes the
bundled minizip library, custom XML utilities, and temporary directory
extraction in favor of GepubDoc which handles archive access, metadata,
spine navigation, and table of contents. An epub:// URI scheme handler
serves resources directly from the archive without extracting to disk.
Search and night mode are stubbed as no-ops pending follow-up commits.

Assisted-by: OpenCode:claude-opus-4-6
</pre>
</div>
</content>
</entry>
<entry>
<title>epub: Add libgepub-0.7 build dependency</title>
<updated>2026-06-08T16:09:44+00:00</updated>
<author>
<name>Victor Kareh</name>
<email>vkareh@redhat.com</email>
</author>
<published>2026-05-14T18:16:44+00:00</published>
<link rel='alternate' type='text/html' href='http://git.mate-desktop.org/atril/commit/?id=bedd5f88456901cefd7e1d50b18c798205bb6897'/>
<id>bedd5f88456901cefd7e1d50b18c798205bb6897</id>
<content type='text'>
Add libgepub as a required dependency for the EPUB backend in both meson
and autotools build systems. No source code changes yet, but this
prepares for replacing the hand-rolled EPUB parsing with libgepub.

Assisted-by: OpenCode:claude-opus-4-6
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Add libgepub as a required dependency for the EPUB backend in both meson
and autotools build systems. No source code changes yet, but this
prepares for replacing the hand-rolled EPUB parsing with libgepub.

Assisted-by: OpenCode:claude-opus-4-6
</pre>
</div>
</content>
</entry>
<entry>
<title>epub: add NULL guards to prevent crashes with malformed EPUBs</title>
<updated>2026-06-06T20:23:48+00:00</updated>
<author>
<name>Victor Kareh</name>
<email>vkareh@redhat.com</email>
</author>
<published>2026-06-05T13:55:53+00:00</published>
<link rel='alternate' type='text/html' href='http://git.mate-desktop.org/atril/commit/?id=9230de5a705068411d9ad4ffdba9b5e2d073ac35'/>
<id>9230de5a705068411d9ad4ffdba9b5e2d073ac35</id>
<content type='text'>
EPUB files with missing or incomplete metadata (like no title or missing
navigation elements) can cause NULL pointer dereferences in the XML
parsing functions. This adds NULL checks to xml_parse_children_of_node,
get_child_list, and the TOC text parsing loop.

Fixes #707
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
EPUB files with missing or incomplete metadata (like no title or missing
navigation elements) can cause NULL pointer dereferences in the XML
parsing functions. This adds NULL checks to xml_parse_children_of_node,
get_child_list, and the TOC text parsing loop.

Fixes #707
</pre>
</div>
</content>
</entry>
<entry>
<title>build: Distribute meson build files when using autotools</title>
<updated>2026-06-02T21:29:02+00:00</updated>
<author>
<name>Victor Kareh</name>
<email>vkareh@redhat.com</email>
</author>
<published>2026-06-01T16:44:49+00:00</published>
<link rel='alternate' type='text/html' href='http://git.mate-desktop.org/atril/commit/?id=352d46785736b28bc65311d17a9f5033afe65b00'/>
<id>352d46785736b28bc65311d17a9f5033afe65b00</id>
<content type='text'>
Fixes #673

Backported from https://gitlab.gnome.org/GNOME/evince/-/commit/021428c9
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Fixes #673

Backported from https://gitlab.gnome.org/GNOME/evince/-/commit/021428c9
</pre>
</div>
</content>
</entry>
<entry>
<title>epub: validate epub content before parsing</title>
<updated>2026-06-02T20:29:59+00:00</updated>
<author>
<name>Victor Kareh</name>
<email>vkareh@redhat.com</email>
</author>
<published>2026-05-29T17:40:47+00:00</published>
<link rel='alternate' type='text/html' href='http://git.mate-desktop.org/atril/commit/?id=054035a7eab8282a6b9e79ca25ec8a4d226ef6b8'/>
<id>054035a7eab8282a6b9e79ca25ec8a4d226ef6b8</id>
<content type='text'>
Check that the content file exists before attempting to parse it, and
handle failures in document title extraction gracefully.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Check that the content file exists before attempting to parse it, and
handle failures in document title extraction gracefully.
</pre>
</div>
</content>
</entry>
<entry>
<title>epub: use g_strndup for parsing document path</title>
<updated>2026-06-02T20:29:59+00:00</updated>
<author>
<name>Victor Kareh</name>
<email>vkareh@redhat.com</email>
</author>
<published>2026-05-29T17:04:41+00:00</published>
<link rel='alternate' type='text/html' href='http://git.mate-desktop.org/atril/commit/?id=f50db4bff9acd01dfc87eccc1c452a0ee54ba89e'/>
<id>f50db4bff9acd01dfc87eccc1c452a0ee54ba89e</id>
<content type='text'>
Replace manual byte-by-byte copy loop with g_strndup when extracting the
directory component from the epub container's full-path attribute.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Replace manual byte-by-byte copy loop with g_strndup when extracting the
directory component from the epub container's full-path attribute.
</pre>
</div>
</content>
</entry>
</feed>
