-
Notifications
You must be signed in to change notification settings - Fork 77
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Exceptions do not work when processing requests with long paths (kinopoisk.ru) #1207
Comments
parsing correctly the first 2096 bytes |
maybe the bug was introduced here: and currently the code in utils.js
|
For now, I've disabled the blocking rule for uBlock Origin users so that they can use the site normally. But I think there are other cases when the rules do not work correctly. |
This isn't trivial to fix, because this involves revisiting a lot of optimizations, including in WASM modules. With WASM, buffer size have to be preset, so I can't just change the slice value to fix this. A workaround for when the target URL to match may be longer than the buffer size (2048 characters) is to force the filter to be parsed as a generic one, like so:
Without the extra wildcard, the filter is optimized as a |
Yes, it works. |
I ran into the same issue with a chatbro.com embed. Gorhill's workaround worked there as well. |
Turns out the various benchmarks show no benefits when compiling filters whose pattern contains a single wildcard character into specialized classes which threat the pattern as two sub-patterns, and actually there is a slight improvement in performance as per benchamrks when treating these patterns as generic ones. This also fixes the following related issue: - uBlockOrigin/uBlock-issues#1207
|
Google Chrome 84.0.4147.125
uBlock Origin 1.28.4 default + RU AdList
Firefox 79.0
uBlock Origin 1.29.0 default + RU AdList
How to reproduce
Open:
https://www.kinopoisk.ru/media/video/4002311/
Refresh the page several times.
Regular expression
/^https?://www\.kinopoisk\.ru/[^\s]{300,}/$popup,subdocument,domain=www.kinopoisk.ru
will block a frame with a path like:
https://www.kinopoisk.ru/1t5O5H170/4960867nE/VxgT4Bsgza-uFjtqf9PVZqHzLX3DZ0QOaCi0p46vBoy_CbkK9W5sZpCtbbiIhDypWO6GoMgok-5VHCapV2ogZJekA-xCSMWGrhJvB2fStWLFg-m8g_vcElVMIDfaE4KsmyhNcj2ybIaUKJ1skIFkTZzirnw0qGsiQQQyPecGSCjrDBekE9R9Cr4SP6OTKkyKnevFbc-XSNbBxCQnIoNKLFfw0fL1NnyiDCwNtHTdkIEMPp447AhD1mGMHmmrQgDYkxRvrNNcSWLC_u-fU7LE7tHTWRFLz8hOATSIBzbTdnjvzAn-CcYMLsQ4cbTIjWDZ8L4KsCDYj4rBcL5dczLgqLuM42B3JKlimv4DX-PCpAa5Sz3Nn3tU8tUwIE_mc2J4U9TN-slibJIoZAHs0DlUCeSOAojIDL8ybSTOHU_qQCCjFBeEr3xVQjaCR-NLLny-zfsxVRvLLG4VSOyH6k92UJOorRKlHtTutKBdNFDpJAXkRvY8JJgL2oXw-kUnYtB0GwzTkD9MdTLahhtbd8JUkinj_ZUL37CKWTRoaxo7AjwvnGHW6brwDsxk_SxcURA1_IL2NOysa07dpJZl_xLAmDcgk3gjyEVuzv7_M_9erEapb8kRZ-8Iqp1AjMemy-okH1htBr0WbBZorBlAyNGUXVyC2qwM_LMuybBi_af6ZOQ_qB84XzwlwjbGO5MjAsiWvRtNZUsHIA5hGADjpi_2jNsgQTo1fuzyZMQJWGD9tF3YerbADHjz2rm05t2rAiwcu1SfjBvAXfrWfoeXh6J8jqHTVXm7s3yW6ZD0hyYzWqgf0CUC2YpUujg01dxQeTC15OJeACjk67YRWB6dz6YsuBfY86SnaD3Ksh4r46smPEJlA6H1qx-0euEsnP8KN9qQl6QJliWmTAIE9A1YGNUQzdjKhpBMnH8m3bBqCXsCMLwThHP8E9yxYvbK4-sfEgge2d9B5TML9Bal_CDDGqNuSI8Q4So9ZgSyjGBJ1HhJEEHAtjYwQFhzpgFY_ll7jhQgU5SHcM-s-WaKqn8vc_as8m1_LVHru9zKcXS4j-J_HnxvEEGG_arY_qQk5QyQPTzxRD6aMAgcv_KxSHLRR3JQzOu0F1CLUFkSkrYDG6P2sHqpa33VS_PIzvGIsFvat8LYv8SBFqGebGogCPHIlGHUoeSKipC0hPtGuUyKZSumXFSngOu0U9xhut6ez29nDlD6yUvFkRNjCAYFjIxzGkcCPMtAgTI9giBSiEhlVIx9ZKX8GkYQNGR7QoUI5k0vAmxEdziLhM90AabC7jvra9bIQoFPOdEzezzKDbg8XxIfRhTnJB3OWf5UuuB4QUTE7ai9LJI2lJBwQ479CHYBf7aQ4Fu02yCTwL2uchI3rw_auGpFNwmNF2fAFo2QPNNaAwaACyBR-lGezGpMXH0ojAnYSdhSGrBMnA8-hZzuwVMODKwTtIcch1DBBvIquwufDlAeoVulASPDOI6NGBj3psdmuAM4IT61CkyCKMDtJNAJZMUQ4hqApGRzmvkghoXbNpTUe7BnkLtU_eJeGqePz6pIYolv0dXDd1xiYdBke2YPwowXSFEuVYLMKuxURTCwcVSpZLoyLJzU68qNMP4ZM7JAsK9Qf9C_LGH6zqJPNytaWNItl7XFpz98DmF8GM-qK0rESzw1jr3uoPrEIFXIxO00Vcg-njyAaLsm-YRuledqYEw3-I9U-7hBKloqFy9vuoCCbZuxgVubyM7N2DDztpMKiOcQPUJxnmya_NDdQARpYG0IZgp4jCy_Xm0ACr1f9hBU59DXdANIzQ5CIstv-0IcdsXHHdnbEzgObUwkV34LesAnOD0qXYJcqiCoGWBgYdxl4PaCkAh0O1pJHPLtR6awWAcY46SjPNHCPoYjN_t-HOZdP6FxZ_fscgm4zPP6twKIJwSVCnmq7N7MpMX8gJVU-ZjySpwc9PuaXciqbQuuRMwXBEsgW1jhmr52k3MD1kz6CUOR5ePH7EqNXJxjfstOlEuAGY5V4uAClEBpRNhRUEGoziKEKBwnNrmUSu1zihDIU3j_LIMo_eoyluPjl6IcylmHMQEza9gClYT4I-pPSoAbqJ1C3a4UUqDkeXy0YRj94ErGaDSw27plzO7tU-rYUDdEE4SDWFEyUh5_N8vevJ6ZB01Rx2voToWQ4OdSB2oIF8wdTt1KqCrwzDHQZGk8ofwGzghgWPsqiZwCaXNKpOhXwBcE22A5pk6C__9vIjiSHZ-xIS9DPEaFvBy_4tPScC8gpfqBxuS6bFydhFjdqOnYNsqQmIjT2n0AbnH7dqTEpwB7CDcofaqysrt7Ez6Q1rWL3U1ju-gK-fygOy7ffogLtNmqXWb8sjC8FTx4veDRRHYm4ADwL5b9yD5Z_6Yw8OPYW-hb9Nn6dk47Wx8O-IpBb8FxNxtAEpXYGLeCU77UHwS1zk0-IOIYzG2ATFWw2exqivhIVN8yhUASiVMqUCxnBBMQe6gxptqap_uL2hwymedBSSfr7J7lXByzEouS8BsszbI1egBivCiBXJxBzO2sVtogOLCjdh0U_mUjbijsmxjrWBtERepWziczl0aEEpmLsQ3TP7ge0bBM4-b_ZojTAK3-yebIfmQgDSh4MdTJHMqW4DhwW6rtAALtczLYcINci7wnFHFq0nozF1_GzBqxz5lpL2-o3kmUTH8C947I08AB0m12dAK8tPXsaH0oKVyGhgxQiOvewdjGjWcKxFhvNPs0M6Qp6ko2g4MD0kzWOX8Jzbuf3B4V2PB7Wlf68IuAbVIpHpw6eITB6FAZrLUMCi4YWDCPhvk4_lnzejhka9xPrPfEXTKuEhcPl1qMChFnsXkbw8heYQg0x3J3HgCDSO3SaYYEDvjMuSh4dSC19H6ywMzwK6bxeD5tR8rU5IsgHyiLVFV-copvd5e23MoZ_7Wpx9dwUhWEfOOOn8r4ozgxIkHG0Jqo9MU8RHGgRWBWunikJKtShVgE/dist/embed.html?frameId=frame32706
In this case, the exception
@@||www.kinopoisk.ru^*/dist/embed.html?frameId=$subdocument,domain=www.kinopoisk.ru
is not working.This problem does not exist when using Adblock Plus.
The text was updated successfully, but these errors were encountered: