| OLD | NEW | 
|---|
| 1 /* | 1 /* | 
| 2  * This file is part of Adblock Plus <https://adblockplus.org/>, | 2  * This file is part of Adblock Plus <https://adblockplus.org/>, | 
| 3  * Copyright (C) 2006-present eyeo GmbH | 3  * Copyright (C) 2006-present eyeo GmbH | 
| 4  * | 4  * | 
| 5  * Adblock Plus is free software: you can redistribute it and/or modify | 5  * Adblock Plus is free software: you can redistribute it and/or modify | 
| 6  * it under the terms of the GNU General Public License version 3 as | 6  * it under the terms of the GNU General Public License version 3 as | 
| 7  * published by the Free Software Foundation. | 7  * published by the Free Software Foundation. | 
| 8  * | 8  * | 
| 9  * Adblock Plus is distributed in the hope that it will be useful, | 9  * Adblock Plus is distributed in the hope that it will be useful, | 
| 10  * but WITHOUT ANY WARRANTY; without even the implied warranty of | 10  * but WITHOUT ANY WARRANTY; without even the implied warranty of | 
| (...skipping 712 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 723       return true; | 723       return true; | 
| 724     if (typeof onerror == "function") | 724     if (typeof onerror == "function") | 
| 725       return (() => {}).call.call(onerror, this, message, ...rest); | 725       return (() => {}).call.call(onerror, this, message, ...rest); | 
| 726   }; | 726   }; | 
| 727 } | 727 } | 
| 728 | 728 | 
| 729 /** | 729 /** | 
| 730  * Patches a property on the window object to abort execution when the | 730  * Patches a property on the window object to abort execution when the | 
| 731  * property is read. | 731  * property is read. | 
| 732  * | 732  * | 
| 733  * No error is be printed to the console. | 733  * No error is printed to the console. | 
| 734  * | 734  * | 
| 735  * The idea originates from | 735  * The idea originates from | 
| 736  * {@link https://github.com/uBlockOrigin/uAssets/blob/80b195436f8f8d78ba713237b
     fc268ecfc9d9d2b/filters/resources.txt#L1703 uBlock Origin}. | 736  * {@link https://github.com/uBlockOrigin/uAssets/blob/80b195436f8f8d78ba713237b
     fc268ecfc9d9d2b/filters/resources.txt#L1703 uBlock Origin}. | 
| 737  * | 737  * | 
| 738  * @param {string} property The name of the property. | 738  * @param {string} property The name of the property. | 
| 739  */ | 739  */ | 
| 740 function abortOnPropertyRead(property) | 740 function abortOnPropertyRead(property) | 
| 741 { | 741 { | 
| 742   if (!property) | 742   if (!property) | 
| 743     return; | 743     return; | 
| 744 | 744 | 
| 745   let rid = randomId(); | 745   let rid = randomId(); | 
| 746 | 746 | 
| 747   function abort() | 747   function abort() | 
| 748   { | 748   { | 
| 749     throw new ReferenceError(rid); | 749     throw new ReferenceError(rid); | 
| 750   } | 750   } | 
| 751 | 751 | 
| 752   if (wrapPropertyAccess(window, property, {get: abort, set() {}})) | 752   if (wrapPropertyAccess(window, property, {get: abort, set() {}})) | 
| 753     overrideOnError(rid); | 753     overrideOnError(rid); | 
| 754 } | 754 } | 
| 755 | 755 | 
| 756 exports["abort-on-property-read"] = makeInjector(abortOnPropertyRead, | 756 exports["abort-on-property-read"] = makeInjector(abortOnPropertyRead, | 
| 757                                                  wrapPropertyAccess, | 757                                                  wrapPropertyAccess, | 
| 758                                                  overrideOnError, | 758                                                  overrideOnError, | 
| 759                                                  randomId); | 759                                                  randomId); | 
| 760 | 760 | 
| 761 /** | 761 /** | 
|  | 762  * Patches a property on the window object to abort execution when the | 
|  | 763  * property is written. | 
|  | 764  * | 
|  | 765  * No error is printed to the console. | 
|  | 766  * | 
|  | 767  * The idea originates from | 
|  | 768  * {@link https://github.com/uBlockOrigin/uAssets/blob/80b195436f8f8d78ba713237b
     fc268ecfc9d9d2b/filters/resources.txt#L1671 uBlock Origin}. | 
|  | 769  * | 
|  | 770  * @param {string} property The name of the property. | 
|  | 771  */ | 
|  | 772 function abortOnPropertyWrite(property) | 
|  | 773 { | 
|  | 774   if (!property) | 
|  | 775     return; | 
|  | 776 | 
|  | 777   let rid = randomId(); | 
|  | 778 | 
|  | 779   function abort() | 
|  | 780   { | 
|  | 781     throw new ReferenceError(rid); | 
|  | 782   } | 
|  | 783 | 
|  | 784   if (wrapPropertyAccess(window, property, {set: abort})) | 
|  | 785     overrideOnError(rid); | 
|  | 786 } | 
|  | 787 | 
|  | 788 exports["abort-on-property-write"] = makeInjector(abortOnPropertyWrite, | 
|  | 789                                                   wrapPropertyAccess, | 
|  | 790                                                   overrideOnError, | 
|  | 791                                                   randomId); | 
|  | 792 | 
|  | 793 /** | 
| 762  * Aborts the execution of an inline script. | 794  * Aborts the execution of an inline script. | 
| 763  * | 795  * | 
| 764  * @param {string} api API function or property name to anchor on. | 796  * @param {string} api API function or property name to anchor on. | 
| 765  * @param {?string} [search] If specified, only scripts containing the given | 797  * @param {?string} [search] If specified, only scripts containing the given | 
| 766  *   string are prevented from executing. If the string begins and ends with a | 798  *   string are prevented from executing. If the string begins and ends with a | 
| 767  *   slash (<code>/</code>), the text in between is treated as a regular | 799  *   slash (<code>/</code>), the text in between is treated as a regular | 
| 768  *   expression. | 800  *   expression. | 
| 769  */ | 801  */ | 
| 770 function abortCurrentInlineScript(api, search = null) | 802 function abortCurrentInlineScript(api, search = null) | 
| 771 { | 803 { | 
| (...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 812     } | 844     } | 
| 813   }; | 845   }; | 
| 814 | 846 | 
| 815   if (wrapPropertyAccess(object, name, descriptor)) | 847   if (wrapPropertyAccess(object, name, descriptor)) | 
| 816     overrideOnError(rid); | 848     overrideOnError(rid); | 
| 817 } | 849 } | 
| 818 | 850 | 
| 819 exports["abort-current-inline-script"] = | 851 exports["abort-current-inline-script"] = | 
| 820   makeInjector(abortCurrentInlineScript, wrapPropertyAccess, toRegExp, | 852   makeInjector(abortCurrentInlineScript, wrapPropertyAccess, toRegExp, | 
| 821                overrideOnError, regexEscape, randomId); | 853                overrideOnError, regexEscape, randomId); | 
| OLD | NEW | 
|---|