lewisje's experimental stuff
Posted: Sun Feb 05, 2012 12:02 pm
While making this post, I got an idea: forum/viewtopic.php?p=56457#p56457
I have decided to make available some data: URIs for blank audio and video formats, for use if "swapping out" is to be more widely implemented, including in the Firefox extension.
blank.wav (one frame, 48kHz)
blank.mid (one instrument, no frames)
blank.webm
blank.mkv
blank.flv
blank.mp4
blank.avi
This could be extended with things like "blank.swf" and "blank.dcr" and even "blank.jar" but maybe they could all be taken care of with a simple "data:application/octet-stream," (with nothing after it); all this would be difficult because according to the documentation: http://code.google.com/chrome/extension ... uestFilter
The distinguished types are...
main_frame (equivalent to Mozilla's "document")
image
object
script
stylesheet
sub_frame (equivalent to Mozilla's "subdocument")
xmlhttprequest
other
...which are all also in nsIContentPolicy, but that also allows for
cookie
dtd
font
geo
indexedDB
install
media (->object?)
objectsubrequest (->object)
ping
popup
refresh
xbl
I suspect that most of these would be considered by WebRequest to be "other"
Anyway, I just uploaded a special build of ABP Experimental that makes a few useful changes...
First, all icons are losslessly optimized.
Next, the main document can be blocked too.
Finally, all filtered request types are redirected to something: document/subdocument to about:blank, xmlhttprequest to "data:application/xml," (blank XML file), script to "data:text/javascript," (blank script), stylesheet to "data:text/css," (blank CSS), object/other to "data:application/octet-stream," (blank binary file).
Get it here: https://jansal.googlecode.com/svn/trunk ... mental.crx
The changes I made to webrequest.js are as follows...Basically, I made "main_frame" requests actually blockable, set up the redirections for various media types, and changed the redirection image from that PNG to the GIF I love so much; here some more conditionals on the URL or some other aspect of the request may help in using one of those other blank swap-outs...
In manifest.json I added "swap-out" after "experimental" and changed the update URL so that Palant's own experimental builds won't overwrite this; besides the aforementioned lossless optimization of PNG icons, I changed no other files in the extension.
Its "update URL" is now about:blank, so it doesn't update, but once I get the hang of making an update XML, I just might make one and then try as well as possible to follow the progress of Palant's updates...
EDIT: It now uses a set of regexp-matching conditionals on the file-extension if it's an "OBJECT" and then if it doesn't find anything defaults to the old "data:application/octet-stream,"
I have decided to make available some data: URIs for blank audio and video formats, for use if "swapping out" is to be more widely implemented, including in the Firefox extension.
blank.wav (one frame, 48kHz)
Code: Select all
data:audio/wav;base64,UklGRiQAAABXQVZFZm10IBAAAAABAAEAgLsAAAB3AQACABAAZGF0YQAAAAA=
Code: Select all
data:application/octet-stream;base64,TVRoZAAAAAYAAQACA8BNVHJrAAAAYgD/fw8FDxwyMDEyLjAxLjAxAQMA/38qBQ8tTWljcm9zb2Z0IFNhbnMgU2VyaWYsOC4yNSxGYWxzZSxGYWxzZSwxAP9YBAQCGAgA/38LBQ8SAwN/fwD/AQQA/1kCAAAA/y8ATVRyawAAACQA/38FBQ8JQAkA/38JBQ8GPG5vbmU+AP8DASAA/yABAAD/LwA=
Code: Select all
data:video/webm;base64,GkXfo6pChoEBQveBAULygQRC84EIQoKEd2VibeyJAAAAAAAAAAAAQoeBAkKFgQIYU4BnAQAAAAAAAMMRTZt0v027klOrhBVJqWZTrIgAAAAAAAAARE27klOrhBZUrmtTrIgAAAAAAAAAgE27klOrhBxTu2tTrIgAAAAAAAAAuxVJqWZANirXsYQAD0JARImEAAAAAE2AkHdlYm1tdXgtMC45LjEyLjBXQZFtYWtld2VibS0wLjkuMTIuMBZUrmtANa5AMteBAXPFiACOzirRHOIYg4EBhoVWX1ZQOCWGiINWUDjgQBCwggACuoIAAiOD44RByAAAHFO7axAAAAA=
Code: Select all
data:video/x-matroska;base64,GkXfo6NChoEBQveBAULygQRC84EIQoKIbWF0cm9za2FCh4ECQoWBAhhTgGf/FUmpZr1NgJhIYWFsaSBNYXRyb3NrYSBXcml0ZXIgYjBXQZJ4MjY0IHIyMTQ2IGJjZDQxZGIq17GCw1BEiYRESAAAFlSua+eu5deBAXPFgQGDgQGcgQCGj1ZfTVBFRzQvSVNPL0FWQ2OiqAH0AAr/4QAXZ/QACqbrI/EREIAAAAMAgAAAGUeJEyQBAAZo68Am8sAj44OEAmJaAOCSsIECuoECVLKBAFSwgQJUuoECH0O2dUN454EAo0NygQAAgAAAAfkGBf/13EXpvebZSLeWLNgg2SPu73gyNjQgLSBjb3JlIDEyMCByMjE0NiBiY2Q0MWRiIC0gSC4yNjQvTVBFRy00IEFWQyBjb2RlYyAtIENvcHlsZWZ0IDIwMDMtMjAxMSAtIGh0dHA6Ly93d3cudmlkZW9sYW4ub3JnL3gyNjQuaHRtbCAtIG9wdGlvbnM6IGNhYmFjPTEgcmVmPTMgZGVibG9jaz0xOjA6MCBhbmFseXNlPTB4MzoweDExMyBtZT1oZXggc3VibWU9NyBwc3k9MCBtaXhlZF9yZWY9MSBtZV9yYW5nZT0xNiBjaHJvbWFfbWU9MSB0cmVsbGlzPTAgOHg4ZGN0PTEgY3FtPTAgZGVhZHpvbmU9MjEsMTEgZmFzdF9wc2tpcD0wIGNocm9tYV9xcF9vZmZzZXQ9MCB0aHJlYWRzPTMgc2xpY2VkX3RocmVhZHM9MCBucj0wIGRlY2ltYXRlPTEgaW50ZXJsYWNlZD0wIGJsdXJheV9jb21wYXQ9MCBjb25zdHJhaW5lZF9pbnRyYT0wIGJmcmFtZXM9MCB3ZWlnaHRwPTIga2V5aW50PTI1MCBrZXlpbnRfbWluPTI1IHNjZW5lY3V0PTQwIGludHJhX3JlZnJlc2g9MCByYz1jcXAgbWJ0cmVlPTAgcXA9MACAAAABbWWIhK/YX2pQp/PNtC3Ao9VzD6jvx/xbCnAlOLfYUo8igYFxjpHU4M/WQEEudhU0UhcqS4aIHP0wSQr61EfOJNQzLzC7e9epsc6GOt8obp9woKMkBAq8F/C0aOPisAFgLdMijXHI8CGY38vMCUWz/A98x2CPBxjQrlvE8TJ2omexx7KTO6zdCDG1P+KcjJEmx6gKtsGv2CR/NLpzJFOsJxGb6+3oSSZQYb92qfuU4f9KX4YpMCQrF0Hy1AOiIY2JCqzn+OM+MjuLeQq+s5cAz2QVS8VCky4rseAgMXDjOQ8yfaV4xoVwCNSnpq8sFBh0SH2klIk7xrME3ZXCikSJt5KLsC3qRz+9XBlqSMYNBBPErfHgn5jBbNTAVI5Ofn632a3n0nX8L2fbAvGyh0f4KQ3jLqkmOMQqRD/P1O8bbUnkE3rBQAHRj/XiCQvs1k1gJ9ym8f9InNIeaRAjK7KMG/leDjBuvHo7LqqRf+TF
Code: Select all
data:video/x-flv;base64,RkxWAQEAAAAJAAAAABIAAJ8AAAAAAAAAAgAKb25NZXRhRGF0YQgAAAAHAAV3aWR0aABAAAAAAAAAAAAGaGVpZ2h0AEAAAAAAAAAAAAlmcmFtZXJhdGUAQDkAAAAAAAAADHZpZGVvY29kZWNpZABAHAAAAAAAAAAIZHVyYXRpb24AP6R64UeuFHsACGZpbGVzaXplAECR5AAAAAAAAA12aWRlb2RhdGFyYXRlAEBsoAAAAAAAAAAJAAAAqgkAAC0AAAAAAAAAFwAAAAAB9AAK/+EAF2f0AAqm6yPxERCAAAADAIAAABlHiRMkAQAGaOvAJvLAAAAAOAkAA3MAAAAAAAAAFwEAAAAAAAH5BgX/9dxF6b3m2Ui3lizYINkj7u94MjY0IC0gY29yZSAxMjAgcjIxNDYgYmNkNDFkYiAtIEguMjY0L01QRUctNCBBVkMgY29kZWMgLSBDb3B5bGVmdCAyMDAzLTIwMTEgLSBodHRwOi8vd3d3LnZpZGVvbGFuLm9yZy94MjY0Lmh0bWwgLSBvcHRpb25zOiBjYWJhYz0xIHJlZj0zIGRlYmxvY2s9MTowOjAgYW5hbHlzZT0weDM6MHgxMTMgbWU9aGV4IHN1Ym1lPTcgcHN5PTAgbWl4ZWRfcmVmPTEgbWVfcmFuZ2U9MTYgY2hyb21hX21lPTEgdHJlbGxpcz0wIDh4OGRjdD0xIGNxbT0wIGRlYWR6b25lPTIxLDExIGZhc3RfcHNraXA9MCBjaHJvbWFfcXBfb2Zmc2V0PTAgdGhyZWFkcz0zIHNsaWNlZF90aHJlYWRzPTAgbnI9MCBkZWNpbWF0ZT0xIGludGVybGFjZWQ9MCBibHVyYXlfY29tcGF0PTAgY29uc3RyYWluZWRfaW50cmE9MCBiZnJhbWVzPTAgd2VpZ2h0cD0yIGtleWludD0yNTAga2V5aW50X21pbj0yNSBzY2VuZWN1dD00MCBpbnRyYV9yZWZyZXNoPTAgcmM9Y3FwIG1idHJlZT0wIHFwPTAAgAAAAW1liISv2F9qUKfzzbQtwKPVcw+o78f8WwpwJTi32FKPIoGBcY6R1ODP1kBBLnYVNFIXKkuGiBz9MEkK+tRHziTUMy8wu3vXqbHOhjrfKG6fcKCjJAQKvBfwtGjj4rABYC3TIo1xyPAhmN/LzAlFs/wPfMdgjwcY0K5bxPEydqJnsceykzus3QgxtT/inIyRJseoCrbBr9gkfzS6cyRTrCcRm+vt6EkmUGG/dqn7lOH/Sl+GKTAkKxdB8tQDoiGNiQqs5/jjPjI7i3kKvrOXAM9kFUvFQpMuK7HgIDFw4zkPMn2leMaFcAjUp6avLBQYdEh9pJSJO8azBN2VwopEibeSi7At6kc/vVwZakjGDQQTxK3x4J+YwWzUwFSOTn5+t9mt59J1/C9n2wLxsodH+CkN4y6pJjjEKkQ/z9TvG21J5BN6wUAB0Y/14gkL7NZNYCfcpvH/SJzSHmkQIyuyjBv5Xg4wbrx6Oy6qkX/kxQAAA34=
Code: Select all
data:video/mp4;base64,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
Code: Select all
data:video/avi;base64,UklGRmgQAABBVkkgTElTVMAAAABoZHJsYXZpaDgAAABAnAAAAAAAAAAAAAAQCQAAAQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAExJU1R0AAAAc3RybHN0cmg4AAAAdmlkc01QTkcAAAAAAAAAAAAAAAABAAAAGQAAAAAAAAABAAAAQwAAAAAAAAAAAAAAAAAAAAAAAABzdHJmKAAAACgAAAAAAAAAAAAAAAEAGABNUE5HAAAAAAAAAAAAAAAAAAAAAAAAAABMSVNULgAAAElORk9JU0ZUIgAAAE1FbmNvZGVyIFNoZXJweWEtU1ZOLXIzNDQwMS00LjYuMgBKVU5L7g4AAFs9IE1QbGF5ZXIganVuayBkYXRhISA9XVs9IE1QbGF5ZXIganVuayBkYXRhISA9XVs9IE1QbGF5ZXIganVuayBkYXRhISA9XVs9IE1QbGF5ZXIganVuayBkYXRhISA9XVs9IE1QbGF5ZXIganVuayBkYXRhISA9XVs9IE1QbGF5ZXIganVuayBkYXRhISA9XVs9IE1QbGF5ZXIganVuayBkYXRhISA9XVs9IE1QbGF5ZXIganVuayBkYXRhISA9XVs9IE1QbGF5ZXIganVuayBkYXRhISA9XVs9IE1QbGF5ZXIganVuayBkYXRhISA9XVs9IE1QbGF5ZXIganVuayBkYXRhISA9XVs9IE1QbGF5ZXIganVuayBkYXRhISA9XVs9IE1QbGF5ZXIganVuayBkYXRhISA9XVs9IE1QbGF5ZXIganVuayBkYXRhISA9XVs9IE1QbGF5ZXIganVuayBkYXRhISA9XVs9IE1QbGF5ZXIganVuayBkYXRhISA9XVs9IE1QbGF5ZXIganVuayBkYXRhISA9XVs9IE1QbGF5ZXIganVuayBkYXRhISA9XVs9IE1QbGF5ZXIganVuayBkYXRhISA9XVs9IE1QbGF5ZXIganVuayBkYXRhISA9XVs9IE1QbGF5ZXIganVuayBkYXRhISA9XVs9IE1QbGF5ZXIganVuayBkYXRhISA9XVs9IE1QbGF5ZXIganVuayBkYXRhISA9XVs9IE1QbGF5ZXIganVuayBkYXRhISA9XVs9IE1QbGF5ZXIganVuayBkYXRhISA9XVs9IE1QbGF5ZXIganVuayBkYXRhISA9XVs9IE1QbGF5ZXIganVuayBkYXRhISA9XVs9IE1QbGF5ZXIganVuayBkYXRhISA9XVs9IE1QbGF5ZXIganVuayBkYXRhISA9XVs9IE1QbGF5ZXIganVuayBkYXRhISA9XVs9IE1QbGF5ZXIganVuayBkYXRhISA9XVs9IE1QbGF5ZXIganVuayBkYXRhISA9XVs9IE1QbGF5ZXIganVuayBkYXRhISA9XVs9IE1QbGF5ZXIganVuayBkYXRhISA9XVs9IE1QbGF5ZXIganVuayBkYXRhISA9XVs9IE1QbGF5ZXIganVuayBkYXRhISA9XVs9IE1QbGF5ZXIganVuayBkYXRhISA9XVs9IE1QbGF5ZXIganVuayBkYXRhISA9XVs9IE1QbGF5ZXIganVuayBkYXRhISA9XVs9IE1QbGF5ZXIganVuayBkYXRhISA9XVs9IE1QbGF5ZXIganVuayBkYXRhISA9XVs9IE1QbGF5ZXIganVuayBkYXRhISA9XVs9IE1QbGF5ZXIganVuayBkYXRhISA9XVs9IE1QbGF5ZXIganVuayBkYXRhISA9XVs9IE1QbGF5ZXIganVuayBkYXRhISA9XVs9IE1QbGF5ZXIganVuayBkYXRhISA9XVs9IE1QbGF5ZXIganVuayBkYXRhISA9XVs9IE1QbGF5ZXIganVuayBkYXRhISA9XVs9IE1QbGF5ZXIganVuayBkYXRhISA9XVs9IE1QbGF5ZXIganVuayBkYXRhISA9XVs9IE1QbGF5ZXIganVuayBkYXRhISA9XVs9IE1QbGF5ZXIganVuayBkYXRhISA9XVs9IE1QbGF5ZXIganVuayBkYXRhISA9XVs9IE1QbGF5ZXIganVuayBkYXRhISA9XVs9IE1QbGF5ZXIganVuayBkYXRhISA9XVs9IE1QbGF5ZXIganVuayBkYXRhISA9XVs9IE1QbGF5ZXIganVuayBkYXRhISA9XVs9IE1QbGF5ZXIganVuayBkYXRhISA9XVs9IE1QbGF5ZXIganVuayBkYXRhISA9XVs9IE1QbGF5ZXIganVuayBkYXRhISA9XVs9IE1QbGF5ZXIganVuayBkYXRhISA9XVs9IE1QbGF5ZXIganVuayBkYXRhISA9XVs9IE1QbGF5ZXIganVuayBkYXRhISA9XVs9IE1QbGF5ZXIganVuayBkYXRhISA9XVs9IE1QbGF5ZXIganVuayBkYXRhISA9XVs9IE1QbGF5ZXIganVuayBkYXRhISA9XVs9IE1QbGF5ZXIganVuayBkYXRhISA9XVs9IE1QbGF5ZXIganVuayBkYXRhISA9XVs9IE1QbGF5ZXIganVuayBkYXRhISA9XVs9IE1QbGF5ZXIganVuayBkYXRhISA9XVs9IE1QbGF5ZXIganVuayBkYXRhISA9XVs9IE1QbGF5ZXIganVuayBkYXRhISA9XVs9IE1QbGF5ZXIganVuayBkYXRhISA9XVs9IE1QbGF5ZXIganVuayBkYXRhISA9XVs9IE1QbGF5ZXIganVuayBkYXRhISA9XVs9IE1QbGF5ZXIganVuayBkYXRhISA9XVs9IE1QbGF5ZXIganVuayBkYXRhISA9XVs9IE1QbGF5ZXIganVuayBkYXRhISA9XVs9IE1QbGF5ZXIganVuayBkYXRhISA9XVs9IE1QbGF5ZXIganVuayBkYXRhISA9XVs9IE1QbGF5ZXIganVuayBkYXRhISA9XVs9IE1QbGF5ZXIganVuayBkYXRhISA9XVs9IE1QbGF5ZXIganVuayBkYXRhISA9XVs9IE1QbGF5ZXIganVuayBkYXRhISA9XVs9IE1QbGF5ZXIganVuayBkYXRhISA9XVs9IE1QbGF5ZXIganVuayBkYXRhISA9XVs9IE1QbGF5ZXIganVuayBkYXRhISA9XVs9IE1QbGF5ZXIganVuayBkYXRhISA9XVs9IE1QbGF5ZXIganVuayBkYXRhISA9XVs9IE1QbGF5ZXIganVuayBkYXRhISA9XVs9IE1QbGF5ZXIganVuayBkYXRhISA9XVs9IE1QbGF5ZXIganVuayBkYXRhISA9XVs9IE1QbGF5ZXIganVuayBkYXRhISA9XVs9IE1QbGF5ZXIganVuayBkYXRhISA9XVs9IE1QbGF5ZXIganVuayBkYXRhISA9XVs9IE1QbGF5ZXIganVuayBkYXRhISA9XVs9IE1QbGF5ZXIganVuayBkYXRhISA9XVs9IE1QbGF5ZXIganVuayBkYXRhISA9XVs9IE1QbGF5ZXIganVuayBkYXRhISA9XVs9IE1QbGF5ZXIganVuayBkYXRhISA9XVs9IE1QbGF5ZXIganVuayBkYXRhISA9XVs9IE1QbGF5ZXIganVuayBkYXRhISA9XVs9IE1QbGF5ZXIganVuayBkYXRhISA9XVs9IE1QbGF5ZXIganVuayBkYXRhISA9XVs9IE1QbGF5ZXIganVuayBkYXRhISA9XVs9IE1QbGF5ZXIganVuayBkYXRhISA9XVs9IE1QbGF5ZXIganVuayBkYXRhISA9XVs9IE1QbGF5ZXIganVuayBkYXRhISA9XVs9IE1QbGF5ZXIganVuayBkYXRhISA9XVs9IE1QbGF5ZXIganVuayBkYXRhISA9XVs9IE1QbGF5ZXIganVuayBkYXRhISA9XVs9IE1QbGF5ZXIganVuayBkYXRhISA9XVs9IE1QbGF5ZXIganVuayBkYXRhISA9XVs9IE1QbGF5ZXIganVuayBkYXRhISA9XVs9IE1QbGF5ZXIganVuayBkYXRhISA9XVs9IE1QbGF5ZXIganVuayBkYXRhISA9XVs9IE1QbGF5ZXIganVuayBkYXRhISA9XVs9IE1QbGF5ZXIganVuayBkYXRhISA9XVs9IE1QbGF5ZXIganVuayBkYXRhISA9XVs9IE1QbGF5ZXIganVuayBkYXRhISA9XVs9IE1QbGF5ZXIganVuayBkYXRhISA9XVs9IE1QbGF5ZXIganVuayBkYXRhISA9XVs9IE1QbGF5ZXIganVuayBkYXRhISA9XVs9IE1QbGF5ZXIganVuayBkYXRhISA9XVs9IE1QbGF5ZXIganVuayBkYXRhISA9XVs9IE1QbGF5ZXIganVuayBkYXRhISA9XVs9IE1QbGF5ZXIganVuayBkYXRhISA9XVs9IE1QbGF5ZXIganVuayBkYXRhISA9XVs9IE1QbGF5ZXIganVuayBkYXRhISA9XVs9IE1QbGF5ZXIganVuayBkYXRhISA9XVs9IE1QbGF5ZXIganVuayBkYXRhISA9XVs9IE1QbGF5ZXIganVuayBkYXRhISA9XVs9IE1QbGF5ZXIganVuayBkYXRhISA9XVs9IE1QbGF5ZXIganVuayBkYXRhISA9XVs9IE1QbGF5ZXIganVuayBkYXRhISA9XVs9IE1QbGF5ZXIganVuayBkYXRhISA9XVs9IE1QbGF5ZXIganVuayBkYXRhISA9XVs9IE1QbGF5ZXIganVuayBkYXRhISA9XVs9IE1QbGF5ZXIganVuayBkYXRhISA9XVs9IE1QbGF5ZXIganVuayBkYXRhISA9XVs9IE1QbGF5ZXIganVuayBkYXRhISA9XVs9IE1QbGF5ZXIganVuayBkYXRhISA9XVs9IE1QbGF5ZXIganVuayBkYXRhISA9XVs9IE1QbGF5ZXIganVuayBkYXRhISA9XVs9IE1QbGF5ZXIganVuayBkYXRhISA9XVs9IE1QbGF5ZXIganVuayBkYXRhISA9XVs9IE1QbGF5ZXIganVuayBkYXRhISA9XVs9IE1QbGF5ZXIganVuayBkYXRhISA9XVs9IE1QbGF5ZXIganVuayBkYXRhISA9XVs9IE1QbGF5ZXIganVuayBkYXRhISA9XVs9IE1QbGF5ZXIganVuayBkYXRhISA9XVs9IE1QbGF5ZXIganVuayBkYXRhISA9XVs9IE1QbGF5ZXIganVuayBkYXRhISA9XVs9IE1QbGF5ZXIganVuayBkYXRhISA9XVs9IE1QbGF5ZXIganVuayBkYXRhISA9XVs9IE1QbGF5ZXIganVuayBkYXRhISA9XVs9IE1QbGF5ZXIganVuayBkYXRhISA9XVs9IE1QbGF5ZXIganVuayBkYXRhISA9XVs9IE1QbGF5ZXIganVuayBkYXRhISA9XVs9IE1QbExJU1RQAAAAbW92aTAwZGNDAAAAiVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAACklEQVR4nGMAAQAABQABDQottAAAAABJRU5ErkJgggBpZHgxEAAAADAwZGMAAAAABAAAAEMAAAA=
The distinguished types are...
main_frame (equivalent to Mozilla's "document")
image
object
script
stylesheet
sub_frame (equivalent to Mozilla's "subdocument")
xmlhttprequest
other
...which are all also in nsIContentPolicy, but that also allows for
cookie
dtd
font
geo
indexedDB
install
media (->object?)
objectsubrequest (->object)
ping
popup
refresh
xbl
I suspect that most of these would be considered by WebRequest to be "other"
Anyway, I just uploaded a special build of ABP Experimental that makes a few useful changes...
First, all icons are losslessly optimized.
Next, the main document can be blocked too.
Finally, all filtered request types are redirected to something: document/subdocument to about:blank, xmlhttprequest to "data:application/xml," (blank XML file), script to "data:text/javascript," (blank script), stylesheet to "data:text/css," (blank CSS), object/other to "data:application/octet-stream," (blank binary file).
Get it here: https://jansal.googlecode.com/svn/trunk ... mental.crx
The changes I made to webrequest.js are as follows...
Code: Select all
22,23c22,23
< return;
<
---
> //return;
> type = "DOCUMENT";
25c25
< if (type == "sub_frame")
---
> else if (type == "sub_frame")
41c41
< if (collapse && type == "SUBDOCUMENT")
---
> if (collapse && (type == "DOCUMENT" || type == "SUBDOCUMENT"))
42a43,48
> else if (collapse && type == "SCRIPT")
> return {redirectUrl: "data:text/javascript,"};
> else if (collapse && type == "STYLESHEET")
> return {redirectUrl: "data:text/css,"};
> else if (collapse && type == "XMLHTTPREQUEST")
> return {redirectUrl: "data:application/xml,"};
44c50,52
< return {redirectUrl: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAACklEQVR4nGMAAQAABQABDQottAAAAABJRU5ErkJggg=="};
---
> return {redirectUrl: "data:image/gif;base64,R0lGODlhAQABAPAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw=="};
> else if (collapse && (type == "OBJECT" || type == "OTHER"))
> return {redirectUrl: "data:application/octet-stream,"};
133c141
< }
---
> }
\ No newline at end of file
In manifest.json I added "swap-out" after "experimental" and changed the update URL so that Palant's own experimental builds won't overwrite this; besides the aforementioned lossless optimization of PNG icons, I changed no other files in the extension.
Its "update URL" is now about:blank, so it doesn't update, but once I get the hang of making an update XML, I just might make one and then try as well as possible to follow the progress of Palant's updates...
EDIT: It now uses a set of regexp-matching conditionals on the file-extension if it's an "OBJECT" and then if it doesn't find anything defaults to the old "data:application/octet-stream,"