mirror of
https://github.com/kkapsner/CanvasBlocker
synced 2025-01-03 10:31:54 +01:00
Added new iframe tests
This commit is contained in:
parent
ac9f1282fd
commit
67fa723a32
@ -37,5 +37,23 @@
|
|||||||
<iframe src="http://example.org" style="display:none"></iframe>
|
<iframe src="http://example.org" style="display:none"></iframe>
|
||||||
<button>refresh</button>
|
<button>refresh</button>
|
||||||
</div>
|
</div>
|
||||||
|
<div id="iframe4">
|
||||||
|
<h1>iFrame Test 4 - different access 1</h1>
|
||||||
|
<img class="display"><br>
|
||||||
|
Hash: <span class="hash"></span> (isPointInPath: <span class="isPointInPath"></span>)
|
||||||
|
<button>refresh</button>
|
||||||
|
</div>
|
||||||
|
<div id="iframe5">
|
||||||
|
<h1>iFrame Test 5 - different access 2</h1>
|
||||||
|
<img class="display"><br>
|
||||||
|
Hash: <span class="hash"></span> (isPointInPath: <span class="isPointInPath"></span>)
|
||||||
|
<button>refresh</button>
|
||||||
|
</div>
|
||||||
|
<div id="iframe6">
|
||||||
|
<h1>iFrame Test 6 - different access 3</h1>
|
||||||
|
<img class="display"><br>
|
||||||
|
Hash: <span class="hash"></span> (isPointInPath: <span class="isPointInPath"></span>)
|
||||||
|
<button>refresh</button>
|
||||||
|
</div>
|
||||||
<script src="test.js"></script>
|
<script src="test.js"></script>
|
||||||
</body></html>
|
</body></html>
|
77
test/test.js
77
test/test.js
@ -37,6 +37,12 @@
|
|||||||
catch (e){console.error(e);}
|
catch (e){console.error(e);}
|
||||||
try {show(document.getElementById("iframe3"), iframeTest(document.querySelector("#iframe3 iframe")));}
|
try {show(document.getElementById("iframe3"), iframeTest(document.querySelector("#iframe3 iframe")));}
|
||||||
catch (e){console.error(e);}
|
catch (e){console.error(e);}
|
||||||
|
try {show(document.getElementById("iframe4"), dynamicIframeTest1());}
|
||||||
|
catch (e){console.error(e);}
|
||||||
|
try {show(document.getElementById("iframe5"), dynamicIframeTest2());}
|
||||||
|
catch (e){console.error(e);}
|
||||||
|
try {show(document.getElementById("iframe6"), dynamicIframeTest3());}
|
||||||
|
catch (e){console.error(e);}
|
||||||
}
|
}
|
||||||
document.querySelector("#top button").addEventListener("click", function(){
|
document.querySelector("#top button").addEventListener("click", function(){
|
||||||
show(document.getElementById("top"), topTest());
|
show(document.getElementById("top"), topTest());
|
||||||
@ -50,6 +56,15 @@
|
|||||||
document.querySelector("#iframe3 button").addEventListener("click", function(){
|
document.querySelector("#iframe3 button").addEventListener("click", function(){
|
||||||
show(document.getElementById("iframe3"), iframeTest(document.querySelector("#iframe3 iframe")));
|
show(document.getElementById("iframe3"), iframeTest(document.querySelector("#iframe3 iframe")));
|
||||||
});
|
});
|
||||||
|
document.querySelector("#iframe4 button").addEventListener("click", function(){
|
||||||
|
show(document.getElementById("iframe4"), dynamicIframeTest1());
|
||||||
|
});
|
||||||
|
document.querySelector("#iframe5 button").addEventListener("click", function(){
|
||||||
|
show(document.getElementById("iframe5"), dynamicIframeTest2());
|
||||||
|
});
|
||||||
|
document.querySelector("#iframe6 button").addEventListener("click", function(){
|
||||||
|
show(document.getElementById("iframe6"), dynamicIframeTest3());
|
||||||
|
});
|
||||||
}());
|
}());
|
||||||
|
|
||||||
function draw(canvas){
|
function draw(canvas){
|
||||||
@ -100,7 +115,7 @@ function topTest(){
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
function iframeTest(iframe){
|
function copyToDifferentDocumentTest(otherDocument){
|
||||||
"use strict";
|
"use strict";
|
||||||
|
|
||||||
// create window canvas
|
// create window canvas
|
||||||
@ -109,18 +124,58 @@ function iframeTest(iframe){
|
|||||||
// draw image in window canvas
|
// draw image in window canvas
|
||||||
draw(canvas);
|
draw(canvas);
|
||||||
|
|
||||||
// create iframe canvas and ctx
|
// create other canvas and context
|
||||||
var iframe_canvas = iframe.contentDocument.createElement("canvas");
|
var otherCanvas = otherDocument.createElement("canvas");
|
||||||
iframe_canvas.setAttribute("width", 220);
|
otherCanvas.setAttribute("width", 220);
|
||||||
iframe_canvas.setAttribute("height", 30);
|
otherCanvas.setAttribute("height", 30);
|
||||||
var iframe_ctx = iframe_canvas.getContext("2d");
|
var otherContext = otherCanvas.getContext("2d");
|
||||||
|
|
||||||
// copy image from window canvas to iframe ctx
|
// copy image from window canvas to iframe context
|
||||||
iframe_ctx.drawImage(canvas, 0, 0);
|
otherContext.drawImage(canvas, 0, 0);
|
||||||
|
|
||||||
return {
|
return {
|
||||||
imageData: iframe_ctx.getImageData(0, 0, iframe_canvas.width, iframe_canvas.height),
|
imageData: otherContext.getImageData(0, 0, otherCanvas.width, otherCanvas.height),
|
||||||
url: iframe_canvas.toDataURL(),
|
url: otherCanvas.toDataURL(),
|
||||||
isPointInPath: getIsPointInPath(iframe_ctx)
|
isPointInPath: getIsPointInPath(otherContext)
|
||||||
};
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
function iframeTest(iframe){
|
||||||
|
"use strict";
|
||||||
|
|
||||||
|
return copyToDifferentDocumentTest(iframe.contentDocument);
|
||||||
|
}
|
||||||
|
|
||||||
|
function dynamicIframeTest1(){
|
||||||
|
"use strict";
|
||||||
|
|
||||||
|
var length = frames.length;
|
||||||
|
var iframe = document.createElement("iframe");
|
||||||
|
document.body.appendChild(iframe);
|
||||||
|
var iframeWindow = frames[length];
|
||||||
|
document.body.removeChild(iframe);
|
||||||
|
return copyToDifferentDocumentTest(iframeWindow.document);
|
||||||
|
}
|
||||||
|
|
||||||
|
function dynamicIframeTest2(){
|
||||||
|
"use strict";
|
||||||
|
|
||||||
|
var length = window.length;
|
||||||
|
var iframe = document.createElement("iframe");
|
||||||
|
document.body.appendChild(iframe);
|
||||||
|
var iframeWindow = window[length];
|
||||||
|
document.body.removeChild(iframe);
|
||||||
|
return copyToDifferentDocumentTest(iframeWindow.document);
|
||||||
|
}
|
||||||
|
|
||||||
|
function dynamicIframeTest3(){
|
||||||
|
"use strict";
|
||||||
|
|
||||||
|
var length = window.length;
|
||||||
|
var div = document.createElement("div");
|
||||||
|
document.body.appendChild(div);
|
||||||
|
div.innerHTML = "<iframe></iframe>";
|
||||||
|
var iframeWindow = window[length];
|
||||||
|
document.body.removeChild(div);
|
||||||
|
return copyToDifferentDocumentTest(iframeWindow.document);
|
||||||
}
|
}
|
Loading…
x
Reference in New Issue
Block a user