// Copyright 2022 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. module screen_ai.mojom; import "mojo/public/mojom/base/file.mojom"; import "mojo/public/mojom/base/file_path.mojom"; import "sandbox/policy/mojom/sandbox.mojom"; import "services/screen_ai/public/mojom/screen_ai_service.mojom"; import "ui/accessibility/ax_features.mojom"; // An interface to handle shutdowns of ScreenAI service. [ServiceSandbox=sandbox.mojom.Sandbox.kScreenAI] interface ScreenAIServiceShutdownHandler { // Called to inform that the service is shutting down since it was idle. ShuttingDownOnIdle(); }; // The service runs in a sandboxed process to run Screen AI service library. The // library provides two AI modules: // 1) An image processing module to analyze snapshots of the browser or an // image in a PDF and add more details to the accessibility tree. // 2) A text processing module that receives the accessibility tree and // returns the main content of the tree. // The services require initialization before running. This factory interface // binds interfaces to the actual services after library load and initialization // for each of them. [ServiceSandbox=sandbox.mojom.Sandbox.kScreenAI] interface ScreenAIServiceFactory { // Triggers the service to load and initialize the Screen AI library at // |library_path| for OCR. Model files are read from |library_path| folder. // This should be called from the browser process. // |model_files| includes a map from file paths relative the the library base // path, to opened file handles. The list of files is downloaded with the // component. The file handles will be closed once the file is read. [RuntimeFeature=ax.mojom.features.kScreenAIOCREnabled] InitializeOCR( mojo_base.mojom.FilePath library_path, map model_files, pending_receiver? ocr_service_receiver) => (bool initialized); // Triggers the service to load and initialize the Screen AI library at // |library_path| for main content extraction. // This should be called from the browser process. // |model_files| includes a map from file paths relative to the library base // path, to opened file handles. The list of files is downloaded with the // component. The file handles will be closed once the file is read. [RuntimeFeature=ax.mojom.features.kScreenAIMainContentExtractionEnabled] InitializeMainContentExtraction( mojo_base.mojom.FilePath library_path, map model_files, pending_receiver? main_content_extractor_service) => (bool initialized); // Sets the shutdown handler. BindShutdownHandler( pending_remote shutdown_handler); };