// Copyright 2021 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
/**
* @fileoverview: This file describes the interfaces shared between the Files
* app UI and the JS code run from unstrusted_resources (as part of the
* QuickView).
* @see `//ash/webui/file_manager/untrusted_resources/` for its usage.
*/
/**
* File preview content. Sent from <files-quick-view> to a sandboxed page, as
* part of UntrustedPreviewData. |data| field holds a Blob/File, or a content
* URL. |dataType| specifies 'blob' or 'url' accordingly (other values are
* interpreted as no preview data).
* @typedef {{
* data: ?(Blob|string|undefined),
* dataType: string
* }}
*/
let FilePreviewContent;
/**
* Parameters gathered to set the Quick View dialog properties.
* @typedef {{
* type: string,
* subtype: string,
* filePath: string,
* hasTask: boolean,
* canDelete: boolean,
* sourceContent: (?FilePreviewContent|undefined),
* videoPoster: (?FilePreviewContent|undefined),
* audioArtwork: (?FilePreviewContent|undefined),
* autoplay: (?boolean|undefined),
* browsable: (?boolean|undefined),
* }}
*/
let QuickViewParams;
/**
* Preview data that we send from the trusted context (Files app) to
* the untrusted context. |type| specifies the type of file to preview ('audio',
* 'image', etc...).
* @typedef {{
* type: string,
* sourceContent: !FilePreviewContent
* }}
*/
let UntrustedPreviewData;