-
Despite of the recent optimization commits, the chatview is still affected by a significant number of performance issues. This commit tries to address some of them: * Use getElementById instead of querySelector, when possible. * Use getElementByClassName instead of querySelector, when possible. (querySelector is in average 2x slower than getElementById or getElementByClassName!) In this commit we also address the following bugs: * printHistoryPart: it doesn't make any sense to call addOrUpdateMessage if we are at the end of the buffer. * the bottom padding of the body isn't updated with the size of the #message textarea, leading to an annoying overlap when writing large messages. * selection highlighting in the chatview is crappy. The user should not be able to highlight the background because it doesn't make any sense. Only meaningful elements should be highlightable. * The first time a message fails to be sent, the cross 'X' icon is displayed with a very bad looking shift to the right. This is because the 'sending' icon is still displayed, with visibility hidden. * Many variables were not declared / using some broken, ancient JavaScript Sith magic we don't want to mess with. In order to make sure we are not going to rely on such mechanisms anymore, add "use strict" stanza. In addition to that we also fix a _very_ large number of style issues (semicolons, indentation, comments) and define a clear style policy for the JS code. A code audit revealed several small bugs which we are not going to address in this commit. Add FIXME comments. Also, remove some useless debug warnings from the GTK side chatview code. Change-Id: If6b605868ba6b0b9623ae01c5293064211b58327 Reviewed-by: Sebastien Blin <sebastien.blin@savoirfairelinux.com>
368c47c5