Facebook, Instagram and Youtube login popup remover

Removes the nagging login popups and banners in mobile and desktop version of Facebook, Instagram and YouTube.

As of 2020-10-02. See the latest version.

// ==UserScript==
// @name        Facebook, Instagram and Youtube login popup remover
// @namespace   StephenP
// @description Removes the nagging login popups and banners in mobile and desktop version of Facebook, Instagram and YouTube.
// @match     https://*.facebook.com/*
// @exclude   https://developers.facebook.com/*
// @exclude   https://www.instagram.com/accounts/login/*
// @match     https://www.instagram.com/*
// @match     https://www.youtube.com/*
// @match     https://m.youtube.com/*
// @version   1.3.2
// @grant     none
// @icon			data:image/x-icon;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgBAMAAACBVGfHAAAAG1BMVEXTrvFOWZTEN4aXQ6vcRGPsbUH2sVjlt7/////5Q3C9AAAAAXRSTlMAQObYZgAAANJJREFUKM+9z7EKwjAQgOFIqbPFpXMUmlHMoKsQsKtgsC9g3WMkWS2V3GN7SZrQwdl/68fdlRBCFtWac74jqYLHsvBUHjiA75lGCm6dMca6BPzg9hSzajPBcQjfbKAJFLXgTJOBqQYMqAx7pnCaDRko060W5xGhwlZk20Y4R6iIaHU3inYG3euGR3UG2b0k/lYg1AABPhLDTQoRbs7D1SYoJcTHCQZvf6PsH+H5GiEcJb0Pd0Q9wdLDXV5PdVyZRF7CYgDMz/6E9xyqdPR/sMiw+gKZRGTvTIJM4gAAAABJRU5ErkJggg==
// ==/UserScript==
var interval_0;
var interval_1;
var interval_2;
var interval_3;
var interval_4;
(function(){
  //startCheck();
  window.onpopstate = startCheck();
})();
function isMobile(){
  if(document.getElementsByClassName("XTCLo").length>0){//check if search bar is shown
    if(document.getElementsByClassName("XTCLo")[0].style.display!="none"){
      return false;
    }
  }
  return true;
}
function startCheck(){
 interval_4=setInterval(check,500);
}
function check(){
  if(document.getElementsByTagName("BUTTON").length>0){//If buttons are there, the page should have loaded. At least that's what I see...
    clearInterval(interval_4);
    if(document.location.href.includes("facebook.com")){
      interval_0=setInterval(blockPopupFB,500);
    }
    else if(document.location.href.includes("instagram.com")){
      if(isMobile()){
        console.log("is mobile");
        interval_1=setInterval(blockBannerIG,500);
        interval_2=setInterval(blockPopupIG,500);
        interval_3=setInterval(removeRelatedAccounts,500);
        addSearchBar();//sometimes might even work, Instagram design changhes every fucking minute...
      }
      else{
        console.log("is desktop");
        interval_1=setInterval(blockBannerIG,200);
        interval_2=setInterval(blockPopupIG,200);
        interval_3=setInterval(removeRelatedAccounts,200);
        setInterval(removePicturePopup,500);
        //setInterval(setScrollable,500);//not very elegant, but works
      }
    }
    else if(document.location.href.includes("www.youtube.com")){
      interval_1=setInterval(blockPopupYT,500);
    }
    else if(document.location.href.includes("m.youtube.com")){
      interval_1=setInterval(blockPopupYTM,500);
    }
  }
  else{console.log("still non buttons :(");}
}
function addSearchBar(){
  var sb=document.getElementsByClassName("coreSpriteSearchIcon");
  do{
    sb=sb.parentNode;
  }
  while(sb.style.display!="none")
  sb.style.display="block";
}
function blockPopupFB(){
  var popupFB;
  var loc=document.location.href;
  if((loc.includes("m.facebook.com"))||(loc.includes("iphone.facebook.com"))||(loc.includes("x.facebook.com"))){
    popupFB=document.getElementById("popup_xout").parentNode.parentNode.parentNode;    
	}
  else{
    popupFB=document.getElementById("pagelet_growth_expanding_cta");
  }
  if(popupFB==undefined){
    popupFB=document.getElementsByClassName("_5hn6")[0];
  }
  if(popupFB!==undefined){
    popupFB.parentNode.removeChild(popupFB);
    clearInterval(interval_0);
  }
}
function removeRelatedAccounts(){
  var closeButtons=document.getElementsByClassName("fUzmR");
  if(closeButtons.length>0){
    for(var i=0;i<closeButtons.length;i++){
      closeButtons[i].click();
    }
    clearInterval(interval_3);
  }
}
function removePicturePopup(){
  console.log("removing picture popup");
  if(!document.location.href.includes("/p/")){
    var photoLinks=document.getElementsByClassName("v1Nh3");
    for(var i=0;i<photoLinks.length;i++){
      if(photoLinks[i].getAttribute("class").includes("repaired")===false){
        if(photoLinks[i].getElementsByTagName("IMG")[0].getAttribute("src")!==null){
          var cln = photoLinks[i].children[0].cloneNode(true);
          photoLinks[i].removeChild(photoLinks[i].children[0]);
          photoLinks[i].appendChild(cln);
          photoLinks[i].setAttribute("class",(photoLinks[i].getAttribute("class")+" repaired"));
          photoLinks[i].children[0].setAttribute("target","_blank");
          photoLinks[i].children[0].setAttribute("rel","noopener noreferrer");
          photoLinks[i].children[0].children[0].children[0].children[0].style.visibility="visible";
        }
      }
    }
  }
}
function blockBannerIG(){
  if(document.getElementsByClassName("tHaIX")[0]!==undefined){
    document.getElementsByClassName("tHaIX")[0].style.display="none";
  }
  else if(document.getElementsByClassName("xZ2Xk")[0]!==undefined){
    document.getElementsByClassName("xZ2Xk")[0].style.display="none";
  }
}

function blockPopupIG(){
  if(document.getElementsByClassName("RnEpo")[0]!==undefined){
    document.getElementsByClassName("RnEpo")[0].style.display="none";
    setScrollable();
  }
}
function setScrollable(){
  document.body.style.overflow = "scroll";
}
function blockPopupYT(){
  if(document.getElementsByTagName("yt-upsell-dialog-renderer")[0]!==undefined){
    document.getElementsByTagName("yt-upsell-dialog-renderer")[0].parentNode.parentNode.remove();
    if(document.getElementsByTagName("iron-overlay-backdrop")[0]!==undefined){
      document.getElementsByTagName("iron-overlay-backdrop")[0].remove();
    }
  }
}
function blockPopupYTM(){
  if(document.getElementsByClassName("upsell-dialog-lightbox")[0]!==undefined){
    document.getElementsByClassName("upsell-dialog-lightbox")[0].remove();
  }
}