diff --git a/repos/libports/src/lib/qt5/qpluginwidget/qpluginwidget.cpp b/repos/libports/src/lib/qt5/qpluginwidget/qpluginwidget.cpp index 78016ff6b..afb1e412b 100644 --- a/repos/libports/src/lib/qt5/qpluginwidget/qpluginwidget.cpp +++ b/repos/libports/src/lib/qt5/qpluginwidget/qpluginwidget.cpp @@ -4,15 +4,19 @@ * \date 2010-08-26 */ +/* Genode includes */ #include #include #include #include #include +/* libc includes */ +#include #include #include +/* Qt includes */ #include #include @@ -47,7 +51,7 @@ const char *config = " \ \ \ \ - \ + \ \ \ \ @@ -436,6 +440,8 @@ void QPluginWidget::showEvent(QShowEvent *event) QNitpickerPlatformWindow *platform_window = dynamic_cast(window()->windowHandle()->handle()); + assert(_env != nullptr); + _plugin_starter = new PluginStarter(_env, _plugin_url, _plugin_args, _max_width, _max_height, diff --git a/repos/ports/run/arora.run b/repos/ports/run/arora.run index 06126bf75..a08f52526 100644 --- a/repos/ports/run/arora.run +++ b/repos/ports/run/arora.run @@ -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 diff --git a/repos/ports/src/app/arora/arora_component.cc b/repos/ports/src/app/arora/arora_component.cc new file mode 100644 index 000000000..36be13cd9 --- /dev/null +++ b/repos/ports/src/app/arora/arora_component.cc @@ -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 includes */ +#include /* 'exit' */ + +/* Qt includes */ +#include + +/* 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)); + }); +} diff --git a/repos/ports/src/app/arora/demo/nitpicker.html b/repos/ports/src/app/arora/demo/nitpicker.html index f7099a4a3..345531521 100644 --- a/repos/ports/src/app/arora/demo/nitpicker.html +++ b/repos/ports/src/app/arora/demo/nitpicker.html @@ -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:

-
+

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 diff --git a/repos/ports/src/app/arora/demo/nitpicker_plugin/config.plugin b/repos/ports/src/app/arora/demo/nitpicker_plugin/config.plugin index 11b3bad13..378a631c1 100644 --- a/repos/ports/src/app/arora/demo/nitpicker_plugin/config.plugin +++ b/repos/ports/src/app/arora/demo/nitpicker_plugin/config.plugin @@ -10,7 +10,7 @@ - + @@ -20,7 +20,7 @@ - + @@ -30,16 +30,16 @@ - + - + - - + + - + diff --git a/repos/ports/src/app/arora/target.mk b/repos/ports/src/app/arora/target.mk index e66081420..e5a644fd3 100644 --- a/repos/ports/src/app/arora/target.mk +++ b/repos/ports/src/app/arora/target.mk @@ -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