This file is indexed.

/usr/share/idl/thunderbird/mozIGeckoMediaPluginService.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
131
132
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* 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 "nsISupports.idl"
#include "nsIThread.idl"
#include "nsIPrincipal.idl"
#include "nsIFile.idl"

%{C++
#include "nsTArray.h"
#include "nsStringGlue.h"
class GMPAudioDecoderProxy;
class GMPDecryptorProxy;
class GMPVideoDecoderProxy;
class GMPVideoEncoderProxy;
class GMPVideoHost;
%}

[ptr] native GMPVideoDecoderProxy(GMPVideoDecoderProxy);
[ptr] native GMPVideoEncoderProxy(GMPVideoEncoderProxy);
[ptr] native GMPVideoHost(GMPVideoHost);
[ptr] native MessageLoop(MessageLoop);
[ptr] native TagArray(nsTArray<nsCString>);
[ptr] native GMPDecryptorProxy(GMPDecryptorProxy);
[ptr] native GMPAudioDecoderProxy(GMPAudioDecoderProxy);

[scriptable, uuid(46c7cd80-a19d-49e7-a147-ca314ad8d8b0)]
interface mozIGeckoMediaPluginService : nsISupports
{

  /**
   * The GMP thread. Callable from any thread.
   */
  readonly attribute nsIThread thread;

  /**
   * Get a plugin that supports the specified tags.
   * Callable on any thread
   */
  [noscript]
  boolean hasPluginForAPI(in ACString api, in TagArray tags);

  /**
   * Get the version of the plugin that supports the specified tags.
   * Callable on any thread
   */
  [noscript]
  ACString getPluginVersionForAPI(in ACString api,
                                  in TagArray tags);

  /**
   * Get a video decoder that supports the specified tags.
   * The array of tags should at least contain a codec tag, and optionally
   * other tags such as for EME keysystem.
   * Callable only on GMP thread.
   */
  [noscript]
  GMPVideoDecoderProxy getGMPVideoDecoder(in TagArray tags,
                                          [optional] in ACString nodeId,
                                          out GMPVideoHost outVideoHost);

  /**
   * Get a video encoder that supports the specified tags.
   * The array of tags should at least contain a codec tag, and optionally
   * other tags.
   * Callable only on GMP thread.
   */
  [noscript]
  GMPVideoEncoderProxy getGMPVideoEncoder(in TagArray tags,
		                                      [optional] in ACString nodeId,
		                                      out GMPVideoHost outVideoHost);

  // Returns an audio decoder that supports the specified tags.
  // The array of tags should at least contain a codec tag, and optionally
  // other tags such as for EME keysystem.
  // Callable only on GMP thread.
  GMPAudioDecoderProxy getGMPAudioDecoder(in TagArray tags,
                                          [optional] in ACString nodeId);

  // Returns a decryption session manager that supports the specified tags.
  // The array of tags should at least contain a key system tag, and optionally
  // other tags.
  // Callable only on GMP thread.
  GMPDecryptorProxy getGMPDecryptor(in TagArray tags, in ACString nodeId);

  /**
   * Add a directory to scan for gecko media plugins.
   * @note Main-thread API.
   */
  void addPluginDirectory(in AString directory);

  /**
   * Remove a directory for gecko media plugins.
   * @note Main-thread API.
   */
  void removePluginDirectory(in AString directory);

  /**
   * Remove a directory for gecko media plugins and delete it from disk.
   * If |defer| is true, wait until the plugin is unused before removing.
   * @note Main-thread API.
   */
  void removeAndDeletePluginDirectory(in AString directory,
                                      [optional] in bool defer);

  /**
   * Gets the NodeId for a (origin, urlbarOrigin, isInprivateBrowsing) tuple.
   */
  ACString getNodeId(in AString origin,
                     in AString topLevelOrigin,
                     in bool inPrivateBrowsingMode);

  /**
   * Clears storage data associated with the site.
   */
  void forgetThisSite(in AString site);

  /**
   * Returns true if the given node id is allowed to store things
   * persistently on disk. Private Browsing and local content are not
   * allowed to store persistent data.
   */
  bool isPersistentStorageAllowed(in ACString nodeId);

  /**
   * Returns the directory to use as the base for storing data about GMPs.
   */
  nsIFile getStorageDir();

};