Browse Source

moving theme heartbeat into the greeter.

sisyphus
Dustin Falgout 9 years ago
parent
commit
1c4e4537a0
  1. 15
      data/greeter-resources.gresource.xml
  2. 6
      data/greeter-style.gresource.xml
  3. 70
      data/heartbeat.js
  4. 0
      data/style.css
  5. 12
      src/greeter.c
  6. 501
      src/gresource/greeter-resources.c
  7. 7
      src/gresource/greeter-resources.h
  8. 201
      src/gresource/greeter-style-css.c
  9. 7
      src/gresource/greeter-style-css.h
  10. 2
      src/gresource/meson.build
  11. 5
      src/meson.build
  12. 2
      src/webkit2-extension.c
  13. 39
      themes/antergos/js/greeter.js

15
data/greeter-resources.gresource.xml

@ -0,0 +1,15 @@
<?xml version="1.0" encoding="UTF-8"?>
<gresources>
<gresource prefix="/com/antergos/lightdm-webkit2-greeter/css">
<file>style.css</file>
</gresource>
<gresource prefix="/com/antergos/lightdm-webkit2-greeter/js">
<file>heartbeat.js</file>
</gresource>
</gresources>
<!--
glib-compile-resources -\-c-name greeter_resources -\-generate -\-target greeter-resources-css.h greeter-resources.gresource.xml
glib-compile-resources -\-c-name greeter_resources -\-generate -\-target greeter-resources-css.c greeter-resources.gresource.xml
-->

6
data/greeter-style.gresource.xml

@ -1,6 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<gresources>
<gresource prefix="/com/antergos/lightdm-webkit2-greeter">
<file>greeter-style.css</file>
</gresource>
</gresources>

70
data/heartbeat.js

@ -0,0 +1,70 @@
/*
* heartbeat.js
*
* Copyright © 2016 Antergos Developers <dev@antergos.com>
*
* 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 <http://www.gnu.org/licenses/>.
*/
/**
* 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;

0
data/greeter-style.css → data/style.css

12
src/greeter.c

@ -1,5 +1,5 @@
/*
* lightdm-webkit2-greeter.c
* greeter.c
*
* Copyright © 2014-2016 Antergos Developers <dev@antergos.com>
*
@ -48,7 +48,7 @@
#include <config.h>
#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),

501
src/gresource/greeter-resources.c

@ -0,0 +1,501 @@
#include <gio/gio.h>
#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);
}

7
src/gresource/greeter-resources.h

@ -0,0 +1,7 @@
#ifndef __RESOURCE_greeter_resources_H__
#define __RESOURCE_greeter_resources_H__
#include <gio/gio.h>
extern GResource *greeter_resources_get_resource (void);
#endif

201
src/gresource/greeter-style-css.c

@ -1,201 +0,0 @@
#include <gio/gio.h>
#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);
}

7
src/gresource/greeter-style-css.h

@ -1,7 +0,0 @@
#ifndef __RESOURCE_greeter_css_H__
#define __RESOURCE_greeter_css_H__
#include <gio/gio.h>
extern GResource *greeter_css_get_resource (void);
#endif

2
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')

5
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,

2
src/webkit2-extension.c

@ -1,5 +1,5 @@
/*
* lightdm-webkit2-greeter-ext.c
* webkit2-extension.c
*
* Copyright © 2014-2016 Antergos Developers <dev@antergos.com>
*

39
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 {

Loading…
Cancel
Save