SPEC-3723: restructure meta-agl-demo
[AGL/meta-agl-demo.git] / recipes-wam / wam / files / trunc-webapp-roles.patch
diff --git a/recipes-wam/wam/files/trunc-webapp-roles.patch b/recipes-wam/wam/files/trunc-webapp-roles.patch
new file mode 100644 (file)
index 0000000..829abe0
--- /dev/null
@@ -0,0 +1,56 @@
+From f31e93261f34abaa3dcdc4959963f5b5a8983002 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Jan-Simon=20M=C3=B6ller?= <jsmoeller@linuxfoundation.org>
+Date: Thu, 25 Jun 2020 19:47:24 +0200
+Subject: [PATCH] Set webapp roles that are max 12 characters long.
+
+From: =?UTF-8?q?Jacobo=20Aragunde=20P=C3=A9rez?= <jaragunde@igalia.com>
+
+This is a workaround for SPEC-3127. To prevent repeated roles as much
+as possible, I'm using the appid as a basis instead of "Webapp-" +
+host + port, which has many chances to be redundant in the first 12
+chars.
+
+Bug-AGL: SPEC-3127
+
+---
+ src/agl/WebRuntimeAGL.cpp | 10 +++-------
+ 1 file changed, 3 insertions(+), 7 deletions(-)
+
+diff --git a/src/agl/WebRuntimeAGL.cpp b/src/agl/WebRuntimeAGL.cpp
+index aed928b..efd2ee4 100644
+--- a/src/agl/WebRuntimeAGL.cpp
++++ b/src/agl/WebRuntimeAGL.cpp
+@@ -274,7 +274,6 @@ int WebAppLauncherRuntime::run(int argc, const char** argv) {
+   m_id = getAppId(args);
+   m_url = getAppUrl(args);
+-  m_role = "WebApp";
+   setup_signals();
+@@ -326,15 +325,9 @@ bool WebAppLauncherRuntime::init() {
+       if (n != std::string::npos) {
+         std::string sport = authority.substr(n+1);
+         m_host = authority.substr(0, n);
+-        m_role.push_back('-');
+-        m_role.append(m_host);
+-        m_role.push_back('-');
+-        m_role.append(sport);
+         m_port = stringTo<int>(sport);
+       } else {
+         m_host = authority;
+-        m_role.push_back('-');
+-        m_role.append(m_host);
+       }
+     }
+@@ -375,6 +368,9 @@ bool WebAppLauncherRuntime::init() {
+       m_role = "homescreen";
+     else if (m_id.rfind("webapps-homescreen", 0) == 0)
+       m_role = "homescreen";
++    else {
++      m_role = m_id.substr(0,12);
++    }
+     LOG_DEBUG("id=[%s], name=[%s], role=[%s], url=[%s], host=[%s], port=%d, token=[%s], width=[%s], height[%s], surface_type[%d], panel_type[%d]",
+             m_id.c_str(), m_name.c_str(), m_role.c_str(), m_url.c_str(),