naiveproxy/chrome/common/plugin.mojom
2018-02-02 05:49:39 -05:00

115 lines
3.7 KiB
Plaintext

// 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/common/file_path.mojom";
import "mojo/common/string16.mojom";
import "url/mojo/origin.mojom";
import "url/mojo/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.common.mojom.FilePath file_path);
// Notifies when a plugin couldn't be loaded because it's outdated.
BlockedOutdatedPlugin(PluginRenderer plugin_renderer,
string group_id);
// Notifies when a plugin couldn't be loaded because it requires a
// component update.
BlockedComponentUpdatedPlugin(PluginRenderer plugin_renderer,
string group_id);
};
// 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.common.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,
kPlayImportantContent,
kRestartRequired,
kUnauthorized,
};
struct PluginInfo {
PluginStatus status;
content.mojom.WebPluginInfo plugin;
string actual_mime_type;
string group_identifier;
mojo.common.mojom.String16 group_name;
};
struct PluginParam {
mojo.common.mojom.String16 name;
mojo.common.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);
// Returns whether any internal plugin supporting |mime_type| is registered
// and enabled. Does not determine whether the plugin can actually be
// instantiated (e.g. whether it has all its dependencies).
// When a plugin is available, the returned |additional_params| contain the
// name-value pairs, if any, specified for the *first* non-disabled plugin
// found that is registered for |mime_type|.
[Sync]
IsInternalPluginAvailableForMimeType(string mime_type) => (
array<PluginParam>? additional_params);
};
// 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();
};