Parent: AGENTS.md
/docs/chrome_browser_design_principles.md/docs/dependencies.mdHigher layers may depend on lower layers; lower layers must never depend on higher layers:
chrome/browser/apps/app_service/ (publishes & consumes web apps)chrome/browser/web_applications/, chrome/browser/ui/web_applications/chrome/android/ (Java UI), chrome/browser/android/webapk/ (Native C++)components/webapps/browser/ (Core), components/webapps/browser/android/, components/webapps/common/, components/webapps/renderer/, components/webapps/isolated_web_apps/content/browser/manifest/, content/public/third_party/blink/public/common/manifest/, third_party/blink/renderer/chrome/browser/apps/app_service/publishers/) observing web app state. WebAppProvider must not call into App Service.components/services/app_service/public/cpp/. crbug.com/523338828 tracks uncoupling this.//components/services/app_service or apps:: types in web_applications/ or components/webapps/. Always define or use webapps:: types.ExtensionsManager abstraction. Never introduce direct extensions/ dependencies into Web Apps.chrome/android/.../webapps) call native services (chrome/browser/android/webapk/) via JNI.components/webapps/browser/android/.WebappsClient:components/webapps/ must never include +chrome/ headers. It calls up to Android or Desktop embedders exclusively via the abstract WebappsClient interface.