Conhecendo o X-Frame-Options DENY em uma extensão do Chrome?

Sou o autor do Intab , uma extensão do Chrome que permite visualizar um link in-line, em oposição a uma nova guia. Não há muita coisa extravagante acontecendo nos bastidores, é apenas um iframe que carrega a URL em que o usuário clicou.

Ele funciona muito bem, exceto em sites que definem o header X-Frame-Options como DENY ou SAMEORIGIN. Alguns sites realmente grandes, como o Google e o Facebook, usam ambos, o que contribui para uma experiência levemente desajeitada.

Existe alguma maneira de contornar isso? Como estou usando uma extensão do Google Chrome, há alguma coisa no nível do navegador que eu possa acessar que possa ajudar? Procurando por alguma ideia ou ajuda!

O Chrome oferece a API webRequest para interceptar e modificar solicitações HTTP. Você pode remover o header X-Frame-Options para permitir a inserção de páginas em um iframe.

 chrome.webRequest.onHeadersReceived.addListener( function(info) { var headers = info.responseHeaders; for (var i=headers.length-1; i>=0; --i) { var header = headers[i].name.toLowerCase(); if (header == 'x-frame-options' || header == 'frame-options') { headers.splice(i, 1); // Remove header } } return {responseHeaders: headers}; }, { urls: [ '*://*/*' ], // Pattern to match all http(s) pages types: [ 'sub_frame' ] }, ['blocking', 'responseHeaders'] ); 

No manifesto, é necessário especificar as permissions webRequestBlocking e webRequestBlocking , além dos padrões de URLs que você pretende interceptar.