This file is indexed.

/usr/share/idl/thunderbird/prplIConversation.idl is in thunderbird-dev 1:24.4.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
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
/* 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 "nsISimpleEnumerator.idl"
#include "nsIObserver.idl"

interface imIAccountBuddy;
interface imIAccount;
interface nsIURI;
interface nsIDOMDocument;

/*
 * This is the XPCOM purple conversation component, a proxy for PurpleConversation.
 */

[scriptable, uuid(74fca337-b8e7-4e5d-81cd-8aba3dba9208)]
interface prplIConversation: nsISupports {

  /* Indicate if this conversation implements prplIConvIM or prplIConvChat */
  readonly attribute boolean isChat;

  /* The account used for this conversation */
  readonly attribute imIAccount account;

  /* The name of the conversation, typically in English */
  readonly attribute AUTF8String name;

  /* The normalized name of the conversation (suitable for a log file name) */
  readonly attribute AUTF8String normalizedName;

  /* The title of the conversation, typically localized */
  readonly attribute AUTF8String title;

  /* The time and date of the conversation's creation */
  readonly attribute PRTime startDate;

  /* Unique identifier of the conversation */
  /* Setable only once by purpleCoreService while calling addConversation. */
           attribute unsigned long id;

  /* Send a message in the conversation */
  void sendMsg(in AUTF8String aMsg);

  /* Send information about the current typing state to the server.
     aLength should contain the length of the content currently in the text field.
     A length value of 0 will make the method send a NOT_TYPING message. */
  void sendTyping(in unsigned long aLength);

  /* Un-initialize the conversation. Will be called by
     purpleCoreService::RemoveConversation when the conversation is
     closed or by purpleCoreService::Quit while exiting. */
  void unInit();

  /* When the conversation is closed from the UI. */
  void close();

  /* Method to add or remove an observer */
  void addObserver(in nsIObserver aObserver);
  void removeObserver(in nsIObserver aObserver);

  /* Observers will be all receive new-text notifications.
     aSubject will contain the message (prplIMessage) */
};

[scriptable, uuid(0c072a80-103a-4992-b249-8e442b5f0d46)]
interface prplIConvIM: prplIConversation {

  /* The buddy at the remote end of the conversation */
  readonly attribute imIAccountBuddy buddy;

  /* The remote buddy is not currently typing */
  const short NOT_TYPING = 0;

  /* The remote buddy is currently typing */
  const short TYPING = 1;

  /* The remote buddy started typing, but has stopped typing */
  const short TYPED = 2;

  /* The typing state of the remote buddy.
     The value is NOT_TYPING, TYPING or TYPED. */
  readonly attribute short typingState;
};

[scriptable, uuid(c7f11466-f479-4f12-a581-b99713b8ecc0)]
interface prplIConvChat: prplIConversation {

  /* Get an nsISimpleEnumerator of prplIConvChatBuddy objects:
     The list of people participating in this chat */
  nsISimpleEnumerator getParticipants();

  /* The normalized chat buddy name will be suitable for starting a
     private conversation or calling requestBuddyInfo. */
  AUTF8String getNormalizedChatBuddyName(in AUTF8String aChatBuddyName);

  /* The topic of this chat room */
           attribute AUTF8String topic;

  /* The name/nick of the person who set the topic */
  readonly attribute AUTF8String topicSetter;

  /* Whether the protocol plugin can set a topic. Doesn't check that
     the user has the necessary rights in the current conversation. */
  readonly attribute boolean topicSettable;

  /* The nick seen by other people in the room */
  readonly attribute AUTF8String nick;

  /* This is true when we left the chat but kept the conversation open */
  readonly attribute boolean left;

  /* Observers will receive chat-buddy-add, chat-buddy-update,
     chat-buddy-remove and chat-update-topic notifications.

     aSubject will be of type:
       nsISimpleEnumerator of prplIConvChatBuddy for chat-buddy-add,
       nsISimpleEnumerator of nsISupportsString for chat-buddy-remove,
       prplIConvChatBuddy for chat-buddy-update,
       null for chat-update-topic.

     aData will contain the old nick for chat-buddy-update if the name
     has changed.
   */
};

/* This represents a participant in a chat room */
[scriptable, uuid(33f6ef81-1d23-484e-b4e0-14fffa0c4392)]
interface prplIConvChatBuddy: nsISupports {

  /* The name of the buddy */
  readonly attribute AUTF8String name;

  /* The alias (FIXME: can this be non-null if buddy is null?) */
  readonly attribute AUTF8String alias;

  /* Indicates if this chat buddy corresponds to a buddy in our buddy list */
  readonly attribute boolean buddy;

  /* PurpleConvChatBuddyFlags flags; (ops, voice etc.) */
  readonly attribute boolean noFlags;
  readonly attribute boolean voiced;
  readonly attribute boolean halfOp;
  readonly attribute boolean op;
  readonly attribute boolean founder;
  readonly attribute boolean typing;
};