Path: blob/main/plugins/default-browser-emulator/injected-scripts/navigator.ts
1029 views
if (args.userAgentString && self.navigator?.userAgent !== args.userAgentString) {1proxyGetter(self.navigator, 'userAgent', () => args.userAgentString, true);2proxyGetter(3self.navigator,4'appVersion',5() => args.userAgentString.replace('Mozilla/', ''),6true,7);8}910// always override11proxyGetter(self.navigator, 'platform', () => args.platform, true);1213if ('setAppBadge' in self.navigator) {14proxyFunction(self.navigator, 'setAppBadge', (target, thisArg, argArray) => {15let error: TypeError;16if (Object.getPrototypeOf(thisArg) !== Navigator.prototype) {17error = new TypeError("Failed to execute 'setAppBadge' on 'Navigator': Illegal invocation");18} else if (argArray.length) {19const arg = argArray[0];20if (typeof arg === 'number') {21if (arg < 0 || arg > Number.MAX_SAFE_INTEGER) {22error = new TypeError(23`Failed to execute 'setAppBadge' on 'Navigator': Value is outside the 'unsigned long long' value range.`,24);25}26} else {27error = new TypeError(28`Failed to execute 'setAppBadge' on 'Navigator': Value is not of type 'unsigned long long'.`,29);30}31}32if (error) return Promise.reject(cleanErrorStack(error));33return Promise.resolve(undefined);34});35}3637if ('clearAppBadge' in self.navigator) {38proxyFunction(self.navigator, 'clearAppBadge', (target, thisArg, argArray) => {39let error: TypeError;40if (Object.getPrototypeOf(thisArg) !== Navigator.prototype) {41error = new TypeError("Failed to execute 'clearAppBadge' on 'Navigator': Illegal invocation");42}43if (error) return Promise.reject(cleanErrorStack(error));44return Promise.resolve(undefined);45});46}4748if (args.headless === true && 'requestMediaKeySystemAccess' in self.navigator) {49proxyFunction(self.navigator, 'requestMediaKeySystemAccess', (target, thisArg, argArray) => {50if (argArray.length < 2) {51return ProxyOverride.callOriginal;52}53const [keySystem, configs] = argArray;54if (keySystem !== 'com.widevine.alpha' || [...configs].length < 1) {55return ProxyOverride.callOriginal;56}57return target58.call(thisArg, 'org.w3.clearkey', configs)59.then(x => {60proxyGetter(x, 'keySystem', () => keySystem);61return x;62})63.catch(err => cleanErrorStack(err));64});65}666768