Polish homepage

Reduces suggestion exposure, no blip on first load
This commit is contained in:
Lawrence
2019-12-12 23:16:28 -05:00
parent 41bb7dcc2e
commit efb4cb30b0
3 changed files with 45 additions and 45 deletions
+3 -2
View File
@@ -2,13 +2,14 @@
"description": "Removes all suggestions from Youtube.",
"manifest_version": 2,
"name": "Remove Youtube Suggestions",
"version": "3.1.0",
"version": "3.1.1",
"homepage_url": "https://github.com/emumoo/remove-youtube-suggestions",
"content_scripts": [
{
"matches": ["*://*.youtube.com/*"],
"js": ["remove-suggestions.js"]
"js": ["remove-suggestions.js"],
"run_at": "document_start"
}
],
+4 -4
View File
@@ -47,10 +47,10 @@ function restoreOptions() {
console.log(`Error: ${error}`);
}
var gettingHomepage = browser.storage.local.get("homepage");
var gettingSidebar = browser.storage.local.get("sidebar");
var gettingVideoEnd = browser.storage.local.get("videoEnd");
var gettingComments = browser.storage.local.get("comments");
let gettingHomepage = browser.storage.local.get("homepage");
let gettingSidebar = browser.storage.local.get("sidebar");
let gettingVideoEnd = browser.storage.local.get("videoEnd");
let gettingComments = browser.storage.local.get("comments");
gettingHomepage.then(setCurrentChoice, onError);
gettingSidebar.then(setCurrentChoice, onError);
gettingVideoEnd.then(setCurrentChoice, onError);
+38 -39
View File
@@ -5,50 +5,46 @@ function onError(error) {
}
// remove homepage recommendations
function updateStyle(setting) {
function updateHomepageStyle(hideHomepage) {
// the homepage has pathname "/" which is length 1
let property = (!setting || window.location.pathname.length > 1) ? "flex" : "none";
for (let elt of document.querySelectorAll("ytd-browse")) {
if (elt) elt.style.setProperty("display", property);
}
const thisIsHomepage = window.location.pathname.length <= 1;
const hideSuggestions = hideHomepage && thisIsHomepage;
// for disable_polymer=true
for (let elt of document.querySelectorAll("#feed")) {
if (elt) elt.style.setProperty("display", property);
}
const propertyHide = "none";
const propertyShow = "flex";
const property = hideSuggestions ? propertyHide : propertyShow;
const normalSuggestions = document.querySelectorAll("ytd-browse") || [];
const disabledPolymerSuggestions = document.querySelectorAll("#feed") || [];
// Hide homepage suggestions
normalSuggestions.forEach(elt => elt.style.setProperty("display", property));
disabledPolymerSuggestions.forEach(elt => elt.style.setProperty("display", property));
}
// After getting settings
function onGotHomepageSetting(item) {
var removeHomepage = item.homepage;
if (removeHomepage === undefined) {
removeHomepage = true;
browser.storage.local.set({
homepage: true
});
let hideHomepage = item.homepage;
if (hideHomepage === undefined) {
hideHomepage = true;
browser.storage.local.set({ homepage: true });
}
if (removeHomepage) {
updateStyle(item.homepage);
updateHomepageStyle(hideHomepage);
// watch for url changes
let observer = new MutationObserver(function(mutations) {
updateStyle(item.homepage);
return;
});
// watch for url changes
const observer = new MutationObserver(mutations => updateHomepageStyle(hideHomepage) );
observer.observe(document.body, {
childList: true,
subtree: true,
attributes: false,
characterData: false
});
}
observer.observe(document.body, {
childList: true,
subtree: true,
attributes: false,
characterData: false
});
}
function onGotSidebarSetting(item) {
var removeSidebar = item.sidebar;
let removeSidebar = item.sidebar;
if (removeSidebar === undefined) {
removeSidebar = true;
browser.storage.local.set({
@@ -57,8 +53,8 @@ function onGotSidebarSetting(item) {
}
if (removeSidebar) {
let sheets = document.styleSheets;
let display_none = " { display: none !important; }";
const sheets = document.styleSheets;
const display_none = " { display: none !important; }";
// youtube video recommendations
sheets[0].insertRule("ytd-compact-video-renderer.style-scope" + display_none);
@@ -90,7 +86,7 @@ function onGotSidebarSetting(item) {
}
function onGotVideoEndSetting(item) {
var removeVideoEnd = item.videoEnd;
let removeVideoEnd = item.videoEnd;
if (removeVideoEnd === undefined) {
removeVideoEnd = true;
browser.storage.local.set({
@@ -104,7 +100,7 @@ function onGotVideoEndSetting(item) {
}
function onGotCommentsSetting(item) {
var removeComments = item.comments;
let removeComments = item.comments;
if (removeComments === undefined) {
removeComments = false;
@@ -121,14 +117,17 @@ function onGotCommentsSetting(item) {
}
}
var gettingHomepage = browser.storage.local.get("homepage");
// Ensures that suggestions won't blip while "removed"
updateHomepageStyle(true);
let gettingHomepage = browser.storage.local.get("homepage");
gettingHomepage.then(onGotHomepageSetting, onError);
var gettingSidebar = browser.storage.local.get("sidebar");
let gettingSidebar = browser.storage.local.get("sidebar");
gettingSidebar.then(onGotSidebarSetting, onError);
var gettingVideoEnd = browser.storage.local.get("videoEnd");
let gettingVideoEnd = browser.storage.local.get("videoEnd");
gettingVideoEnd.then(onGotVideoEndSetting, onError);
var gettingComments = browser.storage.local.get("comments");
let gettingComments = browser.storage.local.get("comments");
gettingComments.then(onGotCommentsSetting, onError);