// 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. // `file_handlers` manifest key defintion. File Handlers allow developers to // let extensions interact with files on the operating system. This manifest key // can be used by developers to register an extension to a given file type. [generate_error_messages] namespace fileHandlers { // Icon specification similar to an ImageResource. dictionary Icon { // TODO(crbug.com/40238266) Add `DOMString? label;` for accessibility. // URL from which a user agent can fetch image data. DOMString src; // Multiple space-separated size values to also accommodate image formats // that can act as containers for multiple images of varying dimensions: // e.g. "16x16", "16x16 32x32". DOMString? sizes; // MIME type is purely advisory with no default value. DOMString? type; }; // A FileHandler registers the ability to read, stream, or edit files of given // MIME types and/or file extensions. dictionary FileHandler { // A mapping of one or more MIME types to one or more file extensions. // e.g. "accept": {"text/csv": ".csv"} or {"text/csv": [".csv", ".txt"]}. object accept; // Specifies the url after the origin that is the navigation destination for // file handling launches. DOMString action; // Description of the file type. DOMString name; // Array of ImageResources. Only icons declared at the manifest level are // currently supported. The icon for the extension will appear in the "Open" // menu. Icon[]? icons; // Whether multiple files should be opened in a single client or multiple. // Defaults to `single-client`, which makes all files available in only one // tab. `multiple-client` opens a new tab for each file. DOMString? launch_type; }; dictionary ManifestKeys { // File Handlers to register onto the target system. FileHandler[]? file_handlers; }; };