Extension to return old Twitter layout from 2015.
at master 2.9 kB view raw
1chrome.runtime.onInstalled.addListener(() => { 2 chrome.runtime.setUninstallURL('https://dimden.dev/ot/uninstall.html'); 3}); 4chrome.webRequest.onBeforeRequest.addListener( 5 function(details) { 6 if(details.url.includes('abs.twimg.com/favicons/twitter.3.ico')) { 7 return { 8 redirectUrl: chrome.runtime.getURL('images/logo32_new.png') 9 }; 10 } else if(details.url.includes('abs.twimg.com/favicons/twitter-pip.3.ico')) { 11 return { 12 redirectUrl: chrome.runtime.getURL('images/logo32_new_notification.png') 13 }; 14 } 15 return { 16 cancel: 17 ( // excludes 18 details.originUrl && 19 !details.originUrl.includes("newtwitter=true") && 20 !details.originUrl.includes("/i/flow/login") && 21 !details.originUrl.includes("/settings/download_your_data") 22 ) && 23 ( // includes 24 details.url.includes("twitter.com/manifest.json") || 25 details.url.includes("abs.twimg.com/responsive-web/client-web/") || 26 details.url.includes("/sw.js") 27 ) 28 }; 29 }, { 30 urls: ["*://*.twitter.com/*", "*://*.twimg.com/*"] 31 }, 32 ["blocking"] 33); 34chrome.webRequest.onBeforeSendHeaders.addListener( 35 function(details) { 36 if(!details.requestHeaders.find(h => h.name.toLowerCase() === 'origin')) details.requestHeaders.push({ 37 name: "Origin", 38 value: "https://twitter.com" 39 }); 40 return { 41 requestHeaders: details.requestHeaders 42 }; 43 }, { 44 urls: ["*://*.twimg.com/*", "*://twimg.com/*"] 45 }, 46 ["blocking", "requestHeaders"] 47); 48chrome.webRequest.onHeadersReceived.addListener( 49 function(details) { 50 for (let i = details.responseHeaders.length - 1; i >= 0; i--) { 51 if ( 52 details.responseHeaders[i].name.toLowerCase() === 'content-security-policy' || 53 details.responseHeaders[i].name.toLowerCase() === 'x-frame-options' 54 ) { 55 details.responseHeaders.splice(i, 1); 56 } 57 } 58 if(!details.responseHeaders.find(h => h.name.toLowerCase() === 'access-control-allow-origin')) details.responseHeaders.push({ 59 name: "access-control-allow-origin", 60 value: "*" 61 }); 62 if(!details.responseHeaders.find(h => h.name.toLowerCase() === 'access-control-allow-headers')) details.responseHeaders.push({ 63 name: "access-control-allow-headers", 64 value: "*" 65 }); 66 return { 67 responseHeaders: details.responseHeaders 68 }; 69 }, { 70 urls: ["*://twitter.com/*", "*://*.twitter.com/*", "*://*.twimg.com/*", "*://twimg.com/*"] 71 }, 72 ["blocking", "responseHeaders"] 73);