chromium/third_party/blink/public/mojom/plugins/plugin_registry.mojom

// Copyright 2018 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

module blink.mojom;

import "mojo/public/mojom/base/file_path.mojom";
import "mojo/public/mojom/base/string16.mojom";

struct PluginMimeType {
  string mime_type;
  mojo_base.mojom.String16 description;
  array<string> file_extensions;
};

struct PluginInfo {
  mojo_base.mojom.String16 name;
  mojo_base.mojom.String16 description;
  mojo_base.mojom.FilePath filename;
  uint32 background_color;
  array<PluginMimeType> mime_types;
  // When true, the current plugin maybe implemented using an external handler.
  bool may_use_external_handler;
};

interface PluginRegistry {
  // Retrieves the list of plugins available to the renderer.
  //
  // If `refresh` is true, then cached information should not be used to
  // satisfy this call.
  [Sync]
  GetPlugins(bool refresh) => (array<PluginInfo> plugins);
};