Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

@6.agl.guppy #19

Open
wants to merge 83 commits into
base: master
Choose a base branch
from
Open

@6.agl.guppy #19

wants to merge 83 commits into from

Conversation

antiapuentes
Copy link

Contains work to remove the dependency on Qt and some changes specific to AGL.

Jani Hautakangas and others added 30 commits April 25, 2019 16:55
Change-Id: Ic61d3c67ac290ef763944605cb70d33bc6735804
Reviewed-by: Jani Hautakangas <[email protected]>
Tested-by: Jani Hautakangas <[email protected]>
Change-Id: Ia3996fbfb500abbe0570790b5aa465c553dc8248
Reviewed-by: Jani Hautakangas <[email protected]>
Tested-by: Jani Hautakangas <[email protected]>
Change-Id: I10f32bcfe441638ec0ac0013bf4f6e35f57a1b14
Reviewed-by: Jani Hautakangas <[email protected]>
Tested-by: Jani Hautakangas <[email protected]>
Change-Id: I88fc660860dc9e88ed967064c6c0615ef4c5a216
Reviewed-by: Jani Hautakangas <[email protected]>
Tested-by: Jani Hautakangas <[email protected]>
Change-Id: I040cb32a5774f84926dbab869d9c869662672dda
Reviewed-by: Jani Hautakangas <[email protected]>
Tested-by: Jani Hautakangas <[email protected]>
Change-Id: Ieb3ebd27d1e2a925461ccc7857f577d21c8589ce
Reviewed-by: Jani Hautakangas <[email protected]>
Tested-by: Jani Hautakangas <[email protected]>
Change-Id: Ie32e8246abe57eaf15eeb68601c7e90ca2cc300b
Reviewed-by: Jani Hautakangas <[email protected]>
Tested-by: Jani Hautakangas <[email protected]>
Temporary patch to workaround splashscreen that's expected
by wam on webos

Change-Id: I89ee92dc94c12767fd3f6857293659bd4e374729
Reviewed-by: Jani Hautakangas <[email protected]>
Tested-by: Jani Hautakangas <[email protected]>
Change-Id: Iab1f2241f225c6be4b78f23c869689cd71f3f964
Reviewed-by: Jose Dapena <[email protected]>
Tested-by: Jose Dapena <[email protected]>
Host:
/usr/bin/WebAppMgr --no-sandbox --user-data-dir="/home/root/wamdata" --webos-wam

Client:
/usr/bin/WebAppMgr --launch-app /var/local/lib/afm/applications/webapps-memory-match/1.1

Change-Id: I595090a078d318d70e4bbee259c3cb6e9a9f0ba7
Reviewed-by: Jani Hautakangas <[email protected]>
Tested-by: Jani Hautakangas <[email protected]>
:Release Notes:
Set the window surface ID later

:Detailed Notes:
Launching apps would crash, because the surface ID was set before
the WebAppWindowBase was created. So set it after it is created.

:Testing Performed:

:QA Notes:

:Issues Addressed:

Change-Id: I08d8533138a38fff33865b5df3c8ddffd157508d
Reviewed-by: Jose Dapena <[email protected]>
Tested-by: Jose Dapena <[email protected]>
Change-Id: I81237c47ba9374ca797309404dc279878ab84103
Reviewed-by: Jose Dapena <[email protected]>
Tested-by: Jose Dapena <[email protected]>
Change-Id: Iaf91b7810a180998edd3c101c30c7b806bdee79c
Reviewed-by: Andre Rosa <[email protected]>
Tested-by: Andre Rosa <[email protected]>
Reviewed-by: Jose Dapena <[email protected]>
Tested-by: Jose Dapena <[email protected]>
Change-Id: I2359696dbf1b904d19b04c1f0b42f22a8ebeabf8
Reviewed-by: Jose Dapena <[email protected]>
Tested-by: Jose Dapena <[email protected]>
Change-Id: I2cd4f8fa2b8c91f9de9b247fbd2ffcb887cfa708
Reviewed-by: Jani Hautakangas <[email protected]>
Tested-by: Jani Hautakangas <[email protected]>
Also refactors code to reduce the mess in Main.cpp
Before launching a webapp through shared browser process model, current
implementation launch tinyproxy using -p <port_number> commandline option
and forwaed same port to WebViewProfile to configure proxyservice

Co-authored-by: Abhijeet Kandalkar <[email protected]>
Implement proxy configuration handling for shared browser process
WebAppLauncher
WindowManager APIs have changed:
 - activateSurface => activateWindow
 - deactivateSurface => deactivateWindow

See https://jira.automotivelinux.org/browse/SPEC-1565

Change-Id: If80be16a6af3e33df870e0ebc85b4c6f8f41a2c3
Signed-off-by: Sebastien Douheret <[email protected]>
It updates user directory path for flounder from
"/home/root/" to "/home/0/"
Fix minor coding style indentation issues.

Signed-off-by: Nick Diego Yamane <[email protected]>
- Initial implementation of Jsoncpp helper functions.
  These functions abstract and streamline the json parsing
  from both strings and files, in addition they make it possible
  to handle potential errors in a unified and standardized way.
- This patch is part of Qt-less WAM effort, which aims to remove
  the WAM dependency on Qt framework.

[SPEC-1910] Qt-less WAM: replace QJson classes usage in WAM
[SPEC-1907] Qt-less WAM: do not use Qt JSON

Signed-off-by: Nick Diego Yamane <[email protected]>
- Modify PalmSystemBase, PalmSystemWebOS, PalmSystemBlink,
  WebAppBase and WebAppWayland classes removing QJson* references
  in favor of a Jsoncpp-based implementation.

[SPEC-1910] Qt-less WAM: replace QJson classes usage in WAM
[SPEC-1907] Qt-less WAM: do not use Qt JSON

Signed-off-by: Nick Diego Yamane <[email protected]>
- Modify ApplicationDescription class removing QJson* references
  in favor of a Jsoncpp-based implementation.

[SPEC-1910] Qt-less WAM: replace QJson classes usage in WAM
[SPEC-1907] Qt-less WAM: do not use Qt JSON

Signed-off-by: Nick Diego Yamane <[email protected]>
- Modify ContainerAppManager class removing QJson* references
in favor of a Jsoncpp-based implementation.

[SPEC-1910] Qt-less WAM: replace QJson classes usage in WAM
[SPEC-1907] Qt-less WAM: do not use Qt JSON

Signed-off-by: Nick Diego Yamane <[email protected]>
- Modify WebAppFactoryManager removing QJson* references
in favor of a Jsoncpp-based implementation.

[SPEC-1910] Qt-less WAM: replace QJson classes usage in WAM
[SPEC-1907] Qt-less WAM: do not use Qt JSON

Signed-off-by: Nick Diego Yamane <[email protected]>
nickdiego added 15 commits June 17, 2019 09:12
This patch refactors WebAppWayland::setWindowProperty() method, removing
its dependency on QVariant. As most of its used was using QString and in
the end the value gets convered to a std::string the solution adopted
was to modify its parameter to a std::string.

[SPEC-1911] Qt-less WAM: replace qt basic data structures

Signed-off-by: Nick Diego Yamane <[email protected]>
[SPEC-1911] Qt-less WAM: replace qt basic data structures

Signed-off-by: Nick Diego Yamane <[email protected]>
[SPEC-1911] Qt-less WAM: replace qt basic data structures

Signed-off-by: Nick Diego Yamane <[email protected]>
[SPEC-1911] Qt-less WAM: replace qt basic data structures

Signed-off-by: Nick Diego Yamane <[email protected]>
[SPEC-1911] Qt-less WAM: replace qt basic data structures

Signed-off-by: Nick Diego Yamane <[email protected]>
[SPEC-1911] Qt-less WAM: replace qt basic data structures

Signed-off-by: Nick Diego Yamane <[email protected]>
- The main goal of this patch is to remove WAM dependency on QUrl
implementation for Url Parsing and convenience API. To do that, we're
adding our own Url API, which in this initial version leverages GLib URI
Functions [1] for basic URI parsing and escaping.

- Also, as the code handling URLs in WAM is mostly tied to
QFile/QDir/QFileInfo manipulation, this patch also refactor that to use
Boost Filesystem module instead. It's worth noting it depends on a
modified version os meta-agl-lge (which include boost as dependency) to
build properly. This integration is still very primitive and will be
improved soon once we have WAM build system ported from qmake to CMake.

[SPEC-1911] Qt-less WAM: replace qt basic data structures

Signed-off-by: Nick Diego Yamane <[email protected]>
- This patch removes QVariant usage from PalmSystem* and
WebAppManagerConfig classes.
- Completely remove PalmSystemBase::getResource() and
WebAppManagerConfig::get/setConfiguration() since they are not being
used anywhere else.
- Modify PalmSystemWebOS's pmLog* functions that were expecting
QVariants as parameter to receive std::strings instead, since they were
being used only with QStrings.
- Anyway, if we really need those methods/variables in the future we can
use boost::any to replace QVariant basic functionality.

[SPEC-1911] Qt-less WAM: replace qt basic data structures

Signed-off-by: Nick Diego Yamane <[email protected]>
- This patch removes QLocale usage from WAM. It was being
used in WebPageBlink, to generate search path for localized
error pages.
- The previous implementation assumed QLocale::bcp47Name()
function returns an IETF Language Tag (BCP 47) string for
language string got from DeviceInfo API. Even though after
some tests with Qt API, it seems that bcp47Name() is not being
including 'script' field even when it's passed in the input string,
this path implements a boost-based genPathForLang() function that
returns a similar formatted path assuming the input string follows
the format decribed in QLocale documentation [1]

[1] http://doc.qt.io/qt-5/qlocale.html#QLocale-1

[SPEC-1911] Qt-less WAM: replace qt basic data structures

Signed-off-by: Nick Diego Yamane <[email protected]>
[SPEC-1911] Qt-less WAM: replace qt basic data structures

Signed-off-by: Nick Diego Yamane <[email protected]>
[SPEC-1911] Qt-less WAM: replace qt basic data structures

Signed-off-by: Nick Diego Yamane <[email protected]>
For now, Qt::Core is kept as dependency on non-AGL (WebOSOSE) build os
WAM. That dependency will be removed in a followup patch.

Signed-off-by: Nick Diego Yamane <[email protected]>
Since at this point no QObject is used as std::map key,
it's safe and easier fully migrate to more efficient
std::unordered_{map,multimap}.

Signed-off-by: Nick Diego Yamane <[email protected]>
TODO: Verify/fix webos build

Signed-off-by: Nick Diego Yamane <[email protected]>

################################################################################
# Decide MACHINE_NAME and PLATFORM

MACHINE_NAME = $$(MACHINE)
MACHINE_NAME = "minnowboard"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Oops, this needs to be fixed. If AGL is now using cmake, I guess we can avoid the AGL specific changes in qmake?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sure. We can forget about this patch.

#fi

#exec $WAM_EXE_PATH $WAM_SWITCHES $WAM_EXTRA_SKIA_CACHE_SWITCHES $WAM_EXTRA_GPU_TUNING_SWITCHES $WAM_WATCHDOG_RENDER_TIMEOUT_SWITCHES $WAM_EXTRA_FLAGS $WAM_V8_CODE_CACHE_SWITCHES --js-flags="$WAM_JS_FLAGS"

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We need some cleanup here: remove all the comments, then move the launch files for AGL to an independent folder.

RestartSec=50

[Install]
WantedBy=default.target
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, as said, it'd be better to move this to an independent folder. I.e. files/launch/agl/...

antiapuentes added a commit to Igalia/webosose-wam that referenced this pull request Jun 20, 2019
antiapuentes added a commit to Igalia/webosose-wam that referenced this pull request Jun 20, 2019
antiapuentes added a commit to Igalia/webosose-wam that referenced this pull request Jun 20, 2019
antiapuentes added a commit to Igalia/webosose-wam that referenced this pull request Jun 20, 2019
[Review]:
webosose#19 (comment)
webosose#19 (comment)

[Note]: Needs change in the wam recipe to update the paths for
WebAppMgr.service and WebAppMgr.env.
antiapuentes added a commit to Igalia/webosose-wam that referenced this pull request Jun 20, 2019
antiapuentes added a commit to Igalia/webosose-wam that referenced this pull request Jun 20, 2019
antiapuentes added a commit to Igalia/webosose-wam that referenced this pull request Jun 20, 2019
[Review]:
webosose#19 (comment)
webosose#19 (comment)

[Note]: Needs change in the wam recipe to update the paths for
WebAppMgr.service and WebAppMgr.env.
jaragunde and others added 7 commits June 25, 2019 11:09
Fixes error:
libWebAppMgr.so: undefined reference to `ilm_init'

This seems to be required in master/halibut.

AGL-bug: SPEC-2532

Signed-off-by: Jacobo Aragunde Pérez <[email protected]>
Fixes error:
ld: warning: libWebAppMgrCore.so.1.0, needed by src/libWebAppMgr.so.1.0.0, not found (try using -rpath or -rpath-link)
ld: src/libWebAppMgr.so.1.0.0: undefined reference to `WebPageBase::handleLoadStarted()'

AGL-bug: SPEC-2532

Signed-off-by: Jacobo Aragunde Pérez <[email protected]>
AGL-bug: SPEC-2327

Signed-off-by: Antia Puentes <[email protected]>
This is required by the new AGL configuration, which runs wam on a
per-user basis.

Bug-AGL: SPEC-2684

Signed-off-by: Jacobo Aragunde Pérez <[email protected]>
WAM is not receiving the Active/Inactive events from the Window
Manager when the webapp becomes visible/invisible so, react to the
Visible/Invisible events to resume/suspend the webapp instead.

AGL-bug: SPEC-1948

Signed-off-by: Antia Puentes <[email protected]>
When the envvar WAIT_FOR_HOST_SERVICE is set to "1", the launcher
process will wait for the shared WAM service to be enabled, instead of
attempting to run in single browser process mode.

This will be useful when webapps are auto-started on init, which could
mean that the launcher starts before the shared WAM service is ready.

For this to work, we will have to add the envvar to the corresponding
.service files for webapps, which are generated by the app framework
when a .wgt is installed.

AGL-bug: SPEC-2793

Signed-off-by: Jacobo Aragunde Pérez <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

10 participants