| // Copyright 2017 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| module chrome.mojom; |
| |
| import "content/public/common/webplugininfo.mojom"; |
| import "mojo/public/mojom/base/file_path.mojom"; |
| import "mojo/public/mojom/base/string16.mojom"; |
| import "url/mojom/origin.mojom"; |
| import "url/mojom/url.mojom"; |
| |
| |
| // Plugin messages sent from renderer to the host. |
| interface PluginHost { |
| // Tells the browser to show the Flash permission bubble in the same tab. |
| ShowFlashPermissionBubble(); |
| |
| // Tells the browser that there was an error loading a plugin. |
| CouldNotLoadPlugin(mojo_base.mojom.FilePath file_path); |
| |
| // Notifies when a plugin couldn't be loaded because it's outdated. |
| BlockedOutdatedPlugin(pending_remote<PluginRenderer> plugin_renderer, |
| string group_id); |
| |
| // Notifies when a plugin couldn't be loaded because it requires a |
| // component update. |
| BlockedComponentUpdatedPlugin(pending_remote<PluginRenderer> plugin_renderer, |
| string group_id); |
| |
| // Tells the browser to open a PDF file. Used when no PDF Viewer is |
| // available, and the user clicks to view a PDF from the placeholder UI. |
| OpenPDF(url.mojom.Url url); |
| }; |
| |
| // Plugin messages sent from renderer to the host requiring user auth actions. |
| interface PluginAuthHost { |
| // Notifies when a plugin couldn't be loaded because it requires |
| // user authorization. |
| BlockedUnauthorizedPlugin(mojo_base.mojom.String16 name, string group_id); |
| }; |
| |
| // These are only used internally, so the order does not matter. |
| enum PluginStatus { |
| kAllowed, |
| // Plugin is blocked, but still can be manually loaded via context menu. |
| kBlocked, |
| // Plugin is blocked by policy, so it cannot be manually loaded. |
| kBlockedByPolicy, |
| // Plugin is blocked, and cannot be manually loaded via context menu. |
| kBlockedNoLoading, |
| kComponentUpdateRequired, |
| kDisabled, |
| // Flash is blocked, but user can click on the placeholder to trigger the |
| // Flash permission prompt. |
| kFlashHiddenPreferHtml, |
| kNotFound, |
| kOutdatedBlocked, |
| kOutdatedDisallowed, |
| // Similar to kOutdatedBlocked or kOutdatedDisallowed, but with no hope of |
| // updating and running. This is distinct to allow for separate UI treatment. |
| kDeprecated, |
| kPlayImportantContent, |
| kRestartRequired, |
| kUnauthorized, |
| }; |
| |
| struct PluginInfo { |
| PluginStatus status; |
| content.mojom.WebPluginInfo plugin; |
| string actual_mime_type; |
| string group_identifier; |
| mojo_base.mojom.String16 group_name; |
| }; |
| |
| struct PluginParam { |
| mojo_base.mojom.String16 name; |
| mojo_base.mojom.String16 value; |
| }; |
| |
| interface PluginInfoHost { |
| // Return information about a plugin for the given URL and MIME type. |
| // Includes specific reasons why a plugin can't be used, for example because |
| // it's disabled. |
| [Sync] |
| GetPluginInfo(int32 render_frame_id, |
| url.mojom.Url url, |
| url.mojom.Origin origin, |
| string mime_type) => (PluginInfo plugin_info); |
| }; |
| |
| // Plugin messages sent from a host to the renderer. |
| interface PluginRenderer { |
| |
| // Notifies a missing plugin placeholder that we have finished downloading |
| // the plugin. |
| FinishedDownloading(); |
| |
| // Notifies a missing plugin placeholder that we have finished component- |
| // updating the plug-in. |
| UpdateSuccess(); |
| |
| // Notifies a missing plugin placeholder that we have failed to |
| // component-update the plug-in. |
| UpdateFailure(); |
| |
| // Notifies a missing plugin placeholder that we have started the component |
| // download. |
| UpdateDownloading(); |
| }; |