summaryrefslogtreecommitdiff
path: root/src/content/webglHook.js
diff options
context:
space:
mode:
Diffstat (limited to 'src/content/webglHook.js')
-rw-r--r--src/content/webglHook.js31
1 files changed, 31 insertions, 0 deletions
diff --git a/src/content/webglHook.js b/src/content/webglHook.js
new file mode 100644
index 0000000..ba0d769
--- /dev/null
+++ b/src/content/webglHook.js
@@ -0,0 +1,31 @@
+console.log("WebGL Hook", document.documentElement.innerHTML);
+try {
+ let proto = HTMLCanvasElement.prototype;
+ let getContext = proto.getContext;
+ exportFunction(function(type, ...rest) {
+ if (type && type.toLowerCase().includes("webgl")) {
+ let request = {
+ id: "noscript-webgl",
+ type: "webgl",
+ url: document.URL,
+ documentUrl: document.URL,
+ embeddingDocument: true,
+ };
+ seen.record({policyType: "webgl", request, allowed: false});
+ try {
+ let ph = PlaceHolder.create("webgl", request);
+ ph.replace(this);
+ PlaceHolder.listen();
+ } catch (e) {
+ error(e);
+ }
+ notifyPage();
+ return {};
+ }
+ return getContext.call(this, type, ...rest);
+ }, proto, {defineAs: "getContext"});
+} catch (e) {
+ console.error(e);
+}
+
+null;