Bug 954193 - reorganize purplexpcom - move files (mostly icons) around so that chat/ doesn't depend on chrome://instantbird/.
authorFlorian Quèze <florian@instantbird.org>
Fri, 23 Dec 2011 16:11:17 +0100
changeset 18505 db8bc10c718b8d9877593d3d25da2dcdf1566348
parent 18504 ac087a70708f3b9eb52e92dbefd4dda30f826118
child 18506 f5acee57fa79bbf087d64bbde5786bd8b6ff9cae
push id1103
push usermbanner@mozilla.com
push dateTue, 18 Mar 2014 07:44:06 +0000
treeherdercomm-beta@50c6279a0af0 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
bugs954193
Bug 954193 - reorganize purplexpcom - move files (mostly icons) around so that chat/ doesn't depend on chrome://instantbird/.
chat/components/src/imAccounts.js
chat/content/browserRequest.xul
chat/content/convbrowser.xml
chat/content/jar.mn
chat/modules/Makefile.in
chat/modules/ibInterruptions.jsm
chat/modules/ibSounds.jsm
chat/modules/imThemes.jsm
chat/modules/jsProtoHelper.jsm
chat/protocols/facebook/jar.mn
chat/protocols/gtalk/jar.mn
chat/protocols/twitter/jar.mn
chat/themes/available-16.png
chat/themes/available.png
chat/themes/away-16.png
chat/themes/away.png
chat/themes/browserRequest.css
chat/themes/chat-16.png
chat/themes/chat-left-16.png
chat/themes/conv.css
chat/themes/idle-16.png
chat/themes/idle.png
chat/themes/jar.mn
chat/themes/mobile-16.png
chat/themes/mobile.png
chat/themes/offline-16.png
chat/themes/offline.png
chat/themes/typed-16.png
chat/themes/typing-16.png
chat/themes/unknown-16.png
chat/themes/unknown.png
im/content/instantbird.css
im/installer/package-manifest.in
im/modules/Makefile.in
im/modules/ibCore.jsm
im/modules/ibInterruptions.jsm
im/modules/ibSounds.jsm
im/themes/accounts.css
im/themes/available-16.png
im/themes/available.png
im/themes/away-16.png
im/themes/away.png
im/themes/blist.css
im/themes/chat-16.png
im/themes/chat-left-16.png
im/themes/conv.css
im/themes/conversation.css
im/themes/idle-16.png
im/themes/idle.png
im/themes/instantbird.css
im/themes/jar.mn
im/themes/menus.css
im/themes/mobile-16.png
im/themes/mobile.png
im/themes/offline-16.png
im/themes/offline.png
im/themes/status.css
im/themes/typed-16.png
im/themes/typing-16.png
im/themes/unknown-16.png
im/themes/unknown.png
--- a/chat/components/src/imAccounts.js
+++ b/chat/components/src/imAccounts.js
@@ -92,17 +92,17 @@ var AutoLoginCounter = {
 function UnknownProtocol(aPrplId)
 {
   this.id = aPrplId;
 }
 UnknownProtocol.prototype = {
   __proto__: ClassInfo("prplIProtocol", "Unknown protocol"),
   get name() "",
   get normalizedName() this.name,
-  get iconBaseURI() "chrome://instantbird/skin/prpl-unknown/",
+  get iconBaseURI() "chrome://chat/skin/prpl-unknown/",
   getOptions: function() EmptyEnumerator,
   getUsernameSplit: function() EmptyEnumerator,
   get usernameEmptyText() "",
 
   getAccount: function(aKey, aName) { throw Cr.NS_ERROR_NOT_IMPLEMENTED; },
   accountExists: function() { throw Cr.NS_ERROR_NOT_IMPLEMENTED; },
 
   // false seems an acceptable default for all options
--- a/chat/content/browserRequest.xul
+++ b/chat/content/browserRequest.xul
@@ -32,37 +32,37 @@
    - decision by deleting the provisions above and replace them with the notice
    - and other provisions required by the LGPL or the GPL. 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 ***** -->
 
 <?xml-stylesheet href="chrome://global/skin/" type="text/css"?>
-<?xml-stylesheet href="chrome://instantbird/skin/browserRequest.css" type="text/css"?>
+<?xml-stylesheet href="chrome://chat/skin/browserRequest.css" type="text/css"?>
 
 <!DOCTYPE window>
 <window id="browserRequest"
         xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
         buttons=","
         onload="loadRequestedUrl()"
         onclose="reportUserClosed()"
         title=""
         width="800"
         height="500"
         orient="vertical">
 
-  <script type="application/javascript" src="chrome://instantbird/content/browserRequest.js"/>
+  <script type="application/javascript" src="chrome://chat/content/browserRequest.js"/>
 
   <keyset id="mainKeyset">
     <key id="key_close"   key="w" modifiers="accel" oncommand="cancelRequest()"/>
     <key id="key_close2"  keycode="VK_ESCAPE" oncommand="cancelRequest()"/>
   </keyset>
   <hbox id="header">
-    <image id="headerImage" src="chrome://instantbird/skin/prpl-generic/icon32.png"/>
+    <image id="headerImage" src="chrome://chat/skin/prpl-generic/icon32.png"/>
     <vbox>
     <label id="headerLabel"/>
     <description id="headerMessage"/>
     </vbox>
   </hbox>
   <browser type="content" disablehistory="true" src="about:blank" id="requestFrame" flex="1"/>
   <statusbar>
     <statusbarpanel id="security-display" crop="end" flex="1"/>
--- a/chat/content/convbrowser.xml
+++ b/chat/content/convbrowser.xml
@@ -95,17 +95,17 @@
             // init is called when the message style preview is
             // reloaded so we need to reset _theme.
             this._theme = null;
 
             // _loadState is 0 while loading conv.html and 1 while
             // loading the real conversation HTML.
             this._loadState = 0;
 
-            const URI = "chrome://instantbird/content/conv.html";
+            const URI = "chrome://chat/content/conv.html";
             const flag = Components.interfaces.nsIWebNavigation.LOAD_FLAGS_NONE;
             this.webNavigation.loadURI(URI, flag, null, null, null);
             this.addProgressListener(this);
 
             if (this._scrollingView)
               this._autoScrollPopup.hidePopup();
           ]]>
         </body>
--- a/chat/content/jar.mn
+++ b/chat/content/jar.mn
@@ -1,6 +1,6 @@
-instantbird.jar:
-% content instantbird %content/instantbird/
-	content/instantbird/browserRequest.js
-	content/instantbird/browserRequest.xul
-	content/instantbird/convbrowser.xml
-	content/instantbird/conv.html
+chat.jar:
+% content chat %content/chat/
+	content/chat/browserRequest.js
+	content/chat/browserRequest.xul
+	content/chat/convbrowser.xml
+	content/chat/conv.html
--- a/chat/modules/Makefile.in
+++ b/chat/modules/Makefile.in
@@ -38,18 +38,16 @@ DEPTH		= ../..
 topsrcdir	= @top_srcdir@
 srcdir		= @srcdir@
 VPATH		= @srcdir@
 
 include $(DEPTH)/config/autoconf.mk
 
 EXTRA_JS_MODULES = \
 	http.jsm \
-	ibInterruptions.jsm \
-	ibSounds.jsm \
 	imContentSink.jsm \
 	imServices.jsm \
 	imSmileys.jsm \
 	imStatusUtils.jsm \
 	imXPCOMUtils.jsm \
 	jsProtoHelper.jsm \
 	socket.jsm \
 	$(NULL)
--- a/chat/modules/imThemes.jsm
+++ b/chat/modules/imThemes.jsm
@@ -346,17 +346,17 @@ function getStatusIconFromBuddy(aBuddy)
     else if (aBuddy.idle)
       status = "idle";
     else if (!aBuddy.available)
       status = "away";
     else
       status = "available";
   }
 
-  return "chrome://instantbird/skin/" + status + "-16.png";
+  return "chrome://chat/skin/" + status + "-16.png";
 }
 
 const headerFooterReplacements = {
   chatName: function(aConv) aConv.title,
   sourceName: function(aConv) aConv.account.alias || aConv.account.name,
   destinationName: function(aConv) aConv.name,
   destinationDisplayName: function(aConv) aConv.title,
   incomingIconPath: function(aConv) {
@@ -593,17 +593,17 @@ function getMetadata(aTheme, aKey)
 function initHTMLDocument(aConv, aTheme, aDoc)
 {
   var HTML = "<html><head><base href=\"" + aTheme.baseURI + "\"/>";
 
   function addCSS(aHref)
   {
     HTML += "<link rel=\"stylesheet\" href=\"" + aHref + "\" type=\"text/css\"/>";
   }
-  addCSS("chrome://instantbird/skin/conv.css");
+  addCSS("chrome://chat/skin/conv.css");
 
   // add css to handle DefaultFontFamily and DefaultFontSize
   let cssText = "";
   if (hasMetadataKey(aTheme, "DefaultFontFamily"))
     cssText += "font-family: " + getMetadata(aTheme, "DefaultFontFamily") + ";";
   if (hasMetadataKey(aTheme, "DefaultFontSize"))
     cssText += "font-size: " + getMetadata(aTheme, "DefaultFontSize") + ";";
   if (cssText)
--- a/chat/modules/jsProtoHelper.jsm
+++ b/chat/modules/jsProtoHelper.jsm
@@ -668,17 +668,17 @@ const GenericProtocolPrototype = {
   __proto__: ClassInfo("prplIProtocol", "Generic protocol object"),
 
   init: function(aId) {
     if (aId != this.id)
       throw "Creating an instance of " + aId + " but this object implements " + this.id;
   },
   get id() "prpl-" + this.normalizedName,
   get normalizedName() normalize(this.name),
-  get iconBaseURI() "chrome://instantbird/skin/prpl-generic/",
+  get iconBaseURI() "chrome://chat/skin/prpl-generic/",
 
   getAccount: function(aImAccount) { throw Cr.NS_ERROR_NOT_IMPLEMENTED; },
 
   _getOptionDefault: function(aName) {
     if (this.options && this.options.hasOwnProperty(aName))
       return this.options[aName].default;
     throw aName + " has no default value in " + this.id + ".";
   },
--- a/chat/protocols/facebook/jar.mn
+++ b/chat/protocols/facebook/jar.mn
@@ -1,5 +1,5 @@
-instantbird.jar:
+chat.jar:
 % skin prpl-facebook classic/1.0 %skin/classic/prpl/facebook/
 	skin/classic/prpl/facebook/icon32.png	(icons/prpl-facebook-32.png)
 	skin/classic/prpl/facebook/icon48.png	(icons/prpl-facebook-48.png)
 	skin/classic/prpl/facebook/icon.png	(icons/prpl-facebook.png)
--- a/chat/protocols/gtalk/jar.mn
+++ b/chat/protocols/gtalk/jar.mn
@@ -1,5 +1,5 @@
-instantbird.jar:
+chat.jar:
 % skin prpl-gtalk classic/1.0 %skin/classic/prpl/gtalk/
 	skin/classic/prpl/gtalk/icon32.png	(icons/prpl-gtalk-32.png)
 	skin/classic/prpl/gtalk/icon48.png	(icons/prpl-gtalk-48.png)
 	skin/classic/prpl/gtalk/icon.png	(icons/prpl-gtalk.png)
--- a/chat/protocols/twitter/jar.mn
+++ b/chat/protocols/twitter/jar.mn
@@ -1,5 +1,5 @@
-instantbird.jar:
+chat.jar:
 % skin prpl-twitter classic/1.0 %skin/classic/prpl/twitter/
 	skin/classic/prpl/twitter/icon32.png	(icons/prpl-twitter-32.png)
 	skin/classic/prpl/twitter/icon48.png	(icons/prpl-twitter-48.png)
 	skin/classic/prpl/twitter/icon.png	(icons/prpl-twitter.png)
rename from im/themes/available-16.png
rename to chat/themes/available-16.png
rename from im/themes/available.png
rename to chat/themes/available.png
rename from im/themes/away-16.png
rename to chat/themes/away-16.png
rename from im/themes/away.png
rename to chat/themes/away.png
--- a/chat/themes/browserRequest.css
+++ b/chat/themes/browserRequest.css
@@ -41,21 +41,21 @@ statusbar {
 }
 #security-button {
   width: 20px;
   padding: 0;
   margin: 0;
 }
 #security-button[level="high"],
 #security-button[level="low"] {
-  background-image: url("chrome://instantbird/skin/icons/secure.png");
+  background-image: url("chrome://chat/skin/icons/secure.png");
 }
 
 #security-button[level="broken"] {
-  background-image: url("chrome://instantbird/skin/icons/insecure.png");
+  background-image: url("chrome://chat/skin/icons/insecure.png");
 }
 
 #header {
   padding: 5px;
   border-bottom: 1px solid black;
 }
 
 #header label {
rename from im/themes/chat-16.png
rename to chat/themes/chat-16.png
rename from im/themes/chat-left-16.png
rename to chat/themes/chat-left-16.png
rename from im/themes/conv.css
rename to chat/themes/conv.css
rename from im/themes/idle-16.png
rename to chat/themes/idle-16.png
rename from im/themes/idle.png
rename to chat/themes/idle.png
--- a/chat/themes/jar.mn
+++ b/chat/themes/jar.mn
@@ -1,28 +1,28 @@
-instantbird.jar:
-#ifndef XP_WIN
-% skin instantbird classic/1.0 %skin/classic/instantbird/
-#else
-% skin instantbird classic/1.0 %skin/classic/instantbird/ os=WINNT osversion<6
-% skin instantbird classic/1.0 %skin/classic/instantbird/ os!=WINNT
-% skin instantbird classic/1.0 %skin/classic/aero/instantbird/ os=WINNT osversion>=6
-#endif
-	skin/classic/instantbird/browserRequest.css
-	skin/classic/instantbird/prpl-generic/icon32.png	(icons/prpl-generic-32.png)
-	skin/classic/instantbird/prpl-generic/icon48.png	(icons/prpl-generic-48.png)
-	skin/classic/instantbird/prpl-generic/icon.png		(icons/prpl-generic.png)
-	skin/classic/instantbird/prpl-unknown/icon32.png	(icons/prpl-unknown-32.png)
-	skin/classic/instantbird/prpl-unknown/icon48.png	(icons/prpl-unknown-48.png)
-	skin/classic/instantbird/prpl-unknown/icon.png		(icons/prpl-unknown.png)
-	skin/classic/instantbird/icons/secure.png               (icons/secure.png)
-	skin/classic/instantbird/icons/insecure.png             (icons/insecure.png)
-#ifdef XP_WIN
-	skin/classic/aero/instantbird/browserRequest.css
-	skin/classic/aero/instantbird/prpl-generic/icon32.png   (icons/prpl-generic-32.png)
-	skin/classic/aero/instantbird/prpl-generic/icon48.png   (icons/prpl-generic-48.png)
-	skin/classic/aero/instantbird/prpl-generic/icon.png     (icons/prpl-generic.png)
-	skin/classic/aero/instantbird/prpl-unknown/icon32.png   (icons/prpl-unknown-32.png)
-	skin/classic/aero/instantbird/prpl-unknown/icon48.png   (icons/prpl-unknown-48.png)
-	skin/classic/aero/instantbird/prpl-unknown/icon.png     (icons/prpl-unknown.png)
-	skin/classic/aero/instantbird/icons/secure.png               (icons/secure.png)
-	skin/classic/aero/instantbird/icons/insecure.png             (icons/insecure.png)
-#endif
+chat.jar:
+% skin chat classic/1.0 %skin/classic/chat/
+	skin/classic/chat/available-16.png
+	skin/classic/chat/available.png
+	skin/classic/chat/away-16.png
+	skin/classic/chat/away.png
+	skin/classic/chat/idle-16.png
+	skin/classic/chat/idle.png
+	skin/classic/chat/mobile-16.png
+	skin/classic/chat/mobile.png
+	skin/classic/chat/offline-16.png
+	skin/classic/chat/offline.png
+	skin/classic/chat/typing-16.png
+	skin/classic/chat/typed-16.png
+	skin/classic/chat/unknown.png
+	skin/classic/chat/unknown-16.png
+	skin/classic/chat/chat-16.png
+	skin/classic/chat/chat-left-16.png
+	skin/classic/chat/conv.css
+	skin/classic/chat/browserRequest.css
+	skin/classic/chat/prpl-generic/icon32.png	(icons/prpl-generic-32.png)
+	skin/classic/chat/prpl-generic/icon48.png	(icons/prpl-generic-48.png)
+	skin/classic/chat/prpl-generic/icon.png		(icons/prpl-generic.png)
+	skin/classic/chat/prpl-unknown/icon32.png	(icons/prpl-unknown-32.png)
+	skin/classic/chat/prpl-unknown/icon48.png	(icons/prpl-unknown-48.png)
+	skin/classic/chat/prpl-unknown/icon.png		(icons/prpl-unknown.png)
+	skin/classic/chat/icons/secure.png		(icons/secure.png)
+	skin/classic/chat/icons/insecure.png		(icons/insecure.png)
rename from im/themes/mobile-16.png
rename to chat/themes/mobile-16.png
rename from im/themes/mobile.png
rename to chat/themes/mobile.png
rename from im/themes/offline-16.png
rename to chat/themes/offline-16.png
rename from im/themes/offline.png
rename to chat/themes/offline.png
rename from im/themes/typed-16.png
rename to chat/themes/typed-16.png
rename from im/themes/typing-16.png
rename to chat/themes/typing-16.png
rename from im/themes/unknown-16.png
rename to chat/themes/unknown-16.png
rename from im/themes/unknown.png
rename to chat/themes/unknown.png
--- a/im/content/instantbird.css
+++ b/im/content/instantbird.css
@@ -76,10 +76,10 @@ conversation {
   }
 }
 
 .alltargets-item {
   -moz-binding: url("chrome://instantbird/content/conversation.xml#menuitem-target");
 }
 
 browser[type="content-conversation"] {
-  -moz-binding: url("chrome://instantbird/content/convbrowser.xml#browser");
+  -moz-binding: url("chrome://chat/content/convbrowser.xml#browser");
 }
--- a/im/installer/package-manifest.in
+++ b/im/installer/package-manifest.in
@@ -390,22 +390,26 @@
 #ifdef XP_UNIX
 #ifndef XP_MACOSX
 @BINPATH@/icons/*.xpm
 @BINPATH@/icons/*.png
 #endif
 #endif
 
 ; [libpurple]
+@BINPATH@/chrome/purple@JAREXT@
+@BINPATH@/chrome/purple.manifest
 @BINPATH@/@DLL_PREFIX@purple@DLL_SUFFIX@
 @BINPATH@/components/@DLL_PREFIX@purplexpcom@DLL_SUFFIX@
 @BINPATH@/components/purplexpcom.xpt
 @BINPATH@/components/prpl.manifest
 
 ; [chat]
+@BINPATH@/chrome/chat@JAREXT@
+@BINPATH@/chrome/chat.manifest
 @BINPATH@/components/chat.xpt
 @BINPATH@/components/imAccounts.js
 @BINPATH@/components/imAccounts.manifest
 @BINPATH@/components/imCommands.js
 @BINPATH@/components/imCommands.manifest
 @BINPATH@/components/imContacts.js
 @BINPATH@/components/imContacts.manifest
 @BINPATH@/components/imConversations.js
--- a/im/modules/Makefile.in
+++ b/im/modules/Makefile.in
@@ -42,16 +42,18 @@ VPATH		= @srcdir@
 include $(DEPTH)/config/autoconf.mk
 
 EXTRA_JS_MODULES = \
 	ibNotifications.jsm \
 	$(NULL)
 
 EXTRA_PP_JS_MODULES = \
 	ibCore.jsm \
+	ibInterruptions.jsm \
+	ibSounds.jsm \
 	imWindows.jsm \
 	$(NULL)
 
 ifeq ($(OS_ARCH),WINNT)
 EXTRA_JS_MODULES += ibWinJumpList.jsm
 endif
 
 include $(topsrcdir)/config/rules.mk
--- a/im/modules/ibCore.jsm
+++ b/im/modules/ibCore.jsm
@@ -215,17 +215,17 @@ var Core = {
       let account = aSubject.QueryInterface(Ci.imIAccount);
       if (account.reconnectAttempt <= 1)
         this._showAccountManagerIfNeeded(false);
       return;
     }
 
     if (aTopic == "browser-request") {
       Services.ww.openWindow(null,
-                             "chrome://instantbird/content/browserRequest.xul",
+                             "chrome://chat/content/browserRequest.xul",
                              null, "chrome", aSubject);
       return;
     }
 
     if (aTopic == "quit-application-requested") {
       this._onQuitRequest(aSubject, aMsg);
       return;
     }
rename from chat/modules/ibInterruptions.jsm
rename to im/modules/ibInterruptions.jsm
rename from chat/modules/ibSounds.jsm
rename to im/modules/ibSounds.jsm
--- a/im/themes/accounts.css
+++ b/im/themes/accounts.css
@@ -240,19 +240,19 @@ richlistitem[dragover="up"] {
 .accountStateIcon {
   -moz-margin-start: 16px;
   margin-top: 16px;
   width: 16px;
   height: 16px;
 }
 
 richlistitem[state="connected"] .accountStateIcon {
-  list-style-image: url("chrome://instantbird/skin/available-16.png");
+  list-style-image: url("chrome://chat/skin/available-16.png");
 }
 richlistitem[state="disconnected"] .accountStateIcon {
-  list-style-image: url("chrome://instantbird/skin/offline-16.png");
+  list-style-image: url("chrome://chat/skin/offline-16.png");
 }
 richlistitem[state="connecting"] .accountStateIcon {
   list-style-image: url("chrome://global/skin/icons/loading_16.png");
 }
 richlistitem[error="true"] .accountStateIcon {
   list-style-image: url("chrome://global/skin/icons/warning-16.png");
 }
--- a/im/themes/blist.css
+++ b/im/themes/blist.css
@@ -232,17 +232,17 @@ contact[droptarget] > buddy[dummy] {
   -moz-image-region: rect(0, 32px, 16px, 16px);
 }
 .hideGroupButton:hover:active {
   -moz-image-region: rect(0, 48px, 16px, 32px);
 %endif
 }
 
 .startChatBubble {
-  list-style-image: url('chrome://instantbird/skin/prpl-generic/icon.png');
+  list-style-image: url('chrome://chat/skin/prpl-generic/icon.png');
 }
 
 .expander-up {
   list-style-image: url("chrome://instantbird/skin/collapse.png");
 }
 
 .expander-down {
   list-style-image: url("chrome://instantbird/skin/expand.png");
@@ -396,33 +396,33 @@ group[closed] .twisty {
 #statusTypeIcon .button-box {
   padding: 0 0;
   border: none;
 }
 %endif
 
 #statusTypeIcon[status="available"],
 #statusTypeAvailable {
-  list-style-image: url('chrome://instantbird/skin/available-16.png');
+  list-style-image: url('chrome://chat/skin/available-16.png');
 }
 
 #statusTypeIcon[status="unavailable"],
 #statusTypeIcon[status="away"],
 #statusTypeUnavailable {
-  list-style-image: url('chrome://instantbird/skin/away-16.png');
+  list-style-image: url('chrome://chat/skin/away-16.png');
 }
 
 #statusTypeIcon[status="offline"],
 #statusTypeIcon[status="invisible"],
 #statusTypeOffline {
-  list-style-image: url('chrome://instantbird/skin/offline-16.png');
+  list-style-image: url('chrome://chat/skin/offline-16.png');
 }
 
 #statusTypeIcon[status="idle"] {
-  list-style-image: url('chrome://instantbird/skin/idle-16.png');
+  list-style-image: url('chrome://chat/skin/idle-16.png');
 }
 
 %ifdef XP_MACOSX
 #statusMessage {
   margin: 32px 0 0;
   min-height: 16px;
 }
 
--- a/im/themes/conversation.css
+++ b/im/themes/conversation.css
@@ -103,39 +103,39 @@
   min-height: 16px;
   min-width: 16px;
   -moz-appearance: none;
   background-color: transparent;
   border: none;
 }
 
 .statusTypeIcon[status="unknown"] {
-  list-style-image: url('chrome://instantbird/skin/unknown-16.png');
+  list-style-image: url('chrome://chat/skin/unknown-16.png');
 }
 
 .statusTypeIcon[status="chat"] {
-  list-style-image: url('chrome://instantbird/skin/chat-16.png');
+  list-style-image: url('chrome://chat/skin/chat-16.png');
 }
 
 .statusTypeIcon[status="available"] {
-  list-style-image: url('chrome://instantbird/skin/available-16.png');
+  list-style-image: url('chrome://chat/skin/available-16.png');
 }
 
 .statusTypeIcon[status="unavailable"],
 .statusTypeIcon[status="away"] {
-  list-style-image: url('chrome://instantbird/skin/away-16.png');
+  list-style-image: url('chrome://chat/skin/away-16.png');
 }
 
 .statusTypeIcon[status="offline"],
 .statusTypeIcon[status="invisible"] {
-  list-style-image: url('chrome://instantbird/skin/offline-16.png');
+  list-style-image: url('chrome://chat/skin/offline-16.png');
 }
 
 .statusTypeIcon[status="idle"] {
-  list-style-image: url('chrome://instantbird/skin/idle-16.png');
+  list-style-image: url('chrome://chat/skin/idle-16.png');
 }
 
 .statusMessage {
   margin: 0 0 !important;
 %ifdef XP_MACOSX
   min-height: 16px;
 %endif
 }
@@ -162,33 +162,33 @@
 }
 
 .alltargets-item[selected="true"] {
   font-weight: bold;
 }
 
 .status-overlay-icon[status="away"],
 .status-overlay-icon[status="unavailable"] {
-  list-style-image: url('chrome://instantbird/skin/away.png');
+  list-style-image: url('chrome://chat/skin/away.png');
 }
 
 .status-overlay-icon[status="idle"] {
-  list-style-image: url('chrome://instantbird/skin/idle.png');
+  list-style-image: url('chrome://chat/skin/idle.png');
 }
 
 .status-overlay-icon[status="mobile"] {
-  list-style-image: url('chrome://instantbird/skin/mobile.png');
+  list-style-image: url('chrome://chat/skin/mobile.png');
 }
 
 .status-overlay-icon[status="offline"] {
-  list-style-image: url('chrome://instantbird/skin/offline.png');
+  list-style-image: url('chrome://chat/skin/offline.png');
 }
 
 .status-overlay-icon[status="unknown"] {
-  list-style-image: url('chrome://instantbird/skin/unknown.png');
+  list-style-image: url('chrome://chat/skin/unknown.png');
 }
 
 @media all and (min-height: 251px) {
   .statusImageStack,
   .displayNameAndstatusMessageStack {
     margin: 2px 2px;
   }
 
--- a/im/themes/instantbird.css
+++ b/im/themes/instantbird.css
@@ -96,57 +96,57 @@ tab[typed],
 tab[attention],
 .alltabs-item[attention] {
   color: blue !important;
 }
 
 /* Tab icons */
 .tabbrowser-tab,
 .alltabs-item > .menu-iconic-left > .menu-iconic-icon {
-  list-style-image: url("chrome://instantbird/skin/unknown-16.png");
+  list-style-image: url("chrome://chat/skin/unknown-16.png");
   -moz-image-region: rect(0px, 16px, 16px, 0px);
 }
 
 .tabbrowser-tab {
   text-align: center;
 }
 
 .tabbrowser-tab[chat],
 .alltabs-item[chat] > .menu-iconic-left > .menu-iconic-icon {
-  list-style-image: url("chrome://instantbird/skin/chat-16.png") !important;
+  list-style-image: url("chrome://chat/skin/chat-16.png") !important;
 }
 .tabbrowser-tab[chat][status="left"],
 .alltabs-item[chat][status="left"] > .menu-iconic-left > .menu-iconic-icon {
-  list-style-image: url("chrome://instantbird/skin/chat-left-16.png") !important;
+  list-style-image: url("chrome://chat/skin/chat-left-16.png") !important;
 }
 
 .tabbrowser-tab[status="offline"],
 .alltabs-item[status="offline"] > .menu-iconic-left > .menu-iconic-icon {
-  list-style-image: url("chrome://instantbird/skin/offline-16.png") !important;
+  list-style-image: url("chrome://chat/skin/offline-16.png") !important;
 }
 .tabbrowser-tab[status="available"],
 .alltabs-item[status="available"] > .menu-iconic-left > .menu-iconic-icon {
-  list-style-image: url("chrome://instantbird/skin/available-16.png") !important;
+  list-style-image: url("chrome://chat/skin/available-16.png") !important;
 }
 .tabbrowser-tab[status="away"],
 .tabbrowser-tab[status="unavailable"],
 .alltabs-item[status="away"] > .menu-iconic-left > .menu-iconic-icon,
 .alltabs-item[status="unavailable"] > .menu-iconic-left > .menu-iconic-icon {
-  list-style-image: url("chrome://instantbird/skin/away-16.png") !important;
+  list-style-image: url("chrome://chat/skin/away-16.png") !important;
 }
 .tabbrowser-tab[status="idle"],
 .alltabs-item[status="idle"] > .menu-iconic-left > .menu-iconic-icon {
-  list-style-image: url("chrome://instantbird/skin/idle-16.png") !important;
+  list-style-image: url("chrome://chat/skin/idle-16.png") !important;
 }
 .tabbrowser-tab[status="mobile"],
 .alltabs-item[status="mobile"] > .menu-iconic-left > .menu-iconic-icon {
-  list-style-image: url("chrome://instantbird/skin/mobile-16.png") !important;
+  list-style-image: url("chrome://chat/skin/mobile-16.png") !important;
 }
 
 .tabbrowser-tab[typing],
 .alltabs-item[typing] > .menu-iconic-left > .menu-iconic-icon {
-  list-style-image: url("chrome://instantbird/skin/typing-16.png") !important;
+  list-style-image: url("chrome://chat/skin/typing-16.png") !important;
 }
 
 .tabbrowser-tab[typed],
 .alltabs-item[typed] > .menu-iconic-left > .menu-iconic-icon {
-  list-style-image: url("chrome://instantbird/skin/typed-16.png") !important;
+  list-style-image: url("chrome://chat/skin/typed-16.png") !important;
 }
--- a/im/themes/jar.mn
+++ b/im/themes/jar.mn
@@ -7,39 +7,22 @@ instantbird.jar:
 % skin instantbird classic/1.0 %skin/classic/aero/instantbird/ os=WINNT osversion>=6
 #endif
 	skin/classic/instantbird/account.css
 *	skin/classic/instantbird/accounts.css
 	skin/classic/instantbird/alert.css
 % style chrome://global/content/alerts/alert.xul chrome://instantbird/skin/alert.css
 *	skin/classic/instantbird/richlistbox.css
 *	skin/classic/instantbird/accountWizard.css
-	skin/classic/instantbird/available-16.png
-	skin/classic/instantbird/available.png
-	skin/classic/instantbird/away-16.png
-	skin/classic/instantbird/away.png
-	skin/classic/instantbird/idle-16.png
-	skin/classic/instantbird/idle.png
-	skin/classic/instantbird/mobile-16.png
-	skin/classic/instantbird/mobile.png
-	skin/classic/instantbird/offline-16.png
-	skin/classic/instantbird/offline.png
-	skin/classic/instantbird/typing-16.png
-	skin/classic/instantbird/typed-16.png
-	skin/classic/instantbird/unknown.png
-	skin/classic/instantbird/unknown-16.png
-	skin/classic/instantbird/chat-16.png
-	skin/classic/instantbird/chat-left-16.png
 	skin/classic/instantbird/founder.png
 	skin/classic/instantbird/operator.png
 	skin/classic/instantbird/half-operator.png
 	skin/classic/instantbird/voice.png
 *	skin/classic/instantbird/blist.css
 	skin/classic/instantbird/buddytooltip.css
-	skin/classic/instantbird/conv.css
 *	skin/classic/instantbird/conversation.css
 *	skin/classic/instantbird/engineManager.css
 *	skin/classic/instantbird/instantbird.css
 	skin/classic/instantbird/menus.css
 	skin/classic/instantbird/status.css
 *	skin/classic/instantbird/viewlog.css
 	skin/classic/instantbird/newMessage.png
 	skin/classic/instantbird/expand.png
@@ -147,86 +130,16 @@ instantbird.jar:
 *	skin/classic/aero/instantbird/tabbrowser.css                            (tabbrowser-winstripe/tabbrowser.css)
 	skin/classic/aero/instantbird/tabbrowser/newtab.png			(tabbrowser-winstripe/newtab.png)
 	skin/classic/aero/instantbird/tabbrowser/tab.png			(tabbrowser-winstripe/tab.png)
 	skin/classic/aero/instantbird/tabbrowser/tab-arrow-left.png		(tabbrowser-winstripe/tab-arrow-left.png)
 	skin/classic/aero/instantbird/tabbrowser/tab-overflow-border.png	(tabbrowser-winstripe/tab-overflow-border.png)
 	skin/classic/aero/instantbird/tabbrowser/tabDragIndicator.png		(tabbrowser-winstripe/tabDragIndicator.png)
 	skin/classic/aero/instantbird/tabbrowser/mainwindow-dropdown-arrow.png	(tabbrowser-winstripe/mainwindow-dropdown-arrow.png)
 #endif
-% skin prpl-aim classic/1.0 %skin/classic/prpl/aim/
-	skin/classic/prpl/aim/icon32.png	(prpl/prpl-aim-32.png)
-	skin/classic/prpl/aim/icon48.png	(prpl/prpl-aim-48.png)
-	skin/classic/prpl/aim/icon.png		(prpl/prpl-aim.png)
-% skin prpl-gg classic/1.0 %skin/classic/prpl/gg/
-	skin/classic/prpl/gg/icon32.png		(prpl/prpl-gg-32.png)
-	skin/classic/prpl/gg/icon48.png		(prpl/prpl-gg-48.png)
-	skin/classic/prpl/gg/icon.png		(prpl/prpl-gg.png)
-% skin prpl-icq classic/1.0 %skin/classic/prpl/icq/
-	skin/classic/prpl/icq/icon32.png	(prpl/prpl-icq-32.png)
-	skin/classic/prpl/icq/icon48.png	(prpl/prpl-icq-48.png)
-	skin/classic/prpl/icq/icon.png		(prpl/prpl-icq.png)
-% skin prpl-irc classic/1.0 %skin/classic/prpl/irc/
-	skin/classic/prpl/irc/icon32.png	(prpl/prpl-irc-32.png)
-	skin/classic/prpl/irc/icon48.png	(prpl/prpl-irc-48.png)
-	skin/classic/prpl/irc/icon.png		(prpl/prpl-irc.png)
-% skin prpl-jabber classic/1.0 %skin/classic/prpl/jabber/
-	skin/classic/prpl/jabber/icon32.png	(prpl/prpl-jabber-32.png)
-	skin/classic/prpl/jabber/icon48.png	(prpl/prpl-jabber-48.png)
-	skin/classic/prpl/jabber/icon.png	(prpl/prpl-jabber.png)
-% skin prpl-msn classic/1.0 %skin/classic/prpl/msn/
-	skin/classic/prpl/msn/icon32.png	(prpl/prpl-msn-32.png)
-	skin/classic/prpl/msn/icon48.png	(prpl/prpl-msn-48.png)
-	skin/classic/prpl/msn/icon.png		(prpl/prpl-msn.png)
-% skin prpl-myspace classic/1.0 %skin/classic/prpl/myspace/
-	skin/classic/prpl/myspace/icon32.png	(prpl/prpl-myspace-32.png)
-	skin/classic/prpl/myspace/icon48.png	(prpl/prpl-myspace-48.png)
-	skin/classic/prpl/myspace/icon.png	(prpl/prpl-myspace.png)
-% skin prpl-novell classic/1.0 %skin/classic/prpl/novell/
-	skin/classic/prpl/novell/icon32.png	(prpl/prpl-novell-32.png)
-	skin/classic/prpl/novell/icon48.png	(prpl/prpl-novell-48.png)
-	skin/classic/prpl/novell/icon.png	(prpl/prpl-novell.png)
-#ifdef DEBUG
-% skin prpl-null classic/1.0 %skin/classic/instantbird/prpl-generic/
-#endif
-% skin prpl-qq classic/1.0 %skin/classic/prpl/qq/
-	skin/classic/prpl/qq/icon32.png		(prpl/prpl-qq-32.png)
-	skin/classic/prpl/qq/icon48.png		(prpl/prpl-qq-48.png)
-	skin/classic/prpl/qq/icon.png		(prpl/prpl-qq.png)
-% skin prpl-meanwhile classic/1.0 %skin/classic/prpl/meanwhile/
-	skin/classic/prpl/meanwhile/icon32.png	(prpl/prpl-meanwhile-32.png)
-	skin/classic/prpl/meanwhile/icon48.png	(prpl/prpl-meanwhile-48.png)
-	skin/classic/prpl/meanwhile/icon.png	(prpl/prpl-meanwhile.png)
-% skin prpl-simple classic/1.0 %skin/classic/prpl/simple/
-	skin/classic/prpl/simple/icon32.png	(prpl/prpl-simple-32.png)
-	skin/classic/prpl/simple/icon48.png	(prpl/prpl-simple-48.png)
-	skin/classic/prpl/simple/icon.png	(prpl/prpl-simple.png)
-% skin prpl-yahoo classic/1.0 %skin/classic/prpl/yahoo/
-% skin prpl-yahoojp classic/1.0 %skin/classic/prpl/yahoo/
-	skin/classic/prpl/yahoo/icon32.png	(prpl/prpl-yahoo-32.png)
-	skin/classic/prpl/yahoo/icon48.png	(prpl/prpl-yahoo-48.png)
-	skin/classic/prpl/yahoo/icon.png	(prpl/prpl-yahoo.png)
-% skin prpl-bilboed-netsoul classic/1.0 %skin/classic/prpl/bilboed-netsoul/
-	skin/classic/prpl/bilboed-netsoul/icon32.png	(prpl/prpl-bilboed-netsoul-32.png)
-	skin/classic/prpl/bilboed-netsoul/icon48.png	(prpl/prpl-bilboed-netsoul-48.png)
-	skin/classic/prpl/bilboed-netsoul/icon.png	(prpl/prpl-bilboed-netsoul.png)
-#if 0
-% skin prpl-bonjour classic/1.0 %skin/classic/prpl/bonjour/
-	skin/classic/prpl/bonjour/icon32.png	(prpl/prpl-bonjour-32.png)
-	skin/classic/prpl/bonjour/icon48.png	(prpl/prpl-bonjour-48.png)
-	skin/classic/prpl/bonjour/icon.png	(prpl/prpl-bonjour.png)
-% skin prpl-silc classic/1.0 %skin/classic/prpl/silc/
-	skin/classic/prpl/silc/icon32.png	(prpl/prpl-silc-32.png)
-	skin/classic/prpl/silc/icon48.png	(prpl/prpl-silc-48.png)
-	skin/classic/prpl/silc/icon.png		(prpl/prpl-silc.png)
-% skin prpl-zephyr classic/1.0 %skin/classic/prpl/zephyr/
-	skin/classic/prpl/zephyr/icon32.png	(prpl/prpl-zephyr-32.png)
-	skin/classic/prpl/zephyr/icon48.png	(prpl/prpl-zephyr-48.png)
-	skin/classic/prpl/zephyr/icon.png	(prpl/prpl-zephyr.png)
-#endif
 % skin instantbird-sounds classic/1.0 %skin/classic/instantbird/sounds/
 	skin/classic/instantbird/sounds/alert.wav	(sounds/alert.wav)
 	skin/classic/instantbird/sounds/login.wav	(sounds/login.wav)
 	skin/classic/instantbird/sounds/logout.wav	(sounds/logout.wav)
 	skin/classic/instantbird/sounds/receive.wav	(sounds/receive.wav)
 	skin/classic/instantbird/sounds/send.wav	(sounds/send.wav)
 % skin instantbird-emoticons classic/1.0 %skin/classic/instantbird/smileys/
 	skin/classic/instantbird/smileys/theme.js              (smileys/theme.js)
--- a/im/themes/menus.css
+++ b/im/themes/menus.css
@@ -31,18 +31,18 @@
  * 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 ***** */
 
 #statusAvailable {
-  list-style-image: url('chrome://instantbird/skin/available-16.png');
+  list-style-image: url('chrome://chat/skin/available-16.png');
 }
 
 #statusUnavailable {
-  list-style-image: url('chrome://instantbird/skin/away-16.png');
+  list-style-image: url('chrome://chat/skin/away-16.png');
 }
 
 #statusOffline {
-  list-style-image: url('chrome://instantbird/skin/offline-16.png');
+  list-style-image: url('chrome://chat/skin/offline-16.png');
 }
--- a/im/themes/status.css
+++ b/im/themes/status.css
@@ -32,34 +32,34 @@
  * 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 ***** */
 
 .statusIcon[status="away"],
 .statusIcon[status="unavailable"] {
-  background-image: url('chrome://instantbird/skin/away.png');
+  background-image: url('chrome://chat/skin/away.png');
 }
 
 .statusIcon[status="idle"] {
-  background-image: url('chrome://instantbird/skin/idle.png');
+  background-image: url('chrome://chat/skin/idle.png');
 }
 
 .statusIcon[status="mobile"] {
-  background-image: url('chrome://instantbird/skin/mobile.png');
+  background-image: url('chrome://chat/skin/mobile.png');
 }
 
 .statusIcon[status="offline"],
 .statusIcon[status="left"] {
-  background-image: url('chrome://instantbird/skin/offline.png');
+  background-image: url('chrome://chat/skin/offline.png');
 }
 
 .statusIcon[status="unknown"] {
-  background-image: url('chrome://instantbird/skin/unknown.png');
+  background-image: url('chrome://chat/skin/unknown.png');
 }
 
 .protoIcon[status="offline"],
 .protoIcon[status="unknown"] {
   opacity: 0.3;
 }
 
 .protoIcon[status="offline"][selected],