attempt 3 at #66

This commit is contained in:
dragonwocky 2020-10-06 11:47:33 +11:00
parent 7a6411ad23
commit 9ef6317529
2 changed files with 27 additions and 17 deletions

View File

@ -55,15 +55,14 @@ module.exports = (store, __exports) => {
electron.session electron.session
.fromPartition('persist:notion') .fromPartition('persist:notion')
.webRequest.onHeadersReceived((details, callback) => { .webRequest.onHeadersReceived((details, callback) => {
alert(1);
callback({ callback({
responseHeaders: Object.assign( responseHeaders: {
{ ...details.responseHeaders,
'Content-Security-Policy': [ 'Content-Security-Policy': [
"script-src 'self' 'unsafe-inline' 'unsafe-eval' enhancement: https://gist.github.com https://apis.google.com https://api.amplitude.com https://widget.intercom.io https://js.intercomcdn.com https://logs-01.loggly.com https://cdn.segment.com https://analytics.pgncs.notion.so https://checkout.stripe.com https://embed.typeform.com https://admin.typeform.com https://platform.twitter.com https://cdn.syndication.twimg.com; connect-src 'self' https://msgstore.www.notion.so wss://msgstore.www.notion.so https://notion-emojis.s3-us-west-2.amazonaws.com https://s3-us-west-2.amazonaws.com https://s3.us-west-2.amazonaws.com https://notion-production-snapshots-2.s3.us-west-2.amazonaws.com https: http: https://api.amplitude.com https://api.embed.ly https://js.intercomcdn.com https://api-iam.intercom.io wss://nexus-websocket-a.intercom.io https://logs-01.loggly.com https://api.segment.io https://api.pgncs.notion.so https://checkout.stripe.com https://cdn.contentful.com https://preview.contentful.com https://images.ctfassets.net https://api.unsplash.com https://boards-api.greenhouse.io; font-src 'self' data: https://cdnjs.cloudflare.com https://js.intercomcdn.com; img-src 'self' data: blob: https: https://platform.twitter.com https://syndication.twitter.com https://pbs.twimg.com https://ton.twimg.com; style-src 'self' 'unsafe-inline' enhancement: https://cdnjs.cloudflare.com https://github.githubassets.com https://platform.twitter.com https://ton.twimg.com; frame-src https: http:; media-src https: http:", "script-src 'self' 'unsafe-inline' 'unsafe-eval' enhancement: https://gist.github.com https://apis.google.com https://api.amplitude.com https://widget.intercom.io https://js.intercomcdn.com https://logs-01.loggly.com https://cdn.segment.com https://analytics.pgncs.notion.so https://checkout.stripe.com https://embed.typeform.com https://admin.typeform.com https://platform.twitter.com https://cdn.syndication.twimg.com; connect-src 'self' https://msgstore.www.notion.so wss://msgstore.www.notion.so https://notion-emojis.s3-us-west-2.amazonaws.com https://s3-us-west-2.amazonaws.com https://s3.us-west-2.amazonaws.com https://notion-production-snapshots-2.s3.us-west-2.amazonaws.com https: http: https://api.amplitude.com https://api.embed.ly https://js.intercomcdn.com https://api-iam.intercom.io wss://nexus-websocket-a.intercom.io https://logs-01.loggly.com https://api.segment.io https://api.pgncs.notion.so https://checkout.stripe.com https://cdn.contentful.com https://preview.contentful.com https://images.ctfassets.net https://api.unsplash.com https://boards-api.greenhouse.io; font-src 'self' data: https://cdnjs.cloudflare.com https://js.intercomcdn.com; img-src 'self' data: blob: https: https://platform.twitter.com https://syndication.twitter.com https://pbs.twimg.com https://ton.twimg.com; style-src 'self' 'unsafe-inline' enhancement: https://cdnjs.cloudflare.com https://github.githubassets.com https://platform.twitter.com https://ton.twimg.com; frame-src https: http:; media-src https: http:",
], ],
}, },
details.responseHeaders
),
}); });
}); });
window.once('ready-to-show', function () { window.once('ready-to-show', function () {

View File

@ -19,6 +19,13 @@ const url = require('url'),
React = require(`${__notion}/app/node_modules/react/index.js`), React = require(`${__notion}/app/node_modules/react/index.js`),
ReactDOM = require(`${__notion}/app/node_modules/react-dom/index.js`); ReactDOM = require(`${__notion}/app/node_modules/react-dom/index.js`);
const insertCSP = `
const csp = document.createElement('meta');
csp.httpEquiv = 'Content-Security-Policy';
csp.content = "script-src 'self' 'unsafe-inline' 'unsafe-eval' enhancement: https://gist.github.com https://apis.google.com https://api.amplitude.com https://widget.intercom.io https://js.intercomcdn.com https://logs-01.loggly.com https://cdn.segment.com https://analytics.pgncs.notion.so https://checkout.stripe.com https://embed.typeform.com https://admin.typeform.com https://platform.twitter.com https://cdn.syndication.twimg.com; connect-src 'self' https://msgstore.www.notion.so wss://msgstore.www.notion.so https://notion-emojis.s3-us-west-2.amazonaws.com https://s3-us-west-2.amazonaws.com https://s3.us-west-2.amazonaws.com https://notion-production-snapshots-2.s3.us-west-2.amazonaws.com https: http: https://api.amplitude.com https://api.embed.ly https://js.intercomcdn.com https://api-iam.intercom.io wss://nexus-websocket-a.intercom.io https://logs-01.loggly.com https://api.segment.io https://api.pgncs.notion.so https://checkout.stripe.com https://cdn.contentful.com https://preview.contentful.com https://images.ctfassets.net https://api.unsplash.com https://boards-api.greenhouse.io; font-src 'self' data: https://cdnjs.cloudflare.com https://js.intercomcdn.com; img-src 'self' data: blob: https: https://platform.twitter.com https://syndication.twitter.com https://pbs.twimg.com https://ton.twimg.com; style-src 'self' 'unsafe-inline' enhancement: https://cdnjs.cloudflare.com https://github.githubassets.com https://platform.twitter.com https://ton.twimg.com; frame-src https: http:; media-src https: http:";
document.head.appendChild(csp);
`;
module.exports = (store, __exports) => { module.exports = (store, __exports) => {
if (store().tabs) { if (store().tabs) {
let $currentTab; let $currentTab;
@ -53,7 +60,7 @@ module.exports = (store, __exports) => {
}, 50); }, 50);
}; };
window['tab'] = (id) => { window['tab'] = (id) => {
if (!id) return; if (!id && id !== 0) return;
this.setState({ tabs: [...new Set([...this.state.tabs, id])] }); this.setState({ tabs: [...new Set([...this.state.tabs, id])] });
setTimeout(() => { setTimeout(() => {
this.addListeners(); this.addListeners();
@ -175,6 +182,7 @@ module.exports = (store, __exports) => {
} }
); );
$notion.addEventListener('dom-ready', () => { $notion.addEventListener('dom-ready', () => {
$notion.executeJavaScript(insertCSP);
$notion $notion
.getWebContents() .getWebContents()
.addListener('found-in-page', (event, result) => { .addListener('found-in-page', (event, result) => {
@ -191,6 +199,12 @@ module.exports = (store, __exports) => {
); );
}); });
notionIpc.proxyAllMainToNotion($notion); notionIpc.proxyAllMainToNotion($notion);
if ($notion !== $currentTab) return;
if (document.activeElement instanceof HTMLElement) {
document.activeElement.blur();
}
$notion.blur();
$notion.focus();
}); });
notionIpc.receiveIndexFromNotion.addListener( notionIpc.receiveIndexFromNotion.addListener(
$notion, $notion,
@ -228,14 +242,6 @@ module.exports = (store, __exports) => {
this.handleReload(); this.handleReload();
return; return;
} }
$notion.addEventListener('dom-ready', function () {
if ($notion !== $currentTab) return;
if (document.activeElement instanceof HTMLElement) {
document.activeElement.blur();
}
$notion.blur();
$notion.focus();
});
electronWindow.addListener('app-command', (e, cmd) => { electronWindow.addListener('app-command', (e, cmd) => {
const webContents = $notion.getWebContents(); const webContents = $notion.getWebContents();
if (cmd === 'browser-backward' && webContents.canGoBack()) { if (cmd === 'browser-backward' && webContents.canGoBack()) {
@ -524,6 +530,7 @@ module.exports = (store, __exports) => {
React.createElement(Index, { notionUrl: notionUrl }), React.createElement(Index, { notionUrl: notionUrl }),
rootElm rootElm
); );
tab(0);
}; };
} else { } else {
const __start = window['__start']; const __start = window['__start'];
@ -548,6 +555,10 @@ module.exports = (store, __exports) => {
}px; left: ${event.args[0]};` }px; left: ${event.args[0]};`
); );
}); });
document.getElementById('notion').addEventListener('dom-ready', () => {
document.getElementById('notion').executeJavaScript(insertCSP);
});
} }
}; };
} }