Load JS from GResource
Since gjs can now load JS from a GResource, compile it in the gnome-shell binary. This should be a bit faster, and make life easier with JHBuild.
This commit is contained in:
parent
9d2791d9f8
commit
1ebb162a00
2
.gitignore
vendored
2
.gitignore
vendored
@ -43,6 +43,8 @@ docs/reference/*/xml/
|
|||||||
docs/reference/shell/doc-gen-*
|
docs/reference/shell/doc-gen-*
|
||||||
gtk-doc.make
|
gtk-doc.make
|
||||||
js/misc/config.js
|
js/misc/config.js
|
||||||
|
js/js-resources.c
|
||||||
|
js/js-resources.h
|
||||||
intltool-extract.in
|
intltool-extract.in
|
||||||
intltool-merge.in
|
intltool-merge.in
|
||||||
intltool-update.in
|
intltool-update.in
|
||||||
|
@ -148,6 +148,9 @@ AC_SUBST(MUTTER_TYPELIB_DIR)
|
|||||||
GJS_CONSOLE=`$PKG_CONFIG --variable=gjs_console gjs-1.0`
|
GJS_CONSOLE=`$PKG_CONFIG --variable=gjs_console gjs-1.0`
|
||||||
AC_SUBST(GJS_CONSOLE)
|
AC_SUBST(GJS_CONSOLE)
|
||||||
|
|
||||||
|
GLIB_COMPILE_RESOURCES=`$PKG_CONFIG --variable glib_compile_resources gio-2.0`
|
||||||
|
AC_SUBST(GLIB_COMPILE_RESOURCES)
|
||||||
|
|
||||||
AC_CHECK_FUNCS(fdwalk)
|
AC_CHECK_FUNCS(fdwalk)
|
||||||
AC_CHECK_FUNCS(mallinfo)
|
AC_CHECK_FUNCS(mallinfo)
|
||||||
AC_CHECK_HEADERS([sys/resource.h])
|
AC_CHECK_HEADERS([sys/resource.h])
|
||||||
|
126
js/Makefile.am
126
js/Makefile.am
@ -1,7 +1,5 @@
|
|||||||
NULL =
|
NULL =
|
||||||
|
BUILT_SOURCES =
|
||||||
EXTRA_DIST = misc/config.js.in
|
|
||||||
CLEANFILES = misc/config.js
|
|
||||||
|
|
||||||
misc/config.js: misc/config.js.in Makefile
|
misc/config.js: misc/config.js.in Makefile
|
||||||
[ -d $(@D) ] || $(mkdir_p) $(@D) ; \
|
[ -d $(@D) ] || $(mkdir_p) $(@D) ; \
|
||||||
@ -14,110 +12,22 @@ misc/config.js: misc/config.js.in Makefile
|
|||||||
-e "s|[@]sysconfdir@|$(sysconfdir)|g" \
|
-e "s|[@]sysconfdir@|$(sysconfdir)|g" \
|
||||||
$< > $@
|
$< > $@
|
||||||
|
|
||||||
jsdir = $(pkgdatadir)/js
|
js_resource_files = $(shell $(GLIB_COMPILE_RESOURCES) --sourcedir=$(srcdir) --generate-dependencies $(srcdir)/js-resources.gresource.xml)
|
||||||
|
js-resources.h: js-resources.gresource.xml $(js_resource_files) misc/config.js
|
||||||
|
$(AM_V_GEN) $(GLIB_COMPILE_RESOURCES) --target=$@ --sourcedir=$(srcdir) --generate --c-name shell_js_resources $<
|
||||||
|
js-resources.c: js-resources.gresource.xml $(js_resource_files) misc/config.js
|
||||||
|
$(AM_V_GEN) $(GLIB_COMPILE_RESOURCES) --target=$@ --sourcedir=$(srcdir) --generate --c-name shell_js_resources $<
|
||||||
|
|
||||||
nobase_dist_js_DATA = \
|
js_built_sources = js-resources.c js-resources.h
|
||||||
gdm/authPrompt.js \
|
|
||||||
gdm/batch.js \
|
BUILT_SOURCES += $(js_built_sources)
|
||||||
gdm/fingerprint.js \
|
|
||||||
gdm/loginDialog.js \
|
all-local: $(js_built_sources)
|
||||||
gdm/oVirt.js \
|
|
||||||
gdm/realmd.js \
|
js_resource_dist_files = $(filter-out misc/config.js, $(js_resource_files))
|
||||||
gdm/util.js \
|
|
||||||
extensionPrefs/main.js \
|
EXTRA_DIST = \
|
||||||
misc/config.js \
|
$(js_resource_dist_files) \
|
||||||
misc/extensionUtils.js \
|
js-resources.gresource.xml \
|
||||||
misc/fileUtils.js \
|
misc/config.js.in \
|
||||||
misc/gnomeSession.js \
|
|
||||||
misc/hash.js \
|
|
||||||
misc/history.js \
|
|
||||||
misc/jsParse.js \
|
|
||||||
misc/loginManager.js \
|
|
||||||
misc/modemManager.js \
|
|
||||||
misc/objectManager.js \
|
|
||||||
misc/params.js \
|
|
||||||
misc/smartcardManager.js \
|
|
||||||
misc/util.js \
|
|
||||||
perf/core.js \
|
|
||||||
ui/altTab.js \
|
|
||||||
ui/animation.js \
|
|
||||||
ui/appDisplay.js \
|
|
||||||
ui/appFavorites.js \
|
|
||||||
ui/backgroundMenu.js \
|
|
||||||
ui/background.js \
|
|
||||||
ui/boxpointer.js \
|
|
||||||
ui/calendar.js \
|
|
||||||
ui/checkBox.js \
|
|
||||||
ui/ctrlAltTab.js \
|
|
||||||
ui/dash.js \
|
|
||||||
ui/dateMenu.js \
|
|
||||||
ui/dnd.js \
|
|
||||||
ui/endSessionDialog.js \
|
|
||||||
ui/extensionSystem.js \
|
|
||||||
ui/extensionDownloader.js \
|
|
||||||
ui/environment.js \
|
|
||||||
ui/focusCaretTracker.js\
|
|
||||||
ui/ibusCandidatePopup.js\
|
|
||||||
ui/grabHelper.js \
|
|
||||||
ui/iconGrid.js \
|
|
||||||
ui/keyboard.js \
|
|
||||||
ui/layout.js \
|
|
||||||
ui/lightbox.js \
|
|
||||||
ui/lookingGlass.js \
|
|
||||||
ui/magnifier.js \
|
|
||||||
ui/magnifierDBus.js \
|
|
||||||
ui/main.js \
|
|
||||||
ui/messageTray.js \
|
|
||||||
ui/modalDialog.js \
|
|
||||||
ui/separator.js \
|
|
||||||
ui/sessionMode.js \
|
|
||||||
ui/shellEntry.js \
|
|
||||||
ui/shellMountOperation.js \
|
|
||||||
ui/slider.js \
|
|
||||||
ui/notificationDaemon.js \
|
|
||||||
ui/osdWindow.js \
|
|
||||||
ui/overview.js \
|
|
||||||
ui/overviewControls.js \
|
|
||||||
ui/panel.js \
|
|
||||||
ui/panelMenu.js \
|
|
||||||
ui/pointerWatcher.js \
|
|
||||||
ui/popupMenu.js \
|
|
||||||
ui/remoteSearch.js \
|
|
||||||
ui/remoteMenu.js \
|
|
||||||
ui/runDialog.js \
|
|
||||||
ui/screencast.js \
|
|
||||||
ui/screenshot.js \
|
|
||||||
ui/screenShield.js \
|
|
||||||
ui/scripting.js \
|
|
||||||
ui/search.js \
|
|
||||||
ui/shellDBus.js \
|
|
||||||
ui/status/accessibility.js \
|
|
||||||
ui/status/brightness.js \
|
|
||||||
ui/status/keyboard.js \
|
|
||||||
ui/status/network.js \
|
|
||||||
ui/status/power.js \
|
|
||||||
ui/status/rfkill.js \
|
|
||||||
ui/status/volume.js \
|
|
||||||
ui/status/bluetooth.js \
|
|
||||||
ui/status/screencast.js \
|
|
||||||
ui/status/system.js \
|
|
||||||
ui/switcherPopup.js \
|
|
||||||
ui/tweener.js \
|
|
||||||
ui/unlockDialog.js \
|
|
||||||
ui/userWidget.js \
|
|
||||||
ui/viewSelector.js \
|
|
||||||
ui/windowAttentionHandler.js \
|
|
||||||
ui/windowManager.js \
|
|
||||||
ui/workspace.js \
|
|
||||||
ui/workspaceThumbnail.js \
|
|
||||||
ui/workspacesView.js \
|
|
||||||
ui/workspaceSwitcherPopup.js \
|
|
||||||
ui/xdndHandler.js \
|
|
||||||
ui/components/__init__.js \
|
|
||||||
ui/components/autorunManager.js \
|
|
||||||
ui/components/automountManager.js \
|
|
||||||
ui/components/networkAgent.js \
|
|
||||||
ui/components/polkitAgent.js \
|
|
||||||
ui/components/telepathyClient.js \
|
|
||||||
ui/components/keyring.js \
|
|
||||||
$(NULL)
|
$(NULL)
|
||||||
|
108
js/js-resources.gresource.xml
Normal file
108
js/js-resources.gresource.xml
Normal file
@ -0,0 +1,108 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<gresources>
|
||||||
|
<gresource prefix="/org/gnome/shell">
|
||||||
|
<file>gdm/authPrompt.js</file>
|
||||||
|
<file>gdm/batch.js</file>
|
||||||
|
<file>gdm/fingerprint.js</file>
|
||||||
|
<file>gdm/loginDialog.js</file>
|
||||||
|
<file>gdm/oVirt.js</file>
|
||||||
|
<file>gdm/realmd.js</file>
|
||||||
|
<file>gdm/util.js</file>
|
||||||
|
<file>extensionPrefs/main.js</file>
|
||||||
|
<file>misc/config.js</file>
|
||||||
|
<file>misc/extensionUtils.js</file>
|
||||||
|
<file>misc/fileUtils.js</file>
|
||||||
|
<file>misc/gnomeSession.js</file>
|
||||||
|
<file>misc/hash.js</file>
|
||||||
|
<file>misc/history.js</file>
|
||||||
|
<file>misc/jsParse.js</file>
|
||||||
|
<file>misc/loginManager.js</file>
|
||||||
|
<file>misc/modemManager.js</file>
|
||||||
|
<file>misc/objectManager.js</file>
|
||||||
|
<file>misc/params.js</file>
|
||||||
|
<file>misc/smartcardManager.js</file>
|
||||||
|
<file>misc/util.js</file>
|
||||||
|
<file>perf/core.js</file>
|
||||||
|
<file>ui/altTab.js</file>
|
||||||
|
<file>ui/animation.js</file>
|
||||||
|
<file>ui/appDisplay.js</file>
|
||||||
|
<file>ui/appFavorites.js</file>
|
||||||
|
<file>ui/backgroundMenu.js</file>
|
||||||
|
<file>ui/background.js</file>
|
||||||
|
<file>ui/boxpointer.js</file>
|
||||||
|
<file>ui/calendar.js</file>
|
||||||
|
<file>ui/checkBox.js</file>
|
||||||
|
<file>ui/ctrlAltTab.js</file>
|
||||||
|
<file>ui/dash.js</file>
|
||||||
|
<file>ui/dateMenu.js</file>
|
||||||
|
<file>ui/dnd.js</file>
|
||||||
|
<file>ui/endSessionDialog.js</file>
|
||||||
|
<file>ui/extensionSystem.js</file>
|
||||||
|
<file>ui/extensionDownloader.js</file>
|
||||||
|
<file>ui/environment.js</file>
|
||||||
|
<file>ui/focusCaretTracker.js</file>
|
||||||
|
<file>ui/ibusCandidatePopup.js</file>
|
||||||
|
<file>ui/grabHelper.js</file>
|
||||||
|
<file>ui/iconGrid.js</file>
|
||||||
|
<file>ui/keyboard.js</file>
|
||||||
|
<file>ui/layout.js</file>
|
||||||
|
<file>ui/lightbox.js</file>
|
||||||
|
<file>ui/lookingGlass.js</file>
|
||||||
|
<file>ui/magnifier.js</file>
|
||||||
|
<file>ui/magnifierDBus.js</file>
|
||||||
|
<file>ui/main.js</file>
|
||||||
|
<file>ui/messageTray.js</file>
|
||||||
|
<file>ui/modalDialog.js</file>
|
||||||
|
<file>ui/separator.js</file>
|
||||||
|
<file>ui/sessionMode.js</file>
|
||||||
|
<file>ui/shellEntry.js</file>
|
||||||
|
<file>ui/shellMountOperation.js</file>
|
||||||
|
<file>ui/slider.js</file>
|
||||||
|
<file>ui/notificationDaemon.js</file>
|
||||||
|
<file>ui/osdWindow.js</file>
|
||||||
|
<file>ui/overview.js</file>
|
||||||
|
<file>ui/overviewControls.js</file>
|
||||||
|
<file>ui/panel.js</file>
|
||||||
|
<file>ui/panelMenu.js</file>
|
||||||
|
<file>ui/pointerWatcher.js</file>
|
||||||
|
<file>ui/popupMenu.js</file>
|
||||||
|
<file>ui/remoteSearch.js</file>
|
||||||
|
<file>ui/remoteMenu.js</file>
|
||||||
|
<file>ui/runDialog.js</file>
|
||||||
|
<file>ui/screencast.js</file>
|
||||||
|
<file>ui/screenshot.js</file>
|
||||||
|
<file>ui/screenShield.js</file>
|
||||||
|
<file>ui/scripting.js</file>
|
||||||
|
<file>ui/search.js</file>
|
||||||
|
<file>ui/shellDBus.js</file>
|
||||||
|
<file>ui/status/accessibility.js</file>
|
||||||
|
<file>ui/status/brightness.js</file>
|
||||||
|
<file>ui/status/keyboard.js</file>
|
||||||
|
<file>ui/status/network.js</file>
|
||||||
|
<file>ui/status/power.js</file>
|
||||||
|
<file>ui/status/rfkill.js</file>
|
||||||
|
<file>ui/status/volume.js</file>
|
||||||
|
<file>ui/status/bluetooth.js</file>
|
||||||
|
<file>ui/status/screencast.js</file>
|
||||||
|
<file>ui/status/system.js</file>
|
||||||
|
<file>ui/switcherPopup.js</file>
|
||||||
|
<file>ui/tweener.js</file>
|
||||||
|
<file>ui/unlockDialog.js</file>
|
||||||
|
<file>ui/userWidget.js</file>
|
||||||
|
<file>ui/viewSelector.js</file>
|
||||||
|
<file>ui/windowAttentionHandler.js</file>
|
||||||
|
<file>ui/windowManager.js</file>
|
||||||
|
<file>ui/workspace.js</file>
|
||||||
|
<file>ui/workspaceThumbnail.js</file>
|
||||||
|
<file>ui/workspacesView.js</file>
|
||||||
|
<file>ui/workspaceSwitcherPopup.js</file>
|
||||||
|
<file>ui/xdndHandler.js</file>
|
||||||
|
<file>ui/components/__init__.js</file>
|
||||||
|
<file>ui/components/autorunManager.js</file>
|
||||||
|
<file>ui/components/automountManager.js</file>
|
||||||
|
<file>ui/components/networkAgent.js</file>
|
||||||
|
<file>ui/components/polkitAgent.js</file>
|
||||||
|
<file>ui/components/telepathyClient.js</file>
|
||||||
|
<file>ui/components/keyring.js</file>
|
||||||
|
</gresource>
|
||||||
|
</gresources>
|
@ -75,8 +75,7 @@ gnome_shell_cflags = \
|
|||||||
-DDATADIR=\"$(datadir)\" \
|
-DDATADIR=\"$(datadir)\" \
|
||||||
-DGNOME_SHELL_LIBEXECDIR=\"$(libexecdir)\" \
|
-DGNOME_SHELL_LIBEXECDIR=\"$(libexecdir)\" \
|
||||||
-DGNOME_SHELL_DATADIR=\"$(pkgdatadir)\" \
|
-DGNOME_SHELL_DATADIR=\"$(pkgdatadir)\" \
|
||||||
-DGNOME_SHELL_PKGLIBDIR=\"$(pkglibdir)\" \
|
-DGNOME_SHELL_PKGLIBDIR=\"$(pkglibdir)\"
|
||||||
-DJSDIR=\"$(pkgdatadir)/js\"
|
|
||||||
|
|
||||||
privlibdir = $(pkglibdir)
|
privlibdir = $(pkglibdir)
|
||||||
privlib_LTLIBRARIES = libgnome-shell-js.la libgnome-shell-menu.la libgnome-shell.la
|
privlib_LTLIBRARIES = libgnome-shell-js.la libgnome-shell-menu.la libgnome-shell.la
|
||||||
@ -171,6 +170,8 @@ libgnome_shell_sources = \
|
|||||||
shell-util.c \
|
shell-util.c \
|
||||||
shell-window-tracker.c \
|
shell-window-tracker.c \
|
||||||
shell-wm.c \
|
shell-wm.c \
|
||||||
|
../js/js-resources.c \
|
||||||
|
../js/js-resources.h \
|
||||||
$(NULL)
|
$(NULL)
|
||||||
|
|
||||||
libgnome_shell_la_SOURCES = $(libgnome_shell_sources)
|
libgnome_shell_la_SOURCES = $(libgnome_shell_sources)
|
||||||
@ -207,7 +208,7 @@ endif HAVE_MUTTER_WAYLAND
|
|||||||
|
|
||||||
libgnome_shell_js_la_SOURCES = \
|
libgnome_shell_js_la_SOURCES = \
|
||||||
shell-js.h \
|
shell-js.h \
|
||||||
shell-js.cpp \
|
shell-js.cpp \
|
||||||
$(NULL)
|
$(NULL)
|
||||||
|
|
||||||
libgnome_shell_js_la_LIBADD = \
|
libgnome_shell_js_la_LIBADD = \
|
||||||
|
@ -283,9 +283,16 @@ shell_global_init (ShellGlobal *global)
|
|||||||
NULL);
|
NULL);
|
||||||
ca_context_open (global->sound_context);
|
ca_context_open (global->sound_context);
|
||||||
|
|
||||||
if (!shell_js)
|
if (shell_js)
|
||||||
shell_js = JSDIR;
|
{
|
||||||
search_path = g_strsplit (shell_js, ":", -1);
|
search_path = g_strsplit (shell_js, ":", -1);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
search_path = g_malloc0 (2 * sizeof (char *));
|
||||||
|
search_path[0] = g_strdup ("resource:///org/gnome/shell");
|
||||||
|
}
|
||||||
|
|
||||||
global->js_context = g_object_new (GJS_TYPE_CONTEXT,
|
global->js_context = g_object_new (GJS_TYPE_CONTEXT,
|
||||||
"search-path", search_path,
|
"search-path", search_path,
|
||||||
"js-version", "1.8",
|
"js-version", "1.8",
|
||||||
|
Loading…
Reference in New Issue
Block a user