| // Copyright 2015 The Chromium Authors |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| module extensions.mime_handler; |
| |
| // Information about a stream. |
| struct StreamInfo { |
| // The MIME type of the intercepted URL request. |
| string mime_type; |
| |
| // The original URL that was intercepted. |
| string original_url; |
| |
| // The URL that the stream can be read from. |
| string stream_url; |
| |
| // The ID of the tab that opened the stream. If the stream is not opened in a |
| // tab, it will be -1. |
| int32 tab_id; |
| |
| // The HTTP response headers of the intercepted request stored as a dictionary |
| // mapping header name to header value. If a header name appears multiple |
| // times, the header values are merged in the dictionary and separated by a |
| // ",". Non-ASCII headers are dropped. |
| map<string, string> response_headers; |
| |
| // Whether the stream is embedded within another document. |
| bool embedded; |
| }; |
| |
| // Attributes to be used for generating a response synthesized to load the |
| // actual PDF plugin. |
| struct PdfPluginAttributes { |
| // The background color in ARGB format for painting. Use type "double" here to |
| // sync with its type in `mimeHandlerPrivate` API. |
| double background_color; |
| |
| // Indicates whether the plugin should allow running JavaScript. Loading XFA |
| // for PDF forms will automatically be disabled if this flag is false. |
| bool allow_javascript; |
| }; |
| |
| // Provides a mime handler guest methods to get and modify the stream associated |
| // with this service. An instance of this interface is passed from the |
| // embedding renderer to the browser when creating the mime handler guest. |
| interface MimeHandlerService { |
| // Returns information about the stream associated with this service instance. |
| // If the stream has been aborted, |stream_info| will be null. |
| GetStreamInfo() => (StreamInfo? stream_info); |
| |
| // Sets the attributes specified by the PDF extension UI into the stream |
| // associated with this service instance. This allows the attributes to be |
| // used for creating the PDF plugin inside the browser process. |
| SetPdfPluginAttributes(PdfPluginAttributes pdf_plugin_attributes); |
| }; |
| |
| // Provides a mime handler guest with control over beforeunload event handling |
| // when running in a PluginDocument. |
| // |
| // For full-frame mime handler guests, an instance of this interface is passed |
| // from the embedding renderer to the browser when creating the mime handler |
| // guest. If the frame hosting the guest requests this interface from the |
| // browser, that instance is provided to the guest. |
| interface BeforeUnloadControl { |
| // Instructs the containing PluginDocument whether to show a beforeunload |
| // dialog. |
| SetShowBeforeUnloadDialog(bool show_dialog) => (); |
| }; |