This file is indexed.

/usr/share/idl/thunderbird/nsIPluginHost.idl is in thunderbird-dev 1:38.6.0+build1-0ubuntu1.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
/* This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */

#include "nspluginroot.idl"
#include "nsISupports.idl"
#include "nsIPluginTag.idl"

%{C++
#define MOZ_PLUGIN_HOST_CONTRACTID \
  "@mozilla.org/plugin/host;1"
%}

[scriptable, uuid(57069ada-2845-46ef-b57f-233596d1c02c)]
interface nsIPluginPlayPreviewInfo : nsISupports
{
  readonly attribute AUTF8String mimeType;
  readonly attribute boolean     ignoreCTP;
  readonly attribute AUTF8String redirectURL;
  readonly attribute AUTF8String whitelist;

  /**
   * Checks if pageURI and objectURI matches once of the entries in
   * the whitelist. If whitelist is empty, returns true. 
   */
  boolean checkWhitelist(in AUTF8String pageURI, in AUTF8String objectURI);
};

[scriptable, uuid(6034e3a0-365b-48a5-a257-586946ff361e)]
interface nsIPluginHost : nsISupports
{
  /**
   * Causes the plugins directory to be searched again for new plugin 
   * libraries.
   */
  void reloadPlugins();

  void getPluginTags([optional] out unsigned long aPluginCount,
    [retval, array, size_is(aPluginCount)] out nsIPluginTag aResults);

  /*
   * Flags for use with clearSiteData.
   *
   * FLAG_CLEAR_ALL: clear all data associated with a site.
   * FLAG_CLEAR_CACHE: clear cached data that can be retrieved again without
   *                   loss of functionality. To be used out of concern for
   *                   space and not necessarily privacy.
   */
  const uint32_t FLAG_CLEAR_ALL = 0;
  const uint32_t FLAG_CLEAR_CACHE = 1;

  /*
   * Clear site data for a given plugin.
   *
   * @param plugin: the plugin to clear data for, such as one returned by
   *                nsIPluginHost.getPluginTags.
   * @param domain: the domain to clear data for. If this argument is null,
   *                clear data for all domains. Otherwise, it must be a domain
   *                only (not a complete URI or IRI). The base domain for the
   *                given site will be determined; any data for the base domain
   *                or its subdomains will be cleared.
   * @param flags: a flag value defined above.
   * @param maxAge: the maximum age in seconds of data to clear, inclusive. If
   *                maxAge is 0, no data is cleared; if it is -1, all data is
   *                cleared.
   *
   * @throws NS_ERROR_INVALID_ARG if the domain argument is malformed.
   * @throws NS_ERROR_PLUGIN_TIME_RANGE_NOT_SUPPORTED if maxAge is a value other
   *         than -1 and the plugin does not support clearing by timerange in
   *         general or for that particular site and/or flag combination.
   */
  void clearSiteData(in nsIPluginTag plugin, in AUTF8String domain,
                     in uint64_t flags, in int64_t maxAge);

  /*
   * Determine if a plugin has stored data for a given site.
   *
   * @param plugin: the plugin to query, such as one returned by
   *                nsIPluginHost.getPluginTags.
   * @param domain: the domain to test. If this argument is null, test if data
   *                is stored for any site. The base domain for the given domain
   *                will be determined; if any data for the base domain or its
   *                subdomains is found, return true.
   */
  boolean siteHasData(in nsIPluginTag plugin, in AUTF8String domain);

  /**
   * Registers the play preview plugin mode for specific mime type
   *
   * @param mimeType: specifies plugin mime type.
   * @param ignoreCTP: if true, the play preview ignores CTP rules, e.g.
                       whitelisted websites, will not notify about plugin
                       presence in the address bar.
   * @param redirectURL: specifies url for the overlay iframe
   * @param whitelist: specifies plugin whitelist in form of comma separated
   *                   "[@page_url object_url|@page_url|object_url]" entries,
   *                    e.g. @http://example.org/* http://example.org/t.swf
   */
  void registerPlayPreviewMimeType(in AUTF8String mimeType,
                                   [optional] in boolean ignoreCTP,
                                   [optional] in AUTF8String redirectURL,
                                   [optional] in AUTF8String whitelist);

  void unregisterPlayPreviewMimeType(in AUTF8String mimeType);

  nsIPluginPlayPreviewInfo getPlayPreviewInfo(in AUTF8String mimeType);

  ACString getPermissionStringForType(in AUTF8String mimeType);

  /**
   * Get the nsIPluginTag for this MIME type. This method works with both
   * enabled and disabled/blocklisted plugins, but an enabled plugin will
   * always be returned if available.
   *
   * @throws NS_ERROR_NOT_AVAILABLE if no plugin is available for this MIME
   *         type.
   */
  nsIPluginTag getPluginTagForType(in AUTF8String mimeType);

  /**
   * Get the nsIPluginTag state for this MIME type.
   */
  unsigned long getStateForType(in AUTF8String mimeType);

  /**
   * Get the blocklist state for a MIME type.
   */
  uint32_t getBlocklistStateForType(in string aMimeType);
};