Commit 5fe917f4 authored by wangmingming's avatar wangmingming

7777

parent 9dbe38df
let fonts = [{"font":"50px sans-serif","text":"0-_{w."},{"font":"50px serif","text":"0-_{w."},{"font":"50px 'Andale Mono', sans-serif","text":"0-_{w."},{"font":"50px 'Arial Narrow', sans-serif","text":"0-_{w."},{"font":"50px 'Arial Unicode MS', sans-serif","text":"0-_{w."},{"font":"50px 'Batang', sans-serif","text":"0-_{w."},{"font":"50px 'Batang', serif","text":"0-_{w."},{"font":"50px 'Bell MT', sans-serif","text":"0-_{w."},{"font":"50px 'Bell MT', serif","text":"0-_{w."},{"font":"50px 'Brush Script', sans-serif","text":"0-_{w."},{"font":"50px 'Brush Script', serif","text":"0-_{w."},{"font":"50px 'Brush Script MT', sans-serif","text":"0-_{w."},{"font":"50px 'Calibri', sans-serif","text":"0-_{w."},{"font":"50px 'Calibri', serif","text":"0-_{w."},{"font":"50px 'Charter', sans-serif","text":"0-_{w."},{"font":"50px 'Courier', sans-serif","text":"0-_{w."},{"font":"50px 'Courier New', sans-serif","text":"0-_{w."},{"font":"50px 'Curlz MT', sans-serif","text":"0-_{w."},{"font":"50px 'Curlz MT', serif","text":"0-_{w."},{"font":"50px 'DejaVu Sans', sans-serif","text":"0-_{w."},{"font":"50px 'DejaVu Sans', serif","text":"0-_{w."},{"font":"50px 'DejaVu Sans Mono', sans-serif","text":"0-_{w."},{"font":"50px 'DejaVu Sans Mono', serif","text":"0-_{w."},{"font":"50px 'DejaVu Serif Condensed', sans-serif","text":"0-_{w."},{"font":"50px 'DejaVu Serif Condensed', serif","text":"0-_{w."},{"font":"50px 'Droid Sans', sans-serif","text":"0-_{w."},{"font":"50px 'Droid Sans', serif","text":"0-_{w."},{"font":"50px 'Droid Sans Fallback', sans-serif","text":"0-_{w."},{"font":"50px 'Droid Sans Fallback', serif","text":"0-_{w."},{"font":"50px 'Droid Serif', sans-serif","text":"0-_{w."},{"font":"50px 'Droid Serif', serif","text":"0-_{w."},{"font":"50px 'Forte', sans-serif","text":"0-_{w."},{"font":"50px 'Forte', serif","text":"0-_{w."},{"font":"50px 'Futura', sans-serif","text":"0-_{w."},{"font":"50px 'Geneva', sans-serif","text":"0-_{w."},{"font":"50px 'Hei', sans-serif","text":"0-_{w."},{"font":"50px 'Leelawadee', sans-serif","text":"0-_{w."},{"font":"50px 'Leelawadee', serif","text":"0-_{w."},{"font":"50px 'Levenim MT', sans-serif","text":"0-_{w."},{"font":"50px 'Levenim MT', serif","text":"0-_{w."},{"font":"50px 'Liberation Sans', sans-serif","text":"0-_{w."},{"font":"50px 'Liberation Sans', serif","text":"0-_{w."},{"font":"50px 'Liberation Sans Narrow', sans-serif","text":"0-_{w."},{"font":"50px 'Liberation Sans Narrow', serif","text":"0-_{w."},{"font":"50px 'Marlett', sans-serif","text":"0-_{w."},{"font":"50px 'Marlett', serif","text":"0-_{w."},{"font":"50px 'Meiryo UI', sans-serif","text":"0-_{w."},{"font":"50px 'Meiryo UI', serif","text":"0-_{w."},{"font":"50px 'Microsoft Uighur', sans-serif","text":"0-_{w."},{"font":"50px 'Microsoft Uighur', serif","text":"0-_{w."},{"font":"50px 'Microsoft YaHei UI', sans-serif","text":"0-_{w."},{"font":"50px 'Microsoft YaHei UI', serif","text":"0-_{w."},{"font":"50px 'MS Mincho', sans-serif","text":"0-_{w."},{"font":"50px 'MS Mincho', serif","text":"0-_{w."},{"font":"50px 'MS UI Gothic', sans-serif","text":"0-_{w."},{"font":"50px 'MS UI Gothic', serif","text":"0-_{w."},{"font":"50px 'NanumGothic', sans-serif","text":"0-_{w."},{"font":"50px 'Nirmala UI', sans-serif","text":"0-_{w."},{"font":"50px 'Nirmala UI', serif","text":"0-_{w."},{"font":"50px 'Palatino', sans-serif","text":"0-_{w."},{"font":"50px 'Papyrus', sans-serif","text":"0-_{w."},{"font":"50px 'PMingLiU', sans-serif","text":"0-_{w."},{"font":"50px 'PMingLiU', serif","text":"0-_{w."},{"font":"50px 'PT Serif', sans-serif","text":"0-_{w."},{"font":"50px 'SimHei', sans-serif","text":"0-_{w."},{"font":"50px 'SimHei', serif","text":"0-_{w."},{"font":"50px 'STIXVariants', sans-serif","text":"0-_{w."},{"font":"50px 'STSong', sans-serif","text":"0-_{w."},{"font":"50px 'Traditional Arabic', sans-serif","text":"0-_{w."},{"font":"50px 'Traditional Arabic', serif","text":"0-_{w."},{"font":"50px 'Urdu Typesetting', sans-serif","text":"0-_{w."},{"font":"50px 'Urdu Typesetting', serif","text":"0-_{w."},{"font":"50px 'Verdana', sans-serif","text":"0-_{w."},{"font":"50px 'Wingdings', sans-serif","text":"0-_{w."},{"font":"50px 'Wingdings 3', sans-serif","text":"0-_{w."},{"font":"50px 'Helkevtrica', sans-serif","text":"0-_{w."},{"font":"50px 'Helkevtrica', serif","text":"0-_{w."}]
let fontsRes = {}
console.log(fonts.length)
let canvas = document.createElement('canvas');
let ctx = canvas.getContext('2d')
ctx.textBaseline = 'top';
for (let i = 0; i < fonts.length; i++) {
ctx.font = fonts[i].font;
let met = ctx.measureText(fonts[i].text)
if (fontsRes[fonts[i]]) {
fontsRes[fonts[i].font][fonts[i].text] = {
width: met.width,
actualBoundingBoxAscent: met.actualBoundingBoxAscent,
actualBoundingBoxLeft: met.actualBoundingBoxLeft,
actualBoundingBoxRight: met.actualBoundingBoxRight,
fontBoundingBoxAscent: met.fontBoundingBoxAscent,
}
}
}
console.log(JSON.stringify(fontsRes))
let imgsRes = {};
let sss = [{
"font": "94px sans-serif",
"fillStyle": "#000000",
"fillText": ["😎", -1, 96],
"imageData": [18, 90, 1, 1]
}, {
"font": "94px sans-serif",
"fillStyle": "#000000",
"fillText": ["6️⃣", -1, 96],
"imageData": [38, 77, 1, 1]
}, {
"font": "94px sans-serif",
"fillStyle": "#000000",
"fillText": ["🍼", -1, 96],
"imageData": [48, 28, 1, 1]
}, {
"font": "94px sans-serif",
"fillStyle": "#000000",
"fillText": ["🏴󠁧󠁢󠁥󠁮󠁧󠁿", -1, 96],
"imageData": [94, 23, 1, 1]
}, {
"font": "94px sans-serif",
"fillStyle": "#000000",
"fillText": ["📊", -1, 96],
"imageData": [26, 46, 1, 1]
}, {
"font": "94px sans-serif",
"fillStyle": "#000000",
"fillText": ["🏴󠁧󠁢󠁥󠁮󠁧󠁿", -1, 96],
"imageData": [47, 23, 1, 1]
}, {
"font": "94px sans-serif",
"fillStyle": "#000000",
"fillText": ["㊗️", -1, 96],
"imageData": [37, 17, 1, 1]
}, {
"font": "94px sans-serif",
"fillStyle": "#000000",
"fillText": ["⛎", -1, 96],
"imageData": [62, 28, 1, 1]
}]
let imgRes = {};
for (let i = 0; i < sss.length; i++) {
var a = document.createElement('canvas')
let ctx = a.getContext('2d');
let s = sss[i];
ctx.font = s.font;
ctx.fillStyle = s.fillStyle;
ctx.fillText(...s.fillText)
let data = ctx.getImageData(...s.imageData);
if (!imgRes[s.font]){
imgRes[s.font] = {}
}
imgRes[s.font][s.imageData+''] = data.data+''
}
```angular2html
(*) [Navigator appCodeName get] Mozilla
VM192:39 (*) [Navigator appName get] Netscape
VM192:39 (*) [Navigator appVersion get] 5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36
VM192:39 (*) [Navigator hardwareConcurrency get] 20
VM192:39 (*) [Navigator maxTouchPoints get] 0
VM192:39 (*) [Navigator platform get] MacIntel
VM192:39 (*) [Navigator product get] Gecko
VM192:39 (*) [Navigator productSub get] 20030107
VM192:39 (*) [Navigator userAgent get] Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36
VM192:39 (*) [Navigator vendor get] Google Inc.
VM192:39 (*) [Navigator vendorSub get]
VM192:39 (*) [Navigator doNotTrack get] null
VM192:39 (*) [Navigator webdriver get] false
2VM192:39 (*) [BarProp visible get] true
VM192:39 (*) [Screen height get] 1080
VM192:39 (*) [Screen width get] 2560
VM192:39 (*) [Screen availHeight get] 970
VM192:39 (*) [Screen availWidth get] 2560
VM192:39 (*) [Screen pixelDepth get] 24
VM192:39 (*) [Screen colorDepth get] 24
2VM192:39 (*) [BarProp visible get] true
(*) [Navigator userAgent get] Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36
```
```angular2html
(*) [Document featurePolicy get] FeaturePolicy {}
VM192:39 (f) [FeaturePolicy features func] [] ===> (52) ['geolocation', 'gamepad', 'ch-ect', 'midi', 'display-capture', 'usb', 'local-fonts', 'picture-in-picture', 'publickey-credentials-get', 'otp-credentials', 'encrypted-media', 'ch-save-data', 'ch-ua-full-version-list', 'ch-ua-wow64', 'ch-downlink', 'ch-prefers-color-scheme', 'sync-xhr', 'ch-ua-model', 'serial', 'camera', 'ch-prefers-reduced-motion', 'bluetooth', 'identity-credentials-get', 'ch-ua-full-version', 'fullscreen', 'ch-dpr', 'keyboard-map', 'ch-ua-platform', 'gyroscope', 'window-placement', 'ch-ua-mobile', 'ch-ua', 'magnetometer', 'accelerometer', 'ch-ua-arch', 'xr-spatial-tracking', 'idle-detection', 'ch-ua-platform-version', 'ch-width', 'clipboard-read', 'ch-viewport-width', 'payment', 'ch-viewport-height', 'ch-rtt', 'autoplay', 'cross-origin-isolated', 'hid', 'ch-ua-bitness', 'screen-wake-lock', 'clipboard-write', 'ch-device-memory', 'microphone']
VM192:39 (f) [FeaturePolicy allowedFeatures func] [] ===> (52) ['geolocation', 'gamepad', 'ch-ect', 'midi', 'display-capture', 'usb', 'local-fonts', 'picture-in-picture', 'publickey-credentials-get', 'otp-credentials', 'encrypted-media', 'ch-save-data', 'ch-ua-full-version-list', 'ch-ua-wow64', 'ch-downlink', 'ch-prefers-color-scheme', 'sync-xhr', 'ch-ua-model', 'serial', 'camera', 'ch-prefers-reduced-motion', 'bluetooth', 'identity-credentials-get', 'ch-ua-full-version', 'fullscreen', 'ch-dpr', 'keyboard-map', 'ch-ua-platform', 'gyroscope', 'window-placement', 'ch-ua-mobile', 'ch-ua', 'magnetometer', 'accelerometer', 'ch-ua-arch', 'xr-spatial-tracking', 'idle-detection', 'ch-ua-platform-version', 'ch-width', 'clipboard-read', 'ch-viewport-width', 'payment', 'ch-viewport-height', 'ch-rtt', 'autoplay', 'cross-origin-isolated', 'hid', 'ch-ua-bitness', 'screen-wake-lock', 'clipboard-write', 'ch-device-memory', 'microphone']
VM192:39 (f) [FeaturePolicy getAllowlistForFeature func] ['display-capture'] ===> ['http://localhost:63342']
```
\ No newline at end of file
...@@ -536,7 +536,7 @@ class CanvasRenderingContext2D { ...@@ -536,7 +536,7 @@ class CanvasRenderingContext2D {
} }
measureText(text) { measureText(text) {
// console.log('OffscreenCanvasRenderingContext2D.measureText', text) console.log('OffscreenCanvasRenderingContext2D.measureText', text)
this._text = text; this._text = text;
window.fonts.push({ window.fonts.push({
font: this._font, font: this._font,
...@@ -2289,21 +2289,21 @@ window.crypto = crypto; ...@@ -2289,21 +2289,21 @@ window.crypto = crypto;
_setTimeout = setTimeout _setTimeout = setTimeout
timesIds = 0; timesIds = 0;
window.setTimeout = function setTimeout(func, delay) { // window.setTimeout = function setTimeout(func, delay) {
// console.log(func, delay) // // console.log(func, delay)
// if (delay==0)func() // // if (delay==0)func()
try { // try {
// console.log(func) // // console.log(func)
// if (delay == 0) { // // if (delay == 0) {
func() // func()
// } // // }
// func() // // func()
} catch (e) { // } catch (e) {
} // }
// _setTimeout.call(this, func, 1) // // _setTimeout.call(this, func, 1)
timesIds++; // timesIds++;
return timesIds; // return timesIds;
}; // };
window.setInterval = function (func, delay) { window.setInterval = function (func, delay) {
// console.log('setInterval',delay, func) // console.log('setInterval',delay, func)
...@@ -5533,36 +5533,36 @@ window.imageDatas = []; ...@@ -5533,36 +5533,36 @@ window.imageDatas = [];
setTimeout(() => { setTimeout(() => {
// let randomT1 = parseInt(Math.random() * 300 + 100); // let randomT1 = parseInt(Math.random() * 300 + 100);
// randomT1 = 1; // randomT1 = 1;
const from = {x: parseInt(Math.random() * 500 + 500), y: parseInt(Math.random() * 500 + 500)} // const from = {x: parseInt(Math.random() * 500 + 500), y: parseInt(Math.random() * 500 + 500)}
const to = {x: parseInt(Math.random() * 500 + 500), y: parseInt(Math.random() * 500 + 500)} // const to = {x: parseInt(Math.random() * 500 + 500), y: parseInt(Math.random() * 500 + 500)}
//
const route = path(from, to, { // const route = path(from, to, {
moveSpeed: _random() * 20 + 10 // moveSpeed: _random() * 20 + 10
}) // })
for (let p of route) { // for (let p of route) {
let t = new window.MouseEvent('mousemove'); // let t = new window.MouseEvent('mousemove');
let x = parseInt(p.x); // let x = parseInt(p.x);
let y = parseInt(p.y); // let y = parseInt(p.y);
t.initMouseEvent('mousemove', true, true, window, 0, 0, 0, x, y, false, false, false, false, 0, null) // t.initMouseEvent('mousemove', true, true, window, 0, 0, 0, x, y, false, false, false, false, 0, null)
//
t.isTrusted = true; // t.isTrusted = true;
t = proxy(t, 'MouseEvent') // t = proxy(t, 'MouseEvent')
//
dispatchEvent(t) // dispatchEvent(t)
//
} // }
let randomT = parseInt(Math.random() * 50 + 20); // let randomT = parseInt(Math.random() * 50 + 20);
for (let i = 0; i < randomT; i++) { // for (let i = 0; i < randomT; i++) {
let t = new window.KeyboardEvent('keydown'); // let t = new window.KeyboardEvent('keydown');
let keyStr = "J8QoS9q62O4cnMVvkemfCdXE_-l3abjzRiHAP7uwFLZB0Ir=pKGxN5sgtYTWDy1hU"; // let keyStr = "J8QoS9q62O4cnMVvkemfCdXE_-l3abjzRiHAP7uwFLZB0Ir=pKGxN5sgtYTWDy1hU";
//
let key = keyStr[parseInt(Math.random() * keyStr.length)] // let key = keyStr[parseInt(Math.random() * keyStr.length)]
console.log('initKeyboard', key) // console.log('initKeyboard', key)
t.initKeyboardEvent('keydown', true, true, window.document.body, key) // t.initKeyboardEvent('keydown', true, true, window.document.body, key)
t = proxy(t, 'KeyboardEvent') // t = proxy(t, 'KeyboardEvent')
//
dispatchEvent(t) // dispatchEvent(t)
} // }
var xhr = new XMLHttpRequest(); var xhr = new XMLHttpRequest();
...@@ -5570,8 +5570,9 @@ setTimeout(() => { ...@@ -5570,8 +5570,9 @@ setTimeout(() => {
xhr.send("{\"tripType\":\"oneWay\",\"from\":\"ZLA\",\"to\":\"NAS\",\"depart\":\"2023-04-11\",\"cabin\":\"economy\",\"refundable\":false,\"dates\":{\"before\":\"3\",\"after\":\"3\"},\"pax\":{\"ADT\":1,\"CHD\":0,\"INF\":0,\"UNN\":0},\"redempoint\":false,\"pointsBreakup\":{\"option\":\"\",\"value\":0},\"isMultiCity\":false}") xhr.send("{\"tripType\":\"oneWay\",\"from\":\"ZLA\",\"to\":\"NAS\",\"depart\":\"2023-04-11\",\"cabin\":\"economy\",\"refundable\":false,\"dates\":{\"before\":\"3\",\"after\":\"3\"},\"pax\":{\"ADT\":1,\"CHD\":0,\"INF\":0,\"UNN\":0},\"redempoint\":false,\"pointsBreakup\":{\"option\":\"\",\"value\":0},\"isMultiCity\":false}")
xhr.setRequestHeader('user-agent', fingerprint.navigator.userAgent) xhr.setRequestHeader('user-agent', fingerprint.navigator.userAgent)
print(JSON.stringify(xhr.headers)) print(JSON.stringify(xhr.headers))
// print(JSON.stringify(window.imageDatas)) print(JSON.stringify(window.imageDatas))
// process.exit(0) print(JSON.stringify(window.fonts))
process.exit(0)
}, 500) }, 500)
// debug = true; // debug = true;
......
...@@ -2403,13 +2403,13 @@ class CanvasRenderingContext2D { ...@@ -2403,13 +2403,13 @@ class CanvasRenderingContext2D {
} }
set font(f) { set font(f) {
console.log('OffscreenCanvasRenderingContext2D.font', f) console.log('1.font', f)
this._font = f; this._font = f;
this._context.font = f; this._context.font = f;
} }
measureText(text) { measureText(text) {
// console.log('OffscreenCanvasRenderingContext2D.measureText', text) console.log('OffscreenCanvasRenderingContext2D.measureText', text)
this._text = text; this._text = text;
window.fonts.push({ window.fonts.push({
font: this._font, font: this._font,
...@@ -2480,6 +2480,7 @@ class CanvasRenderingContext2D { ...@@ -2480,6 +2480,7 @@ class CanvasRenderingContext2D {
set fillStyle(args) { set fillStyle(args) {
console.log('CanvasRenderingContext2D.fillStyle.set', args) console.log('CanvasRenderingContext2D.fillStyle.set', args)
this._context.canvas.fillStyle = args this._context.canvas.fillStyle = args
this._fillStyle = args
} }
...@@ -2699,7 +2700,7 @@ class CanvasRenderingContext2D { ...@@ -2699,7 +2700,7 @@ class CanvasRenderingContext2D {
let res = this._context.getImageData(...arguments) let res = this._context.getImageData(...arguments)
window.imageDatas.push({ window.imageDatas.push({
font: this._context.font, font: this._context.font,
fillStyle: this._context.fillStyle, fillStyle: this._fillStyle,
fillText: this._fillText, fillText: this._fillText,
imageData: [arguments[0], arguments[1], arguments[2], arguments[3]] imageData: [arguments[0], arguments[1], arguments[2], arguments[3]]
}) })
...@@ -2953,6 +2954,7 @@ class HTMLCanvasElementImpl extends HTMLElementImpl { ...@@ -2953,6 +2954,7 @@ class HTMLCanvasElementImpl extends HTMLElementImpl {
const canvas = this._getCanvas(); const canvas = this._getCanvas();
if (canvas) { if (canvas) {
if (contextId == '2d') { if (contextId == '2d') {
console.log('new ctx2d', this.width, this.height)
this._context = new CanvasRenderingContext2D(this.width, this.height, this._canvas.getContext('2d')) this._context = new CanvasRenderingContext2D(this.width, this.height, this._canvas.getContext('2d'))
} }
// if (!this._context) { // if (!this._context) {
......
This source diff could not be displayed because it is too large. You can view the blob instead.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment