), so idempotency matters.)
// 2) try/catch around defineProperty — some browsers lock HTMLMediaElement.prototype.src as
// non-configurable on the parent prototype, shadowing it would throw.
// If the override fails, the setAttribute and MutationObserver below still catch most
// dynamic src assignments, so the page still works.
const videoProto = HTMLVideoElement.prototype;
const srcDesc = Object.getOwnPropertyDescriptor(HTMLMediaElement.prototype, 'src') ||
Object.getOwnPropertyDescriptor(HTMLVideoElement.prototype, 'src');
if (srcDesc) {
try {
Object.defineProperty(videoProto, 'src', {
configurable: true,
enumerable: true,
set(v) { srcDesc.set.call(this, rewriteUrl(v)); },
get() { return srcDesc.get.call(this); }
});
} catch (e) { /* parent src is non-configurable; rely on setAttribute/MutationObserver */ }
}
// Override source element src
const sourceProto = HTMLSourceElement.prototype;
const srcDesc2 = Object.getOwnPropertyDescriptor(sourceProto, 'src');
if (srcDesc2) {
try {
Object.defineProperty(sourceProto, 'src', {
configurable: true,
enumerable: true,
set(v) { srcDesc2.set.call(this, rewriteUrl(v)); },
get() { return srcDesc2.get.call(this); }
});
} catch (e) { /* parent src is non-configurable; rely on setAttribute/MutationObserver */ }
}
// Override img.src property
const imgProto = HTMLImageElement.prototype;
const imgSrcDesc = Object.getOwnPropertyDescriptor(imgProto, 'src') ||
Object.getOwnPropertyDescriptor(HTMLElement.prototype, 'src');
if (imgSrcDesc && imgSrcDesc.set) {
try {
Object.defineProperty(imgProto, 'src', {
configurable: true,
enumerable: true,
set(v) { imgSrcDesc.set.call(this, rewriteUrl(v)); },
get() { return imgSrcDesc.get.call(this); }
});
} catch (e) { /* parent src is non-configurable; rely on setAttribute/MutationObserver */ }
}
// Override setAttribute for video, source, AND img
const origSetAttr = Element.prototype.setAttribute;
Element.prototype.setAttribute = function(name, value) {
if ((name === 'src' || name === 'data-src') && (this.tagName === 'VIDEO' || this.tagName === 'SOURCE' || this.tagName === 'IMG')) {
value = rewriteUrl(value);
}
return origSetAttr.call(this, name, value);
};
// Patch HLS.js if loaded
const origAppendChild = Node.prototype.appendChild;
const origInsertBefore = Node.prototype.insertBefore;
// MutationObserver to catch dynamically added video/source/img elements
const observer = new MutationObserver(mutations => {
for (const mut of mutations) {
for (const node of mut.addedNodes) {
if (node.tagName === 'SOURCE' || node.tagName === 'VIDEO' || node.tagName === 'IMG') {
const s = node.getAttribute && node.getAttribute('src');
if (s) {
const rewritten = rewriteUrl(s);
if (rewritten !== s) origSetAttr.call(node, 'src', rewritten);
}
const ds = node.getAttribute && node.getAttribute('data-src');
if (ds) {
const rewritten = rewriteUrl(ds);
if (rewritten !== ds) origSetAttr.call(node, 'data-src', rewritten);
}
}
if (node.querySelectorAll) {
node.querySelectorAll('source[src], video[src], img[src], img[data-src]').forEach(el => {
const s = el.getAttribute('src');
if (s) {
const rewritten = rewriteUrl(s);
if (rewritten !== s) origSetAttr.call(el, 'src', rewritten);
}
const ds = el.getAttribute('data-src');
if (ds) {
const rewritten = rewriteUrl(ds);
if (rewritten !== ds) origSetAttr.call(el, 'data-src', rewritten);
}
});
}
}
// Also handle attribute changes on existing elements
if (mut.type === 'attributes' && (mut.attributeName === 'src' || mut.attributeName === 'data-src')) {
const el = mut.target;
if (el.tagName === 'IMG' || el.tagName === 'VIDEO' || el.tagName === 'SOURCE') {
const val = el.getAttribute(mut.attributeName);
if (val) {
const rewritten = rewriteUrl(val);
if (rewritten !== val) origSetAttr.call(el, mut.attributeName, rewritten);
}
}
}
}
});
observer.observe(document.documentElement, { childList: true, subtree: true, attributes: true, attributeFilter: ['src', 'data-src'] });
})();
Language:
Your location : India
Straight
SecretAss 8 albums
(83 photos)
Next video :)
(9 photos)
3,885 views - Rating: 98.3%
Updated: 3 years ago
Just me
(14 photos)
5,171 views - Rating: 100.0%
Updated: 10 years ago
mi trasero :)
(8 photos)
5,132 views - Rating: 99.5%
Updated: 13 years ago
very hot!
(8 photos)
4,795 views - Rating: 98.7%
Updated: 13 years ago
Country:
Mexico
Profile hits:
191,762
Subscribers:
6,407
Total video views:
3,703,258
:
AKA:
Nelly Cross, Secretass
City:
Mexico
Languages:
English, Español, Français, Português
Signed up:
June 19, 2012 (5,102 days ago)
Last activity:
2 days ago
Interests:
Anal, Big Cock, Corset, Fetish, Party, Shemale
About me:
I'm not shemale, not gay but probably bi…? Whatever I am, I share with you my assbitchlike because it's the only part of my body that looks so nice like a girl ass, isn't? I hope you enjoy my fantasies as I really like to do it!
No soy shemale, no soy gay, tal vez me pudiera considerar bisex. Les comparto mis videos de mis fantasías y pienso que mi culo que parece de una verdadera zorrita lo vale, así que espero entren en mi fantasía y lo disfrute tanto como yoShow more
Worked for/with:
Nelly Cross
Other Channels from SecretAss