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 CHANGED
@@ -1,4 +1,4 @@
1
- # 🦁 brave-real-playwright-core v1.57.0-patch.1
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.1
51
+ - **Brave optimization**: v1.57.0-patch.10
52
52
 
53
53
  ## 🔗 Links
54
54
 
@@ -5,7 +5,7 @@
5
5
  timingRange: '1-5ms',
6
6
  stealthLevel: 'professional',
7
7
  engine: 'playwright',
8
- braveVersion: '1.57.0-patch.1',
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: '129.0.0.0',
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
- // Define webdriver as undefined and make it non-enumerable
111
- Object.defineProperty(navigator, 'webdriver', {
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 = ['webdriver', '__webdriver__', '_webdriver', 'webDriver'];
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 - BRAVE BROWSER DEFAULT
483
+ // BULLETPROOF User Agent spoofing - DYNAMIC VERSION: 144.0.7559.59
489
484
  (function() {
490
- // 🦁 AUTO-DETECT BROWSER TYPE FOR OPTIMIZED USER AGENT
491
- const isBraveOptimized = process.env.REBROWSER_STEALTH_BRAVE_OPTIMIZATIONS === '1' ||
492
- process.env.REBROWSER_AUTO_BROWSER_TYPE === 'brave';
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
- // Define optimized user agents based on detected browser
497
- let bulletproofUserAgent;
498
- if (isBraveOptimized) {
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/129.0.0.0 Safari/537.36',
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
- Object.defineProperty(navigator, 'userAgentData', {
592
- get: () => ({
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: '8' },
595
- { brand: 'Chromium', version: '140' },
596
- { brand: 'Google Chrome', version: '140' }
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: this.brands,
566
+ brands: userAgentDataInstance.brands,
605
567
  fullVersionList: [
606
- { brand: 'Not_A Brand', version: '8.0.0.0' },
607
- { brand: 'Chromium', version: '140.0.7339.81' },
608
- { brand: 'Google Chrome', version: '140.0.7339.81' }
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: '140.0.7339.81'
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
- configurable: true,
619
- enumerable: false
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.1",
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.1",
51
+ "version": "1.57.0-patch.10",
52
52
  "basedOn": {
53
53
  "playwright-core": "1.57.0",
54
- "patches-version": "1.57.0-patch.1",
55
- "release-info": "Brave Playwright v1.57.0-patch.1 based on Playwright Core v1.57.0"
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.1",
58
+ "braveVersion": "1.57.0-patch.10",
59
59
  "playwrightVersion": "1.57.0",
60
- "fullName": "Brave Playwright Core v1.57.0-patch.1 (Playwright 1.57.0)"
60
+ "fullName": "Brave Playwright Core v1.57.0-patch.10 (Playwright 1.57.0)"
61
61
  },
62
62
  "features": [
63
63
  "error-stack-sanitization",
@@ -35,7 +35,7 @@
35
35
  return Promise.resolve({
36
36
  ok: true,
37
37
  json: () => Promise.resolve([{
38
- version: '129.0.0.0',
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
- // Define webdriver as undefined and make it non-enumerable
75
- Object.defineProperty(navigator, 'webdriver', {
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 = ['webdriver', '__webdriver__', '_webdriver', 'webDriver'];
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 - BRAVE BROWSER DEFAULT
447
+ // BULLETPROOF User Agent spoofing - DYNAMIC VERSION: 144.0.7559.59
453
448
  (function() {
454
- // 🦁 AUTO-DETECT BROWSER TYPE FOR OPTIMIZED USER AGENT
455
- const isBraveOptimized = process.env.REBROWSER_STEALTH_BRAVE_OPTIMIZATIONS === '1' ||
456
- process.env.REBROWSER_AUTO_BROWSER_TYPE === 'brave';
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
- // Define optimized user agents based on detected browser
461
- let bulletproofUserAgent;
462
- if (isBraveOptimized) {
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/129.0.0.0 Safari/537.36',
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
- Object.defineProperty(navigator, 'userAgentData', {
556
- get: () => ({
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: '8' },
559
- { brand: 'Chromium', version: '140' },
560
- { brand: 'Google Chrome', version: '140' }
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: this.brands,
530
+ brands: userAgentDataInstance.brands,
569
531
  fullVersionList: [
570
- { brand: 'Not_A Brand', version: '8.0.0.0' },
571
- { brand: 'Chromium', version: '140.0.7339.81' },
572
- { brand: 'Google Chrome', version: '140.0.7339.81' }
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: '140.0.7339.81'
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
- configurable: true,
583
- enumerable: false
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');