Skip to content

Commit d70e0e2

Browse files
authored
Merge pull request microsoft#236406 from mjbvz/confidential-trout
Small cleanup follow up on microsoft#236145
2 parents ad09e3d + a47b13e commit d70e0e2

File tree

3 files changed

+17
-14
lines changed

3 files changed

+17
-14
lines changed

extensions/markdown-language-features/preview-src/index.ts

+10-11
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import { ActiveLineMarker } from './activeLineMarker';
77
import { onceDocumentLoaded } from './events';
88
import { createPosterForVsCode } from './messaging';
99
import { getEditorLineNumberForPageOffset, scrollToRevealSourceLine, getLineElementForFragment } from './scroll-sync';
10-
import { SettingsManager, getData } from './settings';
10+
import { SettingsManager, getData, getRawData } from './settings';
1111
import throttle = require('lodash.throttle');
1212
import morphdom from 'morphdom';
1313
import type { ToWebviewMessage } from '../types/previewMessaging';
@@ -62,8 +62,16 @@ function doAfterImagesLoaded(cb: () => void) {
6262
}
6363

6464
onceDocumentLoaded(() => {
65-
const scrollProgress = state.scrollProgress;
65+
// Load initial html
66+
const htmlParser = new DOMParser();
67+
const markDownHtml = htmlParser.parseFromString(
68+
getRawData('data-initial-md-content'),
69+
'text/html'
70+
);
71+
document.body.appendChild(markDownHtml.body);
6672

73+
// Restore
74+
const scrollProgress = state.scrollProgress;
6775
addImageContexts();
6876
if (typeof scrollProgress === 'number' && !settings.settings.fragment) {
6977
doAfterImagesLoaded(() => {
@@ -357,15 +365,6 @@ document.addEventListener('click', event => {
357365
}
358366
}, true);
359367

360-
window.addEventListener('load', () => {
361-
const htmlParser = new DOMParser();
362-
const markDownHtml = htmlParser.parseFromString(
363-
decodeURIComponent(getData('data-md-content')),
364-
'text/html'
365-
);
366-
document.body.appendChild(markDownHtml.body);
367-
});
368-
369368
window.addEventListener('scroll', throttle(() => {
370369
updateScrollProgress();
371370

extensions/markdown-language-features/preview-src/settings.ts

+6-2
Original file line numberDiff line numberDiff line change
@@ -16,18 +16,22 @@ export interface PreviewSettings {
1616
readonly webviewResourceRoot: string;
1717
}
1818

19-
export function getData<T = {}>(key: string): T {
19+
export function getRawData(key: string): string {
2020
const element = document.getElementById('vscode-markdown-preview-data');
2121
if (element) {
2222
const data = element.getAttribute(key);
2323
if (data) {
24-
return JSON.parse(data);
24+
return data;
2525
}
2626
}
2727

2828
throw new Error(`Could not load data for ${key}`);
2929
}
3030

31+
export function getData<T = {}>(key: string): T {
32+
return JSON.parse(getRawData(key));
33+
}
34+
3135
export class SettingsManager {
3236
private _settings: PreviewSettings = getData('data-settings');
3337

extensions/markdown-language-features/src/preview/documentRenderer.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,7 @@ export class MdDocumentRenderer {
9999
data-settings="${escapeAttribute(JSON.stringify(initialData))}"
100100
data-strings="${escapeAttribute(JSON.stringify(previewStrings))}"
101101
data-state="${escapeAttribute(JSON.stringify(state || {}))}"
102-
data-md-content="${escapeAttribute(JSON.stringify(encodeURIComponent(body.html)))}">
102+
data-initial-md-content="${escapeAttribute(body.html)}">
103103
<script src="${this._extensionResourcePath(resourceProvider, 'pre.js')}" nonce="${nonce}"></script>
104104
${this._getStyles(resourceProvider, sourceUri, config, imageInfo)}
105105
<base href="${resourceProvider.asWebviewUri(markdownDocument.uri)}">

0 commit comments

Comments
 (0)