chromium/chrome/common/extensions/api/image_loader_private.idl

// Copyright 2023 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

// imageLoaderPrivate API.
// This is a private API used by the ChromeOS FilesApp ImageLoader extension.
[platforms=("chromeos"),
 implemented_in="chrome/browser/ash/extensions/file_manager/image_loader_private_api.h"]
namespace imageLoaderPrivate {
  // |thumbnailDataUrl| A data URL for the thumbnail; |thumbnailDataUrl| is
  // empty if no thumbnail was available.
  callback GetThumbnailCallback = void(DOMString thumbnailDataUrl);

  interface Functions {
    // For a file in DriveFS, retrieves its thumbnail. If |cropToSquare| is
    // true, returns a thumbnail appropriate for file list or grid views;
    // otherwise, returns a thumbnail appropriate for quickview.
    [doesNotSupportPromises]
    static void getDriveThumbnail(DOMString url,
                                  boolean cropToSquare,
                                  GetThumbnailCallback callback);

    // For a local PDF file, retrieves its thumbnail with a given |width| and
    // |height|.
    [doesNotSupportPromises]
    static void getPdfThumbnail(DOMString url,
                                long width,
                                long height,
                                GetThumbnailCallback callback);

    // Retrieves a thumbnail of an ARC DocumentsProvider file, closely matching
    // the hinted size specified by |widthHint| and |heightHint|, but not
    // necessarily the exact size. |callback| is called with thumbnail data
    // encoded as a data URL. If the document does not support thumbnails,
    // |callback| is called with an empty string.
    // Note: The thumbnail data may originate from third-party application code,
    // and is untrustworthy (Security).
    [doesNotSupportPromises]
    static void getArcDocumentsProviderThumbnail(DOMString url,
                                                 long widthHint,
                                                 long heightHint,
                                                 GetThumbnailCallback callback);
  };
};