brave-real-playwright-core 1.57.0-patch.1 → 1.57.0-patch.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -2
- package/advanced-stealth.js +52 -79
- package/package.json +6 -6
- package/stealth-injection.js +51 -78
package/README.md
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# 🦁 brave-real-playwright-core v1.57.0-patch.
|
|
1
|
+
# 🦁 brave-real-playwright-core v1.57.0-patch.10
|
|
2
2
|
|
|
3
3
|
**Based on Playwright Core v1.57.0**
|
|
4
4
|
|
|
@@ -48,7 +48,7 @@ await page.goto('https://bot-detector.rebrowser.net/');
|
|
|
48
48
|
|
|
49
49
|
- **playwright-core**: v1.57.0
|
|
50
50
|
- **rebrowser-patches**: Latest stealth optimizations
|
|
51
|
-
- **Brave optimization**: v1.57.0-patch.
|
|
51
|
+
- **Brave optimization**: v1.57.0-patch.10
|
|
52
52
|
|
|
53
53
|
## 🔗 Links
|
|
54
54
|
|
package/advanced-stealth.js
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
timingRange: '1-5ms',
|
|
6
6
|
stealthLevel: 'professional',
|
|
7
7
|
engine: 'playwright',
|
|
8
|
-
braveVersion: '1.57.0-patch.
|
|
8
|
+
braveVersion: '1.57.0-patch.10',
|
|
9
9
|
features: {
|
|
10
10
|
performanceOptimization: true,
|
|
11
11
|
navigatorSpoofing: true,
|
|
@@ -71,7 +71,7 @@
|
|
|
71
71
|
return Promise.resolve({
|
|
72
72
|
ok: true,
|
|
73
73
|
json: () => Promise.resolve([{
|
|
74
|
-
version: '
|
|
74
|
+
version: '144.0.7559.59',
|
|
75
75
|
time: new Date().toISOString()
|
|
76
76
|
}])
|
|
77
77
|
});
|
|
@@ -107,16 +107,11 @@
|
|
|
107
107
|
delete navigator.webdriver;
|
|
108
108
|
}
|
|
109
109
|
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
get: () => undefined,
|
|
113
|
-
set: () => {},
|
|
114
|
-
configurable: false,
|
|
115
|
-
enumerable: false
|
|
116
|
-
});
|
|
110
|
+
|
|
111
|
+
|
|
117
112
|
|
|
118
113
|
// Additional webdriver property variations
|
|
119
|
-
const webdriverProps = ['
|
|
114
|
+
const webdriverProps = ['__webdriver__', '_webdriver', 'webDriver'];
|
|
120
115
|
webdriverProps.forEach(prop => {
|
|
121
116
|
if (prop in navigator) {
|
|
122
117
|
delete navigator[prop];
|
|
@@ -485,29 +480,15 @@
|
|
|
485
480
|
|
|
486
481
|
// 4. BULLETPROOF USER AGENT STEALTH
|
|
487
482
|
|
|
488
|
-
// BULLETPROOF User Agent spoofing -
|
|
483
|
+
// BULLETPROOF User Agent spoofing - DYNAMIC VERSION: 144.0.7559.59
|
|
489
484
|
(function() {
|
|
490
|
-
// 🦁
|
|
491
|
-
const
|
|
492
|
-
|
|
493
|
-
const isChromeOptimized = process.env.REBROWSER_STEALTH_CHROME_OPTIMIZATIONS === '1' ||
|
|
494
|
-
process.env.REBROWSER_AUTO_BROWSER_TYPE === 'chrome';
|
|
485
|
+
// 🦁 DYNAMIC CHROME VERSION - Auto-synced with latest stable
|
|
486
|
+
const INJECTED_CHROME_VERSION = '144.0.7559.59';
|
|
487
|
+
const INJECTED_MAJOR_VERSION = '144';
|
|
495
488
|
|
|
496
|
-
//
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
// Brave-optimized user agent (maximum stealth)
|
|
500
|
-
bulletproofUserAgent = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/129.0.0.0 Safari/537.36';
|
|
501
|
-
console.log('[🦁 BRAVE-STEALTH] Brave browser optimizations active - maximum stealth mode');
|
|
502
|
-
} else if (isChromeOptimized) {
|
|
503
|
-
// Chrome-optimized user agent
|
|
504
|
-
bulletproofUserAgent = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/129.0.0.0 Safari/537.36';
|
|
505
|
-
console.log('[🔵 CHROME-STEALTH] Chrome browser optimizations active');
|
|
506
|
-
} else {
|
|
507
|
-
// Default fallback user agent
|
|
508
|
-
bulletproofUserAgent = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/129.0.0.0 Safari/537.36';
|
|
509
|
-
console.log('[⚙️ DEFAULT-STEALTH] Using default browser stealth mode');
|
|
510
|
-
}
|
|
489
|
+
// Dynamic user agent with latest Chrome version
|
|
490
|
+
const bulletproofUserAgent = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.7559.59 Safari/537.36';
|
|
491
|
+
console.log('[🎯 DYNAMIC-STEALTH] Using Chrome version: ' + INJECTED_CHROME_VERSION);
|
|
511
492
|
|
|
512
493
|
// COMPLETELY override navigator.userAgent
|
|
513
494
|
Object.defineProperty(navigator, 'userAgent', {
|
|
@@ -518,43 +499,11 @@
|
|
|
518
499
|
|
|
519
500
|
// COMPLETELY override appVersion
|
|
520
501
|
Object.defineProperty(navigator, 'appVersion', {
|
|
521
|
-
get: () => '5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/
|
|
502
|
+
get: () => '5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.7559.59 Safari/537.36',
|
|
522
503
|
configurable: false,
|
|
523
504
|
enumerable: true
|
|
524
505
|
});
|
|
525
506
|
|
|
526
|
-
// BULLETPROOF webdriver property elimination
|
|
527
|
-
if ('webdriver' in navigator) {
|
|
528
|
-
delete navigator.webdriver;
|
|
529
|
-
}
|
|
530
|
-
|
|
531
|
-
// PREVENT webdriver property from being redefined
|
|
532
|
-
Object.defineProperty(navigator, 'webdriver', {
|
|
533
|
-
get: () => undefined,
|
|
534
|
-
set: () => {},
|
|
535
|
-
configurable: false,
|
|
536
|
-
enumerable: false
|
|
537
|
-
});
|
|
538
|
-
|
|
539
|
-
// OVERRIDE Object.getOwnPropertyDescriptor to hide our modifications
|
|
540
|
-
const originalGetOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;
|
|
541
|
-
Object.getOwnPropertyDescriptor = function(obj, prop) {
|
|
542
|
-
if (obj === navigator && prop === 'webdriver') {
|
|
543
|
-
return undefined;
|
|
544
|
-
}
|
|
545
|
-
return originalGetOwnPropertyDescriptor.call(this, obj, prop);
|
|
546
|
-
};
|
|
547
|
-
|
|
548
|
-
// OVERRIDE Object.getOwnPropertyNames to hide webdriver
|
|
549
|
-
const originalGetOwnPropertyNames = Object.getOwnPropertyNames;
|
|
550
|
-
Object.getOwnPropertyNames = function(obj) {
|
|
551
|
-
const props = originalGetOwnPropertyNames.call(this, obj);
|
|
552
|
-
if (obj === navigator) {
|
|
553
|
-
return props.filter(prop => prop !== 'webdriver');
|
|
554
|
-
}
|
|
555
|
-
return props;
|
|
556
|
-
};
|
|
557
|
-
|
|
558
507
|
// BULLETPROOF platform detection
|
|
559
508
|
Object.defineProperty(navigator, 'platform', {
|
|
560
509
|
get: () => 'Win32',
|
|
@@ -587,13 +536,26 @@
|
|
|
587
536
|
});
|
|
588
537
|
})();
|
|
589
538
|
|
|
590
|
-
// Enhanced userAgentData with getHighEntropyValues method
|
|
591
|
-
|
|
592
|
-
|
|
539
|
+
// Enhanced userAgentData with getHighEntropyValues method - DYNAMIC VERSION
|
|
540
|
+
(function() {
|
|
541
|
+
const INJECTED_CHROME_VERSION = '144.0.7559.59';
|
|
542
|
+
const INJECTED_MAJOR_VERSION = '144';
|
|
543
|
+
|
|
544
|
+
// Aggressively delete existing userAgentData
|
|
545
|
+
try {
|
|
546
|
+
delete Navigator.prototype.userAgentData;
|
|
547
|
+
} catch {}
|
|
548
|
+
try {
|
|
549
|
+
if (navigator.hasOwnProperty('userAgentData')) {
|
|
550
|
+
delete navigator.userAgentData;
|
|
551
|
+
}
|
|
552
|
+
} catch {}
|
|
553
|
+
|
|
554
|
+
const userAgentDataInstance = {
|
|
593
555
|
brands: [
|
|
594
|
-
{ brand: 'Not_A Brand', version: '
|
|
595
|
-
{ brand: 'Chromium', version:
|
|
596
|
-
{ brand: 'Google Chrome', version:
|
|
556
|
+
{ brand: 'Not_A Brand', version: '24' },
|
|
557
|
+
{ brand: 'Chromium', version: INJECTED_MAJOR_VERSION },
|
|
558
|
+
{ brand: 'Google Chrome', version: INJECTED_MAJOR_VERSION }
|
|
597
559
|
],
|
|
598
560
|
mobile: false,
|
|
599
561
|
platform: 'Windows',
|
|
@@ -601,23 +563,34 @@
|
|
|
601
563
|
return Promise.resolve({
|
|
602
564
|
architecture: 'x86',
|
|
603
565
|
bitness: '64',
|
|
604
|
-
brands:
|
|
566
|
+
brands: userAgentDataInstance.brands,
|
|
605
567
|
fullVersionList: [
|
|
606
|
-
{ brand: 'Not_A Brand', version:
|
|
607
|
-
{ brand: 'Chromium', version:
|
|
608
|
-
{ brand: 'Google Chrome', version:
|
|
568
|
+
{ brand: 'Not_A Brand', version: INJECTED_CHROME_VERSION },
|
|
569
|
+
{ brand: 'Chromium', version: INJECTED_CHROME_VERSION },
|
|
570
|
+
{ brand: 'Google Chrome', version: INJECTED_CHROME_VERSION }
|
|
609
571
|
],
|
|
610
572
|
mobile: false,
|
|
611
573
|
model: '',
|
|
612
574
|
platform: 'Windows',
|
|
613
575
|
platformVersion: '10.0.0',
|
|
614
|
-
uaFullVersion:
|
|
576
|
+
uaFullVersion: INJECTED_CHROME_VERSION
|
|
615
577
|
});
|
|
578
|
+
},
|
|
579
|
+
toJSON: function() {
|
|
580
|
+
return {
|
|
581
|
+
brands: this.brands,
|
|
582
|
+
mobile: this.mobile,
|
|
583
|
+
platform: this.platform
|
|
584
|
+
};
|
|
616
585
|
}
|
|
617
|
-
}
|
|
618
|
-
|
|
619
|
-
|
|
620
|
-
|
|
586
|
+
};
|
|
587
|
+
|
|
588
|
+
Object.defineProperty(Navigator.prototype, 'userAgentData', {
|
|
589
|
+
get: () => userAgentDataInstance,
|
|
590
|
+
configurable: false,
|
|
591
|
+
enumerable: true
|
|
592
|
+
});
|
|
593
|
+
})();
|
|
621
594
|
|
|
622
595
|
|
|
623
596
|
console.log('[REBROWSER-STEALTH] ✅ Ultra-fast professional stealth mode activated');
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "brave-real-playwright-core",
|
|
3
|
-
"version": "1.57.0-patch.
|
|
3
|
+
"version": "1.57.0-patch.10",
|
|
4
4
|
"description": "Brave-optimized Playwright Core (v1.57.0) with comprehensive stealth patches and error stack sanitization",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"playwright",
|
|
@@ -48,16 +48,16 @@
|
|
|
48
48
|
],
|
|
49
49
|
"brave": {
|
|
50
50
|
"optimized": true,
|
|
51
|
-
"version": "1.57.0-patch.
|
|
51
|
+
"version": "1.57.0-patch.10",
|
|
52
52
|
"basedOn": {
|
|
53
53
|
"playwright-core": "1.57.0",
|
|
54
|
-
"patches-version": "1.57.0-patch.
|
|
55
|
-
"release-info": "Brave Playwright v1.57.0-patch.
|
|
54
|
+
"patches-version": "1.57.0-patch.10",
|
|
55
|
+
"release-info": "Brave Playwright v1.57.0-patch.10 based on Playwright Core v1.57.0"
|
|
56
56
|
},
|
|
57
57
|
"versionInfo": {
|
|
58
|
-
"braveVersion": "1.57.0-patch.
|
|
58
|
+
"braveVersion": "1.57.0-patch.10",
|
|
59
59
|
"playwrightVersion": "1.57.0",
|
|
60
|
-
"fullName": "Brave Playwright Core v1.57.0-patch.
|
|
60
|
+
"fullName": "Brave Playwright Core v1.57.0-patch.10 (Playwright 1.57.0)"
|
|
61
61
|
},
|
|
62
62
|
"features": [
|
|
63
63
|
"error-stack-sanitization",
|
package/stealth-injection.js
CHANGED
|
@@ -35,7 +35,7 @@
|
|
|
35
35
|
return Promise.resolve({
|
|
36
36
|
ok: true,
|
|
37
37
|
json: () => Promise.resolve([{
|
|
38
|
-
version: '
|
|
38
|
+
version: '144.0.7559.59',
|
|
39
39
|
time: new Date().toISOString()
|
|
40
40
|
}])
|
|
41
41
|
});
|
|
@@ -71,16 +71,11 @@
|
|
|
71
71
|
delete navigator.webdriver;
|
|
72
72
|
}
|
|
73
73
|
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
get: () => undefined,
|
|
77
|
-
set: () => {},
|
|
78
|
-
configurable: false,
|
|
79
|
-
enumerable: false
|
|
80
|
-
});
|
|
74
|
+
|
|
75
|
+
|
|
81
76
|
|
|
82
77
|
// Additional webdriver property variations
|
|
83
|
-
const webdriverProps = ['
|
|
78
|
+
const webdriverProps = ['__webdriver__', '_webdriver', 'webDriver'];
|
|
84
79
|
webdriverProps.forEach(prop => {
|
|
85
80
|
if (prop in navigator) {
|
|
86
81
|
delete navigator[prop];
|
|
@@ -449,29 +444,15 @@
|
|
|
449
444
|
|
|
450
445
|
// 4. BULLETPROOF USER AGENT STEALTH
|
|
451
446
|
|
|
452
|
-
// BULLETPROOF User Agent spoofing -
|
|
447
|
+
// BULLETPROOF User Agent spoofing - DYNAMIC VERSION: 144.0.7559.59
|
|
453
448
|
(function() {
|
|
454
|
-
// 🦁
|
|
455
|
-
const
|
|
456
|
-
|
|
457
|
-
const isChromeOptimized = process.env.REBROWSER_STEALTH_CHROME_OPTIMIZATIONS === '1' ||
|
|
458
|
-
process.env.REBROWSER_AUTO_BROWSER_TYPE === 'chrome';
|
|
449
|
+
// 🦁 DYNAMIC CHROME VERSION - Auto-synced with latest stable
|
|
450
|
+
const INJECTED_CHROME_VERSION = '144.0.7559.59';
|
|
451
|
+
const INJECTED_MAJOR_VERSION = '144';
|
|
459
452
|
|
|
460
|
-
//
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
// Brave-optimized user agent (maximum stealth)
|
|
464
|
-
bulletproofUserAgent = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/129.0.0.0 Safari/537.36';
|
|
465
|
-
console.log('[🦁 BRAVE-STEALTH] Brave browser optimizations active - maximum stealth mode');
|
|
466
|
-
} else if (isChromeOptimized) {
|
|
467
|
-
// Chrome-optimized user agent
|
|
468
|
-
bulletproofUserAgent = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/129.0.0.0 Safari/537.36';
|
|
469
|
-
console.log('[🔵 CHROME-STEALTH] Chrome browser optimizations active');
|
|
470
|
-
} else {
|
|
471
|
-
// Default fallback user agent
|
|
472
|
-
bulletproofUserAgent = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/129.0.0.0 Safari/537.36';
|
|
473
|
-
console.log('[⚙️ DEFAULT-STEALTH] Using default browser stealth mode');
|
|
474
|
-
}
|
|
453
|
+
// Dynamic user agent with latest Chrome version
|
|
454
|
+
const bulletproofUserAgent = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.7559.59 Safari/537.36';
|
|
455
|
+
console.log('[🎯 DYNAMIC-STEALTH] Using Chrome version: ' + INJECTED_CHROME_VERSION);
|
|
475
456
|
|
|
476
457
|
// COMPLETELY override navigator.userAgent
|
|
477
458
|
Object.defineProperty(navigator, 'userAgent', {
|
|
@@ -482,43 +463,11 @@
|
|
|
482
463
|
|
|
483
464
|
// COMPLETELY override appVersion
|
|
484
465
|
Object.defineProperty(navigator, 'appVersion', {
|
|
485
|
-
get: () => '5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/
|
|
466
|
+
get: () => '5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.7559.59 Safari/537.36',
|
|
486
467
|
configurable: false,
|
|
487
468
|
enumerable: true
|
|
488
469
|
});
|
|
489
470
|
|
|
490
|
-
// BULLETPROOF webdriver property elimination
|
|
491
|
-
if ('webdriver' in navigator) {
|
|
492
|
-
delete navigator.webdriver;
|
|
493
|
-
}
|
|
494
|
-
|
|
495
|
-
// PREVENT webdriver property from being redefined
|
|
496
|
-
Object.defineProperty(navigator, 'webdriver', {
|
|
497
|
-
get: () => undefined,
|
|
498
|
-
set: () => {},
|
|
499
|
-
configurable: false,
|
|
500
|
-
enumerable: false
|
|
501
|
-
});
|
|
502
|
-
|
|
503
|
-
// OVERRIDE Object.getOwnPropertyDescriptor to hide our modifications
|
|
504
|
-
const originalGetOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;
|
|
505
|
-
Object.getOwnPropertyDescriptor = function(obj, prop) {
|
|
506
|
-
if (obj === navigator && prop === 'webdriver') {
|
|
507
|
-
return undefined;
|
|
508
|
-
}
|
|
509
|
-
return originalGetOwnPropertyDescriptor.call(this, obj, prop);
|
|
510
|
-
};
|
|
511
|
-
|
|
512
|
-
// OVERRIDE Object.getOwnPropertyNames to hide webdriver
|
|
513
|
-
const originalGetOwnPropertyNames = Object.getOwnPropertyNames;
|
|
514
|
-
Object.getOwnPropertyNames = function(obj) {
|
|
515
|
-
const props = originalGetOwnPropertyNames.call(this, obj);
|
|
516
|
-
if (obj === navigator) {
|
|
517
|
-
return props.filter(prop => prop !== 'webdriver');
|
|
518
|
-
}
|
|
519
|
-
return props;
|
|
520
|
-
};
|
|
521
|
-
|
|
522
471
|
// BULLETPROOF platform detection
|
|
523
472
|
Object.defineProperty(navigator, 'platform', {
|
|
524
473
|
get: () => 'Win32',
|
|
@@ -551,13 +500,26 @@
|
|
|
551
500
|
});
|
|
552
501
|
})();
|
|
553
502
|
|
|
554
|
-
// Enhanced userAgentData with getHighEntropyValues method
|
|
555
|
-
|
|
556
|
-
|
|
503
|
+
// Enhanced userAgentData with getHighEntropyValues method - DYNAMIC VERSION
|
|
504
|
+
(function() {
|
|
505
|
+
const INJECTED_CHROME_VERSION = '144.0.7559.59';
|
|
506
|
+
const INJECTED_MAJOR_VERSION = '144';
|
|
507
|
+
|
|
508
|
+
// Aggressively delete existing userAgentData
|
|
509
|
+
try {
|
|
510
|
+
delete Navigator.prototype.userAgentData;
|
|
511
|
+
} catch {}
|
|
512
|
+
try {
|
|
513
|
+
if (navigator.hasOwnProperty('userAgentData')) {
|
|
514
|
+
delete navigator.userAgentData;
|
|
515
|
+
}
|
|
516
|
+
} catch {}
|
|
517
|
+
|
|
518
|
+
const userAgentDataInstance = {
|
|
557
519
|
brands: [
|
|
558
|
-
{ brand: 'Not_A Brand', version: '
|
|
559
|
-
{ brand: 'Chromium', version:
|
|
560
|
-
{ brand: 'Google Chrome', version:
|
|
520
|
+
{ brand: 'Not_A Brand', version: '24' },
|
|
521
|
+
{ brand: 'Chromium', version: INJECTED_MAJOR_VERSION },
|
|
522
|
+
{ brand: 'Google Chrome', version: INJECTED_MAJOR_VERSION }
|
|
561
523
|
],
|
|
562
524
|
mobile: false,
|
|
563
525
|
platform: 'Windows',
|
|
@@ -565,23 +527,34 @@
|
|
|
565
527
|
return Promise.resolve({
|
|
566
528
|
architecture: 'x86',
|
|
567
529
|
bitness: '64',
|
|
568
|
-
brands:
|
|
530
|
+
brands: userAgentDataInstance.brands,
|
|
569
531
|
fullVersionList: [
|
|
570
|
-
{ brand: 'Not_A Brand', version:
|
|
571
|
-
{ brand: 'Chromium', version:
|
|
572
|
-
{ brand: 'Google Chrome', version:
|
|
532
|
+
{ brand: 'Not_A Brand', version: INJECTED_CHROME_VERSION },
|
|
533
|
+
{ brand: 'Chromium', version: INJECTED_CHROME_VERSION },
|
|
534
|
+
{ brand: 'Google Chrome', version: INJECTED_CHROME_VERSION }
|
|
573
535
|
],
|
|
574
536
|
mobile: false,
|
|
575
537
|
model: '',
|
|
576
538
|
platform: 'Windows',
|
|
577
539
|
platformVersion: '10.0.0',
|
|
578
|
-
uaFullVersion:
|
|
540
|
+
uaFullVersion: INJECTED_CHROME_VERSION
|
|
579
541
|
});
|
|
542
|
+
},
|
|
543
|
+
toJSON: function() {
|
|
544
|
+
return {
|
|
545
|
+
brands: this.brands,
|
|
546
|
+
mobile: this.mobile,
|
|
547
|
+
platform: this.platform
|
|
548
|
+
};
|
|
580
549
|
}
|
|
581
|
-
}
|
|
582
|
-
|
|
583
|
-
|
|
584
|
-
|
|
550
|
+
};
|
|
551
|
+
|
|
552
|
+
Object.defineProperty(Navigator.prototype, 'userAgentData', {
|
|
553
|
+
get: () => userAgentDataInstance,
|
|
554
|
+
configurable: false,
|
|
555
|
+
enumerable: true
|
|
556
|
+
});
|
|
557
|
+
})();
|
|
585
558
|
|
|
586
559
|
|
|
587
560
|
console.log('[REBROWSER-STEALTH] ✅ Ultra-fast professional stealth mode activated');
|