diff --git a/interfaces/builtin/unity7.go b/interfaces/builtin/unity7.go index 7961a7dc8c..6e75b2b1f2 100644 --- a/interfaces/builtin/unity7.go +++ b/interfaces/builtin/unity7.go @@ -406,6 +406,10 @@ dbus (bind) bus=session name=org.kde.StatusNotifierItem-[0-9]*, +dbus (bind) + bus=session + name=org.freedesktop.StatusNotifierItem-[0-9]*-[0-9]*, + dbus (send) bus=session path=/StatusNotifierWatcher @@ -422,28 +426,28 @@ dbus (send) dbus (send) bus=session - path=/{StatusNotifierItem,org/ayatana/NotificationItem/*} + path=/{StatusNotifierItem,org/chromium/StatusNotifierItem/[0-9]*,org/ayatana/NotificationItem/*} interface=org.kde.StatusNotifierItem member="New{AttentionIcon,Icon,IconThemePath,OverlayIcon,Status,Title,ToolTip}" peer=(label="{plasmashell,unconfined}"), dbus (receive) bus=session - path=/{StatusNotifierItem,org/ayatana/NotificationItem/*} + path=/{StatusNotifierItem,org/chromium/StatusNotifierItem/[0-9]*,org/ayatana/NotificationItem/*} interface=org.kde.StatusNotifierItem member={Activate,ContextMenu,Scroll,SecondaryActivate,ProvideXdgActivationToken,XAyatanaSecondaryActivate} peer=(label="{plasmashell,unconfined}"), dbus (send) bus=session - path=/{StatusNotifierItem/menu,org/ayatana/NotificationItem/*/Menu} + path=/{StatusNotifierItem/menu,org/chromium/DbusMenu/[0-9]*,org/ayatana/NotificationItem/*/Menu} interface=com.canonical.dbusmenu member="{LayoutUpdated,ItemsPropertiesUpdated}" peer=(label="{plasmashell,unconfined}"), dbus (receive) bus=session - path=/{StatusNotifierItem,StatusNotifierItem/menu,org/ayatana/NotificationItem/**} + path=/{StatusNotifierItem,StatusNotifierItem/menu,org/chromium/StatusNotifierItem/[0-9]*,org/chromium/DbusMenu/[0-9]*,org/ayatana/NotificationItem/**} interface={org.freedesktop.DBus.Properties,com.canonical.dbusmenu} member={Get*,AboutTo*,Event*} peer=(label="{plasmashell,unconfined}"), diff --git a/interfaces/builtin/unity7_test.go b/interfaces/builtin/unity7_test.go index a1ef1630ab..87a285d730 100644 --- a/interfaces/builtin/unity7_test.go +++ b/interfaces/builtin/unity7_test.go @@ -117,6 +117,41 @@ func (s *Unity7InterfaceSuite) TestUsedSecuritySystems(c *C) { c.Check(seccompSpec.SnippetForTag("snap.other-snap.app2"), testutil.Contains, "bind\n") } +func (s *Unity7InterfaceSuite) TestAppIndicatorAppArmor(c *C) { + apparmorSpec := apparmor.NewSpecification(s.plug.AppSet()) + err := apparmorSpec.AddConnectedPlug(s.iface, s.plug, s.slot) + c.Assert(err, IsNil) + snippet := apparmorSpec.SnippetForTag("snap.other-snap.app2") + + c.Check(snippet, testutil.Contains, `dbus (bind) + bus=session + name=org.freedesktop.StatusNotifierItem-[0-9]*-[0-9]*,`) + c.Check(snippet, testutil.Contains, `dbus (send) + bus=session + path=/{StatusNotifierItem,org/chromium/StatusNotifierItem/[0-9]*,org/ayatana/NotificationItem/*} + interface=org.kde.StatusNotifierItem + member="New{AttentionIcon,Icon,IconThemePath,OverlayIcon,Status,Title,ToolTip}" + peer=(label="{plasmashell,unconfined}"),`) + c.Check(snippet, testutil.Contains, `dbus (receive) + bus=session + path=/{StatusNotifierItem,org/chromium/StatusNotifierItem/[0-9]*,org/ayatana/NotificationItem/*} + interface=org.kde.StatusNotifierItem + member={Activate,ContextMenu,Scroll,SecondaryActivate,ProvideXdgActivationToken,XAyatanaSecondaryActivate} + peer=(label="{plasmashell,unconfined}"),`) + c.Check(snippet, testutil.Contains, `dbus (send) + bus=session + path=/{StatusNotifierItem/menu,org/chromium/DbusMenu/[0-9]*,org/ayatana/NotificationItem/*/Menu} + interface=com.canonical.dbusmenu + member="{LayoutUpdated,ItemsPropertiesUpdated}" + peer=(label="{plasmashell,unconfined}"),`) + c.Check(snippet, testutil.Contains, `dbus (receive) + bus=session + path=/{StatusNotifierItem,StatusNotifierItem/menu,org/chromium/StatusNotifierItem/[0-9]*,org/chromium/DbusMenu/[0-9]*,org/ayatana/NotificationItem/**} + interface={org.freedesktop.DBus.Properties,com.canonical.dbusmenu} + member={Get*,AboutTo*,Event*} + peer=(label="{plasmashell,unconfined}"),`) +} + func (s *Unity7InterfaceSuite) TestInterfaces(c *C) { c.Check(builtin.Interfaces(), testutil.DeepContains, s.iface) }