Swift Selection Search is one of the recommended extensions on Firefox.
It allows user to search for selected text using multiple search engines. On selecting text, a popup appears listing the user configured search engines.
As noted here, Easylist's way too broad filters like ##[src*="base64"] and ##[src*="data:"] are breaking the addon's functionality on Easylist's targeted sites by blocking the search engine icons in the addon's popup itself.
The problematic filters are this and this.
Now I haven't tested all the affected sites but for some of the known or popular ones an exception like
opensubtitles.org,grammarist.com,diffen.com,codeproject.com#@#[src*="base64"]
opensubtitles.org,grammarist.com,diffen.com#@#[src*="data:"]
should be made until the relevant changes are done in Easylist or a better solution is suggested.
As noted here, Easylist's way too broad filters like ##[src="base64"] and ##[src="data:"] are breaking the addon's functionality on Easylist's targeted sites by blocking the search engine icons in the addon's popup itself.
So why not report this to Easylist repo ? @ryanbr
I already notified @ryanbr here but got no response so far.
How is uBO causing the extension breakage ? uBO cannot see any network requests made by any extension.
https://www.codeproject.com/Articles/5258706/Creating-an-On-Premise-Offline-Bot-in-Csharp-using has a lot of breakages
I'll kill those filters
Thanks @mapx-!
@uBlock-user Easylist is causing breakage and uBO has Easylist enabled by default! And this repo states "Issues involving site breakage will always be fixed in uAssets even if they don't require extended syntax." and "If the ABP-compatible fixes are for high-traffic sites, they should be added to uBO filters until they are added to EasyList." As mentioned in the other related thread, I am waiting for response there and definitely intend to open an issue in Easylist repo if required.
@in4u I meant how is uBO causing extension breakage since the title of your issue states "Easylist is breaking the addon" ?
The mapx's fix will only fix the website, not the extension breakage in another extension, isn't that the issue here ?
@uBlock-user Let's just say there was a problem when uBO was enabled. With that fix, the problem is no more. So, all well and good. Cheers!
@uBlock-user this extensions is injecting base64 encoded images into the page. These images are blocked by uBO.
this extensions is injecting base64 encoded images into the page. These images are blocked by uBO.
@gwarser Inside it's own shadowDOM created by the extension and injected at the bottom of the DOM of th page, blocking shouldn't be possible because of that. Easylist's cosmetic filter shouldn't be able to access and block anything inside the shadowDOM and yet it is happening.
@uBlock-user it should not be possible with _generic_ filters, but OP linked to EasyList with _specific_ filters, with huge list of domains. This is ShadowDOM, but still injected into the page, and specific filters will be affecting it.
and specific filters will be affecting it.
How ? In uBO only filters of type *##[selector] can work with shadowDOM.
How ? In uBO only filters of type
*##[selector]can work with shadowDOM.
This syntax was created because "generic" filters was not working (uBO surveyor script is not able detect them [not able to scan nodes inside ShadowDOM]), but specific filers are always injected, so they always worked.
One of workaround was to add TLDs to make filter specific. Now * work as _all TLDs_.
but specific filers are always injected, so they always worked.
Specific filters against shadowDOM ? Where ? I tried virustotal.com###mainContent doesn't work.
I tried
virustotal.com###mainContentdoesn't work.
Not in latest Nightly I hope? Works just fine in Firefox 74 and Chrome ~88~ 80. Not visible in the logger however.
Not in latest Nightly I hope? Works just fine in Firefox 74 and Chrome 88
I rolledback to previous Nightly where the breakage doesn't exist.
Edit: I re-added the filter and this time it worked in Nightly.
Chrome 88 is Canary
? How?

I have removed the filters,
Note, I get a lot of notifications. and the timezone differences. If only we had a Slack channel, might be easier, just an idea
https://github.com/easylist/easylist/commit/719e9defce0216c657b2da3f08e1961548438522
Examples of issues?
Same problem as noted by @gwarser here. The addon injects base64 encoded images in the pages but uBO blocks the images from being loaded on sites targeted by those problematic Easylist filters.
@in4u if these are valid and "specific"(for specific domain) filters then it's no longer uBO or EasyList issue. Extension should be modified to not be affected by this. Maybe enclosing in <iframe> will work.
Looping @CanisLupus (author of Swift Selection Search) and @gorhill (author of uBO) in this thread.
@CanisLupus Please note the suggestion by @gwarser above and see if that could work.
@gwarser TBH, keeping aside the questionable broadness of filters, this issue shouldn't have to do anything with Easylist or any other list for that matter. My only wish is that either uBO shouldn't affect other addons' functionality or the impacted addons should be aware of a workaround to not get hit by uBO.
This is anyway beyond my area of knowledge or expertise so I'll leave you guys to figure out a way to make the addons compatible with each other and happily peacefully coexist!
My only wish is that either uBO shouldn't affect other addons' functionality
That could be prevented if extensions would avoid injecting in the DOM of the webpages, otherwise breakages would be required to be reported.
Better yet, make injecting conditional like uBO does with element picker/zapper.
All extensions work on the same DOM, so it's impossible to guarantee no interference, uBO can interfere with other extensions, and other extensions can interfere with uBO.
As suggested by @gwarser, implementing the popout inside an iframe will help in the current case, but it still possible that some cosmetic filters would still be interfering by targeting the iframe itself -- though probably a less likely interference.
Another idea off the top of my head, maybe Swift Selection Search could inject its popout style as user styles through browser.tab.injectCSS(), to reduce chances of other extensions interfering with its styles.
Have removed the requested lines
https://github.com/easylist/easylist/commit/6de6d896d27c34de64573e6cbe9ccee4356e9f8e
Hi everyone, I'm the developer of Swift Selection Search (SSS), mentioned by @in4u. Thank you for handling this so quickly.
SSS creates its popup in the DOM of pages, so it's bound to be affected in some cases by the websites' formatting. However, the popup uses ShadowDOM to avoid some of the arising problems and also to not potentially affect the website's formatting. I can look into the suggestions for using iframe and injectCSS in the future. Thanks!
The list blocking all data/base64 sources (including those inside ShadowDOM) seemed too restrictive, though, so I really appreciate the changes, @ryanbr. :)