This file is indexed.

/usr/share/idl/thunderbird/prplIProtocol.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
/* 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 "imIAccount.idl"

[scriptable, uuid(7d302db0-3813-4c51-8372-c7eb5fc9f3d3)]
interface prplIProtocol: nsISupports {
  // aId is the prpl id, this method is used so that classes
  // implementing several protocol plugins can know which protocol is
  // desired for this instance.
  void init(in AUTF8String aId);

  readonly attribute AUTF8String name;
  readonly attribute AUTF8String id;
  // A name that can be used to check for duplicates and is the basis
  // for the directory name for log storage.
  readonly attribute AUTF8String normalizedName;

  // returns a chrome URI pointing to a folder that contains the files:
  // icon.png icon32.png and icon48.png
  readonly attribute AUTF8String iconBaseURI;

  // returns an enumerator of prplIPref
  nsISimpleEnumerator getOptions();

  // returns an enumerator of prplIUsernameSplit
  nsISimpleEnumerator getUsernameSplit();

  // descriptive text to put in the username input box when it is empty
  readonly attribute AUTF8String usernameEmptyText;

  // Use this function to avoid attempting to create duplicate accounts
  boolean accountExists(in AUTF8String aName);

  // These should all be stuff that some plugins can do and others can't.

  // OPT_PROTO_UNIQUE_CHATNAME Use a unique name, not an alias, for
  // chat rooms.
  //  XMPP lets you choose what name you want for chat. So it
  //  shouldn't be pulling the alias for when you're in chat; it gets
  //  annoying.
  readonly attribute boolean uniqueChatName;

  // OPT_PROTO_CHAT_TOPIC Chat rooms have topics.
  //  IRC and XMPP support this.
  readonly attribute boolean chatHasTopic;

  // OPT_PROTO_NO_PASSWORD Don't require passwords for sign-in.
  //  Zephyr doesn't require passwords, so there's no need for a
  //  password prompt.
  readonly attribute boolean noPassword;

  // OPT_PROTO_MAIL_CHECK Notify on new mail.
  //  MSN and Yahoo notify you when you have new mail.
  readonly attribute boolean newMailNotification;

  // OPT_PROTO_IM_IMAGE Images in IMs.
  //  Oscar lets you send images in direct IMs.
  readonly attribute boolean imagesInIM;

  // OPT_PROTO_PASSWORD_OPTIONAL Allow passwords to be optional.
  //  Passwords in IRC are optional, and are needed for certain
  //  functionality.
  readonly attribute boolean passwordOptional;

  // OPT_PROTO_USE_POINTSIZE Allows font size to be specified in sane
  // point size.
  //  Probably just XMPP and Y!M
  readonly attribute boolean usePointSize;

  // OPT_PROTO_REGISTER_NOSCREENNAME Set the Register button active
  // when screenname is not given.
  //  Gadu-Gadu doesn't need a screenname to register new account.
  readonly attribute boolean registerNoScreenName;

  // OPT_PROTO_SLASH_COMMANDS_NATIVE  Indicates that slash commands
  // are native to this protocol.
  // Used as a hint that unknown commands should not be sent as messages.
  readonly attribute boolean slashCommandsNative;

  // Indicates if the protocol plugin can use a purpleIProxy for the
  // account, or uses the Mozilla proxy settings for all accounts.
  readonly attribute boolean usePurpleProxy;

  // Get the protocol specific part of an already initialized
  // imIAccount instance.
  prplIAccount getAccount(in imIAccount aImAccount);
};

[scriptable, uuid(20c4971a-f7c2-4781-8e85-69fee7b83a3d)]
interface prplIUsernameSplit: nsISupports {
  readonly attribute AUTF8String label;
  readonly attribute AUTF8String defaultValue;
  readonly attribute char separator;

  /* reverse is true if the separator should be found starting at
     the end of the string, false otherwise. */
  readonly attribute boolean reverse;
};