Skip to content

Commit

Permalink
Fix Uli slur redaction for general websites
Browse files Browse the repository at this point in the history
- Fixed Uli site rendering issues
- Fixed dynamic page loading issues
- Updated update-browserslist-db@latest
  • Loading branch information
duggalsu authored and dennyabrain committed Jul 12, 2023
1 parent 10bc414 commit 58dbaeb
Show file tree
Hide file tree
Showing 3 changed files with 46 additions and 29 deletions.
16 changes: 10 additions & 6 deletions browser-extension/plugin/package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

19 changes: 7 additions & 12 deletions browser-extension/plugin/src/content-script.js
Original file line number Diff line number Diff line change
Expand Up @@ -49,22 +49,17 @@ function processPage(newUrl) {

var mainLoadedChecker = setInterval(() => {

console.log('tick');
const elems = document.querySelectorAll('p, span, li');

console.log({ elems });

if (elems) {

console.log('tick');
let body = document.getElementsByTagName("body")
let first_body = body[0]

if (first_body) {
console.log('tick 2');


transformGeneral.processNewlyAddedNodesGeneral(elems);
setOnChangeListener(elems, transformGeneral.processNewlyAddedNodesGeneral);

transformGeneral.processNewlyAddedNodesGeneral(first_body);

clearInterval(mainLoadedChecker);
console.log(mainLoadedChecker);

}
else {
console.log('main section loaded');
Expand Down
40 changes: 29 additions & 11 deletions browser-extension/plugin/src/transform-general.js
Original file line number Diff line number Diff line change
Expand Up @@ -50,19 +50,37 @@ function addInlineMenu(id, item, hasSlur) {
);
}

const processNewlyAddedNodesGeneral = function (addedNodes) {
log('processing new nodes');
const nodes = Array.from(addedNodes);
nodes.map((node) => {
// console.log(node)
const text = node.innerText;
// console.log(text)
const replacementText = replaceSlur(text);
node.innerText = replacementText;

// Traverse dom nodes to find leaf node that are text nodes and process
function bft(nodes){
// console.log("inside bft");
if(nodes.childNodes.length===0 && nodes.nodeType === 3){
// console.log("found leaf text node", nodes);
// console.log(nodes.textContent);
const replacementText = replaceSlur(nodes.textContent);
nodes.textContent = nodes.textContent.replace(nodes.textContent, replacementText)
}
else if(nodes.nodeName != "STYLE" && nodes.nodeName != "SCRIPT" && nodes.nodeName != "NOSCRIPT") {
// console.log(nodes.nodeName)
nodes.childNodes.forEach((nodes)=>bft(nodes))
}
}

const processNewlyAddedNodesGeneral = function (firstBody) {
log('processing new nodes');
const config = { attributes: true, childList: true, subtree: true };

const callback = (mutationList, observer) => {
let elems = firstBody.children
const nodes = Array.from(elems);
let relevant_elements = nodes.filter((element)=>["P","DIV"].includes(element.nodeName))

});
relevant_elements.map((element) => {
bft(element)
});
}
const observer = new MutationObserver(callback);
observer.observe(firstBody, config);

};

export default {
Expand Down

0 comments on commit 58dbaeb

Please sign in to comment.