Allow unregistered applications in rba 92/25992/2
authorAnusha Gugale <external.agogale@jp.adit-jv.com>
Thu, 4 Feb 2021 07:01:05 +0000 (12:31 +0530)
committerJan-Simon Moeller <jsmoeller@linuxfoundation.org>
Thu, 4 Feb 2021 15:40:41 +0000 (15:40 +0000)
- To allow unregistered applications, set allow_unregistred_app=true
  in .ini file under core section of /etc/xdg/weston/weston.ini .

  Bug-AGL: SPEC-3738

Signed-off-by: Anusha Gugale <external.agogale@jp.adit-jv.com>
Change-Id: Ic56564ea97900df0091d92a2dd4ed1bc7cb0559f

src/policy-rba.c
src/rba_adapter.cpp
src/rba_adapter.h

index 3ace75c..243bfe1 100644 (file)
@@ -51,7 +51,7 @@ ivi_policy_rba_surface_activate(struct ivi_surface *surf, void *user_data)
                weston_log("app_id is NULL, surface activation failed.\n");
                return false;
        }
-       return rba_adapter_arbitrate(app_id);
+       return rba_adapter_arbitrate(app_id,surf->ivi);
 }
 
 static bool
index 0583f92..0609ac9 100644 (file)
@@ -28,6 +28,8 @@
 #include <unistd.h>
 
 #include "rba_adapter.h"
+#include "ivi-compositor.h"
+#include <libweston/config-parser.h>
 #include <libweston/libweston.h>
 
 #include "RBAJsonParser.hpp"
@@ -63,15 +65,26 @@ bool rba_adapter_initialize(void)
        return true;
 }
 
-bool rba_adapter_arbitrate(const char *app_id)
+bool rba_adapter_arbitrate(const char *app_id, struct ivi_compositor *ivi)
 {
+       bool allow_unregistred_app;
+       struct weston_config_section *section;
        string id(app_id);
 
        result = arb->execute(id+ "/NORMAL", true);
+       section = weston_config_get_section(ivi->config, "core", NULL, NULL);
+       weston_config_section_get_bool(section, "allow_unregistred_app",
+                                      &allow_unregistred_app, false);
 
        if (result->getStatusType() == rba::RBAResultStatusType::UNKNOWN_CONTENT_STATE) {
                weston_log("ERROR: Unknown context app: %s\n", app_id);
-               return false;
+               if(allow_unregistred_app) {
+                       result = arb->execute("unknown_app/NORMAL", true);
+                       weston_log("!!! WARNING !!! Allowed unknown application to open as allow_unregistred_app is set to 1 in config file.\n");
+                       weston_log("!!! WARNING !!! allow_unregistred_app should be disabled for release build.\n");
+               } else {
+                       return false;
+               }
        }
        if (result->getStatusType() == rba::RBAResultStatusType::FAILED ||
            result->getStatusType() == rba::RBAResultStatusType::CANCEL_ERROR) {
index 596d56e..ea1eebc 100644 (file)
@@ -30,7 +30,7 @@ extern "C" {
 #endif
 
 bool rba_adapter_initialize(void);
-bool rba_adapter_arbitrate(const char *app_id);
+bool rba_adapter_arbitrate(const char *app_id, struct ivi_compositor *ivi);
 #ifdef __cplusplus
 }
 #endif