Se déplacer dans X-Frame-Options DENY dans une extension Chrome?

Je suis l'auteur d' Intab , une extension Chrome qui vous permet de voir un lien en ligne par opposition à un nouvel onglet. Il n'y a pas beaucoup de choses de fantaisie dans les coulisses, c'est juste un iframe qui charge l'URL sur laquelle l'utilisateur a cliqué.

Cela fonctionne bien, sauf pour les sites qui définissent l'en-tête X-Frame-Options pour DENY ou SAMEORIGIN. Certains sites vraiment grands comme Google et Facebook l'utilisent tous deux, ce qui permet une expérience légèrement janky.

Y a-t-il un moyen de contourner cela? Puisque j'utilise une extension Chrome, existe-t-il des problèmes de niveau de navigateur auxquels je peux accéder? Vous cherchez des idées ou de l'aide!

Chrome offre l'API webRequest pour intercepter et modifier les requêtes HTTP. Vous pouvez supprimer l'en X-Frame-Options tête X-Frame-Options pour permettre l'insertion de pages dans un 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'] ); 

Dans le manifeste, vous devez spécifier les autorisations webRequest et webRequestBlocking , plus les modèles d'URL que vous souhaitez intercepter.