# apparmor.d - Full set of apparmor profiles
# Copyright (C) 2026 Alexandre Pujol <alexandre@pujol.io>
# SPDX-License-Identifier: GPL-2.0-only

abi <abi/4.0>,

include <tunables/global>

@{domain} = org.chromium.Chromium

@{exec_path} = @{bin}/qutebrowser
@{att} = ""
profile qutebrowser /{,usr/}bin/qutebrowser {
  include <abstractions/base-strict>
  include <abstractions/common/chromium>
  include <abstractions/desktop>
  include <abstractions/graphics>
  include <abstractions/nameservice-strict>
  include <abstractions/python>
  include <abstractions/ssl_certs>
  include <abstractions/user-download-strict>

  network inet dgram,
  network inet stream,
  network inet6 dgram,
  network inet6 stream,
  network netlink raw,

  unix (bind listen) type=stream,

  @{exec_path} mrix,

  @{python_path} rix,
  @{lib}/qt6/{,libexec/}QtWebEngineProcess ix,

  owner @{user_config_dirs}/chromium/WidevineCdm/** mr,
  owner @{user_config_dirs}/qutebrowser/ rw,
  owner @{user_config_dirs}/qutebrowser/** rwlk -> @{user_config_dirs}/qutebrowser/**,

  owner @{user_cache_dirs}/qutebrowser/ w,
  owner @{user_cache_dirs}/qutebrowser/** rw,

  owner @{user_share_dirs}/qutebrowser/ rw,
  owner @{user_share_dirs}/qutebrowser/** rwlk -> @{user_share_dirs}/qutebrowser/**,

  owner @{run}/user/@{uid}/qutebrowser/ w,
  owner @{run}/user/@{uid}/qutebrowser/ipc-* w,

  include if exists <local/qutebrowser>
}

# vim:syntax=apparmor
