MicrosoftEdge / WebView2Samples

Microsoft Edge WebView2 samples
830 stars 460 forks source link

Question: Object.freeze(Object) usage within sample #173

Open jaredperreault-okta opened 1 year ago

jaredperreault-okta commented 1 year ago

The "most basic" sample Win32_GettingStarted includes this line

// <Scripting>
// Step 5 - Scripting
// Schedule an async task to add initialization script that freezes the Object object
webview->AddScriptToExecuteOnDocumentCreated(L"Object.freeze(Object);", nullptr);

This line of javascript freezes the Object prototype, making it immutable. This causes any website which includes polyfills that extend the Object prototype to throw an error (and presumably not render anything). Polyfills are common place in web development. (More details https://github.com/MicrosoftEdge/WebView2Feedback/issues/2035).

Is there a specific reason this sample recommends freezing the Object prototype?

champnic commented 1 year ago

This code is just an example of injecting script, not a recommendation. I've opened a bug on our side to consider making the example more clear and less intrusive. Thanks!

tmackay-cenet commented 5 months ago

This very line seems to have made it into production for the MS Remote Help client (confirmed by debugger). We're having trouble with polyfills, too.