This file is indexed.

/usr/share/idl/thunderbird/nsIContentPermissionPrompt.idl is in thunderbird-dev 1:52.7.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
/* 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"

interface nsIPrincipal;
interface mozIDOMWindow;
interface nsIDOMElement;
interface nsIArray;

/**
 *  Interface provides the request type and its access.
 */
[scriptable, uuid(ef4db3b8-ca9c-4b1d-8f81-fd88ec32af13)]
interface nsIContentPermissionType : nsISupports {
  /**
   *  The type of the permission request, such as
   *  "geolocation".
   */
  readonly attribute ACString type;

  /**
   *  The access of the permission request, such as
   *  "read".
   */
  readonly attribute ACString access;

  /**
   * The array of available options.
   */
  readonly attribute nsIArray options; // ["choice1", "choice2"]
};

/**
 *  Interface provides the callback type.
 */
[scriptable, uuid(5fb5bb60-7069-11e4-9803-0800200c9a66)]
interface nsIContentPermissionRequestCallback : nsISupports {
  /**
   * The callback of the visibility result.
   */
  void notifyVisibility(in boolean isVisible);
};

/**
 *  Interface provides the way to get the visibility and
 *  the notification.
 */
[scriptable, uuid(f8577124-6a5f-486f-ae04-c5bcae911eb5)]
interface nsIContentPermissionRequester : nsISupports {
  /**
   * The function to get the visibility.
   */
  void getVisibility(in nsIContentPermissionRequestCallback callback);

  /**
   * The callback to get the notification of visibility change.
   */
  attribute nsIContentPermissionRequestCallback onVisibilityChange;
};

/**
 * Interface allows access to a content to request
 * permission to perform a privileged operation such as
 * geolocation.
 */
[scriptable, uuid(875733da-0ac0-4a26-8c76-70a30876be46)]
interface nsIContentPermissionRequest : nsISupports {
  /**
   *  The array will include the request types. Elements of this array are
   *  nsIContentPermissionType object.
   */
  readonly attribute nsIArray types;

  /*
   *  The principal of the permission request.
   */
  readonly attribute nsIPrincipal principal;

  /**
   *  The window or element that the permission request was
   *  originated in.  Typically the element will be non-null
   *  in when using out of process content.  window or
   *  element can be null but not both.
   */
  readonly attribute mozIDOMWindow window;
  readonly attribute nsIDOMElement element;

  /**
   *  The requester to get the required information of
   *  the window.
   */
  readonly attribute nsIContentPermissionRequester requester;

  /**
   * allow or cancel the request
   */

  void cancel();
  void allow([optional] in jsval choices); // {"type1": "choice1", "type2": "choiceA"}
};

/**
 * Interface provides a way for the application to handle
 * the UI prompts associated with geo position.
 */
[scriptable, function, uuid(F72DE90D-E954-4E69-9A61-917303029301)]
interface nsIContentPermissionPrompt : nsISupports {
  /**
   * Called when a request has been made to access
   * privileged content apis
   */
  void prompt(in nsIContentPermissionRequest request);
};

%{C++
#define NS_CONTENT_PERMISSION_PROMPT_CONTRACTID   "@mozilla.org/content-permission/prompt;1"
%}