From c2540e5ca56985f5c434dffd06336cb8de4a12c1 Mon Sep 17 00:00:00 2001 From: majik Date: Thu, 21 Mar 2019 14:46:07 +0800 Subject: [PATCH 1/5] resrouce relative url --- packages/ide/src/fill/electron.ts | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/ide/src/fill/electron.ts b/packages/ide/src/fill/electron.ts index 65e70546ffa6..a3a2ff08c5d7 100644 --- a/packages/ide/src/fill/electron.ts +++ b/packages/ide/src/fill/electron.ts @@ -47,7 +47,7 @@ const newCreateElement = (tagName: K): HT }, set: (value: string): void => { if (value) { - value = value.replace(/file:\/\//g, "/resource"); + value = value.replace(/file:\/\//g, "resource"); } oldSrc!.set!.call(img, value); }, @@ -68,7 +68,7 @@ const newCreateElement = (tagName: K): HT }, set: (value: string): void => { if (value) { - value = value.replace(/file:\/\//g, "/resource"); + value = value.replace(/file:\/\//g, "resource"); } oldInnerHtml!.set!.call(style, value); }, @@ -82,7 +82,7 @@ const newCreateElement = (tagName: K): HT if (sheet && !overridden) { const oldInsertRule = sheet.insertRule; sheet.insertRule = (rule: string, index?: number): void => { - rule = rule.replace(/file:\/\//g, "/resource"); + rule = rule.replace(/file:\/\//g, "resource"); oldInsertRule.call(sheet, rule, index); }; overridden = true; @@ -143,8 +143,8 @@ const newCreateElement = (tagName: K): HT (view as any).send = (channel: string, ...args: any[]): void => { // tslint:disable-line no-any if (args[0] && typeof args[0] === "object" && args[0].contents) { // TODO - args[0].contents = (args[0].contents as string).replace(/"(file:\/\/[^"]*)"/g, (m1) => `"/resource${m1}"`); - args[0].contents = (args[0].contents as string).replace(/"vscode-resource:([^"]*)"/g, (m, m1) => `"/resource${m1}"`); + args[0].contents = (args[0].contents as string).replace(/"(file:\/\/[^"]*)"/g, (m1) => `"resource${m1}"`); + args[0].contents = (args[0].contents as string).replace(/"vscode-resource:([^"]*)"/g, (m, m1) => `"resource${m1}"`); args[0].contents = (args[0].contents as string).replace(/style-src vscode-core-resource:/g, "style-src 'self'"); } if (view.contentWindow) { From f3b7b5384724ab7fe9d21d9893a83c3d3da506cf Mon Sep 17 00:00:00 2001 From: majik Date: Thu, 21 Mar 2019 14:47:12 +0800 Subject: [PATCH 2/5] add url pathname for require.toUrl (fix webview url) --- scripts/webpack.general.config.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/webpack.general.config.js b/scripts/webpack.general.config.js index 83215fa8cd28..68ea456d398b 100644 --- a/scripts/webpack.general.config.js +++ b/scripts/webpack.general.config.js @@ -20,7 +20,7 @@ module.exports = (options = {}) => ({ // they are parsed as URIs and will throw errors if not fully formed. // The !! prefix causes it to ignore other loaders (doesn't work). search: "require\\.toUrl\\(", - replace: "location.protocol + '//' + location.host + '/' + require('!!file-loader?name=[path][name].[ext]!' + ", + replace: "location.protocol + '//' + location.host + location.pathname.replace(/\\/$/,'') + '/' + require('!!file-loader?name=[path][name].[ext]!' + ", flags: "g", }, { search: "require\\.__\\$__nodeRequire", From 545f5d5fd9880606083646c28d6448ea98e67854 Mon Sep 17 00:00:00 2001 From: majik Date: Thu, 21 Mar 2019 14:51:38 +0800 Subject: [PATCH 3/5] rest resrouce relative url --- packages/vscode/src/fill/codeEditor.ts | 2 +- packages/vscode/src/fill/storageDatabase.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/vscode/src/fill/codeEditor.ts b/packages/vscode/src/fill/codeEditor.ts index e1134724ef34..cb89ecfca728 100644 --- a/packages/vscode/src/fill/codeEditor.ts +++ b/packages/vscode/src/fill/codeEditor.ts @@ -13,7 +13,7 @@ abstract class CodeEditorServiceImpl extends editor.CodeEditorServiceImpl { ...options.gutterIconPath, scheme: location.protocol.replace(":", ""), authority: location.host, - path: join("/resource", options.gutterIconPath.path), + path: join("resource", options.gutterIconPath.path), } :options.gutterIconPath, } : {}, parentTypeKey); } diff --git a/packages/vscode/src/fill/storageDatabase.ts b/packages/vscode/src/fill/storageDatabase.ts index 54709a7a5783..2386af7c4df7 100644 --- a/packages/vscode/src/fill/storageDatabase.ts +++ b/packages/vscode/src/fill/storageDatabase.ts @@ -26,7 +26,7 @@ class StorageDatabase implements workspaceStorage.IStorageDatabase { } this.triggerFlush(WillSaveStateReason.SHUTDOWN); - navigator.sendBeacon(`/resource${this.path}`, this.content); + navigator.sendBeacon(`resource${this.path}`, this.content); }); } From 18dd04bf9a4e4c93cdc952b2b866fe06906205a2 Mon Sep 17 00:00:00 2001 From: majik Date: Thu, 21 Mar 2019 16:10:50 +0800 Subject: [PATCH 4/5] fix resource url --- packages/ide/src/fill/electron.ts | 14 +++++++++----- packages/vscode/src/fill/codeEditor.ts | 2 +- packages/vscode/src/fill/storageDatabase.ts | 3 ++- 3 files changed, 12 insertions(+), 7 deletions(-) diff --git a/packages/ide/src/fill/electron.ts b/packages/ide/src/fill/electron.ts index a3a2ff08c5d7..c271b5cc6def 100644 --- a/packages/ide/src/fill/electron.ts +++ b/packages/ide/src/fill/electron.ts @@ -47,7 +47,8 @@ const newCreateElement = (tagName: K): HT }, set: (value: string): void => { if (value) { - value = value.replace(/file:\/\//g, "resource"); + const resourceBaseUrl = location.pathname.replace(/\/$/, "") + "/resource"; + value = value.replace(/file:\/\//g, resourceBaseUrl); } oldSrc!.set!.call(img, value); }, @@ -68,7 +69,8 @@ const newCreateElement = (tagName: K): HT }, set: (value: string): void => { if (value) { - value = value.replace(/file:\/\//g, "resource"); + const resourceBaseUrl = location.pathname.replace(/\/$/, "") + "/resource"; + value = value.replace(/file:\/\//g, resourceBaseUrl); } oldInnerHtml!.set!.call(style, value); }, @@ -82,7 +84,8 @@ const newCreateElement = (tagName: K): HT if (sheet && !overridden) { const oldInsertRule = sheet.insertRule; sheet.insertRule = (rule: string, index?: number): void => { - rule = rule.replace(/file:\/\//g, "resource"); + const resourceBaseUrl = location.pathname.replace(/\/$/, "") + "/resource"; + rule = rule.replace(/file:\/\//g, resourceBaseUrl); oldInsertRule.call(sheet, rule, index); }; overridden = true; @@ -143,8 +146,9 @@ const newCreateElement = (tagName: K): HT (view as any).send = (channel: string, ...args: any[]): void => { // tslint:disable-line no-any if (args[0] && typeof args[0] === "object" && args[0].contents) { // TODO - args[0].contents = (args[0].contents as string).replace(/"(file:\/\/[^"]*)"/g, (m1) => `"resource${m1}"`); - args[0].contents = (args[0].contents as string).replace(/"vscode-resource:([^"]*)"/g, (m, m1) => `"resource${m1}"`); + const resourceBaseUrl = location.pathname.replace(/\/$/, "") + "/resource"; + args[0].contents = (args[0].contents as string).replace(/"(file:\/\/[^"]*)"/g, (m1) => `"${resourceBaseUrl}${m1}"`); + args[0].contents = (args[0].contents as string).replace(/"vscode-resource:([^"]*)"/g, (m, m1) => `"${resourceBaseUrl}${m1}"`); args[0].contents = (args[0].contents as string).replace(/style-src vscode-core-resource:/g, "style-src 'self'"); } if (view.contentWindow) { diff --git a/packages/vscode/src/fill/codeEditor.ts b/packages/vscode/src/fill/codeEditor.ts index cb89ecfca728..e1134724ef34 100644 --- a/packages/vscode/src/fill/codeEditor.ts +++ b/packages/vscode/src/fill/codeEditor.ts @@ -13,7 +13,7 @@ abstract class CodeEditorServiceImpl extends editor.CodeEditorServiceImpl { ...options.gutterIconPath, scheme: location.protocol.replace(":", ""), authority: location.host, - path: join("resource", options.gutterIconPath.path), + path: join("/resource", options.gutterIconPath.path), } :options.gutterIconPath, } : {}, parentTypeKey); } diff --git a/packages/vscode/src/fill/storageDatabase.ts b/packages/vscode/src/fill/storageDatabase.ts index 2386af7c4df7..4c55e0a87579 100644 --- a/packages/vscode/src/fill/storageDatabase.ts +++ b/packages/vscode/src/fill/storageDatabase.ts @@ -26,7 +26,8 @@ class StorageDatabase implements workspaceStorage.IStorageDatabase { } this.triggerFlush(WillSaveStateReason.SHUTDOWN); - navigator.sendBeacon(`resource${this.path}`, this.content); + const resourceBaseUrl = location.pathname.replace(/\/$/, "") + "/resource"; + navigator.sendBeacon(`${resourceBaseUrl}/${this.path}`, this.content); }); } From aa6337e6f7b97f635729b04463fb811f7f71a0d2 Mon Sep 17 00:00:00 2001 From: majik Date: Thu, 21 Mar 2019 16:18:15 +0800 Subject: [PATCH 5/5] ignore .vscode --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index 9ced34fb847c..79591d519497 100644 --- a/.gitignore +++ b/.gitignore @@ -4,3 +4,4 @@ dist out .DS_Store release +.vscode