// Copyright (c) 2019 GitHub, Inc. // Use of this source code is governed by the MIT license that can be // found in the LICENSE file. #include "atom/app/manifests.h" #include "base/no_destructor.h" #include "printing/buildflags/buildflags.h" #include "services/proxy_resolver/proxy_resolver_manifest.h" #include "services/service_manager/public/cpp/manifest_builder.h" #if BUILDFLAG(ENABLE_PRINTING) #include "components/services/pdf_compositor/pdf_compositor_manifest.h" #endif #if BUILDFLAG(ENABLE_PRINT_PREVIEW) #include "chrome/services/printing/manifest.h" #endif const service_manager::Manifest& GetElectronContentBrowserOverlayManifest() { static base::NoDestructor manifest{ service_manager::ManifestBuilder() .WithDisplayName("Electron (browser process)") .RequireCapability("device", "device:geolocation_control") .RequireCapability("proxy_resolver", "factory") .RequireCapability("chrome_printing", "converter") .RequireCapability("pdf_compositor", "compositor") .Build()}; return *manifest; } const std::vector& GetElectronPackagedServicesOverlayManifest() { static base::NoDestructor> manifests{{ proxy_resolver::GetManifest(), #if BUILDFLAG(ENABLE_PRINTING) pdf_compositor::GetManifest(), #endif #if BUILDFLAG(ENABLE_PRINT_PREVIEW) chrome_printing::GetManifest(), #endif }}; return *manifests; }