Skip to content

Commit f3a8efa

Browse files
committed
fix: dont load polyfill. Let the user handle that
1 parent a3bb390 commit f3a8efa

13 files changed

+147
-156
lines changed

src/webview/index.android.ts

+24-24
Original file line numberDiff line numberDiff line change
@@ -612,13 +612,13 @@ export class AWebView extends WebViewExtBase {
612612
super.disposeNativeView();
613613
}
614614

615-
public async ensurePromiseSupport() {
616-
if (sdkVersion() >= 21) {
617-
return;
618-
}
615+
// public async ensurePromiseSupport() {
616+
// if (sdkVersion() >= 21) {
617+
// return;
618+
// }
619619

620-
return super.ensurePromiseSupport();
621-
}
620+
// return super.ensurePromiseSupport();
621+
// }
622622

623623
public _loadUrl(src: string) {
624624
const nativeView = this.nativeViewProtected;
@@ -740,24 +740,24 @@ export class AWebView extends WebViewExtBase {
740740
* Native 'Fetch API' on Android rejects all request for resources no HTTP or HTTPS.
741741
* This breaks x-local:// requests (and file://).
742742
*/
743-
public async ensureFetchSupport() {
744-
if (Trace.isEnabled()) {
745-
Trace.write("WebViewExt<android>.ensureFetchSupport() - Override 'Fetch API' to support x-local.", NotaTraceCategory, Trace.messageType.info);
746-
}
747-
748-
// The polyfill is not loaded if fetch already exists, start by null'ing it.
749-
await this.executeJavaScript(
750-
`
751-
try {
752-
window.fetch = null;
753-
} catch (err) {
754-
console.error("null'ing Native Fetch API failed:", err);
755-
}
756-
`
757-
);
758-
759-
// await this.loadFetchPolyfill();
760-
}
743+
// public async ensureFetchSupport() {
744+
// if (Trace.isEnabled()) {
745+
// Trace.write("WebViewExt<android>.ensureFetchSupport() - Override 'Fetch API' to support x-local.", NotaTraceCategory, Trace.messageType.info);
746+
// }
747+
748+
// // The polyfill is not loaded if fetch already exists, start by null'ing it.
749+
// await this.executeJavaScript(
750+
// `
751+
// try {
752+
// window.fetch = null;
753+
// } catch (err) {
754+
// console.error("null'ing Native Fetch API failed:", err);
755+
// }
756+
// `
757+
// );
758+
759+
// await this.loadFetchPolyfill();
760+
// }
761761

762762
public async executeJavaScript<T>(scriptCode: string): Promise<T> {
763763
if (sdkVersion() < 19) {

src/webview/index.common.ts

+55-55
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
/* eslint-disable @typescript-eslint/adjacent-overload-signatures */
33
import { CSSType, ContainerView, EventData, File, Property, Trace, booleanConverter, knownFolders, path } from '@nativescript/core';
44
import { isEnabledProperty } from '@nativescript/core/ui/core/view';
5-
import { metadataViewPort, promisePolyfill, webViewBridge } from './nativescript-webview-bridge-loader';
5+
import { metadataViewPort, webViewBridge } from './nativescript-webview-bridge-loader';
66

77
export interface ViewPortProperties {
88
width?: number | 'device-width';
@@ -987,7 +987,7 @@ export abstract class WebViewExtBase extends ContainerView {
987987
const scriptCode = this.generateLoadJavaScriptFileScriptCode(resourceName, filepath);
988988
promiseScriptCodes.push(scriptCode);
989989
if (Trace.isEnabled()) {
990-
Trace.write(`WebViewExt.loadJavaScriptFiles() - > Loading javascript file: "${filepath}"`, 'NOTA', Trace.messageType.info);
990+
Trace.write(`WebViewExt.loadJavaScriptFiles() - > Loading javascript file: "${filepath}" "${scriptCode}"`, 'NOTA', Trace.messageType.info);
991991
}
992992
}
993993

@@ -1119,77 +1119,77 @@ export abstract class WebViewExtBase extends ContainerView {
11191119
/**
11201120
* Ensure fetch-api is available.
11211121
*/
1122-
protected async ensureFetchSupport(): Promise<void> {
1123-
if (WebViewExtBase.isFetchSupported) {
1124-
return Promise.resolve();
1125-
}
1122+
// protected async ensureFetchSupport(): Promise<void> {
1123+
// if (WebViewExtBase.isFetchSupported) {
1124+
// return Promise.resolve();
1125+
// }
11261126

1127-
if (typeof WebViewExtBase.isFetchSupported === 'undefined') {
1128-
if (Trace.isEnabled()) {
1129-
Trace.write('WebViewExtBase.ensureFetchSupport() - need to check for fetch support.', 'NOTA', Trace.messageType.info);
1130-
}
1127+
// if (typeof WebViewExtBase.isFetchSupported === 'undefined') {
1128+
// if (Trace.isEnabled()) {
1129+
// Trace.write('WebViewExtBase.ensureFetchSupport() - need to check for fetch support.', 'NOTA', Trace.messageType.info);
1130+
// }
11311131

1132-
WebViewExtBase.isFetchSupported = await this.executeJavaScript<boolean>("typeof fetch !== 'undefined'");
1133-
}
1132+
// WebViewExtBase.isFetchSupported = await this.executeJavaScript<boolean>("typeof fetch !== 'undefined'");
1133+
// }
11341134

1135-
if (WebViewExtBase.isFetchSupported) {
1136-
if (Trace.isEnabled()) {
1137-
Trace.write('WebViewExtBase.ensureFetchSupport() - fetch is supported - polyfill not needed.', 'NOTA', Trace.messageType.info);
1138-
}
1135+
// if (WebViewExtBase.isFetchSupported) {
1136+
// if (Trace.isEnabled()) {
1137+
// Trace.write('WebViewExtBase.ensureFetchSupport() - fetch is supported - polyfill not needed.', 'NOTA', Trace.messageType.info);
1138+
// }
11391139

1140-
return;
1141-
}
1140+
// return;
1141+
// }
11421142

1143-
if (Trace.isEnabled()) {
1144-
Trace.write('WebViewExtBase.ensureFetchSupport() - fetch is not supported - polyfill needed.', 'NOTA', Trace.messageType.info);
1145-
}
1143+
// if (Trace.isEnabled()) {
1144+
// Trace.write('WebViewExtBase.ensureFetchSupport() - fetch is not supported - polyfill needed.', 'NOTA', Trace.messageType.info);
1145+
// }
11461146

1147-
// return await this.loadFetchPolyfill();
1148-
}
1147+
// return this.loadFetchPolyfill();
1148+
// }
11491149

11501150
// protected async loadFetchPolyfill() {
1151-
// await this.executeJavaScript<void>(fetchPolyfill, false);
1151+
// // await this.executeJavaScript<void>(fetchPolyfill, false);
11521152
// }
11531153

11541154
/**
11551155
* Older Android WebView don't support promises.
11561156
* Inject the promise-polyfill if needed.
11571157
*/
1158-
protected async ensurePromiseSupport() {
1159-
if (WebViewExtBase.isPromiseSupported) {
1160-
return;
1161-
}
1158+
// protected async ensurePromiseSupport() {
1159+
// if (WebViewExtBase.isPromiseSupported) {
1160+
// return;
1161+
// }
11621162

1163-
if (typeof WebViewExtBase.isPromiseSupported === 'undefined') {
1164-
if (Trace.isEnabled()) {
1165-
Trace.write('WebViewExtBase.ensurePromiseSupport() - need to check for promise support.', 'NOTA', Trace.messageType.info);
1166-
}
1163+
// if (typeof WebViewExtBase.isPromiseSupported === 'undefined') {
1164+
// if (Trace.isEnabled()) {
1165+
// Trace.write('WebViewExtBase.ensurePromiseSupport() - need to check for promise support.', 'NOTA', Trace.messageType.info);
1166+
// }
11671167

1168-
WebViewExtBase.isPromiseSupported = await this.executeJavaScript<boolean>("typeof Promise !== 'undefined'");
1169-
}
1168+
// WebViewExtBase.isPromiseSupported = await this.executeJavaScript<boolean>("typeof Promise !== 'undefined'");
1169+
// }
11701170

1171-
if (WebViewExtBase.isPromiseSupported) {
1172-
if (Trace.isEnabled()) {
1173-
Trace.write('WebViewExtBase.ensurePromiseSupport() - promise is supported - polyfill not needed.', 'NOTA', Trace.messageType.info);
1174-
}
1171+
// if (WebViewExtBase.isPromiseSupported) {
1172+
// if (Trace.isEnabled()) {
1173+
// Trace.write('WebViewExtBase.ensurePromiseSupport() - promise is supported - polyfill not needed.', 'NOTA', Trace.messageType.info);
1174+
// }
11751175

1176-
return;
1177-
}
1176+
// return;
1177+
// }
11781178

1179-
if (Trace.isEnabled()) {
1180-
Trace.write('WebViewExtBase.ensurePromiseSupport() - promise is not supported - polyfill needed.', 'NOTA', Trace.messageType.info);
1181-
}
1182-
await this.loadPromisePolyfill();
1183-
}
1179+
// if (Trace.isEnabled()) {
1180+
// Trace.write('WebViewExtBase.ensurePromiseSupport() - promise is not supported - polyfill needed.', 'NOTA', Trace.messageType.info);
1181+
// }
1182+
// await this.loadPromisePolyfill();
1183+
// }
11841184

1185-
protected async loadPromisePolyfill() {
1186-
await this.executeJavaScript<void>(promisePolyfill, false);
1187-
}
1185+
// protected async loadPromisePolyfill() {
1186+
// await this.executeJavaScript<void>(promisePolyfill, false);
1187+
// }
11881188

1189-
protected async ensurePolyfills() {
1190-
await this.ensurePromiseSupport();
1191-
// await this.ensureFetchSupport();
1192-
}
1189+
// protected async ensurePolyfills() {
1190+
// await this.ensurePromiseSupport();
1191+
// await this.ensureFetchSupport();
1192+
// }
11931193

11941194
/**
11951195
* Execute JavaScript inside the webview.
@@ -1372,9 +1372,9 @@ export abstract class WebViewExtBase extends ContainerView {
13721372
if (this.injectBridge) {
13731373
await this.executeJavaScript(webViewBridge, false);
13741374
}
1375-
if (this.injectPolyfills) {
1376-
await this.ensurePolyfills();
1377-
}
1375+
// if (this.injectPolyfills) {
1376+
// await this.ensurePolyfills();
1377+
// }
13781378
await this.injectViewPortMeta();
13791379
}
13801380

src/webview/index.ios.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -87,8 +87,8 @@ export class AWebView extends WebViewExtBase {
8787
super.disposeNativeView();
8888
}
8989

90-
protected injectWebViewBridge() {
91-
return this.ensurePolyfills();
90+
protected async injectWebViewBridge() {
91+
// return this.ensurePolyfills();
9292
}
9393

9494
protected async injectViewPortMeta() {

0 commit comments

Comments
 (0)