Commit Graph

25 Commits

Author SHA1 Message Date
Rom Walton 1e5dc8b61b HTMLGFX: Completed the move of all platform independent code to source files that will be shared between platforms.
All that should be required for new platforms is to implement a 'run' function that creates a window that hosts an HTML control and queries determine_state_url() and determine_exit_state() once a second.
2015-01-17 17:05:09 -05:00
Rom Walton 8bdf177e4e HTMLGFX: Checkpoint (Continuation of previous commit.)
* Custom IE Javascript interface is gone, it was replaced with a cross-browser Web RPC.
In the HTML doc you can add:
<script type='text/javascript' src='/api/static/boinc.js'></script>

In the JavaScript code you can:
var boinc = new BOINC();

From there you can get the username like:
var userName = boinc.getUserName();

* Default resources are embedded within the executable in much the same way XPM images are embedded in the manager.
  /api/static/index.html
  /api/static/boinc.png
  /api/static/boinc.js
2015-01-16 00:49:17 -05:00
Rom Walton 82dbec6671 HTMLGFX: Checkpoint (Move most of the platform specific stuff to the HTTP server side of the house, it becomes cross-browser/cross-platform) 2015-01-12 15:47:34 -05:00
Rom Walton 38af455fa7 HTMLGFX: Remove the secret handling stuff, it would prevent loading static images and other resources from the slot directory. 2015-01-06 11:03:41 -05:00
Rom Walton 46f8b9232e HTMLGFX: When debugging, ignore the last update time in the graphics status file.
If the worker application hasn't been running for awhile we do not want to automatically close the graphics application.
2015-01-02 00:52:22 -05:00
Rom Walton ed431ced86 HTMLGFX: Implement a simple authentication scheme.
Using the formal HTTP authentication scheme was too cumbersome and I couldn't pre-fill out that information as part of the request.  IE11 emulation ignores any credentials as part of the URI.  The web browser control insists on displaying a credentials dialog when challenged.

So for now, look for a 'secret' header which just contains a thread identifier.

Authentication is skipped if the app was started with the --debug command line argument.  You'll be able to attach and debug your HTML application via the port number written in the Window title.
2014-12-30 23:20:48 -05:00
Rom Walton 2f3a8cb3ec HTMLGFX: Fix a bunch of potential cross-site scripting issues.
* Implement a mini HTTP server to service file requests from the slot
directory.  Have the browser control download the file(s) via the
HTTP protocol instead of the FILE protocol.

TODO: Lock down the authentication mechanism so that it is reasonably
protected even though it is only bound to the loopback adapter.

* Configure the browser emulation level for the executable to
Internet Explorer 11.
2014-12-30 18:03:12 -05:00
Rom Walton 9e1e50a4e7 HTMLGFX: Normalize the URLs configured by way of the configuration file. MSHTML would attempt to use HTTP when only a filename was given. 2014-12-29 23:09:54 -05:00
Rom Walton 33dbfbe975 HTMLGFX: It helps to actually put in the correct format specifier. 2014-12-29 00:28:32 -05:00
Rom Walton f8b223714b HTMLGFX: Minor comment fix 2014-12-29 00:26:55 -05:00
Rom Walton 9bf3be87ca HTMLGFX: Log any configured state urls 2014-12-29 00:25:39 -05:00
Rom Walton 3e11ed3b93 HTMLGFX: Bug fixes for running against stock T4T. 2014-12-29 00:15:49 -05:00
Rom Walton f305295f5b HTMLGFX: Remap the JavaScript methods and properties to camel case to match the JavaScript standards. 2014-12-28 20:38:15 -05:00
Rom Walton 28bd2b81b2 HTMLGFX: Do not overwrite the State URLs if a project also exposes a Web API port as well. A project may choose to have a running HTML page that makes JSON calls to a web server running within a VM or science application. 2014-12-28 14:53:21 -05:00
Rom Walton 9dab824fc3 HTMLGFX: Make sure we do not overwrite the default URL with an empty state URL. 2014-12-28 00:34:06 -05:00
Rom Walton 29eaf3944b HTMLGFX: Streamline things a bit. 2014-12-27 11:28:43 -05:00
Rom Walton c47052fa92 HTMLGFX: parse a boinc_graphics.xml file for a list of optional urls the htmlgfx can use for various states (running, suspended, network suspended, exiting).
HTMLGFX: look for and use various vboxwrapper state files for extracting the remote desktop port number and the webapi port number.
2014-12-27 01:25:10 -05:00
Rom Walton 94c6360035 HTMLGFX: Prevent a memory leak with the project_preferences init_data entry 2014-12-26 19:32:42 -05:00
Rom Walton 37974055a8 HTMLGFX: When in screensaver mode, exit with any mouse or keyboard activity 2014-12-26 19:22:32 -05:00
Rom Walton e22d7b7b50 HTMLGFX: Hookup the graphics_status API polling. 2014-12-26 18:56:31 -05:00
Rom Walton cbda95ad3e VBOX: Prevent new windows from being displayed either from HTML or from script. 2014-12-26 12:59:49 -05:00
Rom Walton 24c5e2bdff HTMLGFX: Add some more infrastructure for passing APP_INIT_DATA stuff to the HTML web page via the DOM. 2014-12-24 20:30:19 -05:00
Rom Walton 58c5dd9676 HTMLGFX: Reintroduce the HTML DOM Extension, embed the typelib in the executable.
Force the COM libraries to look within the executable instead of going out to the registry for the typelib information.
2014-12-24 14:01:35 -05:00
Rom Walton 24ef08bbb6 HTMLGFX: Add a default HTML page that mimics the screen saver bouncing BOINC logo.
HTMLGFX: Remove attempt at using the 'window.external' DOM extension, it was requiring a typelib.
2014-12-24 01:59:37 -05:00
Rom Walton 0c717ac635 VBOX: Decoupled the HTML Graphics application from vboxwrapper. 2014-12-23 16:54:03 -05:00