From 1c4e4537a01ae2c8acbfba0ded42aee3a3def96f Mon Sep 17 00:00:00 2001 From: Dustin Falgout Date: Thu, 29 Sep 2016 02:52:24 -0500 Subject: [PATCH] moving theme heartbeat into the greeter. --- data/greeter-resources.gresource.xml | 15 + data/greeter-style.gresource.xml | 6 - data/heartbeat.js | 70 ++++ data/{greeter-style.css => style.css} | 0 src/greeter.c | 12 +- src/gresource/greeter-resources.c | 501 ++++++++++++++++++++++++++ src/gresource/greeter-resources.h | 7 + src/gresource/greeter-style-css.c | 201 ----------- src/gresource/greeter-style-css.h | 7 - src/gresource/meson.build | 2 +- src/meson.build | 5 +- src/webkit2-extension.c | 2 +- themes/antergos/js/greeter.js | 39 +- 13 files changed, 603 insertions(+), 264 deletions(-) create mode 100644 data/greeter-resources.gresource.xml delete mode 100644 data/greeter-style.gresource.xml create mode 100644 data/heartbeat.js rename data/{greeter-style.css => style.css} (100%) create mode 100644 src/gresource/greeter-resources.c create mode 100644 src/gresource/greeter-resources.h delete mode 100644 src/gresource/greeter-style-css.c delete mode 100644 src/gresource/greeter-style-css.h diff --git a/data/greeter-resources.gresource.xml b/data/greeter-resources.gresource.xml new file mode 100644 index 0000000..1541290 --- /dev/null +++ b/data/greeter-resources.gresource.xml @@ -0,0 +1,15 @@ + + + + style.css + + + heartbeat.js + + + + + diff --git a/data/greeter-style.gresource.xml b/data/greeter-style.gresource.xml deleted file mode 100644 index 8b2e3a6..0000000 --- a/data/greeter-style.gresource.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - greeter-style.css - - diff --git a/data/heartbeat.js b/data/heartbeat.js new file mode 100644 index 0000000..f690a90 --- /dev/null +++ b/data/heartbeat.js @@ -0,0 +1,70 @@ +/* + * heartbeat.js + * + * Copyright © 2016 Antergos Developers + * + * This file is part of lightdm-webkit2-greeter. + * + * lightdm-webkit2-greeter is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * lightdm-webkit2-greeter is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * The following additional terms are in effect as per Section 7 of the license: + * + * The preservation of all legal notices and author attributions in + * the material or in the Appropriate Legal Notices displayed + * by works containing it is required. + * + * You should have received a copy of the GNU General Public License + * along with lightdm-webkit2-greeter; If not, see . + */ + + +/** + * Singleton class for the greeter theme heartbeat. Once instantiated, the instance will + * begin sending a heartbeat message to the greeter every 5 seconds. Upon receiving the first + * heartbeat message, the greeter will schedule checks to ensure that subsequent heartbeat + * messages are received. If a heartbeat message is not received by the time any of the greeter's + * subsequent checks run, it will assume that there has been an error in the theme's script + * execution and fall back to the simple theme. + */ +class LightDMGreeterHeartbeat { + + constructor() { + if ( '_heartbeat' in window ) { + return _heartbeat; + } + + window._heartbeat = this; + + this.initialize_theme_heartbeat(); + } + + initialize_theme_heartbeat() { + let heartbeats = 0; + + if ( '' !== this.heartbeat ) { + console.log( 'Heartbeat has already been initialized!' ); + return; + } + + this.log('Initializing theme heartbeat.'); + + this.heartbeat = setInterval(() => { + ++heartbeats; + window.webkit.messageHandlers.GreeterBridge.postMessage('Heartbeat'); + if ( heartbeats < 5 ) { + console.log('Sending heartbeat...'); + } + }, 5000); + } +} + + +window.LightDMGreeterHeartbeat = LightDMGreeterHeartbeat; diff --git a/data/greeter-style.css b/data/style.css similarity index 100% rename from data/greeter-style.css rename to data/style.css diff --git a/src/greeter.c b/src/greeter.c index 8bd60b2..48df32f 100644 --- a/src/greeter.c +++ b/src/greeter.c @@ -1,5 +1,5 @@ /* - * lightdm-webkit2-greeter.c + * greeter.c * * Copyright © 2014-2016 Antergos Developers * @@ -48,7 +48,7 @@ #include -#include "gresource/greeter-style-css.h" +#include "gresource/greeter-resources.h" static GtkWidget *web_view; static GtkWidget *window; @@ -277,7 +277,7 @@ main(int argc, char **argv) { WebKitWebContext *context; GtkCssProvider *css_provider; WebKitCookieManager *cookie_manager; - GResource *css_resource; + GResource *greeter_resources; /* Prevent memory from being swapped out, since we see unencrypted passwords. */ mlockall (MCL_CURRENT | MCL_FUTURE); @@ -323,11 +323,11 @@ main(int argc, char **argv) { /* Setup CSS provider. We use CSS to set the window background to black instead * of default white so the screen doesnt flash during startup. */ - css_resource = greeter_css_get_resource(); + greeter_resources = greeter_resources_get_resource(); css_provider = gtk_css_provider_new(); - g_resources_register(css_resource); - gtk_css_provider_load_from_resource(css_provider, "/com/antergos/lightdm-webkit2-greeter"); + g_resources_register(greeter_resources); + gtk_css_provider_load_from_resource(css_provider, "/com/antergos/lightdm-webkit2-greeter/css"); gtk_style_context_add_provider_for_screen( screen, GTK_STYLE_PROVIDER(css_provider), diff --git a/src/gresource/greeter-resources.c b/src/gresource/greeter-resources.c new file mode 100644 index 0000000..23116e0 --- /dev/null +++ b/src/gresource/greeter-resources.c @@ -0,0 +1,501 @@ +#include + +#if defined (__ELF__) && ( __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 6)) +# define SECTION __attribute__ ((section (".gresource.greeter_resources"), aligned (8))) +#else +# define SECTION +#endif + +static const SECTION union { const guint8 data[2708]; const double alignment; void * const ptr;} greeter_resources_resource_data = { { + 0x47, 0x56, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x18, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x28, 0x08, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, + 0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, + 0x78, 0x4c, 0xe7, 0x14, 0x06, 0x00, 0x00, 0x00, + 0x00, 0x01, 0x00, 0x00, 0x03, 0x00, 0x4c, 0x00, + 0x04, 0x01, 0x00, 0x00, 0x08, 0x01, 0x00, 0x00, + 0xc2, 0xaf, 0x89, 0x0b, 0x03, 0x00, 0x00, 0x00, + 0x08, 0x01, 0x00, 0x00, 0x04, 0x00, 0x4c, 0x00, + 0x0c, 0x01, 0x00, 0x00, 0x10, 0x01, 0x00, 0x00, + 0x73, 0xf8, 0xf6, 0x72, 0x00, 0x00, 0x00, 0x00, + 0x10, 0x01, 0x00, 0x00, 0x0c, 0x00, 0x76, 0x00, + 0x20, 0x01, 0x00, 0x00, 0x0b, 0x0a, 0x00, 0x00, + 0xd4, 0xb5, 0x02, 0x00, 0xff, 0xff, 0xff, 0xff, + 0x0b, 0x0a, 0x00, 0x00, 0x01, 0x00, 0x4c, 0x00, + 0x0c, 0x0a, 0x00, 0x00, 0x10, 0x0a, 0x00, 0x00, + 0x8c, 0x77, 0x10, 0x71, 0x07, 0x00, 0x00, 0x00, + 0x10, 0x0a, 0x00, 0x00, 0x09, 0x00, 0x76, 0x00, + 0x20, 0x0a, 0x00, 0x00, 0x5c, 0x0a, 0x00, 0x00, + 0xb4, 0xae, 0x96, 0xdb, 0x01, 0x00, 0x00, 0x00, + 0x5c, 0x0a, 0x00, 0x00, 0x09, 0x00, 0x4c, 0x00, + 0x68, 0x0a, 0x00, 0x00, 0x6c, 0x0a, 0x00, 0x00, + 0x0c, 0xa6, 0xd8, 0x48, 0x05, 0x00, 0x00, 0x00, + 0x6c, 0x0a, 0x00, 0x00, 0x18, 0x00, 0x4c, 0x00, + 0x84, 0x0a, 0x00, 0x00, 0x8c, 0x0a, 0x00, 0x00, + 0xc4, 0x0d, 0xcd, 0xb1, 0x06, 0x00, 0x00, 0x00, + 0x8c, 0x0a, 0x00, 0x00, 0x04, 0x00, 0x4c, 0x00, + 0x90, 0x0a, 0x00, 0x00, 0x94, 0x0a, 0x00, 0x00, + 0x6a, 0x73, 0x2f, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x63, 0x6f, 0x6d, 0x2f, 0x05, 0x00, 0x00, 0x00, + 0x68, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, + 0x74, 0x2e, 0x6a, 0x73, 0x00, 0x00, 0x00, 0x00, + 0xdb, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x2f, 0x2a, 0x0a, 0x20, 0x2a, 0x20, 0x68, 0x65, + 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x2e, + 0x6a, 0x73, 0x0a, 0x20, 0x2a, 0x0a, 0x20, 0x2a, + 0x20, 0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, + 0x68, 0x74, 0x20, 0xc2, 0xa9, 0x20, 0x32, 0x30, + 0x31, 0x36, 0x20, 0x41, 0x6e, 0x74, 0x65, 0x72, + 0x67, 0x6f, 0x73, 0x20, 0x44, 0x65, 0x76, 0x65, + 0x6c, 0x6f, 0x70, 0x65, 0x72, 0x73, 0x20, 0x3c, + 0x64, 0x65, 0x76, 0x40, 0x61, 0x6e, 0x74, 0x65, + 0x72, 0x67, 0x6f, 0x73, 0x2e, 0x63, 0x6f, 0x6d, + 0x3e, 0x0a, 0x20, 0x2a, 0x0a, 0x20, 0x2a, 0x20, + 0x54, 0x68, 0x69, 0x73, 0x20, 0x66, 0x69, 0x6c, + 0x65, 0x20, 0x69, 0x73, 0x20, 0x70, 0x61, 0x72, + 0x74, 0x20, 0x6f, 0x66, 0x20, 0x6c, 0x69, 0x67, + 0x68, 0x74, 0x64, 0x6d, 0x2d, 0x77, 0x65, 0x62, + 0x6b, 0x69, 0x74, 0x32, 0x2d, 0x67, 0x72, 0x65, + 0x65, 0x74, 0x65, 0x72, 0x2e, 0x0a, 0x20, 0x2a, + 0x0a, 0x20, 0x2a, 0x20, 0x6c, 0x69, 0x67, 0x68, + 0x74, 0x64, 0x6d, 0x2d, 0x77, 0x65, 0x62, 0x6b, + 0x69, 0x74, 0x32, 0x2d, 0x67, 0x72, 0x65, 0x65, + 0x74, 0x65, 0x72, 0x20, 0x69, 0x73, 0x20, 0x66, + 0x72, 0x65, 0x65, 0x20, 0x73, 0x6f, 0x66, 0x74, + 0x77, 0x61, 0x72, 0x65, 0x3b, 0x20, 0x79, 0x6f, + 0x75, 0x20, 0x63, 0x61, 0x6e, 0x20, 0x72, 0x65, + 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, + 0x74, 0x65, 0x20, 0x69, 0x74, 0x20, 0x61, 0x6e, + 0x64, 0x2f, 0x6f, 0x72, 0x20, 0x6d, 0x6f, 0x64, + 0x69, 0x66, 0x79, 0x0a, 0x20, 0x2a, 0x20, 0x69, + 0x74, 0x20, 0x75, 0x6e, 0x64, 0x65, 0x72, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x74, 0x65, 0x72, 0x6d, + 0x73, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x47, 0x4e, 0x55, 0x20, 0x47, 0x65, 0x6e, + 0x65, 0x72, 0x61, 0x6c, 0x20, 0x50, 0x75, 0x62, + 0x6c, 0x69, 0x63, 0x20, 0x4c, 0x69, 0x63, 0x65, + 0x6e, 0x73, 0x65, 0x20, 0x61, 0x73, 0x20, 0x70, + 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x64, + 0x20, 0x62, 0x79, 0x0a, 0x20, 0x2a, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x46, 0x72, 0x65, 0x65, 0x20, + 0x53, 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, + 0x20, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x3b, 0x20, 0x65, 0x69, 0x74, + 0x68, 0x65, 0x72, 0x20, 0x76, 0x65, 0x72, 0x73, + 0x69, 0x6f, 0x6e, 0x20, 0x33, 0x20, 0x6f, 0x66, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x4c, 0x69, 0x63, + 0x65, 0x6e, 0x73, 0x65, 0x2c, 0x20, 0x6f, 0x72, + 0x0a, 0x20, 0x2a, 0x20, 0x28, 0x61, 0x74, 0x20, + 0x79, 0x6f, 0x75, 0x72, 0x20, 0x6f, 0x70, 0x74, + 0x69, 0x6f, 0x6e, 0x29, 0x20, 0x61, 0x6e, 0x79, + 0x20, 0x6c, 0x61, 0x74, 0x65, 0x72, 0x20, 0x76, + 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x0a, + 0x20, 0x2a, 0x0a, 0x20, 0x2a, 0x20, 0x6c, 0x69, + 0x67, 0x68, 0x74, 0x64, 0x6d, 0x2d, 0x77, 0x65, + 0x62, 0x6b, 0x69, 0x74, 0x32, 0x2d, 0x67, 0x72, + 0x65, 0x65, 0x74, 0x65, 0x72, 0x20, 0x69, 0x73, + 0x20, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, + 0x75, 0x74, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x68, 0x6f, 0x70, 0x65, + 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x69, 0x74, + 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, + 0x20, 0x75, 0x73, 0x65, 0x66, 0x75, 0x6c, 0x2c, + 0x0a, 0x20, 0x2a, 0x20, 0x62, 0x75, 0x74, 0x20, + 0x57, 0x49, 0x54, 0x48, 0x4f, 0x55, 0x54, 0x20, + 0x41, 0x4e, 0x59, 0x20, 0x57, 0x41, 0x52, 0x52, + 0x41, 0x4e, 0x54, 0x59, 0x3b, 0x20, 0x77, 0x69, + 0x74, 0x68, 0x6f, 0x75, 0x74, 0x20, 0x65, 0x76, + 0x65, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x69, + 0x6d, 0x70, 0x6c, 0x69, 0x65, 0x64, 0x20, 0x77, + 0x61, 0x72, 0x72, 0x61, 0x6e, 0x74, 0x79, 0x20, + 0x6f, 0x66, 0x0a, 0x20, 0x2a, 0x20, 0x4d, 0x45, + 0x52, 0x43, 0x48, 0x41, 0x4e, 0x54, 0x41, 0x42, + 0x49, 0x4c, 0x49, 0x54, 0x59, 0x20, 0x6f, 0x72, + 0x20, 0x46, 0x49, 0x54, 0x4e, 0x45, 0x53, 0x53, + 0x20, 0x46, 0x4f, 0x52, 0x20, 0x41, 0x20, 0x50, + 0x41, 0x52, 0x54, 0x49, 0x43, 0x55, 0x4c, 0x41, + 0x52, 0x20, 0x50, 0x55, 0x52, 0x50, 0x4f, 0x53, + 0x45, 0x2e, 0x20, 0x53, 0x65, 0x65, 0x20, 0x74, + 0x68, 0x65, 0x0a, 0x20, 0x2a, 0x20, 0x47, 0x4e, + 0x55, 0x20, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, + 0x6c, 0x20, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, + 0x20, 0x4c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, + 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6d, 0x6f, 0x72, + 0x65, 0x20, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, + 0x73, 0x2e, 0x0a, 0x20, 0x2a, 0x0a, 0x20, 0x2a, + 0x20, 0x54, 0x68, 0x65, 0x20, 0x66, 0x6f, 0x6c, + 0x6c, 0x6f, 0x77, 0x69, 0x6e, 0x67, 0x20, 0x61, + 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, + 0x6c, 0x20, 0x74, 0x65, 0x72, 0x6d, 0x73, 0x20, + 0x61, 0x72, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x65, + 0x66, 0x66, 0x65, 0x63, 0x74, 0x20, 0x61, 0x73, + 0x20, 0x70, 0x65, 0x72, 0x20, 0x53, 0x65, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x37, 0x20, 0x6f, + 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6c, 0x69, + 0x63, 0x65, 0x6e, 0x73, 0x65, 0x3a, 0x0a, 0x20, + 0x2a, 0x0a, 0x20, 0x2a, 0x20, 0x54, 0x68, 0x65, + 0x20, 0x70, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, + 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x6c, 0x65, 0x67, + 0x61, 0x6c, 0x20, 0x6e, 0x6f, 0x74, 0x69, 0x63, + 0x65, 0x73, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x61, + 0x75, 0x74, 0x68, 0x6f, 0x72, 0x20, 0x61, 0x74, + 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x20, 0x69, 0x6e, 0x0a, 0x20, 0x2a, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x74, + 0x65, 0x72, 0x69, 0x61, 0x6c, 0x20, 0x6f, 0x72, + 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x41, 0x70, 0x70, 0x72, 0x6f, 0x70, 0x72, 0x69, + 0x61, 0x74, 0x65, 0x20, 0x4c, 0x65, 0x67, 0x61, + 0x6c, 0x20, 0x4e, 0x6f, 0x74, 0x69, 0x63, 0x65, + 0x73, 0x20, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, + 0x79, 0x65, 0x64, 0x0a, 0x20, 0x2a, 0x20, 0x62, + 0x79, 0x20, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x20, + 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x69, + 0x6e, 0x67, 0x20, 0x69, 0x74, 0x20, 0x69, 0x73, + 0x20, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, + 0x64, 0x2e, 0x0a, 0x20, 0x2a, 0x0a, 0x20, 0x2a, + 0x20, 0x59, 0x6f, 0x75, 0x20, 0x73, 0x68, 0x6f, + 0x75, 0x6c, 0x64, 0x20, 0x68, 0x61, 0x76, 0x65, + 0x20, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, + 0x64, 0x20, 0x61, 0x20, 0x63, 0x6f, 0x70, 0x79, + 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x47, 0x4e, 0x55, 0x20, 0x47, 0x65, 0x6e, 0x65, + 0x72, 0x61, 0x6c, 0x20, 0x50, 0x75, 0x62, 0x6c, + 0x69, 0x63, 0x20, 0x4c, 0x69, 0x63, 0x65, 0x6e, + 0x73, 0x65, 0x0a, 0x20, 0x2a, 0x20, 0x61, 0x6c, + 0x6f, 0x6e, 0x67, 0x20, 0x77, 0x69, 0x74, 0x68, + 0x20, 0x6c, 0x69, 0x67, 0x68, 0x74, 0x64, 0x6d, + 0x2d, 0x77, 0x65, 0x62, 0x6b, 0x69, 0x74, 0x32, + 0x2d, 0x67, 0x72, 0x65, 0x65, 0x74, 0x65, 0x72, + 0x3b, 0x20, 0x49, 0x66, 0x20, 0x6e, 0x6f, 0x74, + 0x2c, 0x20, 0x73, 0x65, 0x65, 0x20, 0x3c, 0x68, + 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x77, 0x77, + 0x77, 0x2e, 0x67, 0x6e, 0x75, 0x2e, 0x6f, 0x72, + 0x67, 0x2f, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, + 0x65, 0x73, 0x2f, 0x3e, 0x2e, 0x0a, 0x20, 0x2a, + 0x2f, 0x0a, 0x0a, 0x0a, 0x2f, 0x2a, 0x2a, 0x0a, + 0x20, 0x2a, 0x20, 0x53, 0x69, 0x6e, 0x67, 0x6c, + 0x65, 0x74, 0x6f, 0x6e, 0x20, 0x63, 0x6c, 0x61, + 0x73, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x67, 0x72, 0x65, 0x65, 0x74, + 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x6d, 0x65, + 0x20, 0x68, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, + 0x61, 0x74, 0x2e, 0x20, 0x4f, 0x6e, 0x63, 0x65, + 0x20, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, + 0x69, 0x61, 0x74, 0x65, 0x64, 0x2c, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x69, 0x6e, 0x73, 0x74, 0x61, + 0x6e, 0x63, 0x65, 0x20, 0x77, 0x69, 0x6c, 0x6c, + 0x0a, 0x20, 0x2a, 0x20, 0x62, 0x65, 0x67, 0x69, + 0x6e, 0x20, 0x73, 0x65, 0x6e, 0x64, 0x69, 0x6e, + 0x67, 0x20, 0x61, 0x20, 0x68, 0x65, 0x61, 0x72, + 0x74, 0x62, 0x65, 0x61, 0x74, 0x20, 0x6d, 0x65, + 0x73, 0x73, 0x61, 0x67, 0x65, 0x20, 0x74, 0x6f, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, 0x72, 0x65, + 0x65, 0x74, 0x65, 0x72, 0x20, 0x65, 0x76, 0x65, + 0x72, 0x79, 0x20, 0x35, 0x20, 0x73, 0x65, 0x63, + 0x6f, 0x6e, 0x64, 0x73, 0x2e, 0x20, 0x55, 0x70, + 0x6f, 0x6e, 0x20, 0x72, 0x65, 0x63, 0x65, 0x69, + 0x76, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x66, 0x69, 0x72, 0x73, 0x74, 0x0a, 0x20, + 0x2a, 0x20, 0x68, 0x65, 0x61, 0x72, 0x74, 0x62, + 0x65, 0x61, 0x74, 0x20, 0x6d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x2c, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x67, 0x72, 0x65, 0x65, 0x74, 0x65, 0x72, + 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x73, 0x63, + 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x20, 0x63, + 0x68, 0x65, 0x63, 0x6b, 0x73, 0x20, 0x74, 0x6f, + 0x20, 0x65, 0x6e, 0x73, 0x75, 0x72, 0x65, 0x20, + 0x74, 0x68, 0x61, 0x74, 0x20, 0x73, 0x75, 0x62, + 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x74, 0x20, + 0x68, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, + 0x74, 0x0a, 0x20, 0x2a, 0x20, 0x6d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x73, 0x20, 0x61, 0x72, + 0x65, 0x20, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, + 0x65, 0x64, 0x2e, 0x20, 0x49, 0x66, 0x20, 0x61, + 0x20, 0x68, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, + 0x61, 0x74, 0x20, 0x6d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x20, 0x69, 0x73, 0x20, 0x6e, 0x6f, + 0x74, 0x20, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, + 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x74, 0x69, 0x6d, 0x65, 0x20, 0x61, + 0x6e, 0x79, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x67, 0x72, 0x65, 0x65, 0x74, 0x65, + 0x72, 0x27, 0x73, 0x0a, 0x20, 0x2a, 0x20, 0x73, + 0x75, 0x62, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, + 0x74, 0x20, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, + 0x20, 0x72, 0x75, 0x6e, 0x2c, 0x20, 0x69, 0x74, + 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x61, 0x73, + 0x73, 0x75, 0x6d, 0x65, 0x20, 0x74, 0x68, 0x61, + 0x74, 0x20, 0x74, 0x68, 0x65, 0x72, 0x65, 0x20, + 0x68, 0x61, 0x73, 0x20, 0x62, 0x65, 0x65, 0x6e, + 0x20, 0x61, 0x6e, 0x20, 0x65, 0x72, 0x72, 0x6f, + 0x72, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x74, 0x68, 0x65, 0x6d, 0x65, 0x27, 0x73, + 0x20, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x0a, + 0x20, 0x2a, 0x20, 0x65, 0x78, 0x65, 0x63, 0x75, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x61, 0x6e, 0x64, + 0x20, 0x66, 0x61, 0x6c, 0x6c, 0x20, 0x62, 0x61, + 0x63, 0x6b, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x73, 0x69, 0x6d, 0x70, 0x6c, 0x65, + 0x20, 0x74, 0x68, 0x65, 0x6d, 0x65, 0x2e, 0x0a, + 0x20, 0x2a, 0x2f, 0x0a, 0x63, 0x6c, 0x61, 0x73, + 0x73, 0x20, 0x4c, 0x69, 0x67, 0x68, 0x74, 0x44, + 0x4d, 0x47, 0x72, 0x65, 0x65, 0x74, 0x65, 0x72, + 0x48, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, + 0x74, 0x20, 0x7b, 0x0a, 0x0a, 0x09, 0x63, 0x6f, + 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x6f, + 0x72, 0x28, 0x29, 0x20, 0x7b, 0x0a, 0x09, 0x09, + 0x69, 0x66, 0x20, 0x28, 0x20, 0x27, 0x5f, 0x68, + 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, + 0x27, 0x20, 0x69, 0x6e, 0x20, 0x77, 0x69, 0x6e, + 0x64, 0x6f, 0x77, 0x20, 0x29, 0x20, 0x7b, 0x0a, + 0x09, 0x09, 0x09, 0x72, 0x65, 0x74, 0x75, 0x72, + 0x6e, 0x20, 0x5f, 0x68, 0x65, 0x61, 0x72, 0x74, + 0x62, 0x65, 0x61, 0x74, 0x3b, 0x0a, 0x09, 0x09, + 0x7d, 0x0a, 0x0a, 0x09, 0x09, 0x77, 0x69, 0x6e, + 0x64, 0x6f, 0x77, 0x2e, 0x5f, 0x68, 0x65, 0x61, + 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x20, 0x3d, + 0x20, 0x74, 0x68, 0x69, 0x73, 0x3b, 0x0a, 0x0a, + 0x09, 0x09, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x69, + 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x69, 0x7a, + 0x65, 0x5f, 0x74, 0x68, 0x65, 0x6d, 0x65, 0x5f, + 0x68, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, + 0x74, 0x28, 0x29, 0x3b, 0x0a, 0x09, 0x7d, 0x0a, + 0x0a, 0x09, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, + 0x6c, 0x69, 0x7a, 0x65, 0x5f, 0x74, 0x68, 0x65, + 0x6d, 0x65, 0x5f, 0x68, 0x65, 0x61, 0x72, 0x74, + 0x62, 0x65, 0x61, 0x74, 0x28, 0x29, 0x20, 0x7b, + 0x0a, 0x09, 0x09, 0x6c, 0x65, 0x74, 0x20, 0x68, + 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, + 0x73, 0x20, 0x3d, 0x20, 0x30, 0x3b, 0x0a, 0x0a, + 0x09, 0x09, 0x69, 0x66, 0x20, 0x28, 0x20, 0x27, + 0x27, 0x20, 0x21, 0x3d, 0x3d, 0x20, 0x74, 0x68, + 0x69, 0x73, 0x2e, 0x68, 0x65, 0x61, 0x72, 0x74, + 0x62, 0x65, 0x61, 0x74, 0x20, 0x29, 0x20, 0x7b, + 0x0a, 0x09, 0x09, 0x09, 0x63, 0x6f, 0x6e, 0x73, + 0x6f, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x67, 0x28, + 0x20, 0x27, 0x48, 0x65, 0x61, 0x72, 0x74, 0x62, + 0x65, 0x61, 0x74, 0x20, 0x68, 0x61, 0x73, 0x20, + 0x61, 0x6c, 0x72, 0x65, 0x61, 0x64, 0x79, 0x20, + 0x62, 0x65, 0x65, 0x6e, 0x20, 0x69, 0x6e, 0x69, + 0x74, 0x69, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, + 0x21, 0x27, 0x20, 0x29, 0x3b, 0x0a, 0x09, 0x09, + 0x09, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x3b, + 0x0a, 0x09, 0x09, 0x7d, 0x0a, 0x0a, 0x09, 0x09, + 0x74, 0x68, 0x69, 0x73, 0x2e, 0x6c, 0x6f, 0x67, + 0x28, 0x27, 0x49, 0x6e, 0x69, 0x74, 0x69, 0x61, + 0x6c, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x20, 0x74, + 0x68, 0x65, 0x6d, 0x65, 0x20, 0x68, 0x65, 0x61, + 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x2e, 0x27, + 0x29, 0x3b, 0x0a, 0x0a, 0x09, 0x09, 0x74, 0x68, + 0x69, 0x73, 0x2e, 0x68, 0x65, 0x61, 0x72, 0x74, + 0x62, 0x65, 0x61, 0x74, 0x20, 0x3d, 0x20, 0x73, + 0x65, 0x74, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, + 0x61, 0x6c, 0x28, 0x28, 0x29, 0x20, 0x3d, 0x3e, + 0x20, 0x7b, 0x0a, 0x09, 0x09, 0x09, 0x2b, 0x2b, + 0x68, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, + 0x74, 0x73, 0x3b, 0x0a, 0x09, 0x09, 0x09, 0x77, + 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x2e, 0x77, 0x65, + 0x62, 0x6b, 0x69, 0x74, 0x2e, 0x6d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x48, 0x61, 0x6e, 0x64, + 0x6c, 0x65, 0x72, 0x73, 0x2e, 0x47, 0x72, 0x65, + 0x65, 0x74, 0x65, 0x72, 0x42, 0x72, 0x69, 0x64, + 0x67, 0x65, 0x2e, 0x70, 0x6f, 0x73, 0x74, 0x4d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x28, 0x27, + 0x48, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, + 0x74, 0x27, 0x29, 0x3b, 0x0a, 0x09, 0x09, 0x09, + 0x69, 0x66, 0x20, 0x28, 0x20, 0x68, 0x65, 0x61, + 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x73, 0x20, + 0x3c, 0x20, 0x35, 0x20, 0x29, 0x20, 0x7b, 0x0a, + 0x09, 0x09, 0x09, 0x09, 0x63, 0x6f, 0x6e, 0x73, + 0x6f, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x67, 0x28, + 0x27, 0x53, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, + 0x20, 0x68, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, + 0x61, 0x74, 0x2e, 0x2e, 0x2e, 0x27, 0x29, 0x3b, + 0x0a, 0x09, 0x09, 0x09, 0x7d, 0x0a, 0x09, 0x09, + 0x7d, 0x2c, 0x20, 0x35, 0x30, 0x30, 0x30, 0x29, + 0x3b, 0x0a, 0x09, 0x7d, 0x0a, 0x7d, 0x0a, 0x0a, + 0x0a, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x2e, + 0x4c, 0x69, 0x67, 0x68, 0x74, 0x44, 0x4d, 0x47, + 0x72, 0x65, 0x65, 0x74, 0x65, 0x72, 0x48, 0x65, + 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x20, + 0x3d, 0x20, 0x4c, 0x69, 0x67, 0x68, 0x74, 0x44, + 0x4d, 0x47, 0x72, 0x65, 0x65, 0x74, 0x65, 0x72, + 0x48, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, + 0x74, 0x3b, 0x0a, 0x00, 0x00, 0x28, 0x75, 0x75, + 0x61, 0x79, 0x29, 0x2f, 0x01, 0x00, 0x00, 0x00, + 0x73, 0x74, 0x79, 0x6c, 0x65, 0x2e, 0x63, 0x73, + 0x73, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x2c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x2c, 0x0a, + 0x47, 0x74, 0x6b, 0x57, 0x69, 0x6e, 0x64, 0x6f, + 0x77, 0x20, 0x7b, 0x0a, 0x09, 0x62, 0x61, 0x63, + 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x3a, + 0x20, 0x23, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, + 0x3b, 0x0a, 0x7d, 0x0a, 0x00, 0x00, 0x28, 0x75, + 0x75, 0x61, 0x79, 0x29, 0x61, 0x6e, 0x74, 0x65, + 0x72, 0x67, 0x6f, 0x73, 0x2f, 0x00, 0x00, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x6c, 0x69, 0x67, 0x68, + 0x74, 0x64, 0x6d, 0x2d, 0x77, 0x65, 0x62, 0x6b, + 0x69, 0x74, 0x32, 0x2d, 0x67, 0x72, 0x65, 0x65, + 0x74, 0x65, 0x72, 0x2f, 0x07, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x63, 0x73, 0x73, 0x2f, + 0x04, 0x00, 0x00, 0x00 +} }; + +static GStaticResource static_resource = { greeter_resources_resource_data.data, sizeof (greeter_resources_resource_data.data), NULL, NULL, NULL }; +extern GResource *greeter_resources_get_resource (void); +GResource *greeter_resources_get_resource (void) +{ + return g_static_resource_get_resource (&static_resource); +} +/* + If G_HAS_CONSTRUCTORS is true then the compiler support *both* constructors and + destructors, in a sane way, including e.g. on library unload. If not you're on + your own. + + Some compilers need #pragma to handle this, which does not work with macros, + so the way you need to use this is (for constructors): + + #ifdef G_DEFINE_CONSTRUCTOR_NEEDS_PRAGMA + #pragma G_DEFINE_CONSTRUCTOR_PRAGMA_ARGS(my_constructor) + #endif + G_DEFINE_CONSTRUCTOR(my_constructor) + static void my_constructor(void) { + ... + } + +*/ + +#ifndef __GTK_DOC_IGNORE__ + +#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 7) + +#define G_HAS_CONSTRUCTORS 1 + +#define G_DEFINE_CONSTRUCTOR(_func) static void __attribute__((constructor)) _func (void); +#define G_DEFINE_DESTRUCTOR(_func) static void __attribute__((destructor)) _func (void); + +#elif defined (_MSC_VER) && (_MSC_VER >= 1500) +/* Visual studio 2008 and later has _Pragma */ + +#define G_HAS_CONSTRUCTORS 1 + +/* We do some weird things to avoid the constructors being optimized + * away on VS2015 if WholeProgramOptimization is enabled. First we + * make a reference to the array from the wrapper to make sure its + * references. Then we use a pragma to make sure the wrapper function + * symbol is always included at the link stage. Also, the symbols + * need to be extern (but not dllexport), even though they are not + * really used from another object file. + */ + +/* We need to account for differences between the mangling of symbols + * for Win32 (x86) and x64 programs, as symbols on Win32 are prefixed + * with an underscore but symbols on x64 are not. + */ +#ifdef _WIN64 +#define G_MSVC_SYMBOL_PREFIX "" +#else +#define G_MSVC_SYMBOL_PREFIX "_" +#endif + +#define G_DEFINE_CONSTRUCTOR(_func) G_MSVC_CTOR (_func, G_MSVC_SYMBOL_PREFIX) +#define G_DEFINE_DESTRUCTOR(_func) G_MSVC_DTOR (_func, G_MSVC_SYMBOL_PREFIX) + +#define G_MSVC_CTOR(_func,_sym_prefix) \ + static void _func(void); \ + extern int (* _array ## _func)(void); \ + int _func ## _wrapper(void) { _func(); g_slist_find (NULL, _array ## _func); return 0; } \ + __pragma(comment(linker,"/include:" _sym_prefix # _func "_wrapper")) \ + __pragma(section(".CRT$XCU",read)) \ + __declspec(allocate(".CRT$XCU")) int (* _array ## _func)(void) = _func ## _wrapper; + +#define G_MSVC_DTOR(_func,_sym_prefix) \ + static void _func(void); \ + extern int (* _array ## _func)(void); \ + int _func ## _constructor(void) { atexit (_func); g_slist_find (NULL, _array ## _func); return 0; } \ + __pragma(comment(linker,"/include:" _sym_prefix # _func "_constructor")) \ + __pragma(section(".CRT$XCU",read)) \ + __declspec(allocate(".CRT$XCU")) int (* _array ## _func)(void) = _func ## _constructor; + +#elif defined (_MSC_VER) + +#define G_HAS_CONSTRUCTORS 1 + +/* Pre Visual studio 2008 must use #pragma section */ +#define G_DEFINE_CONSTRUCTOR_NEEDS_PRAGMA 1 +#define G_DEFINE_DESTRUCTOR_NEEDS_PRAGMA 1 + +#define G_DEFINE_CONSTRUCTOR_PRAGMA_ARGS(_func) \ + section(".CRT$XCU",read) +#define G_DEFINE_CONSTRUCTOR(_func) \ + static void _func(void); \ + static int _func ## _wrapper(void) { _func(); return 0; } \ + __declspec(allocate(".CRT$XCU")) static int (*p)(void) = _func ## _wrapper; + +#define G_DEFINE_DESTRUCTOR_PRAGMA_ARGS(_func) \ + section(".CRT$XCU",read) +#define G_DEFINE_DESTRUCTOR(_func) \ + static void _func(void); \ + static int _func ## _constructor(void) { atexit (_func); return 0; } \ + __declspec(allocate(".CRT$XCU")) static int (* _array ## _func)(void) = _func ## _constructor; + +#elif defined(__SUNPRO_C) + +/* This is not tested, but i believe it should work, based on: + * http://opensource.apple.com/source/OpenSSL098/OpenSSL098-35/src/fips/fips_premain.c + */ + +#define G_HAS_CONSTRUCTORS 1 + +#define G_DEFINE_CONSTRUCTOR_NEEDS_PRAGMA 1 +#define G_DEFINE_DESTRUCTOR_NEEDS_PRAGMA 1 + +#define G_DEFINE_CONSTRUCTOR_PRAGMA_ARGS(_func) \ + init(_func) +#define G_DEFINE_CONSTRUCTOR(_func) \ + static void _func(void); + +#define G_DEFINE_DESTRUCTOR_PRAGMA_ARGS(_func) \ + fini(_func) +#define G_DEFINE_DESTRUCTOR(_func) \ + static void _func(void); + +#else + +/* constructors not supported for this compiler */ + +#endif + +#endif /* __GTK_DOC_IGNORE__ */ + +#ifdef G_HAS_CONSTRUCTORS + +#ifdef G_DEFINE_CONSTRUCTOR_NEEDS_PRAGMA +#pragma G_DEFINE_CONSTRUCTOR_PRAGMA_ARGS(resource_constructor) +#endif +G_DEFINE_CONSTRUCTOR(resource_constructor) +#ifdef G_DEFINE_DESTRUCTOR_NEEDS_PRAGMA +#pragma G_DEFINE_DESTRUCTOR_PRAGMA_ARGS(resource_destructor) +#endif +G_DEFINE_DESTRUCTOR(resource_destructor) + +#else +#warning "Constructor not supported on this compiler, linking in resources will not work" +#endif + +static void resource_constructor (void) +{ + g_static_resource_init (&static_resource); +} + +static void resource_destructor (void) +{ + g_static_resource_fini (&static_resource); +} diff --git a/src/gresource/greeter-resources.h b/src/gresource/greeter-resources.h new file mode 100644 index 0000000..a3271ed --- /dev/null +++ b/src/gresource/greeter-resources.h @@ -0,0 +1,7 @@ +#ifndef __RESOURCE_greeter_resources_H__ +#define __RESOURCE_greeter_resources_H__ + +#include + +extern GResource *greeter_resources_get_resource (void); +#endif diff --git a/src/gresource/greeter-style-css.c b/src/gresource/greeter-style-css.c deleted file mode 100644 index 4f0a2c2..0000000 --- a/src/gresource/greeter-style-css.c +++ /dev/null @@ -1,201 +0,0 @@ -#include - -#if defined (__ELF__) && ( __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 6)) -# define SECTION __attribute__ ((section (".gresource.greeter_css"), aligned (8))) -#else -# define SECTION -#endif - -static const SECTION union { const guint8 data[312]; const double alignment; void * const ptr;} greeter_css_resource_data = { { - 0x47, 0x56, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x18, 0x00, 0x00, 0x00, 0xac, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x28, 0x05, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, - 0x03, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, - 0x05, 0x00, 0x00, 0x00, 0x8f, 0xe2, 0x42, 0x0f, - 0x02, 0x00, 0x00, 0x00, 0xac, 0x00, 0x00, 0x00, - 0x11, 0x00, 0x76, 0x00, 0xc0, 0x00, 0x00, 0x00, - 0xfc, 0x00, 0x00, 0x00, 0xd4, 0xb5, 0x02, 0x00, - 0xff, 0xff, 0xff, 0xff, 0xfc, 0x00, 0x00, 0x00, - 0x01, 0x00, 0x4c, 0x00, 0x00, 0x01, 0x00, 0x00, - 0x04, 0x01, 0x00, 0x00, 0x0c, 0xa6, 0xd8, 0x48, - 0x04, 0x00, 0x00, 0x00, 0x04, 0x01, 0x00, 0x00, - 0x18, 0x00, 0x4c, 0x00, 0x1c, 0x01, 0x00, 0x00, - 0x20, 0x01, 0x00, 0x00, 0xc2, 0xaf, 0x89, 0x0b, - 0x01, 0x00, 0x00, 0x00, 0x20, 0x01, 0x00, 0x00, - 0x04, 0x00, 0x4c, 0x00, 0x24, 0x01, 0x00, 0x00, - 0x28, 0x01, 0x00, 0x00, 0xb4, 0xae, 0x96, 0xdb, - 0x03, 0x00, 0x00, 0x00, 0x28, 0x01, 0x00, 0x00, - 0x09, 0x00, 0x4c, 0x00, 0x34, 0x01, 0x00, 0x00, - 0x38, 0x01, 0x00, 0x00, 0x67, 0x72, 0x65, 0x65, - 0x74, 0x65, 0x72, 0x2d, 0x73, 0x74, 0x79, 0x6c, - 0x65, 0x2e, 0x63, 0x73, 0x73, 0x00, 0x00, 0x00, - 0x2c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x2c, 0x0a, - 0x47, 0x74, 0x6b, 0x57, 0x69, 0x6e, 0x64, 0x6f, - 0x77, 0x20, 0x7b, 0x0a, 0x09, 0x62, 0x61, 0x63, - 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x3a, - 0x20, 0x23, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, - 0x3b, 0x0a, 0x7d, 0x0a, 0x00, 0x00, 0x28, 0x75, - 0x75, 0x61, 0x79, 0x29, 0x2f, 0x00, 0x00, 0x00, - 0x03, 0x00, 0x00, 0x00, 0x6c, 0x69, 0x67, 0x68, - 0x74, 0x64, 0x6d, 0x2d, 0x77, 0x65, 0x62, 0x6b, - 0x69, 0x74, 0x32, 0x2d, 0x67, 0x72, 0x65, 0x65, - 0x74, 0x65, 0x72, 0x2f, 0x00, 0x00, 0x00, 0x00, - 0x63, 0x6f, 0x6d, 0x2f, 0x04, 0x00, 0x00, 0x00, - 0x61, 0x6e, 0x74, 0x65, 0x72, 0x67, 0x6f, 0x73, - 0x2f, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 -} }; - -static GStaticResource static_resource = { greeter_css_resource_data.data, sizeof (greeter_css_resource_data.data), NULL, NULL, NULL }; -extern GResource *greeter_css_get_resource (void); -GResource *greeter_css_get_resource (void) -{ - return g_static_resource_get_resource (&static_resource); -} -/* - If G_HAS_CONSTRUCTORS is true then the compiler support *both* constructors and - destructors, in a sane way, including e.g. on library unload. If not you're on - your own. - - Some compilers need #pragma to handle this, which does not work with macros, - so the way you need to use this is (for constructors): - - #ifdef G_DEFINE_CONSTRUCTOR_NEEDS_PRAGMA - #pragma G_DEFINE_CONSTRUCTOR_PRAGMA_ARGS(my_constructor) - #endif - G_DEFINE_CONSTRUCTOR(my_constructor) - static void my_constructor(void) { - ... - } - -*/ - -#ifndef __GTK_DOC_IGNORE__ - -#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 7) - -#define G_HAS_CONSTRUCTORS 1 - -#define G_DEFINE_CONSTRUCTOR(_func) static void __attribute__((constructor)) _func (void); -#define G_DEFINE_DESTRUCTOR(_func) static void __attribute__((destructor)) _func (void); - -#elif defined (_MSC_VER) && (_MSC_VER >= 1500) -/* Visual studio 2008 and later has _Pragma */ - -#define G_HAS_CONSTRUCTORS 1 - -/* We do some weird things to avoid the constructors being optimized - * away on VS2015 if WholeProgramOptimization is enabled. First we - * make a reference to the array from the wrapper to make sure its - * references. Then we use a pragma to make sure the wrapper function - * symbol is always included at the link stage. Also, the symbols - * need to be extern (but not dllexport), even though they are not - * really used from another object file. - */ - -/* We need to account for differences between the mangling of symbols - * for Win32 (x86) and x64 programs, as symbols on Win32 are prefixed - * with an underscore but symbols on x64 are not. - */ -#ifdef _WIN64 -#define G_MSVC_SYMBOL_PREFIX "" -#else -#define G_MSVC_SYMBOL_PREFIX "_" -#endif - -#define G_DEFINE_CONSTRUCTOR(_func) G_MSVC_CTOR (_func, G_MSVC_SYMBOL_PREFIX) -#define G_DEFINE_DESTRUCTOR(_func) G_MSVC_DTOR (_func, G_MSVC_SYMBOL_PREFIX) - -#define G_MSVC_CTOR(_func,_sym_prefix) \ - static void _func(void); \ - extern int (* _array ## _func)(void); \ - int _func ## _wrapper(void) { _func(); g_slist_find (NULL, _array ## _func); return 0; } \ - __pragma(comment(linker,"/include:" _sym_prefix # _func "_wrapper")) \ - __pragma(section(".CRT$XCU",read)) \ - __declspec(allocate(".CRT$XCU")) int (* _array ## _func)(void) = _func ## _wrapper; - -#define G_MSVC_DTOR(_func,_sym_prefix) \ - static void _func(void); \ - extern int (* _array ## _func)(void); \ - int _func ## _constructor(void) { atexit (_func); g_slist_find (NULL, _array ## _func); return 0; } \ - __pragma(comment(linker,"/include:" _sym_prefix # _func "_constructor")) \ - __pragma(section(".CRT$XCU",read)) \ - __declspec(allocate(".CRT$XCU")) int (* _array ## _func)(void) = _func ## _constructor; - -#elif defined (_MSC_VER) - -#define G_HAS_CONSTRUCTORS 1 - -/* Pre Visual studio 2008 must use #pragma section */ -#define G_DEFINE_CONSTRUCTOR_NEEDS_PRAGMA 1 -#define G_DEFINE_DESTRUCTOR_NEEDS_PRAGMA 1 - -#define G_DEFINE_CONSTRUCTOR_PRAGMA_ARGS(_func) \ - section(".CRT$XCU",read) -#define G_DEFINE_CONSTRUCTOR(_func) \ - static void _func(void); \ - static int _func ## _wrapper(void) { _func(); return 0; } \ - __declspec(allocate(".CRT$XCU")) static int (*p)(void) = _func ## _wrapper; - -#define G_DEFINE_DESTRUCTOR_PRAGMA_ARGS(_func) \ - section(".CRT$XCU",read) -#define G_DEFINE_DESTRUCTOR(_func) \ - static void _func(void); \ - static int _func ## _constructor(void) { atexit (_func); return 0; } \ - __declspec(allocate(".CRT$XCU")) static int (* _array ## _func)(void) = _func ## _constructor; - -#elif defined(__SUNPRO_C) - -/* This is not tested, but i believe it should work, based on: - * http://opensource.apple.com/source/OpenSSL098/OpenSSL098-35/src/fips/fips_premain.c - */ - -#define G_HAS_CONSTRUCTORS 1 - -#define G_DEFINE_CONSTRUCTOR_NEEDS_PRAGMA 1 -#define G_DEFINE_DESTRUCTOR_NEEDS_PRAGMA 1 - -#define G_DEFINE_CONSTRUCTOR_PRAGMA_ARGS(_func) \ - init(_func) -#define G_DEFINE_CONSTRUCTOR(_func) \ - static void _func(void); - -#define G_DEFINE_DESTRUCTOR_PRAGMA_ARGS(_func) \ - fini(_func) -#define G_DEFINE_DESTRUCTOR(_func) \ - static void _func(void); - -#else - -/* constructors not supported for this compiler */ - -#endif - -#endif /* __GTK_DOC_IGNORE__ */ - -#ifdef G_HAS_CONSTRUCTORS - -#ifdef G_DEFINE_CONSTRUCTOR_NEEDS_PRAGMA -#pragma G_DEFINE_CONSTRUCTOR_PRAGMA_ARGS(resource_constructor) -#endif -G_DEFINE_CONSTRUCTOR(resource_constructor) -#ifdef G_DEFINE_DESTRUCTOR_NEEDS_PRAGMA -#pragma G_DEFINE_DESTRUCTOR_PRAGMA_ARGS(resource_destructor) -#endif -G_DEFINE_DESTRUCTOR(resource_destructor) - -#else -#warning "Constructor not supported on this compiler, linking in resources will not work" -#endif - -static void resource_constructor (void) -{ - g_static_resource_init (&static_resource); -} - -static void resource_destructor (void) -{ - g_static_resource_fini (&static_resource); -} diff --git a/src/gresource/greeter-style-css.h b/src/gresource/greeter-style-css.h deleted file mode 100644 index 562698d..0000000 --- a/src/gresource/greeter-style-css.h +++ /dev/null @@ -1,7 +0,0 @@ -#ifndef __RESOURCE_greeter_css_H__ -#define __RESOURCE_greeter_css_H__ - -#include - -extern GResource *greeter_css_get_resource (void); -#endif diff --git a/src/gresource/meson.build b/src/gresource/meson.build index aea0fb7..f69d706 100644 --- a/src/gresource/meson.build +++ b/src/gresource/meson.build @@ -2,6 +2,6 @@ # ------->>> GRESOURCE <<<------- # # =============================== # -gresource_headers = ['greeter-style-css.h'] +gresource_headers = ['greeter-resources.h'] install_headers(gresource_headers, subdir : 'lightdm-webkit2-greeter') diff --git a/src/meson.build b/src/meson.build index 54a1b5a..b03e904 100644 --- a/src/meson.build +++ b/src/meson.build @@ -20,8 +20,7 @@ webext = shared_library( # ------->>> Greeter <<<------- # # ============================= # -greeter_headers = ['greeter-style-css.h'] -greeter_sources = ['greeter-style-css.c', 'greeter.c'] +greeter_sources = ['greeter-resources.c', 'greeter.c'] gresource_sources = include_directories('gresource') extdir = '"@0@/@1@"'.format(get_option('libdir'), 'lightdm-webkit2-greeter') @@ -30,8 +29,6 @@ greeter_cargs = [ '-DLIGHTDM_WEBKIT2_GREETER_EXTENSIONS_DIR=@0@'.format(extdir) ] -install_headers(greeter_headers, subdir : 'lightdm-webkit2-greeter') - greeter = executable( 'lightdm-webkit2-greeter', greeter_sources, diff --git a/src/webkit2-extension.c b/src/webkit2-extension.c index 6b1b206..bf2b5f7 100644 --- a/src/webkit2-extension.c +++ b/src/webkit2-extension.c @@ -1,5 +1,5 @@ /* - * lightdm-webkit2-greeter-ext.c + * webkit2-extension.c * * Copyright © 2014-2016 Antergos Developers * diff --git a/themes/antergos/js/greeter.js b/themes/antergos/js/greeter.js index 77245e4..f42a7b1 100644 --- a/themes/antergos/js/greeter.js +++ b/themes/antergos/js/greeter.js @@ -1,9 +1,8 @@ /* + * greeter.js * * Copyright © 2015-2016 Antergos * - * greeter.js - * * This file is part of lightdm-webkit2-greeter * * lightdm-webkit2-greeter is free software: you can redistribute it and/or modify @@ -59,8 +58,6 @@ class AntergosThemeUtils { } _util = this; - this.initialize_theme_heartbeat(); - this.debug = false; this.lang = window.navigator.language.split( '-' )[ 0 ].toLowerCase(); this.translations = window.ant_translations; @@ -79,40 +76,6 @@ class AntergosThemeUtils { return _util; } - - /** - * Initialize greeter theme heartbeat. Themes start the heartbeat by sending a post message - * via JavaScript. Once started, the heartbeat will schedule a check to ensure that the - * theme has sent a subsequent heartbeat message. Once started, if a heartbeat message is not - * received by the time any of the greeter's subsequent checks run it will assume that there - * has been an error in the web process and fallback to the simple theme. - */ - initialize_theme_heartbeat() { - var heartbeats = 0; - - this.log('Initializing theme heartbeat.'); - this.heartbeat = setInterval(() => { - ++heartbeats; - window.webkit.messageHandlers.GreeterBridge.postMessage('Heartbeat'); - if (heartbeats < 5) { - console.log('Sending heartbeat...'); - } - }, 5000); - } - - - /** - * Exits the heartbeat. - * - * Before starting the user's session, themes should exit the heartbeat - * to prevent a race condition when the greeter is shutting down. - */ - stop_theme_heartbeat() { - window.webkit.messageHandlers.GreeterBridge.postMessage('Heartbeat::Exit'); - clearInterval(this.heartbeat); - } - - setup_cache_backend() { // Do we have access to localStorage? try {