Bug 186594 - [WPE] Pack inspector resources in a .gresource file instead of a shared library
Summary: [WPE] Pack inspector resources in a .gresource file instead of a shared library
Status: ASSIGNED
Alias: None
Product: WebKit
Classification: Unclassified
Component: WPE WebKit (show other bugs)
Version: Other
Hardware: Unspecified Unspecified
: P2 Normal
Assignee: Adrian Perez
URL:
Keywords:
Depends on: 186588
Blocks:
  Show dependency treegraph
 
Reported: 2018-06-13 09:33 PDT by Adrian Perez
Modified: 2019-01-25 08:56 PST (History)
2 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Adrian Perez 2018-06-13 09:33:14 PDT
For the WPE port the inspector resources are bundled using for loading with
GResource, built into an shared library which contains the bundled data,
and finally loaded on-demand using GModule (which ends up using “dlopen”)
when first needed.

There are no other contents in the shared library, so we could as
well generate a “*.gresource” data file instead (which is a GVDB
file), and load it using “g_resource_load” (instead of using GModule).
There are a few small advantages:

 - Disk space savings. GDVB files are slightly more compact than
   a shared library, and are mmap'd when loaded.

 - Loading the data does not involve the dynamic linker (no need for
   parsing an executable object, resolving symbols, etc.).

 - No intermediate build steps: the XML manifest gets built into the
   .gresource data file directly (compare with the current approach,
   which is: XML manifest → C source → object file → shared library).

While there's nothing particularly important in the list above, it
still would be nicer to use a data file instead of a shared library
for the inspector resources.
Comment 1 Adrian Perez 2018-06-13 09:36:13 PDT
FWIW, the .gresource files being data, I understand the file
would be installed into “${DATADIR}/wpe-webkit-${VERSION}”
instead of “${LIBDIR}/wpe-webkit-${VERSION}” (as currently done).