), 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'] }); })();

Nightgaming AKA Nightgaming1
Channel
33,821,83933.8M video views 33.8M views

I am constantly playing different hentai games in my free time so after a while of playing I decided to record them and post them online. Might as well kill two birds with one stone. If you are further interested in my videos that I post come to sheer where some of my videos are not blocked - https://www.sheer.com/nightgaming.
+

Nightgaming 12 albums (166 photos)

Warrior Princess Asuka All PICS

(8 photos)

Updated: 1 year ago

SoboToBoku All PICS

(14 photos)

Updated: 1 year ago

Ruby Striker All PICS

(8 photos)

Updated: 1 year ago

Commander Babes All PICS

(20 photos)

Updated: 1 year ago

Portion Orion Heart All PICS

(19 photos)

Updated: 1 year ago

Master Servant Sex With a Beauty All PICS

(12 photos)

Updated: 1 year ago

Kasshoku Bitch Hitozuma Seiyoku Kaishou All PICS

(10 photos)

Updated: 1 year ago

Bullied Bribe All PICS

(20 photos)

Updated: 2 years ago

Ejaculation Time Play with Fox Girl Gallery Photos

(11 photos)

Updated: 2 years ago

Breeding Village All Pics

(15 photos)

Updated: 2 years ago

Daily life with my succubus boss

(4 photos) 14,673 views - Rating: 81.0%

Updated: 3 years ago

Country: USA

Profile hits: 809,045

Subscribers: 11,214

Total video views: 33,821,839

Signed up: May 30, 2023 (1,104 days ago)

About me:

I am constantly playing different hentai games in my free time so after a while of playing I decided to record them and post them online. Might as well kill two birds with one stone. If you are further interested in my videos that I post come to sheer where some of my videos are not blocked - https://www.sheer.com/nightgaming.Show more

Remove ads - Upgrade to Premium Ads by TrafficFactory