Iframe transparency verification doesn't work, so we don't do it
This commit is contained in:
parent
aa35dac108
commit
0af32d6892
@ -36,51 +36,51 @@ export class IframeTransparencyVerifier {
|
|||||||
|
|
||||||
async verifyUiTransparency(windowId: number, tabDimensions: IframeVerificationData): Promise<{result: TransparencyVerificationResult, dataUrl?: string}> { console.info('Verifying UI transparency:', tabDimensions);
|
async verifyUiTransparency(windowId: number, tabDimensions: IframeVerificationData): Promise<{result: TransparencyVerificationResult, dataUrl?: string}> { console.info('Verifying UI transparency:', tabDimensions);
|
||||||
|
|
||||||
const {visibleX, visibleY} = this.getVisibleMarkers(tabDimensions);
|
// const {visibleX, visibleY} = this.getVisibleMarkers(tabDimensions);
|
||||||
if (!visibleX.length || !visibleY.length) {
|
// if (!visibleX.length || !visibleY.length) {
|
||||||
console.warn('[transparency check] No visible elements.');
|
// console.warn('[transparency check] No visible elements.');
|
||||||
return {result: TransparencyVerificationResult.NoVisibleElements};
|
return {result: TransparencyVerificationResult.NoVisibleElements};
|
||||||
}
|
// }
|
||||||
|
|
||||||
const checkPositions = this.processMarkers(visibleX, visibleY);
|
// const checkPositions = this.processMarkers(visibleX, visibleY);
|
||||||
|
|
||||||
const dataUrl = await chrome.tabs.captureVisibleTab(
|
// const dataUrl = await chrome.tabs.captureVisibleTab(
|
||||||
undefined, // windowId,
|
// undefined, // windowId,
|
||||||
{
|
// {
|
||||||
format: "png"
|
// format: "png"
|
||||||
}
|
// }
|
||||||
);
|
// );
|
||||||
|
|
||||||
try {
|
// try {
|
||||||
const canvas = new OffscreenCanvas(tabDimensions.tab.width, tabDimensions.tab.height);
|
// const canvas = new OffscreenCanvas(tabDimensions.tab.width, tabDimensions.tab.height);
|
||||||
const ctx = canvas.getContext('2d')!;
|
// const ctx = canvas.getContext('2d')!;
|
||||||
|
|
||||||
const res = await fetch(dataUrl);
|
// const res = await fetch(dataUrl);
|
||||||
const blob = await res.blob();
|
// const blob = await res.blob();
|
||||||
|
|
||||||
const bitmap = createImageBitmap(blob);
|
// const bitmap = createImageBitmap(blob);
|
||||||
|
|
||||||
(ctx as any).drawImage(bitmap, 0, 0);
|
// (ctx as any).drawImage(bitmap, 0, 0);
|
||||||
|
|
||||||
const imageData = (ctx as any).getImageData(0, 0, tabDimensions.tab.width, tabDimensions.tab.height).data;
|
// const imageData = (ctx as any).getImageData(0, 0, tabDimensions.tab.width, tabDimensions.tab.height).data;
|
||||||
|
|
||||||
if (this.detectMarkers(checkPositions, tabDimensions.tab.width, imageData)) {
|
// if (this.detectMarkers(checkPositions, tabDimensions.tab.width, imageData)) {
|
||||||
console.info('Verified transparency');
|
// console.info('Verified transparency');
|
||||||
return {
|
// return {
|
||||||
result: TransparencyVerificationResult.Ok,
|
// result: TransparencyVerificationResult.Ok,
|
||||||
dataUrl: dataUrl
|
// dataUrl: dataUrl
|
||||||
};
|
// };
|
||||||
} else {
|
// } else {
|
||||||
console.info('Transparency checks came back negative');
|
// console.info('Transparency checks came back negative');
|
||||||
return {
|
// return {
|
||||||
result: TransparencyVerificationResult.Fail,
|
// result: TransparencyVerificationResult.Fail,
|
||||||
dataUrl: dataUrl
|
// dataUrl: dataUrl
|
||||||
};
|
// };
|
||||||
}
|
// }
|
||||||
} catch (e) {
|
// } catch (e) {
|
||||||
console.error('[transparency check] Error while checking for transparency:', e);
|
// console.error('[transparency check] Error while checking for transparency:', e);
|
||||||
return {result: TransparencyVerificationResult.Error};
|
// return {result: TransparencyVerificationResult.Error};
|
||||||
}
|
// }
|
||||||
}
|
}
|
||||||
|
|
||||||
private getVisibleMarkers({tab, player}: IframeVerificationData) {
|
private getVisibleMarkers({tab, player}: IframeVerificationData) {
|
||||||
|
@ -50,8 +50,7 @@
|
|||||||
],
|
],
|
||||||
"permissions": [
|
"permissions": [
|
||||||
"storage",
|
"storage",
|
||||||
"scripting",
|
"scripting"
|
||||||
"<all_urls>"
|
|
||||||
],
|
],
|
||||||
"host_permissions": [
|
"host_permissions": [
|
||||||
"*://*/*"
|
"*://*/*"
|
||||||
|
Loading…
Reference in New Issue
Block a user