Commit 44d871f6 authored by Michael Gratton's avatar Michael Gratton 🤞

Merge branch 'is-descendant-of' into 'master'

Check class name in ConversationPageState.isDescendantOf

See merge request !77
parents 35150701 b9f984e6
Pipeline #55473 failed with stages
in 2 minutes and 36 seconds
......@@ -82,7 +82,7 @@ ConversationPageState.prototype = {
// Only insert into a quote container if the element is a
// top level blockquote
if (!ConversationPageState.isDescendantOf(blockquote, "BLOCKQUOTE")) {
if (!ConversationPageState.isDescendantOf(blockquote, "blockquote")) {
let quoteHeight = blockquote.offsetHeight;
// Only make the quote it controllable if it is tall enough
......@@ -171,7 +171,7 @@ ConversationPageState.prototype = {
let div = possibleSigs.item(i);
let innerHTML = div.innerHTML;
if ((sigRegex.test(innerHTML) || alternateSigRegex.test(innerHTML)) &&
!ConversationPageState.isDescendantOf(div, "BLOCKQUOTE")) {
!ConversationPageState.isDescendantOf(div, "blockquote")) {
break;
}
}
......@@ -206,7 +206,7 @@ ConversationPageState.prototype = {
// so that new lines are preserved.
let dummy = document.createElement("DIV");
let includeDummy = false;
if (ConversationPageState.isDescendantOf(ancestor, ".plaintext")) {
if (ConversationPageState.isDescendantOf(ancestor, "div", "plaintext")) {
dummy.classList.add("plaintext");
dummy.setAttribute("style", "white-space: pre-wrap;");
includeDummy = true;
......@@ -321,11 +321,20 @@ ConversationPageState.isDeceptiveText = function(text, href) {
return ConversationPageState.NOT_DECEPTIVE;
};
ConversationPageState.isDescendantOf = function(node, ancestorTag) {
/**
* See if this element has an ancestor with the given tag and class.
*
* ancestorTag must be all lowercase.
*
* If ancestorClass is null, no class checking is done.
*/
ConversationPageState.isDescendantOf = function(node, ancestorTag, ancestorClass = null) {
let ancestor = node.parentNode;
while (ancestor != null) {
if (ancestor.tagName == ancestorTag) {
return true;
if (ancestor.tagName.toLowerCase() == ancestorTag) {
if (!ancestorClass || ancestor.classList.contains(ancestorClass)) {
return true;
}
}
ancestor = ancestor.parentNode;
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment