2023-05-02 08:27:32 +00:00
|
|
|
// 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 {
|
2024-04-09 23:59:48 +00:00
|
|
|
// 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);
|
2023-05-02 08:27:32 +00:00
|
|
|
callback IsAllowedLocalFileAccessCallback = void(boolean result);
|
|
|
|
callback IsPdfOcrAlwaysActiveCallback = void(boolean result);
|
|
|
|
callback OnPdfOcrPrefSetCallback = void(boolean result);
|
2024-04-09 23:59:48 +00:00
|
|
|
callback VoidCallback = void();
|
2023-05-02 08:27:32 +00:00
|
|
|
|
|
|
|
interface Functions {
|
2024-04-09 23:59:48 +00:00
|
|
|
// Returns the StreamInfo for the stream for this context if there is one.
|
|
|
|
static void getStreamInfo(
|
|
|
|
GetStreamInfoCallback callback);
|
|
|
|
|
2023-05-02 08:27:32 +00:00
|
|
|
// 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.
|
2024-04-09 23:59:48 +00:00
|
|
|
static void isAllowedLocalFileAccess(
|
2023-05-02 08:27:32 +00:00
|
|
|
DOMString url,
|
|
|
|
IsAllowedLocalFileAccessCallback callback);
|
|
|
|
|
|
|
|
// Determines if the preference for PDF OCR is set to run PDF OCR always.
|
|
|
|
// |callback|: Called with true if PDF OCR is set to be always active;
|
|
|
|
// false otherwise.
|
2024-04-09 23:59:48 +00:00
|
|
|
static void isPdfOcrAlwaysActive(
|
2023-05-02 08:27:32 +00:00
|
|
|
IsPdfOcrAlwaysActiveCallback callback);
|
|
|
|
|
2024-04-09 23:59:48 +00:00
|
|
|
// Sets the current tab title to `title` for a full-page PDF.
|
|
|
|
static void setPdfDocumentTitle(
|
|
|
|
DOMString title,
|
|
|
|
optional VoidCallback callback);
|
|
|
|
|
2023-05-02 08:27:32 +00:00
|
|
|
// Sets a pref value for PDF OCR.
|
|
|
|
// |value|: The new value of the pref.
|
|
|
|
// |callback|: The callback for whether the pref was set or not.
|
2024-04-09 23:59:48 +00:00
|
|
|
static void setPdfOcrPref(
|
2023-05-02 08:27:32 +00:00
|
|
|
boolean value, OnPdfOcrPrefSetCallback callback);
|
2024-04-09 23:59:48 +00:00
|
|
|
|
|
|
|
// Sets PDF plugin attributes in the stream for this context if there is
|
|
|
|
// one.
|
|
|
|
static void setPdfPluginAttributes(
|
|
|
|
PdfPluginAttributes attributes,
|
|
|
|
optional VoidCallback callback);
|
2023-05-02 08:27:32 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
interface Events {
|
|
|
|
// Fired when a pref value for PDF OCR has changed.
|
|
|
|
// |value| The pref value that changed.
|
|
|
|
static void onPdfOcrPrefChanged(boolean value);
|
2024-04-09 23:59:48 +00:00
|
|
|
|
|
|
|
// 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);
|
2023-05-02 08:27:32 +00:00
|
|
|
};
|
|
|
|
};
|