Send process ID that created surface to client. 03/5503/5
authorWataru Natsume <wnatsume@jp.adit-jv.com>
Fri, 8 Apr 2016 01:54:06 +0000 (10:54 +0900)
committerGerrit Code Review <gerrit@172.30.200.200>
Wed, 20 Apr 2016 13:32:23 +0000 (13:32 +0000)
createPid should be a pid of process that creates surface.
This patch is ported from Genivi.

Add null check of surface.

Change-Id: I28fdf7ccb1f9f95a40521aed955713bf90300c2d
Signed-off-by: Wataru Natsume <wnatsume@jp.adit-jv.com>
meta-ivi-common/recipes-graphics/wayland/wayland-ivi-extension/0001-Send-process-ID-that-created-surface-to-client.patch [new file with mode: 0644]
meta-ivi-common/recipes-graphics/wayland/wayland-ivi-extension_1.5.0.bbappend [new file with mode: 0644]

diff --git a/meta-ivi-common/recipes-graphics/wayland/wayland-ivi-extension/0001-Send-process-ID-that-created-surface-to-client.patch b/meta-ivi-common/recipes-graphics/wayland/wayland-ivi-extension/0001-Send-process-ID-that-created-surface-to-client.patch
new file mode 100644 (file)
index 0000000..5c29d90
--- /dev/null
@@ -0,0 +1,43 @@
+From f4adf64d979944aa80f1ba5dba4ed991b6620162 Mon Sep 17 00:00:00 2001
+From: Wataru Natsume <wnatsume@jp.adit-jv.com>
+Date: Tue, 23 Feb 2016 11:14:53 +0900
+Subject: [PATCH] ivi-controller: Send process ID that created surface to
+ client.
+
+createPid should be a pid of process that creates surface.
+
+Signed-off-by: Wataru Natsume <wnatsume@jp.adit-jv.com>
+---
+ weston-ivi-shell/src/ivi-controller-impl.c | 13 ++++++++++++-
+ 1 file changed, 12 insertions(+), 1 deletion(-)
+
+diff --git a/weston-ivi-shell/src/ivi-controller-impl.c b/weston-ivi-shell/src/ivi-controller-impl.c
+index f4e29ce..57bf5cc 100644
+--- a/weston-ivi-shell/src/ivi-controller-impl.c
++++ b/weston-ivi-shell/src/ivi-controller-impl.c
+@@ -603,10 +603,21 @@ controller_surface_send_stats(struct wl_client *client,
+                               struct wl_resource *resource)
+ {
+     struct ivisurface *ivisurf = wl_resource_get_user_data(resource);
++    struct weston_surface *surface;
++    struct wl_client* target_client;
+     pid_t pid;
+     uid_t uid;
+     gid_t gid;
+-    wl_client_get_credentials(client, &pid, &uid, &gid);
++
++    /* Get pid that created surface */
++    surface = ivi_extension_surface_get_weston_surface(ivisurf->shell,
++                                                       ivisurf->layout_surface);
++    if (!surface)
++        return;
++
++    target_client = wl_resource_get_client(surface->resource);
++
++    wl_client_get_credentials(target_client, &pid, &uid, &gid);
+     ivi_controller_surface_send_stats(resource, 0, 0,
+                                       ivisurf->update_count, pid, "");
+-- 
+1.8.3.1
+
diff --git a/meta-ivi-common/recipes-graphics/wayland/wayland-ivi-extension_1.5.0.bbappend b/meta-ivi-common/recipes-graphics/wayland/wayland-ivi-extension_1.5.0.bbappend
new file mode 100644 (file)
index 0000000..f68ba71
--- /dev/null
@@ -0,0 +1,7 @@
+FILESEXTRAPATHS_prepend := ":${THISDIR}/wayland-ivi-extension:"
+
+
+SRC_URI_append = " \
+                  file://0001-Send-process-ID-that-created-surface-to-client.patch \
+                 "
+