electron/shell/common/extensions/api/pdf_viewer_private.idl
BILL SHEN 6dc3923b93
fix: add missed enum SaveRequestType to PdfViewerPrivate function (#48409)
fix: add missed SaveRequestType enum to PdfViewerPrivate function

Co-authored-by: trop[bot] <37223003+trop[bot]@users.noreply.github.com>
2025-10-03 10:59:30 -05:00

93 lines
3.4 KiB
Text

// 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.
// Use the <code>chrome.pdfViewerPrivate</code> API for specific browser
// functionality that the PDF Viewer needs from outside the PDF plugin. This API
// is exclusively for the PDF Viewer.
namespace pdfViewerPrivate {
// Must match `SaveRequestType` in `pdf/mojom/pdf.mojom` and
// `tools/typescript/definitions/pdf_viewer_private.d.ts`.
enum SaveRequestType {
ANNOTATION,
ORIGINAL,
EDITED,
SEARCHIFIED
};
// Nearly identical to mimeHandlerPrivate.StreamInfo, but without a mime type
// nor a response header field. Those fields are unused by the PDF viewer.
dictionary StreamInfo {
// The original URL that was intercepted.
DOMString originalUrl;
// The URL that the stream can be read from.
DOMString streamUrl;
// The ID of the tab that opened the stream. If the stream is not opened in
// a tab, it will be -1.
long tabId;
// Whether the stream is embedded within another document.
boolean embedded;
};
// Identical to mimeHandlerPrivate.StreamInfo.
dictionary PdfPluginAttributes {
// The background color in ARGB format for painting. Since the background
// color is an unsigned 32-bit integer which can be outside the range of
// "long" type, define it as a "double" type here.
double backgroundColor;
// Indicates whether the plugin allows to execute JavaScript and maybe XFA.
// Loading XFA for PDF forms will automatically be disabled if this flag is
// false.
boolean allowJavascript;
};
callback GetStreamInfoCallback = void(StreamInfo streamInfo);
callback IsAllowedLocalFileAccessCallback = void(boolean result);
callback VoidCallback = void();
interface Functions {
// Returns the StreamInfo for the stream for this context if there is one.
static void getStreamInfo(
GetStreamInfoCallback callback);
// Determines if the given URL should be allowed to access local files from
// the PDF Viewer. |callback|: Called with true if URL should be allowed to
// access local files from the PDF Viewer, false otherwise.
static void isAllowedLocalFileAccess(
DOMString url,
IsAllowedLocalFileAccessCallback callback);
// Sends a request to save the PDF to Google Drive if `saveRequestType` is
// set. Otherwise, if `saveRequestType` is not set, the default action is
// to cancel the existing upload.
static void saveToDrive(
optional SaveRequestType saveRequestType,
optional VoidCallback callback);
// Sets the current tab title to `title` for a full-page PDF.
static void setPdfDocumentTitle(
DOMString title,
optional VoidCallback callback);
// Sets PDF plugin attributes in the stream for this context if there is
// one.
static void setPdfPluginAttributes(
PdfPluginAttributes attributes,
optional VoidCallback callback);
};
interface Events {
// Fired when the browser wants the listener to perform a save.
// `streamUrl`: Unique ID for the instance that should perform the save.
static void onSave(DOMString streamUrl);
// Fired when the browser wants the listener to update the viewport based on
// a different PDF URL.
// `pdfUrl`: The string of the PDF URL that should update the viewport.
static void onShouldUpdateViewport(DOMString pdfUrl);
};
};