Bug 954193 - part 3 - mass rename purpleI XPCOM interfaces to prplI (except the purpleIProxy* interfaces), r=clokep.
authorFlorian Quèze <florian@instantbird.org>
Wed, 07 Dec 2011 16:53:28 +0100
changeset 14784 1d9d3e80fd8c281fa1b2e7e04ee02072837bc8b1
parent 14783 d89b12dedece87c6ce9d0ebadfbe878660967987
child 14785 5aa45651396ddf77a52502301d967837c3b928dd
push id9778
push userflorian@queze.net
push dateSun, 12 Jan 2014 18:25:45 +0000
treeherdercomm-central@f81a23bfefcd [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersclokep
bugs954193
Bug 954193 - part 3 - mass rename purpleI XPCOM interfaces to prplI (except the purpleIProxy* interfaces), r=clokep.
chat/components/public/Makefile.in
chat/components/public/ibILogger.idl
chat/components/public/imIAccount.idl
chat/components/public/imICommandsService.idl
chat/components/public/imIContactsService.idl
chat/components/public/imIConversationsService.idl
chat/components/public/prplIConversation.idl
chat/components/public/prplIMessage.idl
chat/components/public/prplIPref.idl
chat/components/public/prplIProtocol.idl
chat/components/public/prplIRequest.idl
chat/components/public/prplITooltipInfo.idl
chat/components/public/purpleIConversation.idl
chat/components/src/imConversations.js
chat/content/browserRequest.js
chat/modules/imThemes.jsm
chat/modules/jsProtoHelper.jsm
chat/protocols/twitter/twitter.js
chat/protocols/xmpp/xmpp.jsm
im/content/buddytooltip.xml
im/content/conversation.xml
im/content/joinchat.js
purple/purplexpcom/public/purpleIMessage.idl
purple/purplexpcom/public/purpleIPref.idl
purple/purplexpcom/public/purpleIRequest.idl
purple/purplexpcom/public/purpleITooltipInfo.idl
--- a/chat/components/public/Makefile.in
+++ b/chat/components/public/Makefile.in
@@ -47,13 +47,17 @@ XPIDLSRCS	= \
 		ibILogger.idl \
 		imIAccount.idl \
 		imIAccountsService.idl \
 		imICommandsService.idl \
 		imIContactsService.idl \
 		imIConversationsService.idl \
 		imICoreService.idl \
 		imIUserStatusInfo.idl \
+		prplIConversation.idl \
+		prplIMessage.idl \
+		prplIPref.idl \
 		prplIProtocol.idl \
-		purpleIConversation.idl \
+		prplIRequest.idl \
+		prplITooltipInfo.idl \
 		$(NULL)
 
 include $(topsrcdir)/config/rules.mk
--- a/chat/components/public/ibILogger.idl
+++ b/chat/components/public/ibILogger.idl
@@ -37,24 +37,24 @@
 
 #include "nsISupports.idl"
 #include "nsISimpleEnumerator.idl"
 
 interface imIAccount;
 interface imIAccountBuddy;
 interface imIBuddy;
 interface imIContact;
-interface purpleIConversation;
+interface prplIConversation;
 
 [scriptable, uuid(164ff6c3-ca64-4880-b8f3-67eb1817955f)]
 interface ibILog: nsISupports {
   readonly attribute AUTF8String path;
   readonly attribute PRTime time;
 };
 
 [scriptable, uuid(ab38c01c-2245-4279-9437-1d6bcc69d556)]
 interface ibILogger: nsISupports {
   nsISimpleEnumerator getLogsForAccountBuddy(in imIAccountBuddy aAccountBuddy);
   nsISimpleEnumerator getLogsForBuddy(in imIBuddy aBuddy);
   nsISimpleEnumerator getLogsForContact(in imIContact aContact);
-  nsISimpleEnumerator getLogsForConversation(in purpleIConversation aConversation);
+  nsISimpleEnumerator getLogsForConversation(in prplIConversation aConversation);
   nsISimpleEnumerator getSystemLogsForAccount(in imIAccount aAccount);
 };
--- a/chat/components/public/imIAccount.idl
+++ b/chat/components/public/imIAccount.idl
@@ -31,42 +31,42 @@
  * decision by deleting the provisions above and replace them with the notice
  * and other provisions required by the GPL or the LGPL. If you do not delete
  * the provisions above, a recipient may use your version of this file under
  * the terms of any one of the MPL, the GPL or the LGPL.
  *
  * ***** END LICENSE BLOCK ***** */
 
 #include "nsISupports.idl"
-#include "purpleIConversation.idl"
+#include "prplIConversation.idl"
 #include "imIUserStatusInfo.idl"
 
 interface imITag;
 interface imIBuddy;
 interface imIAccountBuddy;
 interface imIAccount;
 interface prplIProtocol;
 interface purpleIProxyInfo;
 
 /*
  * Used to join chat rooms.
  */
 
 [ptr] native GHashTablePtr(GHashTable);
 
 [scriptable, uuid(ea7ab156-d25e-46cc-93ef-29f77b3c0795)]
-interface purpleIChatRoomFieldValues: nsISupports {
+interface prplIChatRoomFieldValues: nsISupports {
   AUTF8String getValue(in AUTF8String aIdentifier);
   void setValue(in AUTF8String aIdentifier, in AUTF8String aValue);
 
   [noscript] readonly attribute GHashTablePtr hashTable;
 };
 
 [scriptable, uuid(19dff981-b125-4a70-bc1a-efc783d07137)]
-interface purpleIChatRoomField: nsISupports {
+interface prplIChatRoomField: nsISupports {
   readonly attribute AUTF8String label;
   readonly attribute AUTF8String identifier;
   readonly attribute boolean required;
 
   const short TYPE_TEXT = 0;
   const short TYPE_PASSWORD = 1;
   const short TYPE_INT = 2;
 
@@ -91,41 +91,41 @@ interface prplIAccount: nsISupports {
   /* Uninitialize the prplIAccount instance. This is typically done
      automatically at shutdown (by the core service) or as part of
      the 'remove' method. */
   void unInit();
 
   void connect();
   void disconnect();
 
-  purpleIConversation createConversation(in AUTF8String aName);
+  prplIConversation createConversation(in AUTF8String aName);
 
   // Used when the user wants to add a buddy to the buddy list
   void addBuddy(in imITag aTag, in AUTF8String aName);
 
   // Used while loading the buddy list at startup.
   imIAccountBuddy loadBuddy(in imIBuddy aBuddy, in imITag aTag);
 
   /* Request more info on a buddy (typically a chat buddy).
    * The result (if any) will be provided by a user-info-received
    * notification dispatched through the observer service:
-   *  - aSubject will be an nsISimpleEnumerator of purpleITooltipInfo,
+   *  - aSubject will be an nsISimpleEnumerator of prplITooltipInfo,
    *  Do NOT store aSubject. Use it right away. The memory it points to
    *  will be freed right after the notification is dispatched.
    *  - aData will be aBuddyName.
    */
   void requestBuddyInfo(in AUTF8String aBuddyName);
 
   readonly attribute boolean canJoinChat;
   nsISimpleEnumerator getChatRoomFields();
-  purpleIChatRoomFieldValues getChatRoomDefaultFieldValues([optional] in AUTF8String aDefaultChatName);
+  prplIChatRoomFieldValues getChatRoomDefaultFieldValues([optional] in AUTF8String aDefaultChatName);
   /*
    * Create a new chat conversation if it doesn't already exist.
    */
-  void joinChat(in purpleIChatRoomFieldValues aComponents);
+  void joinChat(in prplIChatRoomFieldValues aComponents);
 
   readonly attribute AUTF8String normalizedName;
 
   attribute purpleIProxyInfo proxyInfo;
 
   // protocol specific options: those functions set the protocol
   // specific options for the PurpleAccount
   void setBool(in string aName, in boolean aVal);
--- a/chat/components/public/imICommandsService.idl
+++ b/chat/components/public/imICommandsService.idl
@@ -31,17 +31,17 @@
  * decision by deleting the provisions above and replace them with the notice
  * and other provisions required by the GPL or the LGPL. If you do not delete
  * the provisions above, a recipient may use your version of this file under
  * the terms of any one of the MPL, the GPL or the LGPL.
  *
  * ***** END LICENSE BLOCK ***** */
 
 #include "nsISupports.idl"
-interface purpleIConversation;
+interface prplIConversation;
 
 [scriptable, uuid(dae17fae-0d04-4d89-a817-637ef433383f)]
 interface imICommand: nsISupports {
   readonly attribute AUTF8String name;
 
   // Help message displayed when the user types /help <name>.
   // Format: <command name> <parameters>: <help message>
   // Example: "help &lt;name&gt;: show the help message for the &lt;name&gt;
@@ -64,17 +64,17 @@ interface imICommand: nsISupports {
   //  > 0 is higher priority.
   // Commands registered by protocol plugins will usually use PRIORITY_PRPL.
   readonly attribute PRInt32 priority;
 
   // Will return true if the command handled the message (it should not be sent).
   // The leading slash, the command name and the following space are not included
   // in the aMessage parameter.
   boolean run(in AUTF8String aMessage,
-              [optional] in purpleIConversation aConversation);
+              [optional] in prplIConversation aConversation);
 };
 
 [scriptable, uuid(467709a0-0bed-4f44-9bdc-13f78b9eaeba)]
 interface imICommandsService: nsISupports {
   void initCommands();
   void unInitCommands();
 
   // Commands registered without a protocol id will work for all protocols.
@@ -84,27 +84,27 @@ interface imICommandsService: nsISupport
   void registerCommand(in imICommand aCommand,
                        [optional] in AUTF8String aPrplId);
 
   // aPrplId should be the same as what was used for the command registration.
   void unregisterCommand(in AUTF8String aCommandName,
                          [optional] in AUTF8String aPrplId);
 
   void listCommandsForConversation(
-    [optional] in purpleIConversation aConversation,
+    [optional] in prplIConversation aConversation,
     [optional] out unsigned long commandCount,
     [retval, array, size_is(commandCount)] out imICommand commands);
 
   void listCommandsForProtocol(in AUTF8String aPrplId,
     [optional] out unsigned long commandCount,
     [retval, array, size_is(commandCount)] out imICommand commands);
 
   // Will return true if a command handled the message (it should not be sent).
   // The aConversation parameters is required to execute protocol specific
   // commands. Application global commands will work without it.
   boolean executeCommand(in AUTF8String aMessage,
-                         [optional] in purpleIConversation aConversation);
+                         [optional] in prplIConversation aConversation);
 };
 
 %{ C++
 #define IM_COMMANDS_SERVICE_CONTRACTID \
   "@instantbird.org/purple/commands-service;1"
 %}
--- a/chat/components/public/imIContactsService.idl
+++ b/chat/components/public/imIContactsService.idl
@@ -33,17 +33,17 @@
  * the provisions above, a recipient may use your version of this file under
  * the terms of any one of the MPL, the GPL or the LGPL.
  *
  * ***** END LICENSE BLOCK ***** */
 
 #include "nsISupports.idl"
 #include "nsIObserver.idl"
 #include "nsISimpleEnumerator.idl"
-#include "purpleIConversation.idl"
+#include "prplIConversation.idl"
 
 interface imITag;
 interface imIContact;
 interface imIBuddy;
 interface imIAccountBuddy;
 interface imIAccount;
 interface prplIProtocol;
 
@@ -169,17 +169,17 @@ interface imIStatusInfo: nsISupports {
   readonly attribute boolean canSendMessage;
 
   // enumerator of purpleTooltipInfo components
   nsISimpleEnumerator getTooltipInfo();
 
   // Will select the buddy automatically based on availability, and
   // the account (if needed) based on the account order in the account
   // manager.
-  purpleIConversation createConversation();
+  prplIConversation createConversation();
 };
 
 
 [scriptable, uuid(f585b0df-f6ad-40d5-9de4-c58b14af13e4)]
 interface imIContact: imIStatusInfo {
   // The id will be positive if the contact is real (stored in the
   // SQLite database) and negative if the instance is a dummy contact
   // holding only a single buddy without aliases or additional tags.
--- a/chat/components/public/imIConversationsService.idl
+++ b/chat/components/public/imIConversationsService.idl
@@ -30,31 +30,31 @@
  * decision by deleting the provisions above and replace them with the notice
  * and other provisions required by the GPL or the LGPL. If you do not delete
  * the provisions above, a recipient may use your version of this file under
  * the terms of any one of the MPL, the GPL or the LGPL.
  *
  * ***** END LICENSE BLOCK ***** */
 
 #include "nsISupports.idl"
-#include "purpleIConversation.idl"
+#include "prplIConversation.idl"
 #include "imIContactsService.idl"
 
-interface purpleIMessage;
+interface prplIMessage;
 
 [scriptable, uuid(a09faf46-bb9d-402f-b460-89f8d7827ff1)]
-interface imIConversation: purpleIConversation {
+interface imIConversation: prplIConversation {
   // Will be null for MUCs and IMs from people not in the contacts list.
   readonly attribute imIContact contact;
 
   // Write a system message into the conversation.
   // Note: this will not be logged.
   void systemMessage(in AUTF8String aMessage, [optional] in boolean aIsError);
 
-  attribute purpleIConversation target;
+  attribute prplIConversation target;
 
   // Number of unread messages (all messages, including system
   // messages are counted).
   readonly attribute PRUint32 unreadMessageCount;
   // Number of unread incoming messages targeted at the user (= IMs or
   // message containing the user's nick in MUCs).
   readonly attribute PRUint32 unreadTargetedMessageCount;
   // Number of unread incoming messages (both targeted and untargeted
@@ -67,32 +67,32 @@ interface imIConversation: purpleIConver
   // conversation.  If the conversation is a left MUC or an IM
   // conversation without unread message, the implementation will call
   // close().
   // The returned value indicates if the conversation was closed.
   boolean checkClose();
 
   // Get an array of all messages of the conversation.
   void getMessages([optional] out unsigned long messageCount,
-                   [retval, array, size_is(messageCount)] out purpleIMessage messages);
+                   [retval, array, size_is(messageCount)] out prplIMessage messages);
 };
 
 [scriptable, uuid(984e182c-d395-4fba-ba6e-cc80c71f57bf)]
 interface imIConversationsService: nsISupports {
   void initConversations();
   void unInitConversations();
 
   // register a conversation. This will create a unique id for the
   // conversation and set it.
-  void addConversation(in purpleIConversation aConversation);
-  void removeConversation(in purpleIConversation aConversation);
+  void addConversation(in prplIConversation aConversation);
+  void removeConversation(in prplIConversation aConversation);
 
   void getUIConversations([optional] out unsigned long conversationCount,
                           [retval, array, size_is(conversationCount)] out imIConversation conversations);
-  imIConversation getUIConversation(in purpleIConversation aConversation);
+  imIConversation getUIConversation(in prplIConversation aConversation);
   imIConversation getUIConversationByContactId(in long aId);
 
   nsISimpleEnumerator getConversations();
-  purpleIConversation getConversationById(in unsigned long aId);
-  purpleIConversation getConversationByNameAndAccount(in AUTF8String aName,
+  prplIConversation getConversationById(in unsigned long aId);
+  prplIConversation getConversationByNameAndAccount(in AUTF8String aName,
                                                       in imIAccount aAccount,
                                                       in boolean aIsChat);
 };
rename from chat/components/public/purpleIConversation.idl
rename to chat/components/public/prplIConversation.idl
--- a/chat/components/public/purpleIConversation.idl
+++ b/chat/components/public/prplIConversation.idl
@@ -45,19 +45,19 @@ 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 purpleIConversation: nsISupports {
+interface prplIConversation: nsISupports {
 
-  /* Indicate if this conversation implements purpleIConvIM or purpleIConvChat */
+  /* 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;
 
@@ -87,21 +87,21 @@ interface purpleIConversation: nsISuppor
   /* Close the conversation */
   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 (purpleIMessage) */
+     aSubject will contain the message (prplIMessage) */
 };
 
 [scriptable, uuid(0c072a80-103a-4992-b249-8e442b5f0d46)]
-interface purpleIConvIM: purpleIConversation {
+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 */
@@ -111,19 +111,19 @@ interface purpleIConvIM: purpleIConversa
   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 purpleIConvChat: purpleIConversation {
+interface prplIConvChat: prplIConversation {
 
-  /* Get an nsISimpleEnumerator of purpleIConvChatBuddy objects:
+  /* 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 */
@@ -141,29 +141,29 @@ interface purpleIConvChat: purpleIConver
 
   /* 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 purpleIConvChatBuddy for chat-buddy-add,
+       nsISimpleEnumerator of prplIConvChatBuddy for chat-buddy-add,
        nsISimpleEnumerator of nsISupportsString for chat-buddy-remove,
-       purpleIConvChatBuddy for chat-buddy-update,
+       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 purpleIConvChatBuddy: nsISupports {
+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 */
rename from purple/purplexpcom/public/purpleIMessage.idl
rename to chat/components/public/prplIMessage.idl
--- a/purple/purplexpcom/public/purpleIMessage.idl
+++ b/chat/components/public/prplIMessage.idl
@@ -32,43 +32,43 @@
  * and other provisions required by the GPL or the LGPL. If you do not delete
  * the provisions above, a recipient may use your version of this file under
  * the terms of any one of the MPL, the GPL or the LGPL.
  *
  * ***** END LICENSE BLOCK ***** */
 
 #include "nsISupports.idl"
 #include "nsIRunnable.idl"
-#include "purpleIConversation.idl"
+#include "prplIConversation.idl"
 
 /*
  * An action that the user may perform in relation to a particular message.
  */
 [scriptable, uuid(7e470f0e-d948-4d9a-b8dc-4beecf6554b9)]
-interface purpleIMessageAction: nsIRunnable
+interface prplIMessageAction: nsIRunnable
 {
   /* The protocol plugins need to provide a localized label suitable
      for being shown in the user interface (for example as a context
      menu item). */
   readonly attribute ACString label;
 };
 
 [scriptable, uuid(d9f0ca7f-ee59-4657-a3dd-f458c204ca45)]
-interface purpleIMessage: nsISupports {
+interface prplIMessage: nsISupports {
   /* The uniqueness of the message id is only guaranteed across
      messages of a conversation, not across all messages created
      during the execution of the application. */
   readonly attribute PRUint32 id;
   readonly attribute AUTF8String who;
   readonly attribute AUTF8String alias;
   readonly attribute AUTF8String originalMessage;
            attribute AUTF8String message;
   readonly attribute AUTF8String iconURL;
   readonly attribute PRTime time;
-  readonly attribute purpleIConversation conversation;
+  readonly attribute prplIConversation conversation;
 
   /* Holds the sender color for Chats.
      Empty string by default, it is set by the conversation binding. */
            attribute AUTF8String color;
 
   /*  PURPLE_MESSAGE_SEND        = 0x0001, /**< Outgoing message. */
   readonly attribute boolean outgoing;
   /*  PURPLE_MESSAGE_RECV        = 0x0002, /**< Incoming message. */
@@ -104,10 +104,10 @@ interface purpleIMessage: nsISupports {
   /*  PURPLE_MESSAGE_NO_LINKIFY  = 0x4000  /**< Message should not be auto-linkified */
   readonly attribute boolean noLinkification;
 
   /* An array of actions the user may perform on this message.
      The first action will be the 'default' and may be performed
      automatically when the message is double clicked.
      'Reply' is usually a good default action. */
   void getActions([optional] out unsigned long actionCount,
-                  [retval, array, size_is(actionCount)] out purpleIMessageAction actions);
+                  [retval, array, size_is(actionCount)] out prplIMessageAction actions);
 };
rename from purple/purplexpcom/public/purpleIPref.idl
rename to chat/components/public/prplIPref.idl
--- a/purple/purplexpcom/public/purpleIPref.idl
+++ b/chat/components/public/prplIPref.idl
@@ -38,32 +38,32 @@
 #include "nsISupports.idl"
 #include "nsISimpleEnumerator.idl"
 
 /*
  * This is a proxy for libpurple PurpleAccountOption
  */
 
 [scriptable, uuid(e781563f-9088-4a96-93e3-4fb6f5ce6a77)]
-interface purpleIPref: nsISupports {
+interface prplIPref: nsISupports {
   const short typeBool   = 1;
   const short typeInt    = 2;
   const short typeString = 3;
   const short typeList   = 4;
 
   readonly attribute AUTF8String name;
   readonly attribute AUTF8String label;
   readonly attribute short type;
   readonly attribute boolean masked;
 
   boolean     getBool();
   long        getInt();
   AUTF8String getString();
-  // enumerator of purpleIKeyValuePair
+  // enumerator of prplIKeyValuePair
   nsISimpleEnumerator getList();
   AUTF8String getListDefault();
 };
 
 [scriptable, uuid(8fc16882-ba8e-432a-999f-0d4dc104234b)]
-interface purpleIKeyValuePair: nsISupports {
+interface prplIKeyValuePair: nsISupports {
   readonly attribute AUTF8String name;
   readonly attribute AUTF8String value;
 };
--- a/chat/components/public/prplIProtocol.idl
+++ b/chat/components/public/prplIProtocol.idl
@@ -49,20 +49,20 @@ interface prplIProtocol: nsISupports {
   readonly attribute AUTF8String name;
   readonly attribute AUTF8String id;
   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 purpleIPref
+  // returns an enumerator of prplIPref
   nsISimpleEnumerator getOptions();
 
-  // returns an enumerator of purpleIUsernameSplit
+  // 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);
 
@@ -117,17 +117,17 @@ interface prplIProtocol: nsISupports {
   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 purpleIUsernameSplit: nsISupports {
+interface prplIUsernameSplit: nsISupports {
   readonly attribute AUTF8String label;
   readonly attribute AUTF8String defaultValue;
   readonly attribute char separator;
 
   /* reverse is PR_TRUE if the separator should be found starting at
      the end of the string, PR_FALSE otherwise. */
   readonly attribute PRBool reverse;
 };
rename from purple/purplexpcom/public/purpleIRequest.idl
rename to chat/components/public/prplIRequest.idl
--- a/purple/purplexpcom/public/purpleIRequest.idl
+++ b/chat/components/public/prplIRequest.idl
@@ -37,16 +37,16 @@
 
 #include "nsISupports.idl"
 
 interface imIAccount;
 interface nsIDOMWindow;
 interface nsIWebProgress;
 
 [scriptable, uuid(b89dbb38-0de4-11e0-b3d0-0002e304243c)]
-interface purpleIRequestBrowser: nsISupports {
+interface prplIRequestBrowser: nsISupports {
   readonly attribute AUTF8String promptText;
   readonly attribute imIAccount account;
   readonly attribute AUTF8String url;
   void cancelled();
   void loaded(in nsIDOMWindow aWindow,
               in nsIWebProgress aWebProgress);
 };
rename from purple/purplexpcom/public/purpleITooltipInfo.idl
rename to chat/components/public/prplITooltipInfo.idl
--- a/purple/purplexpcom/public/purpleITooltipInfo.idl
+++ b/chat/components/public/prplITooltipInfo.idl
@@ -38,17 +38,17 @@
 #include "nsISupports.idl"
 
 /*
  * This interface provides access to the content of a
  * PurpleNotifyUserInfoEntry structure.
  */
 
 [scriptable, uuid(dd535741-4b04-49ca-8df6-08f8577fe52b)]
-interface purpleITooltipInfo: nsISupports {
+interface prplITooltipInfo: nsISupports {
   const short pair          = 0;
   const short sectionBreak  = 1;
   const short sectionHeader = 2;
 
   readonly attribute short type;
   readonly attribute AUTF8String label;
   readonly attribute AUTF8String value;
 };
--- a/chat/components/src/imConversations.js
+++ b/chat/components/src/imConversations.js
@@ -50,30 +50,30 @@ XPCOMUtils.defineLazyGetter(this, "bundl
 
 function UIConversation(aPurpleConversation)
 {
   this._purpleConv = {};
   this.id = ++gLastUIConvId;
   this._observers = [];
   this._messages = [];
   this.changeTargetTo(aPurpleConversation);
-  let iface = Ci["purpleIConv" + (aPurpleConversation.isChat ? "Chat" : "IM")];
+  let iface = Ci["prplIConv" + (aPurpleConversation.isChat ? "Chat" : "IM")];
   this._interfaces = this._interfaces.concat(iface);
   let contact = this.contact;
   if (contact) {
     // XPConnect will create a wrapper around 'this' here,
     // so the list of exposed interfaces shouldn't change anymore.
     contact.addObserver(this);
     this._observedContact = contact;
   }
   Services.obs.notifyObservers(this, "new-ui-conversation", null);
 }
 
 UIConversation.prototype = {
-  __proto__: ClassInfo(["imIConversation", "purpleIConversation", "nsIObserver"],
+  __proto__: ClassInfo(["imIConversation", "prplIConversation", "nsIObserver"],
                        "UI conversation"),
   _observedContact: null,
   get contact() {
     let target = this.target;
     if (!target.isChat && target.buddy)
       return target.buddy.buddy.contact;
     return null;
   },
@@ -259,29 +259,29 @@ UIConversation.prototype = {
     delete this._disconnected;
     this.notifyObservers(this, "update-buddy-status");
   },
 
   observeConv: function(aTargetId, aSubject, aTopic, aData) {
     if (aTargetId != this._currentTargetId &&
         (aTopic == "new-text" ||
          (aTopic == "update-typing" &&
-          this._purpleConv[aTargetId].typingState == Ci.purpleIConvIM.TYPING)))
+          this._purpleConv[aTargetId].typingState == Ci.prplIConvIM.TYPING)))
       this.target = this._purpleConv[aTargetId];
     if (aTopic == "new-text")
       Services.obs.notifyObservers(aSubject, aTopic, aData);
     this.notifyObservers(aSubject, aTopic, aData);
   },
 
   systemMessage: function(aText, aIsError) {
     let flags = {system: true, noLog: true, error: !!aIsError};
     (new Message("system", aText, flags)).conversation = this;
   },
 
-  // purpleIConversation
+  // prplIConversation
   get isChat() this.target.isChat,
   get account() this.target.account,
   get name() this.target.name,
   get normalizedName() this.target.normalizedName,
   get title() this.target.title,
   sendMsg: function (aMsg) { this.target.sendMsg(aMsg); },
   unInit: function() {
     for each (let conv in this._purpleConv)
@@ -312,17 +312,17 @@ UIConversation.prototype = {
           ++this._unreadTargetedMessageCount;
       }
     }
     for each (let observer in this._observers)
       observer.observe(aSubject, aTopic, aData);
     this._notifyUnreadCountChanged();
   },
 
-  // purpleIConvIM
+  // prplIConvIM
   get buddy() this.target.buddy,
   get typingState() this.target.typingState,
   sendTyping: function(aLength) { this.target.sendTyping(aLength); },
 
   // Chat only
   getParticipants: function() this.target.getParticipants(),
   get topic() this.target.topic,
   set topic(aTopic) { this.target.topic = aTopic; },
--- a/chat/content/browserRequest.js
+++ b/chat/content/browserRequest.js
@@ -145,24 +145,24 @@ function cancelRequest()
 {
   reportUserClosed();
   window.close();
 }
 
 function reportUserClosed()
 {
   let request = window.arguments[0];
-  request.QueryInterface(Components.interfaces.purpleIRequestBrowser);
+  request.QueryInterface(Components.interfaces.prplIRequestBrowser);
   request.cancelled();
 }
 
 function loadRequestedUrl()
 {
   let request = window.arguments[0];
-  request.QueryInterface(Components.interfaces.purpleIRequestBrowser);
+  request.QueryInterface(Components.interfaces.prplIRequestBrowser);
   document.getElementById("headerMessage").textContent = request.promptText;
   let account = request.account;
   document.getElementById("headerLabel").value =
     account.protocol.name + " - " + account.name;
   document.getElementById("headerImage").src =
     account.protocol.iconBaseURI + "icon48.png";
 
   var browser = document.getElementById("requestFrame");
--- a/chat/modules/imThemes.jsm
+++ b/chat/modules/imThemes.jsm
@@ -546,17 +546,17 @@ function insertHTMLForMessage(aMsg, aHTM
   }
 
   let range = aDoc.createRange();
   let parent = insert ? insert.parentNode : aDoc.getElementById("Chat");
   range.selectNode(parent);
   let documentFragment = range.createContextualFragment(aHTML);
   let result = documentFragment.firstChild;
 
-  // store the purpleIMessage object in each of the "root" node that
+  // store the prplIMessage object in each of the "root" node that
   // will be inserted into the document, so that selection code can
   // retrieve the message by just looking at the parent node until it
   // finds something.
   for (let root = result; root; root = root.nextSibling)
     root._originalMsg = aMsg;
 
   // make sure the result is an HTMLElement and not some whitespace...
   while (result && !(result instanceof Ci.nsIDOMHTMLElement))
--- a/chat/modules/jsProtoHelper.jsm
+++ b/chat/modules/jsProtoHelper.jsm
@@ -327,17 +327,17 @@ const GenericAccountBuddyPrototype = {
 
 // aUserName is required only if aBuddy is null (= we are adding a buddy)
 function AccountBuddy(aAccount, aBuddy, aTag, aUserName) {
   this._init(aAccount, aBuddy, aTag, aUserName);
 }
 AccountBuddy.prototype = GenericAccountBuddyPrototype;
 
 const GenericMessagePrototype = {
-  __proto__: ClassInfo("purpleIMessage", "generic message object"),
+  __proto__: ClassInfo("prplIMessage", "generic message object"),
   flags: Ci.nsIClassInfo.DOM_OBJECT,
 
   _lastId: 0,
   _init: function (aWho, aMessage, aObject) {
     this.id = ++GenericMessagePrototype._lastId;
     this.time = Math.round(new Date() / 1000);
     this.who = aWho;
     this.message = aMessage;
@@ -381,17 +381,17 @@ const GenericMessagePrototype = {
 
 function Message(aWho, aMessage, aObject) {
   this._init(aWho, aMessage, aObject);
 }
 Message.prototype = GenericMessagePrototype;
 
 
 const GenericConversationPrototype = {
-  __proto__: ClassInfo("purpleIConversation", "generic conversation object"),
+  __proto__: ClassInfo("prplIConversation", "generic conversation object"),
   flags: Ci.nsIClassInfo.DOM_OBJECT,
 
   _init: function(aAccount, aName) {
     this._account = aAccount;
     this._name = aName;
     this._observers = [];
     Services.conversations.addConversation(this);
   },
@@ -434,38 +434,38 @@ const GenericConversationPrototype = {
   get account() this._account.imAccount,
   get name() this._name,
   get normalizedName() normalize(this.name),
   get title() this.name
 };
 
 const GenericConvIMPrototype = {
   __proto__: GenericConversationPrototype,
-  _interfaces: [Ci.purpleIConversation, Ci.purpleIConvIM],
+  _interfaces: [Ci.prplIConversation, Ci.prplIConvIM],
   classDescription: "generic ConvIM object",
 
   updateTyping: function(aState) {
     if (aState == this.typingState)
       return;
 
-    if (aState == Ci.purpleIConvIM.NOT_TYPING)
+    if (aState == Ci.prplIConvIM.NOT_TYPING)
       delete this.typingState;
     else
       this.typingState = aState;
     this.notifyObservers(null, "update-typing", null);
   },
 
   get isChat() false,
   buddy: null,
-  typingState: Ci.purpleIConvIM.NOT_TYPING
+  typingState: Ci.prplIConvIM.NOT_TYPING
 };
 
 const GenericConvChatPrototype = {
   __proto__: GenericConversationPrototype,
-  _interfaces: [Ci.purpleIConversation, Ci.purpleIConvChat],
+  _interfaces: [Ci.prplIConversation, Ci.prplIConvChat],
   classDescription: "generic ConvChat object",
 
   _nick: null,
   _topic: null,
   _topicSetter: null,
   setTopic: function(aTopic, aTopicSetter) {
     // Only change the topic if the topic and/or topic setter has changed.
     if (this._topic == aTopic && this._topicSetter == aTopicSetter)
@@ -500,17 +500,17 @@ const GenericConvChatPrototype = {
 
   writeMessage: function (aWho, aText, aProperties) {
     aProperties.containsNick = aText.indexOf(this.nick) != -1;
     GenericConversationPrototype.writeMessage.apply(this, arguments);
   }
 };
 
 const GenericConvChatBuddyPrototype = {
-  __proto__: ClassInfo("purpleIConvChatBuddy", "generic ConvChatBuddy object"),
+  __proto__: ClassInfo("prplIConvChatBuddy", "generic ConvChatBuddy object"),
 
   _name: "",
   get name() this._name,
   alias: "",
   buddy: false,
 
   get noFlags() !(this.voiced || this.halfOp || this.op ||
                   this.founder || this.typing),
@@ -519,28 +519,28 @@ const GenericConvChatBuddyPrototype = {
   op: false,
   founder: false,
   typing: false
 };
 
 function TooltipInfo(aLabel, aValue)
 {
   if (aLabel === undefined)
-    this.type = Ci.purpleITooltipInfo.sectionBreak;
+    this.type = Ci.prplITooltipInfo.sectionBreak;
   else {
     this.label = aLabel;
     if (aValue === undefined)
-      this.type = Ci.purpleITooltipInfo.sectionHeader;
+      this.type = Ci.prplITooltipInfo.sectionHeader;
     else {
-      this.type = Ci.purpleITooltipInfo.pair;
+      this.type = Ci.prplITooltipInfo.pair;
       this.value = aValue;
     }
   }
 }
-TooltipInfo.prototype = ClassInfo("purpleITooltipInfo", "generic tooltip info");
+TooltipInfo.prototype = ClassInfo("prplITooltipInfo", "generic tooltip info");
 
 /* aOption is an object containing:
  *  - label: localized text to display (recommended: use a getter with _)
  *  - default: the default value for this option. The type of the
  *      option will be determined based on the type of the default value.
  *      If the default value is a string, the option will be of type
  *      list if listValues has been provided. In that case the default
  *      value should be one of the listed values.
@@ -563,23 +563,23 @@ function purplePref(aName, aOption) {
   let type = types[typeof aOption.default];
   if (!type)
     throw "Invalid option type";
 
   if (type == "String" && ("listValues" in aOption)) {
     type = "List";
     this._listValues = aOption.listValues;
   }
-  this.type = Ci.purpleIPref["type" + type];
+  this.type = Ci.prplIPref["type" + type];
 
   if ("masked" in aOption && aOption.masked)
     this.masked = true;
 }
 purplePref.prototype = {
-  __proto__: ClassInfo("purpleIPref", "generic account option preference"),
+  __proto__: ClassInfo("prplIPref", "generic account option preference"),
 
   masked: false,
 
   // Default value
   getBool: function() this._defaultValue,
   getInt: function() this._defaultValue,
   getString: function() this._defaultValue,
   getList: function() {
@@ -596,23 +596,23 @@ purplePref.prototype = {
   getListDefault: function() this._defaultValue
 };
 
 function purpleKeyValuePair(aName, aValue) {
   this.name = aName;
   this.value = aValue;
 }
 purpleKeyValuePair.prototype =
-  ClassInfo("purpleIKeyValuePair", "generic Key Value Pair");
+  ClassInfo("prplIKeyValuePair", "generic Key Value Pair");
 
 function UsernameSplit(aValues) {
   this._values = aValues;
 }
 UsernameSplit.prototype = {
-  __proto__: ClassInfo("purpleIUsernameSplit", "username split object"),
+  __proto__: ClassInfo("prplIUsernameSplit", "username split object"),
 
   get label() this._values.label,
   get separator() this._values.separator,
   get defaultValue() this._values.defaultValue,
   get reverse() !!this._values.reverse // Ensure boolean
 };
 
 function ChatRoomField(aIdentifier, aField) {
@@ -623,26 +623,26 @@ function ChatRoomField(aIdentifier, aFie
   let type = "TEXT";
   if ((typeof aField.default) == "number") {
     type = "INT";
     this.min = aField.min;
     this.max = aField.max;
   }
   else if (aField.isPassword)
     type = "PASSWORD";
-  this.type = Ci.purpleIChatRoomField["TYPE_" + type];
+  this.type = Ci.prplIChatRoomField["TYPE_" + type];
 }
 ChatRoomField.prototype =
-  ClassInfo("purpleIChatRoomField", "ChatRoomField object");
+  ClassInfo("prplIChatRoomField", "ChatRoomField object");
 
 function ChatRoomFieldValues(aMap) {
   this.values = aMap;
 }
 ChatRoomFieldValues.prototype = {
-  __proto__: ClassInfo("purpleIChatRoomFieldValues", "ChatRoomFieldValues"),
+  __proto__: ClassInfo("prplIChatRoomFieldValues", "ChatRoomFieldValues"),
 
   getValue: function(aIdentifier)
     this.values.hasOwnProperty(aIdentifier) ? this.values[aIdentifier] : null,
   setValue: function(aIdentifier, aValue) {
     this.values[aIdentifier] = aValue;
   }
 };
 
--- a/chat/protocols/twitter/twitter.js
+++ b/chat/protocols/twitter/twitter.js
@@ -104,17 +104,17 @@ Tweet.prototype = {
 
 function Action(aLabel, aAction, aTweet)
 {
   this.label = aLabel;
   this._action = aAction;
   this._tweet = aTweet;
 }
 Action.prototype = {
-  __proto__: ClassInfo("purpleIMessageAction", "generic message action object"),
+  __proto__: ClassInfo("prplIMessageAction", "generic message action object"),
   get run() this._action.bind(this._tweet)
 };
 
 function Conversation(aAccount)
 {
   this._init(aAccount);
   this._ensureParticipantExists(aAccount.name);
 }
@@ -803,17 +803,17 @@ Account.prototype = {
 
           window: aWindow,
           webProgress: aWebProgress,
           _parent: this.account
         };
         aWebProgress.addProgressListener(this._listener,
                                          Ci.nsIWebProgress.NOTIFY_ALL);
       },
-      QueryInterface: XPCOMUtils.generateQI([Ci.purpleIRequestBrowser])
+      QueryInterface: XPCOMUtils.generateQI([Ci.prplIRequestBrowser])
     };
     Services.obs.notifyObservers(this._browserRequest, "browser-request", null);
   },
   finishAuthorizationRequest: function() {
     if (!("_browserRequest" in this))
       return;
 
     this._browserRequest._active = false;
--- a/chat/protocols/xmpp/xmpp.jsm
+++ b/chat/protocols/xmpp/xmpp.jsm
@@ -81,17 +81,17 @@ const kRoles = ["outcast", "visitor", "p
 
 function MUCParticipant(aNick, aName, aStanza)
 {
   this._jid = aName;
   this.name = aNick;
   this.stanza = aStanza;
 }
 MUCParticipant.prototype = {
-  __proto__: ClassInfo("purpleIConvChatBuddy", "XMPP ConvChatBuddy object"),
+  __proto__: ClassInfo("prplIConvChatBuddy", "XMPP ConvChatBuddy object"),
 
   buddy: false,
   get alias() this.name,
 
   role: 2, // "participant" by default
   set stanza(aStanza) {
     this._stanza = aStanza;
 
@@ -688,21 +688,21 @@ const XMPPAccountPrototype = {
 
     let state;
     let s = aStanza.getChildrenByNS(Stanza.NS.chatstates);
     if (s.length > 0)
       state = s[0].localName;
     if (state) {
       DEBUG(state);
       if (state == "active")
-        this._conv[norm].updateTyping(Ci.purpleIConvIM.NOT_TYPING);
+        this._conv[norm].updateTyping(Ci.prplIConvIM.NOT_TYPING);
       else if (state == "composing")
-        this._conv[norm].updateTyping(Ci.purpleIConvIM.TYPING);
+        this._conv[norm].updateTyping(Ci.prplIConvIM.TYPING);
       else if (state == "paused")
-        this._conv[norm].updateTyping(Ci.purpleIConvIM.TYPED);
+        this._conv[norm].updateTyping(Ci.prplIConvIM.TYPED);
     }
     else
       this._conv[norm].supportChatStateNotifications = false;
   },
 
   /* Called when there is an error in the xmpp session */
   onError: function(aError, aException) {
     if (aError === null || aError === undefined)
--- a/im/content/buddytooltip.xml
+++ b/im/content/buddytooltip.xml
@@ -275,23 +275,23 @@
      </method>
 
      <method name="appendTooltipInfo">
        <parameter name="aTooltipInfo"/>
        <body>
        <![CDATA[
          while (aTooltipInfo.hasMoreElements()) {
            var elt =
-             aTooltipInfo.getNext().QueryInterface(Ci.purpleITooltipInfo);
+             aTooltipInfo.getNext().QueryInterface(Ci.prplITooltipInfo);
            switch (elt.type) {
-             case Ci.purpleITooltipInfo.pair:
-             case Ci.purpleITooltipInfo.sectionHeader:
+             case Ci.prplITooltipInfo.pair:
+             case Ci.prplITooltipInfo.sectionHeader:
                this.addRow(elt.label, elt.value);
                break;
-             case Ci.purpleITooltipInfo.sectionBreak:
+             case Ci.prplITooltipInfo.sectionBreak:
                this.addSeparator();
                break;
            }
          }
        ]]>
        </body>
      </method>
 
--- a/im/content/conversation.xml
+++ b/im/content/conversation.xml
@@ -1108,22 +1108,22 @@
           if (typingState == this.typingState)
             return;
 
           this.tab.removeAttribute("typing");
           this.tab.removeAttribute("typed");
           this._statusText = "";
 
           var name = this._conv.title.replace(/^([a-zA-Z0-9.]+)[@\s].*/, "$1");
-          if (typingState == Ci.purpleIConvIM.TYPING) {
+          if (typingState == Ci.prplIConvIM.TYPING) {
             this.tab.setAttribute("typing", "true");
             this._statusText = this.bundle.formatStringFromName("isTyping",
                                                                 [name], 1);
           }
-          else if (typingState == Ci.purpleIConvIM.TYPED) {
+          else if (typingState == Ci.prplIConvIM.TYPED) {
             this.tab.setAttribute("typed", "true");
             this._statusText = this.bundle.formatStringFromName("hasStoppedTyping",
                                                                 [name], 1);
           }
 
           this.typingState = typingState;
           this.displayStatusText();
        ]]>
--- a/im/content/joinchat.js
+++ b/im/content/joinchat.js
@@ -89,19 +89,19 @@ var joinChat = {
       label.setAttribute("control", "field-" + field.identifier);
       row.appendChild(label);
 
       let textbox = document.createElement("textbox");
       textbox.setAttribute("id", "field-" + field.identifier);
       let val = defaultValues.getValue(field.identifier);
       if (val)
         textbox.setAttribute("value", val);
-      if (field.type == Ci.purpleIChatRoomField.TYPE_PASSWORD)
+      if (field.type == Ci.prplIChatRoomField.TYPE_PASSWORD)
         textbox.setAttribute("type", "password");
-      else if (field.type == Ci.purpleIChatRoomField.TYPE_INT) {
+      else if (field.type == Ci.prplIChatRoomField.TYPE_INT) {
         textbox.setAttribute("type", "number");
         textbox.setAttribute("min", field.min);
         textbox.setAttribute("max", field.max);
       }
       row.appendChild(textbox);
 
       if (!field.required) {
         label = document.createElement("label");