mirror of
https://github.com/kkapsner/CanvasBlocker
synced 2025-07-04 20:46:39 +02:00
Added support for pixel fractions
Pixel fractions can be controlled by CSS. These fractions must not be faked. For #236.
This commit is contained in:
parent
1d5953e8c7
commit
df1d59cf52
5 changed files with 34 additions and 14 deletions
|
@ -45,11 +45,11 @@
|
|||
function getDOMRectRegistration(domRect){
|
||||
return registeredRects.get(getWrapped(domRect));
|
||||
}
|
||||
function getFakeDomRect(window, domRect, notify){
|
||||
function getFakeDomRect(window, domRect, prefs, notify){
|
||||
|
||||
var rng = randomSupply.getRng(4, window);
|
||||
function getFakeValue(value, i){
|
||||
if (value % 1 === 0){
|
||||
if ((value * prefs("domRectIntegerFactor", window.location)) % 1 === 0){
|
||||
return value;
|
||||
}
|
||||
else {
|
||||
|
@ -159,17 +159,17 @@
|
|||
if (prefs("protectDOMRect", window.location)){
|
||||
const registration = getDOMRectRegistration(this);
|
||||
if (registration){
|
||||
return getFakeDomRect(window, this, registration.notify)[property];
|
||||
return getFakeDomRect(window, this, prefs, registration.notify)[property];
|
||||
}
|
||||
}
|
||||
|
||||
return originalValue;
|
||||
};
|
||||
}
|
||||
function setProperty(domRect, window, original, newValue, property){ // eslint-disable-line max-params
|
||||
function setProperty(domRect, window, original, newValue, property, prefs){ // eslint-disable-line max-params
|
||||
const registration = getDOMRectRegistration(domRect);
|
||||
if (registration){
|
||||
const fakeDomRect = getFakeDomRect(window, domRect, registration.notify);
|
||||
const fakeDomRect = getFakeDomRect(window, domRect, prefs, registration.notify);
|
||||
registeredRects.delete(getWrapped(domRect));
|
||||
["x", "y", "width", "height"].forEach(function(prop){
|
||||
if (prop === property){
|
||||
|
@ -200,10 +200,10 @@
|
|||
};
|
||||
return Object.getOwnPropertyDescriptor(temp, "x").get;
|
||||
},
|
||||
setterGenerator: function(window, original){
|
||||
setterGenerator: function(window, original, prefs){
|
||||
const temp = {
|
||||
set x(x){
|
||||
setProperty(this, window, original, x, "x");
|
||||
setProperty(this, window, original, x, "x", prefs);
|
||||
}
|
||||
};
|
||||
return Object.getOwnPropertyDescriptor(temp, "x").set;
|
||||
|
@ -223,10 +223,10 @@
|
|||
};
|
||||
return Object.getOwnPropertyDescriptor(temp, "y").get;
|
||||
},
|
||||
setterGenerator: function(window, original){
|
||||
setterGenerator: function(window, original, prefs){
|
||||
const temp = {
|
||||
set y(y){
|
||||
setProperty(this, window, original, y, "y");
|
||||
setProperty(this, window, original, y, "y", prefs);
|
||||
}
|
||||
};
|
||||
return Object.getOwnPropertyDescriptor(temp, "y").set;
|
||||
|
@ -246,10 +246,10 @@
|
|||
};
|
||||
return Object.getOwnPropertyDescriptor(temp, "width").get;
|
||||
},
|
||||
setterGenerator: function(window, original){
|
||||
setterGenerator: function(window, original, prefs){
|
||||
const temp = {
|
||||
set width(width){
|
||||
setProperty(this, window, original, width, "width");
|
||||
setProperty(this, window, original, width, "width", prefs);
|
||||
}
|
||||
};
|
||||
return Object.getOwnPropertyDescriptor(temp, "width").set;
|
||||
|
@ -269,10 +269,10 @@
|
|||
};
|
||||
return Object.getOwnPropertyDescriptor(temp, "height").get;
|
||||
},
|
||||
setterGenerator: function(window, original){
|
||||
setterGenerator: function(window, original, prefs){
|
||||
const temp = {
|
||||
set height(height){
|
||||
setProperty(this, window, original, height, "height");
|
||||
setProperty(this, window, original, height, "height", prefs);
|
||||
}
|
||||
};
|
||||
return Object.getOwnPropertyDescriptor(temp, "height").set;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue