Classic confinement approved but still blocked for linkyfy upload

name: linkyfy

description: Linkyfy is a PySide6 desktop application for LinkedIn automation. It uses Selenium and undetected-chromedriver to launch and control a real browser session, supports persistent browser profile data, and supports authenticated proxy workflows.

snapcraft: PRIVATE

upstream: PRIVATE

upstream-relation: Original developer and publisher

supported-category: none / requesting reviewer guidance

reasoning: Linkyfy currently needs classic confinement because it depends on discovering and launching a real host browser installation rather than only software bundled inside the snap.

In its current architecture, the application:

  • detects browser binaries from standard host system locations
  • launches and controls an external Chrome/Chromium process through Selenium and undetected-chromedriver
  • relies on persistent browser profile/runtime state for automation workflows
  • supports authenticated local proxy workflows that are part of normal operation

Because of this, the currently available interfaces under strict confinement are not sufficient for the app in its current design. Supporting strict confinement would require a significant redesign of how browser execution is handled.

I understand that strict confinement is generally preferred over classic.

I’ve reviewed the available interfaces, and the app still requires host browser discovery and host browser process control, so strict confinement is not sufficient in its current form.

Also, I believe this classic request may already have been approved, but uploads for the linkyfy snap are still failing with:

(NEEDS REVIEW) confinement ‘classic’ not allowed

Could someone please confirm whether the classic snap declaration has actually been applied in the store for the snap name linkyfy and for this publisher account?

Following up on this request for linkyfy.

I uploaded a new build of the snap, and the latest upload still fails only on classic confinement review.

The package passes the other checks, but the store still reports:

(NEEDS REVIEW) confinement ‘classic’ not allowed

Could a reviewer please confirm whether classic confinement has been approved and applied for the linkyfy snap under this publisher account? If not, please review this request based on the latest uploaded build.

Thank you.

Hello @ravi-kotwani.

Classic confinement has not been already granted, as the official way to request it, is the one outlined here.

The snap is not a good candidate for classic conifinement, as it does not fall under one of the supported categories, included in the aforementioned post (#reject). However, the browser-support plug, could be really helpful in your case.

hello @yomonokio

Thank you for the clarification and for suggesting the browser-support plug.

We are currently using browser-support in strict confinement, but we are running into an issue launching Chrome programmatically via ChromeDriver (Selenium automation). Chrome is bundled inside the snap at build time, but it exits immediately with a non-zero status when launched as a subprocess from within the snap environment.

We have already applied the standard flags for sandboxless Chrome (--no-sandbox, --disable-setuid-sandbox, --no-zygote, --disable-gpu) and the snap has browser-support, network, x11, home, and desktop plugs connected. Despite this, Chrome fails to start — it appears the browser-support plug without allow-sandbox: true may not grant sufficient permissions for Chrome to initialise its internal process model.

Our questions:

  1. Would browser-support with allow-sandbox: true resolve this, and is that reviewable for our use case?

  2. Are there any additional plugs or snap interfaces we should be using to allow a bundled Chrome binary to launch and accept ChromeDriver connections inside strict confinement?

  3. Is there a recommended pattern for snaps that need to drive a Chromium-based browser for automation (similar to how the Chromium snap itself is structured)?

We are committed to making strict confinement work and appreciate any guidance you can offer.

Have you tried using the snappy-debug tool and run it alongside your snap ? That should make suggestions for any still missing plugs … Many plugs are also not automatically connecting, make sure you used the snap connect … command to connect them to their respective slots …