arora: fix Nitpicker plugin demo

Fixes #2425
This commit is contained in:
Christian Prochaska 2017-05-22 16:55:30 +02:00 committed by Christian Helmuth
parent 923b3ec54d
commit 040d0c9e42
6 changed files with 55 additions and 12 deletions

View File

@ -4,15 +4,19 @@
* \date 2010-08-26 * \date 2010-08-26
*/ */
/* Genode includes */
#include <base/env.h> #include <base/env.h>
#include <dataspace/client.h> #include <dataspace/client.h>
#include <os/timed_semaphore.h> #include <os/timed_semaphore.h>
#include <rom_session/connection.h> #include <rom_session/connection.h>
#include <util/arg_string.h> #include <util/arg_string.h>
/* libc includes */
#include <assert.h>
#include <string.h> #include <string.h>
#include <zlib.h> #include <zlib.h>
/* Qt includes */
#include <QtGui> #include <QtGui>
#include <qnitpickerplatformwindow.h> #include <qnitpickerplatformwindow.h>
@ -47,7 +51,7 @@ const char *config = " \
<archive name=\"plugin.tar\"/> \ <archive name=\"plugin.tar\"/> \
</config> \ </config> \
</start> \ </start> \
<start name=\"init\" caps=\"200\"> \ <start name=\"init\" caps=\"2000\"> \
<resource name=\"RAM\" quantum=\"2G\"/> \ <resource name=\"RAM\" quantum=\"2G\"/> \
<configfile name=\"config.plugin\"/> \ <configfile name=\"config.plugin\"/> \
<route> \ <route> \
@ -436,6 +440,8 @@ void QPluginWidget::showEvent(QShowEvent *event)
QNitpickerPlatformWindow *platform_window = QNitpickerPlatformWindow *platform_window =
dynamic_cast<QNitpickerPlatformWindow*>(window()->windowHandle()->handle()); dynamic_cast<QNitpickerPlatformWindow*>(window()->windowHandle()->handle());
assert(_env != nullptr);
_plugin_starter = new PluginStarter(_env, _plugin_starter = new PluginStarter(_env,
_plugin_url, _plugin_args, _plugin_url, _plugin_args,
_max_width, _max_height, _max_width, _max_height,

View File

@ -123,7 +123,7 @@ append boot_modules {
testnit testnit
arora arora
ld.lib.so ld.lib.so
libc.lib.so libm.lib.so lwip.lib.so posix.lib.so libc.lib.so libm.lib.so lwip.lib.so
zlib.lib.so libpng.lib.so jpeg.lib.so libssl.lib.so libcrypto.lib.so zlib.lib.so libpng.lib.so jpeg.lib.so libssl.lib.so libcrypto.lib.so
freetype.lib.so freetype.lib.so
libc_pipe.lib.so libc_pipe.lib.so

View File

@ -0,0 +1,37 @@
/*
* \brief Entry point for Arora
* \author Christian Prochaska
* \date 2017-05-22
*/
/*
* Copyright (C) 2017 Genode Labs GmbH
*
* This file is part of the Genode OS framework, which is distributed
* under the terms of the GNU Affero General Public License version 3.
*/
/* Genode includes */
#include <libc/component.h>
/* libc includes */
#include <stdlib.h> /* 'exit' */
/* Qt includes */
#include <qpluginwidget/qpluginwidget.h>
/* provided by the application */
extern "C" int main(int argc, char const **argv);
void Libc::Component::construct(Libc::Env &env)
{
Libc::with_libc([&] {
QPluginWidget::set_env(&env);
int argc = 1;
char const *argv[] = { "arora", 0 };
exit(main(argc, argv));
});
}

View File

@ -74,7 +74,7 @@ div.annotation p { font-style:italic; }
there is no need for a browser-specific solution. We can just run an arbitrary there is no need for a browser-specific solution. We can just run an arbitrary
fully-featured Genode subsystem as browser plugin: fully-featured Genode subsystem as browser plugin:
</p> </p>
<embed src="rom:///nitpicker_plugin.tar" args="ram_quota=32M" type="application/x-genode-plugin" width="640px" height="480px"><br> <embed src="rom:///nitpicker_plugin.tar" args="ram_quota=32M, caps=1000" type="application/x-genode-plugin" width="640px" height="480px"><br>
<p> <p>
The plugin above consists of multiple processes and uses the same The plugin above consists of multiple processes and uses the same
binaries as the Genode system you are running. The most significant advantage of this binaries as the Genode system you are running. The most significant advantage of this

View File

@ -10,7 +10,7 @@
<service name="Nitpicker"/> <service name="Nitpicker"/>
</parent-provides> </parent-provides>
<default-route> <any-service> <any-child/> <parent/> </any-service> </default-route> <default-route> <any-service> <any-child/> <parent/> </any-service> </default-route>
<start name="framebuffer"> <start name="framebuffer" caps="100">
<binary name="nit_fb"/> <binary name="nit_fb"/>
<resource name="RAM" quantum="4M"/> <resource name="RAM" quantum="4M"/>
<provides> <provides>
@ -20,7 +20,7 @@
<route> <any-service> <parent/> </any-service> </route> <route> <any-service> <parent/> </any-service> </route>
<config xpos="0" ypos="0" width="640" height="480"/> <config xpos="0" ypos="0" width="640" height="480"/>
</start> </start>
<start name="nitpicker"> <start name="nitpicker" caps="100">
<resource name="RAM" quantum="1M"/> <resource name="RAM" quantum="1M"/>
<provides><service name="Nitpicker"/></provides> <provides><service name="Nitpicker"/></provides>
<config> <config>
@ -30,16 +30,16 @@
<default-policy domain="default"/> <default-policy domain="default"/>
</config> </config>
</start> </start>
<start name="pointer"> <start name="pointer" caps="100">
<resource name="RAM" quantum="1M"/> <resource name="RAM" quantum="1M"/>
</start> </start>
<start name="launchpad"> <start name="launchpad" caps="400">
<resource name="RAM" quantum="2G"/> <resource name="RAM" quantum="2G"/>
<config xpos="50" ypos="10" width="400" height="400"> <config xpos="50" ypos="10" width="400" height="400">
<launcher name="testnit" ram_quota="1M" /> <launcher name="testnit" ram_quota="1M" caps="100" />
<launcher name="launchpad" ram_quota="6M"> <launcher name="launchpad" ram_quota="6M" caps="200">
<config xpos="90" ypos="50" width="400" height="400"> <config xpos="90" ypos="50" width="400" height="400">
<launcher name="testnit" ram_quota="512K" /> <launcher name="testnit" ram_quota="512K" caps="100" />
</config> </config>
</launcher> </launcher>
</config> </config>

View File

@ -33,6 +33,8 @@ HEADERS_FILTER_OUT = \
QT_MAIN_STACK_SIZE = 768*1024 QT_MAIN_STACK_SIZE = 768*1024
SRC_CC += arora_component.cc
LIBS += libm libc_lwip libc_lwip_nic_dhcp LIBS += libm libc_lwip libc_lwip_nic_dhcp
RESOURCES += demo_html.qrc RESOURCES += demo_html.qrc
@ -84,5 +86,3 @@ vpath % $(ARORA_PORT_DIR)/src/app/arora/src/useragent
vpath % $(ARORA_PORT_DIR)/src/app/arora/src/utils vpath % $(ARORA_PORT_DIR)/src/app/arora/src/utils
-include $(QT_TMPL_DIR)/target_final.inc -include $(QT_TMPL_DIR)/target_final.inc
LIBS += posix