-
Notifications
You must be signed in to change notification settings - Fork 469
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
Rolling out Twitch adblocking in Brave #282
Comments
From TR, it’s working well.
Just in case, some extension/userscript may cause the Twitch Adblock method to breakage. For example, FrankerFaceZ Addons: I noticed that this option caused the issue when I used AdGuard Extra. This Addon setting was causing the midrolls infinite buffering time to time. When I disabled this setting, no buffering problem since then. I won't be able to check that for Brave, because it's diffucult to trigger midrolls. So just to inform. 👍 |
Likely conflicting with AdGuard Extra's vaft script. Vaft will switch to a lower quality stream with no ads during midrolls, as the normal stream will have the full screen ad, and switch back once midroll is over. Potentially this addon setting is breaking this core function and causing it to buffer. Would have to look at the code to be sure, but it not happening with the setting disable certainly suggests so. Could be something to note in this repo's README down the line if more people come across the same issue. |
Looks like there is a similar issue related on this PR, see: #199 I was manually solving the infinite buffering issue with pause/play. |
@pixeltris is there a downside to #199 ? |
@kodiakhub I don't think we can avoid issues with 3rd party twitch scripts/extensions. Similar to the issues people see with Youtube ads, list authors don't recommend using privacy/YT/other adblock extensions which may trigger false positives. |
It's understandable, at least might think consider adding a Tooltips about 3rd party extensions and userscripts etc at brave://settings/shields/filters. Similar to "Note that enabling too many filters will degrade browsing speeds." It may be useful like for end users. |
We'll take it on board, though users probably won't notice it unless its pointed out (via a support agent) |
@pixeltris Getting some reports; ( a few hundred)
|
Trying to reach to one user, in case its an extension compatibility issue. |
I'm wondering something, do these report complaints go through a process of prerequisites etc. (i.e. related to the 3rd party issue)? 🤔 |
In my opinion, processes like this only increase the workload and waste time. Due to XY problem. To put it simply, the uBO reddit has come a long way in this regard. (Guide, Rules etc.) I think similar system is needed for Brave like AdGuard and uBO prerequisite systems. I'm just saying. 👍 |
@ryanbr You can see the situation by looking at the Brave reddit comments, right? 🙂 |
No playback / infinite loading wheel means conflicting solutions (Worker hooked multiple times). There's a list of chromium extensions here which all use an older copy of
This PR is specifically for improving freezing issues which is a separate thing from the no playback / infinite loading wheel. The Worker hook check could probably be improved such as preventing overwriting (i.e. the reverse of #169), though this may cause other problems. In terms of #199 as a way to fix freezing; I haven't been able to test much. On chromium I didn't experience the freezing often and midrolls need to be tested as that's where most of freezing issues occur on chromium.
I'm not too sure about this one as I haven't tested anything with an account in a long time. There's a similar thing with clip creation #121 |
Is there any way we can detect in the JS that there's an older copy of |
The new script already has such a check. It works if all scripts have the check or if the old script loads before the new script. But it doesn't help when the old script loads after the new script TwitchAdSolutions/vaft/vaft.user.js Line 869 in 8598024
|
I think at some point we'll just have to tell users that they shouldn't be installing janky extensions. It's the first roll out that's the tricky thing. |
If a user installs an extension that immediately starts causing issues, then they know that it's probably the new extension that's at fault. Currently however, given that we're deploying this new script out, it looks like TwitchAdSolutions/vaft/vaft.user.js is breaking things, not the older and worse scripts. |
Just to outline we reverted the twitch scriptlet due to the breakages from other extensions, When we test this I had no issues it did a good job at block the adverts. But I wasn't using any 3rd party twitch extensions either. Having the script exit gracefully if detecting an extension or other methods would be ideal tbh. From what was discussed from the community these 2 extensions came up:
|
As mentioned above using Alternatively you'd need to do something on the Brave side of things to check for installed extensions as the script doesn't have access to this kind of information. |
69f098d should fix it. This checks if other scripts / extensions have modified the Worker after the script does. With the current versions of |
Asking if the user has any extensions installed; Not sure if you've heard of this issue. https://x.com/CryptoWaDummy/status/1839879698509074786
|
brave/brave-browser#22370 (comment) Some initial testing with various extensions (old and new) |
I see with the recent change 722f5b9 there's a regression with the script + TTV LOL PRO which results in neither being applied. @younesaassila
Not ideal. I'll have a think about the conflicts with broken solutions. |
Its better than breaking the site to be fair (the endless black screen looping issues previously), but would be nice if interactions between TwitchAdSolutions and some extensions could be tweaked/improved. Thanks for updates and contributions. Much appreciated |
Try out this version https://gist.github.com/pixeltris/8c40313fcc8da2687381ba7b6c10adff (diff: https://gist.github.com/pixeltris/8c40313fcc8da2687381ba7b6c10adff/revisions) It should always block ads and there shouldn't be conflicts with the extensions you tested. It has the following properties:
Problems:
|
Nice. can you update the *-ublock-origin.js ? How safe is it to roll out for testing in Brave? |
Yea, when I get the chance I'll fix the possible issues with the message handling and push it to the repo once I've tested it properly. |
Any updates @pixeltris ? |
Updated the script and addressed the above problems. The script now removes already applied Twitch ad blocking scripts from the Worker hierarchy and uses a getter/setter to allow extensions like https://github.com/besuper/TwitchNoSub to still function while still preventing Twitch ad blocking solutions from breaking anything. |
Saw my first ad in months a few minutes ago, any chance this is related to the changes here, or did Twitch just deploy other changes? - Firefox 132.0.1 Linux edit: continued reported in #309 |
Twitch couldn't change/add checks on |
They could, but there are other things they could already check for such as the integrity of Worker and this piece of code which has been around for a while: TwitchAdSolutions/vaft/vaft-ublock-origin.js Line 807 in 1c41aea
|
Currently only in Experimental, not updated yet to the latest ver. But still works. |
Just a heads up,
In the process of rolling out twitch adblocking brave/brave-core#25546
Using https://github.com/brave/adblock-lists/blob/master/brave-lists/brave-twitch.txt (Scriplet: https://github.com/brave/adblock-resources/blob/master/resources/vaft-ublock-origin.js)
I haven't seen any reports of broken issues other than https://old.reddit.com/r/brave_browser/comments/1f7ny6s/twitchtv_doesnt_work_anymore/ But I don't believe its an issue with the scriplet here.
Want to test it to be sure it works well? Enable
Brave experimental Adblock Rules
inbrave://settings/shields/filters
Does it work well?
The text was updated successfully, but these errors were encountered: