Skip to content

Commit

Permalink
解决GitHub嵌套报frame-ancestors 'none'错误
Browse files Browse the repository at this point in the history
  • Loading branch information
jaywcjlove committed Feb 12, 2018
1 parent 653efc1 commit d5c00d7
Show file tree
Hide file tree
Showing 2 changed files with 37 additions and 14 deletions.
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@ npm run build
Mac系统下扩展的源码目录

```bash
cd /Users/kenny/Library/Application Support/Google/Chrome/Default/Extensions
cd ~/Library/Application\ Support/Google/Chrome/Default/Extensions
```

## TODO
Expand Down
49 changes: 36 additions & 13 deletions chrome-main/background.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,20 +6,43 @@ chrome.browserAction.onClicked.addListener(function () {
// chrome.tabs.create({ url: 'chrome://newtab' });
});

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
}

chrome.webRequest.onHeadersReceived.addListener(details => {
const responseHeaders = details.responseHeaders.map(header => {
const isCSPHeader = /content-security-policy/i.test(header.name);
const isFrameHeader = /x-frame-options/i.test(header.name);
if (isCSPHeader) {
let csp = header.value
// csp = csp.replace('script-src', `script-src ${hosts}`)
// csp = csp.replace('style-src', `style-src ${hosts}`)
// csp = csp.replace('frame-src', `frame-src ${iframeHosts}`)
// csp = csp.replace('child-src', `child-src ${hosts}`)
csp = csp.replace(/frame-ancestors (.*?);/ig, "")
// console.log('csp::', csp);
header.value = csp;
} else if (isFrameHeader) {
header.value = 'ALLOWALL';
}
return { responseHeaders: headers };
},
return header
});
// var headers = 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
// }
// // Refused to display 'https://github.com/search?q=chrome.tabs.create' in a frame because an ancestor violates the following
// // Content Security Policy directive: "frame-ancestors 'none'".
// }
// console.log('headers:', headers)
return { responseHeaders };
},
{
urls: ['*://*/*'], // Pattern to match all http(s) pages
urls: ['<all_urls>', '*://*/*'],
types: ['sub_frame']
},
['blocking', 'responseHeaders']
);
[
'blocking',
'responseHeaders'
]
)

0 comments on commit d5c00d7

Please sign in to comment.