diff --git a/content.js b/content.js index d79668b..c42ab3b 100644 --- a/content.js +++ b/content.js @@ -30,6 +30,27 @@ var makeReadable = function() { document.head.insertAdjacentHTML('beforeend', ''); }; +var hideGifs = function() { + + // For all progressive media components, if it contains a giphy or gif thumbnail we'll want to hide it + var progressiveMediaElements = document.querySelectorAll('.progressiveMedia'); + + progressiveMediaElements.forEach(function(mediaElement) { + var childImages = mediaElement.querySelectorAll('img'); + childImages.forEach(function(image) { + if (image.src && (image.src.indexOf('gif') !== -1 || image.src.indexOf('giphy') !== -1)) { + + // Hide the media element + mediaElement.style.display = 'none'; + mediaElement.style.height = 0; + + // The media element's parent is a "aspectRatioPlaceholder". We want to make its height 0 as well + mediaElement.parentElement.style.height = 0; + } + }); + }); +} + var hideHighlightMenu = function() { var bar = document.querySelector('.highlightMenu'); if (bar) { @@ -80,7 +101,7 @@ var observer = new MutationObserver(function(mutations){ mutations.forEach(function(){ makeReadable(); shrinkHeaderImages(); - }); + }); }); var config = {attributes: true}; @@ -101,6 +122,9 @@ if (document.querySelector('head meta[property="al:ios:app_name"][content="mediu if (items.hideHighlightMenu) { hideHighlightMenu(); } + if (items.hideGifs) { + hideGifs(); + } }); observer.observe(document.body, config); diff --git a/options.html b/options.html index dbcc89b..b340c55 100644 --- a/options.html +++ b/options.html @@ -32,6 +32,10 @@