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

View File

@ -123,7 +123,7 @@ append boot_modules {
testnit
arora
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
freetype.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
fully-featured Genode subsystem as browser plugin:
</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>
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

View File

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

View File

@ -33,6 +33,8 @@ HEADERS_FILTER_OUT = \
QT_MAIN_STACK_SIZE = 768*1024
SRC_CC += arora_component.cc
LIBS += libm libc_lwip libc_lwip_nic_dhcp
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
-include $(QT_TMPL_DIR)/target_final.inc
LIBS += posix