From 5f89406b7bebba9a172cd36f94ed384263ac1f6d Mon Sep 17 00:00:00 2001 From: Kiko Beats Date: Tue, 19 Mar 2024 12:01:01 +0100 Subject: [PATCH] perf(screenshot): use sampling for `is-white` (#570) * test(screenshot): add is-white assertion * perf: use sampling * test: update snapshot --- packages/goto/test/unit/evasions/index.js | 2 +- packages/screenshot/src/is-white-screenshot.js | 8 ++++++-- .../screenshot/test/fixtures/no-white-5k.jpg | Bin 0 -> 405478 bytes .../screenshot/test/fixtures/no-white-5k.png | Bin 0 -> 257738 bytes packages/screenshot/test/fixtures/white-5k.jpg | Bin 0 -> 405393 bytes packages/screenshot/test/fixtures/white-5k.png | Bin 0 -> 257734 bytes .../screenshot/test/is-white-screenshot.js | 16 ++++++++++++++++ 7 files changed, 23 insertions(+), 3 deletions(-) create mode 100644 packages/screenshot/test/fixtures/no-white-5k.jpg create mode 100644 packages/screenshot/test/fixtures/no-white-5k.png create mode 100644 packages/screenshot/test/fixtures/white-5k.jpg create mode 100644 packages/screenshot/test/fixtures/white-5k.png create mode 100644 packages/screenshot/test/is-white-screenshot.js diff --git a/packages/goto/test/unit/evasions/index.js b/packages/goto/test/unit/evasions/index.js index 0cd63d7ca7..340a3d3cd8 100644 --- a/packages/goto/test/unit/evasions/index.js +++ b/packages/goto/test/unit/evasions/index.js @@ -152,7 +152,7 @@ test('media codecs are present', async t => { } }) - t.deepEqual(await videoCodecs(), { ogg: 'probably', h264: 'probably', webm: 'probably' }) + t.deepEqual(await videoCodecs(), { ogg: '', h264: 'probably', webm: 'probably' }) t.deepEqual(await audioCodecs(), { ogg: 'probably', diff --git a/packages/screenshot/src/is-white-screenshot.js b/packages/screenshot/src/is-white-screenshot.js index d219ebef10..55506274f5 100644 --- a/packages/screenshot/src/is-white-screenshot.js +++ b/packages/screenshot/src/is-white-screenshot.js @@ -8,8 +8,12 @@ module.exports = async buffer => { const height = image.getHeight() const width = image.getWidth() - for (let i = 0; i < height; i++) { - for (let j = 0; j < width; j++) { + const samplePercentage = 0.25 // Sample 25% of the image + const sampleSize = Math.floor(width * height * samplePercentage) // Calculate sample size based on percentage + const stepSize = Math.max(1, Math.floor((width * height) / sampleSize)) // Calculate step size based on sample size + + for (let i = 0; i < height; i += stepSize) { + for (let j = 0; j < width; j += stepSize) { if (firstPixel !== image.getPixelColor(j, i)) return false } } diff --git a/packages/screenshot/test/fixtures/no-white-5k.jpg b/packages/screenshot/test/fixtures/no-white-5k.jpg new file mode 100644 index 0000000000000000000000000000000000000000..0adbc584fd8a6edb2c3cbf93e0a264f49fca1bfe GIT binary patch literal 405478 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 zV;ECuYcr>P3}YD6>~1BseGFq5Q)z26r+o}#7}M--CAEDFV;ECuYcr>P3}YD6>~1Bs zeGFq5Q)z26r+o}#7}M--CAEDFV;ECuYcr>P3}YD6>~1BseGFq5Q)z26r+o}#7}M-- zCAEDFV;ECuYcr>P3}YD6>~1BseGFq5Q)z26r+o}#7}M--CAEDFV;ECuYcr>P3}YD6 z>~1BseGFq5Q)z26r+o}#7}M--CAEDFV;ECuYcr>P3}YD6>~1BseGFq5Q)z26r+o}# z7}M--CAEDFV;ECuYcr>P3}YD6>~1BseGFq5Q)z26r+o}#7}M--CAEDFV;ECuYcr>P z3}YD6>~1BseGFq5Q)z26r+o}#7}M--CAEDFV;ECuYcr>P3}YD6>~1BseGFq5Q)z26 zr+o}#7}M--CAEDFV;ECuYcr>P3}YD6>~1BseGFq5Q)z26r+o}#7}M--CAEDFV;ECu zYcr>P3}YD6>~1BseGFq5Q)z26r+o}#7}M--CAEDFV;ECuYcr>P3}YD6>~1BseGFq5 zQ)z26r+o}#7}M--CAEDFV;ECuYcr>P3}YD6>~1BseGFq5Q)z26r+o}#7}M--CAEDF zV;ECuYcr>P3}YD6>~1BseGFq5Q)z26r+o}#7}M--CAEDFV;ECuYcr>P3}YD6>~1Bs zeGFq5Q)z26r+o}#7}M--CAEDFV;ECuYcr>P3}YD6>~1BseGFq5Q)z26r+o}#7}M-- zCAEDFV;ECuYcr>P3}YD6>~1BseGFq5Q)z26r+o}#7}M--CAEDFV;ECuYcr>P3}YD6 z>~1BseGFq5Q)z26r+o}#7}M--CAEDFV;ECuYcr>P3}YD6>~1BseGFq5Q)z26r+o}# z7}M--CAEDFV;ECuYcr>P3}YD6>~1BseGFq5Q)z26r+o}#7}M--CAEDFV;ECuYcr>P z3}YD6>~1BseGFq5Q)z26r+o}#7}M--CAEDFV;ECuYcr>P3}YD6>~1BseGFq5Q)z26 zr+o}#7}M--CAEDFV;ECuYcr>P3}YD6>~1BseGFq5Q)z26r+o}#7}M--CAEDFV;ECu zYcr>P3}YD6>~1BseGFq5Q)z26r+o}#7}M--CAEDFV;ECuYcr>P3}YD6>~1BseGFq5 zQ)z26r+o}#7}M--CAEDFV;ECuYcr>P3}YD6>~1BseGFq5Q)z26r+o}#7}M--CAEDF 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 bxA*+AD+<5&zy3g+c~X6H_weVHvFU#SWjd!E literal 0 HcmV?d00001 diff --git a/packages/screenshot/test/fixtures/white-5k.jpg b/packages/screenshot/test/fixtures/white-5k.jpg new file mode 100644 index 0000000000000000000000000000000000000000..05a0af13d41269d7de82de7c893c0fb2f26a9695 GIT binary patch literal 405393 zcmeI)ON?E09l-H(AJa}-7ab_5Bu05uk%bY8Qr%dJR7%ps;uCkEV(X^76fn^ge4xg} z;1gXH1yOgP^|cbg=gLB%6hlH)RE#FzgV%!VoiWA4l@Y$X&za23$=rL-&F|*?KWA?8 z&7IvpduUjH{S6QN?K`H+N0@Ib`x{qw z*B^YzXAXaMxPAJ_-ZeM=<;krdnf-WJT3okf!!Q{w4dbQJWN9?JYk2AWnHNSY+seb{ zKStxpbYa!%#Wic!&F`>({V*O)CgbU3VPW}cMjxKvK1`Pujydu4vsWFv^P<%!UAEzj zYj3z|@#L+y-ErIn2Od3T)5Vuxw`T3}FMQF9PuTeKSDgCF)6RU&YtP#Jy4Roc#&fs5 z>AdadzvZoOd;2@ydEvX>{hs$;^1fZW-+#rGANb%^S6}m?kACdqpSb>$pZfIYKL3R; ze(B3Me&wrQ`})ndeB;({e(T$}f9JdVzxVwg{P0IVx$~}{{_N+!_~ozezUSb*_Z_GF`@7#i{D(jO>5)G__P4+PamT zJle`+|Jz{K{a=$kJJ^5b`pt08{A7A=+iZT2=XQkoqh}8e)A8Qf1H%g@qxs1+SsLCj zJoC({!@lv}wS!+?0%w7R@Vr|v`!!>nR?qus<$C3M_3ZU(c7QRAVT}LeyEiklyBWh6 z#xN!{<{ri{hB1r@jXB5|#xRC4p)vO|hB1s`OlZt~jA0C87!w+Eh%t;|3}ZrL^f4Bg z1=cMvrO=>{vA`@a5R}QFK87)jVN7a_KE`_`%wjfVcBYSE3}YBm8l#V43}YBm8l#V4 z3}YBm8l#V43}YBm8l#V43}YBm8sqb07{eIGl*ah{7{)M$F{Ls37{)M$F{Ls37{)M$ zF{Ls37{)M$F{Ls37{)M$F{Ls37{)M$F{Ls37{)M$F{Ls37{)M$F{Ls37{)M$F{Ls3 z7{)M$F{Ls37{)M$F{Ls37{)M$F{Ls37{)M$F{Ls37{)M$F{Ls37{)M$F{Ls37{)M$ zF{Ls37{)M$F{Ls37{)M$F{Ls37{)M$F{Ls37{)M$F{Ls37{)M$F{Ls37{)M$F{Ls3 z7{)M$F{Ls37{)M$F{Ls37{)M$F{Ls37{)M$F{Ls37{)M$F{Ls37{)M$F{Ls37{)M$ zF{Ls37{)M$F{Ls37{)M$F{Ls37{)M$F{Ls37{)M$F{Ls37{)M$F{Ls37{)M$F{Ls3 z7{)M$F{Ls37{)M$F{Ls37{)M$F{Ls37{)M$F{Ls37{)M$F{Ls37{)M$F{Ls37{)M$ zF{Ls37{)M$F{Ls37{)M$F{Ls37{)M$F{Ls37{)M$F{Ls37{)M$F{Ls37{)M$F{Ls3 z7{)M$F{Ls37{)M$F{Ls37{)M$F{Ls37{)M$F{Ls37{)M$F{Ls37{)M$F{Ls37{)M$ zF{Ls37{)M$F{Ls37{)M$F{Ls37{)M$F{Ls37{)M$F{Ls37{)M$F{Ls37{)M$F{Ls3 z7{)M$F{Ls37{)M$F{Ls37{)M$F{Ls37{)M$F{Ls37{)M$F{Ls37{)M$F{Ls37{)M$ zF{Ls37{)M$F{Ls37{)M$F{Ls37{)M$F{Ls37{)M$F{Ls37{)M$F{Ls37{)M$F{Ls3 z7{)M$F{Ls37{)M$F{Ls37{)M$F{Ls37{)M$F{Ls37{)M$F{Ls37{)M$F{Ls37{)M$ zF{Ls37{)M$F{Ls37{)M$F{Ls37{)M$F{Ls37{)M$F{Ls37{)M$F{Ls37{)M$F{Ls3 z7{)M$F{Ls37{)M$F{Ls37{)M$F{Ls37{)M$F{Ls37{)M$F{Ls37{)M$F{Ls37{)M$ zF{Ls37{)M$F{Ls37{)M$F{Ls37{)M$F{Ls37{)M$F{Ls37{)M$F{Ls37{)M$F{Ls3 z7{)M$F{Ls37{)M$F{Ls37{)M$F{Ls37{)M$F{Ls37{)M$F{Ls37{)M$F{Ls37{)M$ zF{Ls37{)M$F{Ls37{)M$F{Ls37{)M$F{Ls37{)M$F{Ls37{)M$F{Ls37{)M$F{Ls3 z7{)M$F{Ls37{)M$F{Ls37{)M$F{Ls37{)M$F{Ls37{)M$F{Ls37{)M$F{Ls37{)M$ zF{Ls37{)M$F{Ls37{)M$F{Ls37{)M$F{Ls37{)M$F{Ls37{)M$F{Ls37{)M$F{Ls3 z7{)M$F{Ls37{)M$F{Ls37{)M$F{Ls37{)M$F{Ls37{)M$F{Ls37{)M$F{Ls37{)M$ zF{Ls37{)M$F{Ls37{)M$F{Ls37{)M$F{Ls37{)M$F{Ls37{)M$F{Ls37{)M$F{Ls3 z7{)M$F{Ls37{)M$F{Ls37{)M$F{Ls37{)M$F{Ls37{)M$F{Ls37{)M$F{Ls37{)M$ zF{Ls37{)M$F{Ls37{)M$F{Ls37{)M$F{Ls37{)M$F{Ls37{)M$F{Ls37{)M$F{Ls3 z7{)M$F{Ls37{)M$F{Ls37{)M$F{Ls37{)M$F{Ls37{)M$F{Ls37{)M$F{Ls37{)M$ zF{Ls37{)M$F{Ls37{)M$F{Ls37{)M$F{Ls37{)M$F{Ls37{)M$F{Ls37{)M$F{Ls3 z7{)M$F{Ls37{)M$F{Ls37{)M$F{Ls37{)M$F{Ls37{)M$F{Ls37{)M$F{Ls37{)M$ zF{Ls37{)M$F{Ls37{)M$F{Ls37{)M$F{Ls37{)M$F{Ls37{)M$F{Ls37{)M$F{Ls3 z7{)M$F{Ls37{)M$F{Ls37{)M$F{Ls37{)M$F{Ls37{)M$F{Ls37{)M$F{Ls37{)M$ zF{Ls37{)M$F{Ls37{)M$F{Ls37{)M$F{Ls37{)M$F{Ls37{)M$F{Ls37{)M$F{Ls3 z7{)M$F{Ls37{)M$F{Ls37{)M$F{Ls37{)M$F{Ls37{)M$F{Ls37{)M$F{Ls37{)M$ zF{Ls37{)M$F{Ls37{)M$F{Ls37{)M$F{Ls37{)M$F{Ls37{)M$F{Ls37{)M$F{Ls3 z7{)M$F{Ls37{)M$F{Ls37{)M$F{Ls37{)M$F{Ls37{)M$F{Ls37{)M$F{Ls37{)M$ zF{Ls37{)M$F{Ls37{)M$F{Ls37{)M$F{Ls37{)M$F{Ls37{)M$F{Ls37{)M$F{Ls3 z7{)M$F{Ls37{)M$F{Ls37{)M$F{Ls37{)M$F{Ls37{)M$F{Ls37{)M$F{Ls37{)M$ zF{Ls37{)M$F{Ls37{)M$F{Ls37{)M$F{Ls37{)M$F{Ls37{)M$F{Ls37{)M$F{Ls3 z7{)M$F{Ls37{)M$F{Ls37{)M$F{Ls37{)M$F{Ls37{)M$F{Ls37{)M$F{Ls37{)M$ zF{Ls37{)M$F{Ls37{)M$F{Ls37{)M$F{Ls37{)M$F{Ls37{)M$F{Ls37{)M$F{Ls3 z7{)M$F{Ls37{)M$F{Ls37{)M$F{Ls37{)M$F{Ls37{)M$F{Ls37{)M$F{Ls37{)M$ zF{Ls37{)M$F{Ls37{)M$F{Ls37{)M$F{Ls37{)M$F{Ls37{)M$F{Ls37{)M$F{Ls3 z7{)M$F{Ls37{)M$F{Ls37{)M$F{Ls37{)M$F{Ls37{)M$F{Ls37{)M$F{Ls37{)M$ zF{Ls37{)M$F{Ls37{)M$F{Ls37{)M$F{Ls37{)M$F{Ls37{)M$F{Ls37{)M$F{Ls3 z7{)M$F{Ls37{)M$F{Ls37{)M$F{Ls37{)M$F{Ls37{)M$F{Ls37{)M$F{Ls37{)M$ zF{Ls37{)M$F{Ls37{)M$F{Ls37{)M$F{Ls37{)M$F{Ls37{)M$F{Ls37{)M$F{Ls3 z7{)M$F{Ls37{)M$F{Ls37{)M$F{Ls37{)M$F{Ls37{)M$F{Ls37{)M$F{Ls37{)M$ zF{Ls37{)M$F{Ls37{)M$F{Ls37{)M$F{Ls37{)M$F{Ls37{)M$F{Ls37{)M$F{Ls3 z7{)M$F{Ls37{)M$F{Ls37{)M$F{Ls37{)M$F{Ls37{)M$F{Ls37{)M$F{Ls37{)M$ zF{Ls37{)M$F{Ls37{)M$F{Ls37{)M$F{Ls37{)M$F{Ls37{)M$F{Ls37{)M$F{Ls3 z7{)M$F{Ls37{)M$F{Ls37{)M$F{Ls37{)M$F{Ls37{)M$F{Ls37{)M$F{Ls37{)M$ zF{Ls37{)M$F{Ls37{)M$F{Ls37{)M$F{Ls37{)M$F{Ls37{)M$F{Ls37{)M$F{Ls3 z7{)M$F{Ls37{)M$F{Ls37{)M$F{Ls37{)M$F{Ls37{)M$F{Ls37{)M$F{Ls37{)M$ zF{Ls37{)M$F{Ls37{)M$F{Ls37{)M$F{Ls37{)M$F{Ls37{)M$F{Ls37{)M$F{Ls3 z7{)M$F{Ls37{)M$F{Ls37{)M$F{Ls37{)M$F{Ls37{)M$F{Ls37{)M$F{Ls37{)M$ JF{Lqw{{?#f6ORA@ literal 0 HcmV?d00001 diff --git a/packages/screenshot/test/fixtures/white-5k.png b/packages/screenshot/test/fixtures/white-5k.png new file mode 100644 index 0000000000000000000000000000000000000000..130767a7295327385891a0cf01599cc822574a20 GIT binary patch literal 257734 zcmeI*KWLnF7zgm*<*vy!X^&JxTiXN@(xnBlgJ@`$OPa>skWwUrppdIjiNI*PK`t%xxDRthJ*JmL*Dnf z=kwfgzxVyV^JmYzu($nCdkA4~>Ga5pA#_EX9mRZW2$_ksPhO6m7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7j zD4>7>3Mim}0tzT-u!28-IeRt90#N)07hk~@+{~wd0tzUgfC36Apnw7jQlucWx>Q}y z1zM_3vC9g|HYph-#<1r$&~0R7>3Mim}0tzUg zfC36Apnw7jD4>7>3Mim}0tzVDVFjl?AMQ@F0HQPfy503p5!{rM0tzUgfC36Apnw7j zD4>7>3Mim}0tzUgfC36Apnw7jD4?Lp6okP`y>Tv3xLse)?{@OQ4xh{6{EZbu*br{A zA*|<}v}W>CKmi35P(T3%6i`3`1r$&~0R7>3Mim}0tzUgfC36qqM++?Zhw*mkdj@p z8|H)gKmi35P(T3%6i`3`1r$&~0R>D< z&;NGoT#^OQosM0y8-6@lF&|*`DM0R7>3Mim}0tzUg zfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4<|- z1#b_2{6~@nP}u&UhA&UHwZtJo#Ru2lU672i{RMBpd+J|Q)0OXG?rlEzG_9tc@&V)n z$mphk0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36A zpnw7jD4>7>3Mim}0tzUgAms|?zr8b=WC3Vb?V9p-)uLKdi&8+rqpzUSbD}fO1qyek zCueh_t37>3Mim}0tzUgfC36Apnw7jD4>7> z3Mim}0tzUgfC36Apnw7jD4>7>3Mkl6!G|}0-<4zmDA9%`QWj+~KPjMq0tzUgfC36A zpnw7jwnjl_b*Z|Z3$#$b*ndP-x2CGqM?WxXO75B5Gi^)(1r$&~0Rk5QTp7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUg;Bi&Z|Nj18 zlPrM8^%xzO31)&(Kmi35P(T3%6i`3`1r$&~0R7>3Mim}0tzUgfC36Apnw7jD4>7>3Mkl2 z!GY1aD@hi>fQHd9n>CCkY11T{#Hgfz0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36A zpnw7jD4>7>3Mim}g8!*t`C9g=C>E$P^x(&P_uKojt$Pk0FV`v=8;YP4D4>7>3Mim} z0tzUgfC36Apnw7jD4>7>3jS3=ern%*2v5IL8W|e*)4F8^Ybz8`Kmi35P(T3%6i`3` z1r$&~0R59EZIfB*mh literal 0 HcmV?d00001 diff --git a/packages/screenshot/test/is-white-screenshot.js b/packages/screenshot/test/is-white-screenshot.js new file mode 100644 index 0000000000..f9aac9764a --- /dev/null +++ b/packages/screenshot/test/is-white-screenshot.js @@ -0,0 +1,16 @@ +'use strict' + +const test = require('ava') +const { readFile } = require('fs/promises') + +const isWhite = require('../src/is-white-screenshot') + +test('true', async t => { + t.true(await isWhite(await readFile('./test/fixtures/white-5k.jpg'))) + t.true(await isWhite(await readFile('./test/fixtures/white-5k.png'))) +}) + +test('false', async t => { + t.false(await isWhite(await readFile('./test/fixtures/no-white-5k.jpg'))) + t.false(await isWhite(await readFile('./test/fixtures/no-white-5k.png'))) +})