Re: disableScripts function for DOM Objects

joris <[email protected]> Wed, 24 Apr 2019 17:55:17 +0200
Newsgroups gmane.comp.mozilla.security
Message-ID <[email protected]>
WWVzLAppbiBhIHdheSBpdCB3b3VsZCBkbyB0aGUgc2FtZSBqb2IgYXMgYSBzYW5pdGl6ZXIsCmJ1
dCBpdCBpcyBtb3JlIHRoYW4gdGhhdC4KSSB0aGluayB0aGF0IGEgc2ltcGxlIHNhbml0aXplIGZ1
bmN0aW9uIGNvdWxkCmJlIHdyb25nLgpBIGZ1bmN0aW9uIHRvIGRpc2FibGUgSlMgd291bGQKYmUg
dGhlIGxhc3QgYmFycmllciBmb3IgYW4gWFNTLgpXaGlsZSBhIHNhbml0aXplIGZ1bmN0aW9uCndv
dWxkIGp1c3QgYmUgYW5vdGhlcgpiYXJyaWVyIGJldHdlZW4gWFNTIENvZGUgYW5kCnRoZSBCcm93
c2VycyBKUyBFbmdpbmUuCldoZXJlIHRoZXJlIGNvdWxkIHN0aWxsIGJlIHNvbWV0aGluZwpiZXR3
ZWVuIHNhbml0aXppbmcgYW5kIHJlbmRlcmluZwpvbiB0aGUgd2ViIHBhZ2UgaWYgeW91IGp1c3Qg
aGF2ZQphIEJyb3dzZXIgc2FuaXRpemUgZnVuY3Rpb24uCkJ1dCBpZiB0aGUgSlMgRW5naW5lIGlz
bid0CmV2ZW4gZW5hYmxlZCwgbm9ib2R5IGNhbiBleGVjdXRlClhTUyBhdCB0aGUgbGFzdCBwb2lu
dC4KCgpPbiA0LzI0LzE5IDU6MjIgUE0sIENyYWlnIEZyYW5jaXMgd3JvdGU6Cj4gSGkgSm9yaXMs
Cj4KPiBJIHRoaW5rIHdlIHNob3VsZCBmb2xsb3cgQW5uZSdzIGFkdmljZSBhbmQgZGlzY3VzcyB0
aGlzIGVsc2V3aGVyZS4KPgo+IEJ1dCB3aGF0IHlvdSdyZSBzdWdnZXN0aW5nIGlzIHN0YXJ0aW5n
IHRvIGxvb2sgYSBsb3QgbW9yZSBsaWtlIAo+IGHCoGJyb3dzZXIgcHJvdmlkZWQgc2FuaXRpc2Vy
IGZ1bmN0aW9uOgo+Cj4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3hzc19vdXRwdXQnKS5pbm5l
ckhUTUwgPSAKPiAqc2FuaXRpemUqKCp1c2VyX2lucHV0Kik7Cj4KPiBUaGVyZSBpcyBzb21lIGRp
c2N1c3Npb24gYWJvdXQgaXQgYXQ6Cj4KPiBodHRwczovL2dpdGh1Yi5jb20vV0lDRy9wdXJpZmlj
YXRpb24KPgo+IGh0dHBzOi8vbGlzdHMudzMub3JnL0FyY2hpdmVzL1B1YmxpYy9wdWJsaWMtd2Vi
YXBwc2VjLzIwMTZKYW4vMDExMy5odG1sCj4KPiBXaGVyZSB5b3UgY291bGQgZW5mb3JjZSB0aGUg
dXNlIG9mIHNhbml0aXNhdGlvbiB0aG91Z2ggVHJ1c3RlZCBUeXBlcywgCj4gYXMgZGlzY3Vzc2Vk
IGluIHRoaXMgaXNzdWUgKHRoZSByZXBvIGlzIGFib3V0IGhvdyBUcnVzdGVkIFR5cGVzIHdpbGwg
Cj4gaG9wZWZ1bGx5IHdvcmsgb25lIGRheSk6Cj4KPiBodHRwczovL2dpdGh1Yi5jb20vV0lDRy90
cnVzdGVkLXR5cGVzL2lzc3Vlcy80Mwo+Cj4gZS5nLgo+Cj4gdmFyIG15VHJ1c3RlZFR5cGVzID0g
ewo+IMKgIMKgICdjcmVhdGVIVE1MJzogZnVuY3Rpb24gKHMpIHsKPiDCoCDCoCDCoCByZXR1cm4g
KnNhbml0aXplKihzKTsKPiDCoCDCoCB9Cj4gwqAgfTsKPiBpZiAod2luZG93LlRydXN0ZWRUeXBl
cykgewo+IMKgIG15VHJ1c3RlZFR5cGVzID0gVHJ1c3RlZFR5cGVzLmNyZWF0ZVBvbGljeSgnbXkn
LCBteVRydXN0ZWRUeXBlcyk7Cj4gfQo+IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd4c3Nfb3V0
cHV0JykuaW5uZXJIVE1MID0gCj4gbXlUcnVzdGVkVHlwZXMuY3JlYXRlSFRNTCgqdXNlcl9pbnB1
dCopOwo+Cj4gQ3JhaWcKPgo+Cj4KPiBPbiBUdWUsIDIzIEFwciAyMDE5IGF0IDEzOjU3LCBBbm5l
IHZhbiBLZXN0ZXJlbiA8YW5uZXZrQGFubmV2ay5ubCAKPiA8bWFpbHRvOmFubmV2a0Bhbm5ldmsu
bmw+PiB3cm90ZToKPgo+ICAgICBUaGlzIGlzbid0IHJlYWxseSB0aGUgcGxhY2UgdG8gZGlzY3Vz
cyBuZXcgd2ViIHBsYXRmb3JtIGZlYXR1cmVzLgo+ICAgICBodHRwczovL2Rpc2NvdXJzZS53aWNn
LmlvLyBtaWdodCBiZSBhIGJldHRlciBzdGFydGluZyBwbGFjZS4KPiAgICAgaHR0cHM6Ly93aGF0
d2cub3JnL2ZhcSNhZGRpbmctbmV3LWZlYXR1cmVzIG1pZ2h0IGFsc28gaGVscCBpbiBnZXR0aW5n
Cj4gICAgIGEgaGFuZGxlIG9uIHdoYXQgaXQgdGFrZXMgdG8gYWRkIG5ldyBmZWF0dXJlcyB0byB0
aGUgd2ViIHBsYXRmb3JtLgo+Cj4KPgo+Cj4KPiBPbiBXZWQsIDI0IEFwciAyMDE5IGF0IDE1OjE4
LCBqb3JpcyA8am9yaXMuZ3V0amFockBnbWFpbC5jb20gCj4gPG1haWx0bzpqb3Jpcy5ndXRqYWhy
QGdtYWlsLmNvbT4+IHdyb3RlOgo+Cj4gICAgIFllcy4KPiAgICAgQnV0OiB0aGlzIHdvdWxkIHN0
aWxsIHNocmluayB0aGUgbWFza2luZy9zYW5pdGl6aW5nIGVmZm9ydHMsCj4gICAgIGJlY2F1c2Ug
eW91IGNvdWxkIGp1c3QgdXNlIGEgdGFnIHRoYXQgbm9ib2R5IGVsc2Ugc2hvdWxkIHVzZQo+ICAg
ICBpbnNpZGUgdXNlciBpbnB1dCBsaWtlOgo+ICAgICA8aHRtbD4KPiAgICAgwqDCoCA8YXJ0aWNs
ZSBpZD0ieHNzX291dHB1dCIKPiAgICAgb25sb2FkPSJkaXNhYmxlU2NyaXB0cyhkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgneHNzX291dHB1dCcpIj4KPiAgICAgwqDCoCA8L2FydGljbGU+Cj4gICAg
IMKgwqAgPHNjcmlwdD4KPiAgICAgwqDCoMKgIGxldCB1c2VyX2lucHV0OyAvL0xvYWQgdXNlcl9p
bnB1dCB3aXRob3V0IG1hc2tpbmcKPiAgICAgwqDCoMKgIGxldCBwYXR0ZXJuID0gLzwvYXJ0aWNs
ZT4vOwo+ICAgICDCoMKgwqAgaWYoIXBhdHRlcm4udGVzdCh1c2VyX2lucHV0KSkgewo+ICAgICBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgneHNzX291dHB1dCcpLmlubmVySFRNTCA9IHVzZXJfaW5w
dXQ7Cj4gICAgIMKgwqDCoMKgIH0gZWxzZSB7Cj4gICAgIMKgwqDCoCDCoMKgwqAgYWxlcnQoIlhT
UyBBdHRhY2sgZGV0ZWN0ZWQiKTsKPiAgICAgwqDCoMKgwqAgfQo+ICAgICDCoCA8L3NjcmlwdD4K
PiAgICAgPC9odG1sPgo+ICAgICBJIGtub3cgdGhpcyBzZWVtcyBhIGxpdHRsZSBiaXQgdWdseSwg
YnV0IEkgaG9wZSB0aGUgcHJpbmNpcGxlIGlzCj4gICAgIGNsZWFyOgo+ICAgICBJbnN0ZWFkIG9m
IG1hdGNoaW5nIGZvciBldmVyeSBwb3NzaWJsZSBpbnNlcnRpb24gb2YgSlMsIHlvdSBqdXN0IG1h
dGNoCj4gICAgIGZvciB0aGUgY2xvc2luZyBvZiB0aGUgYXJ0aWNsZSB0YWcgYW5kIGlmIHRoZXJl
IGlzIHN1Y2ggYSB0YWcsCj4gICAgIGp1c3QgZG9uJ3QgZGlzcGxheSB0aGUgY29udGVudC4KPgo+
ICAgICBPbiA0LzIzLzE5IDE6MzggUE0sIENyYWlnIEZyYW5jaXMgd3JvdGU6Cj4+ICAgICBIaSBK
b3JpcywKPj4KPj4gICAgIEkgdGhpbmsgdGhpcyBzdWZmZXJzIGZyb20gdGhlIHNhbWUgaXNzdWUu
Li4KPj4KPj4gICAgIDxkaXYgaWQ9Inhzc19vdXRwdXQiCj4+ICAgICBvbmxvYWQ9ImRpc2FibGVT
Y3JpcHRzKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd4c3Nfb3V0cHV0JykiPgo+PiAgICAgPD9w
aHAgZWNobyAnKjwvZGl2Pio8c2NyaXB0IHNyYy4uLicgPz4KPj4gICAgIDwvZGl2Pgo+Pgo+PiAg
ICAgSSdkIHN1Z2dlc3QgeW91IGxvb2sgYXQgdGhlIENvbnRlbnQtU2VjdXJpdHktUG9saWN5IGhl
YWRlciwgd2hpY2gKPj4gICAgIGNhbiBzdG9wIGlubGluZSBKYXZhU2NyaXB0IChkYW5nZXJvdXMp
LCBhbmQgbGltaXQgd2hlcmUKPj4gICAgIEphdmFTY3JpcHQgZmlsZXMgY2FuIGJlIGxvYWRlZCBm
cm9tLgo+Pgo+PiAgICAgSSdkIGFsc28gc3VnZ2VzdCB5b3UgbmV2ZXIgcmVseSBvbiB0aGUgYnJv
d3NlciBmb3IgWFNTIHByb3RlY3Rpb24KPj4gICAgIC0gYWxsIHRoZSBicm93c2VyIGNhbiByZWFs
bHkgZG8gaXMgaGVscCBhcHBseSBsaW1pdHMgd2hlbgo+PiAgICAgbWlzdGFrZXMgYXJlIG1hZGUg
KGUuZy4gaHR0cE9ubHkgY29va2llcywgZmV0Y2ggcmVxdWVzdHMgbGltaXRlZAo+PiAgICAgdG8g
Y2VydGFpbiBsb2NhdGlvbnMsIGV0YykuCj4+Cj4+ICAgICBDcmFpZwo+Pgo+Pgo+Pgo+PiAgICAg
T24gTW9uLCAyMiBBcHIgMjAxOSBhdCAxNTozNSwgam9yaXMgPGpvcmlzLmd1dGphaHJAZ21haWwu
Y29tCj4+ICAgICA8bWFpbHRvOmpvcmlzLmd1dGphaHJAZ21haWwuY29tPj4gd3JvdGU6Cj4+Cj4+
ICAgICAgICAgSW4gYSBwcmV2aW91cyBNYWlsIEkgdGFsa2VkIGFib3V0Cj4+ICAgICAgICAgYSBu
b3NjcmlwdCB0YWcsIHRoYXQgaWYgc2V0IG9uIGEgSFRNTCBFbGVtZW50IHdvdWxkCj4+ICAgICAg
ICAgZGlyZWN0IHRoZSBCcm93c2VyIG5vdCB0byBleGVjdXRlIGFueSBTY3JpcHRzIGluc2lkZQo+
PiAgICAgICAgIHRoYXQgRWxlbWVudCwgdGh1cyBiZWhhdmluZyBsaWtlIEpTIHdvdWxkIGJlIGRp
c2FibGVkCj4+ICAgICAgICAgZ2xvYmFsbHkuIEJ1dCB0aGlzIGFwcHJvYWNoIGhhcyB0aGUgZGlz
YWR2YW50YWdlIG9mCj4+ICAgICAgICAgYmVpbmcgZW5hYmxlZCBhbmQgZGlzYWJsZWQgZW50aXJl
bHkgaW4gSFRNTCwKPj4gICAgICAgICB0aHVzIGdpdmVuIHVubWFza2VkIHVzZXIgaW5wdXQgdGhl
IG9wcG9ydHVuaXR5Cj4+ICAgICAgICAgb2YganVzdCBjbG9zaW5nIHRoZSBFbGVtZW50IHdpdGgg
dGhlIG5vc2NyaXB0IHRhZwo+PiAgICAgICAgIGFuZCBnb2luZyBvbiB0byB3cml0ZSBYU1MuCj4+
ICAgICAgICAgQnV0IEkgdGhpbmsgdG8gbG9jYWxseSBkaXNhYmxlIEpTIGluIGEgRE9NIC8gSFRN
TAo+PiAgICAgICAgIEVsZW1lbnQsIHRoYXQgd291bGQgdGhlbiBiZSBmaWxsZWQgd2l0aCB1bnRy
dXN0ZWQKPj4gICAgICAgICB1c2VyLWlucHV0LCBjb3VsZCBzdGlsbCBwcmV2ZW50IG1hbnkgWFNT
IGF0dGFja3MuCj4+ICAgICAgICAgSSBwcm9wb3NlIHRvIGluc3RlYWQgb2YgZGlzYWJsaW5nIEpT
IGluIEhUTUwgZm9yIEhUTUwsCj4+ICAgICAgICAgdG8gZGlzYWJsZSBKUyBmcm9tIEpTIGZvciBI
VE1MLgo+PiAgICAgICAgIEZvciBleGFtcGxlOgo+PiAgICAgICAgIEEgZnVuY3Rpb24sIGNhbGxl
ZCBkaXNhYmxlU2NyaXB0cygpLCB0YWtlcyBhIERPTQo+PiAgICAgICAgIE9iamVjdCBhcyBhcmd1
bWVudCBhbmQgdGVsbHMgdGhlIEJyb3dzZXIgdG8gcGFyc2UKPj4gICAgICAgICB0aGF0IE9iamVj
dCwgbGlrZSB0aGVyZSB3b3VsZG4ndCBiZSBhbnkgU2NyaXB0cyBlbmFibGVkOgo+PiAgICAgICAg
IDxodG1sPgo+PiAgICAgICAgIMKgwqDCoMKgwqDCoMKgwqAgPGRpdiBpZD0ieHNzX291dHB1dCIK
Pj4gICAgICAgICBvbmxvYWQ9ImRpc2FibGVTY3JpcHRzKGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCd4cyQKPj4gICAgICAgICDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCA8P3BocCBl
Y2hvICR1bnRydXN0ZWRfdXNlcl9pbnB1dCA/Pgo+PiAgICAgICAgIMKgwqDCoMKgwqDCoMKgwqAg
PC9kaXY+Cj4+ICAgICAgICAgPC9odG1sPgo+Pgo+PiAgICAgICAgIE5vdyB0aGUgJHVudHJ1c3Rl
ZF91c2VyX2lucHV0IGlzIGZvcm1hdGVkLAo+PiAgICAgICAgIGJ1dCBhbnkgSlMgd291bGQgYmUg
aWdub3JlZCwgd2hldGhlciBieSBFdmVudHMgb3IgPHNjcmlwdD4gdGFncy4KPj4gICAgICAgICBJ
IGhhdmUgYWxzbyBhZGRlZCBhIC5waHAgRmlsZSBhcyBhbiBhdHRhY2htZW50LCB3aXRoIHRoZSBz
YW1lCj4+ICAgICAgICAgY29kZSBhcyBhYm92ZS4KPj4gICAgICAgICBUaGUgYWR2YW50YWdlIGhl
cmUgd291bGQgYmUgdGhhdCBub2JvZHkgY2FuIGNhbGwgYSBmdW5jdGlvbgo+PiAgICAgICAgIHRo
YXQgZW5hYmxlcwo+PiAgICAgICAgIHNjcmlwdHMKPj4gICAgICAgICBhZ2FpbiB3aXRob3V0IGFs
cmVhZHkgaGF2aW5nIEpTIGV4ZWN1dGVkLgo+PiAgICAgICAgIF9fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fCj4+ICAgICAgICAgZGV2LXNlY3VyaXR5IG1haWxp
bmcgbGlzdAo+PiAgICAgICAgIGRldi1zZWN1cml0eUBsaXN0cy5tb3ppbGxhLm9yZwo+PiAgICAg
ICAgIDxtYWlsdG86ZGV2LXNlY3VyaXR5QGxpc3RzLm1vemlsbGEub3JnPgo+PiAgICAgICAgIGh0
dHBzOi8vbGlzdHMubW96aWxsYS5vcmcvbGlzdGluZm8vZGV2LXNlY3VyaXR5Cj4+Cj4KCl9fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRldi1zZWN1cml0eSBt
YWlsaW5nIGxpc3QKZGV2LXNlY3VyaXR5QGxpc3RzLm1vemlsbGEub3JnCmh0dHBzOi8vbGlzdHMu
bW96aWxsYS5vcmcvbGlzdGluZm8vZGV2LXNlY3VyaXR5Cg==