construct-stylesheets VS uBlock-issues

Compare construct-stylesheets vs uBlock-issues and see what are their differences.

construct-stylesheets

API for constructing CSS stylesheet objects (by WICG)

uBlock-issues

This is the community-maintained issue tracker for uBlock Origin (by uBlockOrigin)
InfluxDB - Power Real-Time Data Analytics at Scale
Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
www.influxdata.com
featured
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com
featured
construct-stylesheets uBlock-issues
7 454
138 862
0.0% 0.5%
0.0 4.6
over 1 year ago 23 days ago
Bikeshed
GNU General Public License v3.0 or later -
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.

construct-stylesheets

Posts with mentions or reviews of construct-stylesheets. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-04-03.
  • Safari releases are development hell
    6 projects | news.ycombinator.com | 3 Apr 2023
    > With adoptedStyleSheets they're objecting to making backwards incompatible changes

    Which would not be bacwards incompatible if they hadn't shipped something that wasn't agreed on in the first place.

    Again, slowly: they literally shipped that to production despite loud and explicit objecitons from both Firefox and Safari they shipped it to production. When asked to hide it back behind the flag, "but backwards incompatible change, the framework we're developing is already depending on it"

    And since you're quoting rniwa, here's the relevant quote https://github.com/WICG/construct-stylesheets/issues/45#issu...:

    --- start quote ---

    I feel like I’ve put so much time & energy into making this feature something sane & useful, and all you did was basically to dismiss many of my feedbacks and go with whatever you like and just ship it. And now you’re saying you can’t make changes because you shipped it?

    I’m sorry but that’s just not how standards work.

    --- end quote ---

    > With WebMIDI they're saying they want to do an announcement before making the change.

    Indeed. Once again: because they shipped an API that neither Safari nor Mozilla supported. Now that this issue has surfaced (no thanks to Chrome), they can't just roll it back or fix it because people already rely ono this behaviour, which the implicitly acknowledge.

  • W3C re-launched as a public-interest non-profit organization
    2 projects | news.ycombinator.com | 31 Jan 2023
    It's not true, to w3c's surprising credit.

    What Google does, is publish a "draft" which is as far from a standard as their authors are from the Moon. This gives Chrome the leeway to call it an "emerging standard" and just ship it. It doesn't care if there are objections, or that other browser vendors will not implement it. It's now a "standard" in Google's dictionary.

    For something to become a W3C standard even in the present world, you need a consensus and at least two independent implementations. None of that exists for stuff Google pushes out (hardware APIs, web transport, constructible stylesheets [1], the list goes on...).

    The correct name for those is Chrome-only non-standards.

    [1] These one isn't even a draft. It is.... "a collection of interesting ideas" in a working group https://wicg.github.io/construct-stylesheets/ Shipped by default in Chrome, of course

  • SQLite WASM in the Browser Backed by the Origin Private File System
    17 projects | news.ycombinator.com | 12 Jan 2023
    I literally provided just some of the examples. Those are easily verifiable.

    Web Transport is shipped by default. What was the input from other browser?

    Here's the timeline for HID: https://github.com/mozilla/standards-positions/issues/459#is...

    Constructible Stylesheets: the spec contained a trivially reproducible race condition, the API was badly specified. Google shipped against any objections and refused to bring it back under the flag. Full discussion here: https://github.com/WICG/construct-stylesheets/issues/45. Shipped in Chrome https://github.com/WICG/construct-stylesheets/issues/45#issu... (may be hidden on mobile) despite multiple unresolved issues. Two years later Chrome did add a better API that people originally requested, other issues potentially remain.

  • Apple Is Not Defending Browser Engine Choice
    8 projects | news.ycombinator.com | 24 Jun 2022
    > If there are examples of 'Apple ignoring standards' actually meaning Chrome-only features please tell me one.

    Easy.

    The most obvious/glaring one is WebHID. Enjoy the timeline: https://github.com/mozilla/standards-positions/issues/459

    It's not just HID, of course. All/most of the hardware APIs are considered harmful by both Safari and Mozilla. Chrome is shipping them enabled by default, and there's no end to clueless developers maoning about this and calling Safari (mostly) and Firefox (from time to time) too slow in "moving the web forward". Needless to say that all those non-standards are pushed forward by Chrome.

    The less obvious one is Constructable Stylesheets.

    The spec had an obvious flaw that could lead to easily reproducible deadlocks. And that is on top with other issues with design, API naming etc. A team within Google (lit-html) wanted this feature, so Chrome shipped it against clear objections from both Safari and Firefox. And then refused to move the feature back under a flag because "0.8% of page views in Chrome" were suddenly using this feature. And proceded to gaslight other browsers' developers https://github.com/WICG/construct-stylesheets/issues/45. See e.g. a response to that https://github.com/WICG/construct-stylesheets/issues/45#issu... Of course there's now a "looking ahead" that wants to do exactly what Safari and Mozilla wanted to do in the first place: https://web.dev/constructable-stylesheets/#looking-ahead

    In general, Chrome pushes 40 to over 100 new Web APIs with each release (that is, every two months). How many of them are actual standards that had actual input from other browser developers? In how many Chrome actually listened and implemented suggestions? https://web-confluence.appspot.com/#!/confluence

  • “Safari's buggy” is valid criticism. “Safari's behind Chrome in features” is not
    2 projects | news.ycombinator.com | 31 Jul 2021
    > The negatives are often theoretical

    They are not theoretical. Too bad webapicontroversy.com has been shut down (it looked like this [1]), but you can scroll down to "defer" and "considered harmful" in Mozilla's positions here: [2]

    There are more, of course, but they are not visible unless you're willing to follow thousands of issues across hundreds of GitHub repositories. One that springs to mind is, of course Constructible Stylesheets. Mozilla and Safari: the spec describes an algorithm that leads to deadlock in trivial code, we wont implement it until this is fixed. [3] Chrome: ship it, because lit-html (developed by Google) wants it and is already using it. And then procedes to gaslight people and misrepresent their positions (cant' find the relevant link, but at this point I can't find the will to dive into the cesspool).

    [1] https://user-images.githubusercontent.com/32768/108985355-3f...

    [2] https://mozilla.github.io/standards-positions/

    [3] https://github.com/WICG/construct-stylesheets/issues/45#issu...

uBlock-issues

Posts with mentions or reviews of uBlock-issues. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-12-06.
  • :matches-path with pseudo-elements
    1 project | /r/uBlockOrigin | 10 Dec 2023
    There is an open issue for this: https://github.com/uBlockOrigin/uBlock-issues/issues/2786 uBO should report such filter as en error in Firefox, so that is the thing to fix.
  • Youtube ad block on pc (ublock origin)
    5 projects | /r/firefox | 6 Dec 2023
    This would be the price of one of the four CDNs (6000$ per month): https://github.com/uBlockOrigin/uBlock-issues/discussions/2958
  • Latest Dev build reset all settings and removed all custom filers lists
    1 project | /r/uBlockOrigin | 6 Dec 2023
    opened a bug report https://github.com/uBlockOrigin/uBlock-issues/issues/3003
  • Disable "uBlock Origin has prevented the following page from loading:" page
    1 project | /r/uBlockOrigin | 4 Dec 2023
  • 📌 YouTube Anti-Adblock and Ads - November 12, 2023 (Mega Thread)
    3 projects | /r/uBlockOrigin | 13 Nov 2023
    Current estimated cost for just ONE of uBO's CDNs: HERE. This is with other lists updating every few days. uBO's not a company, it's a volunteer project using free services, which have limits that we cannot cross.
  • How to block YT ads like a champ
    5 projects | /r/youtube | 5 Nov 2023
    The extension with the best success rate seems to be **uBlock Origin**. It is a community driven project with a team of volunteers, you can review the source code [here](https://github.com/gorhill/uBlock). You will need to update your filter lists regularly, this because Youtube changes detection methods daily. Here is how you do that:
  • Show HN: Bedframe – open-source Browser Extension Development framework
    6 projects | news.ycombinator.com | 5 Sep 2023
    Definitely a much-needed area for development. However, having gone down the browser extension rabbit hole, I've largely shifted my focus to user scripts. Granted, there will always be a need for specialized browser extensions like ad blockers (uBlock[1]), keyboard shortcuts (Vimium-C[2]), and password managers (Bitwarden[3]).

    That said, I find user scripts superior for most tasks, despite some lacking UI niceties. They are easier to share, use, and crucially, audit—be it in terms of scope, permissions, or code updates. Plus if Manifest V3 is any indicator, the future for browser extensions looks bleak. While I don't agree with this direction, it's probably for the best for the majority of users, like my mom.

    Your effort is commendable; however, should you find yourself looking for a viable pivot in the future, I believe the user script space is primed for innovation and could offer a good alternative.

    [1] https://github.com/gorhill/uBlock

  • Help me understand this code!
    1 project | /r/JavaScriptTips | 4 Sep 2023
    const defineProperty = function(chain, cValue, middleware = undefined) { let aborted = false; const mustAbort = function(v) { if ( aborted ) { return true; } aborted = (v !== undefined && v !== null) && (cValue !== undefined && cValue !== null) && (typeof v !== typeof cValue); return aborted; }; // https://github.com/uBlockOrigin/uBlock-issues/issues/156 // Support multiple trappers for the same property. // // trapProp is used to trap a single property within an object. const trapProp = function(owner, prop, configurable, handler) { if ( handler.init(owner[prop]) === false ) { return; } const odesc = Object.getOwnPropertyDescriptor(owner, prop); let prevGetter, prevSetter; if ( odesc instanceof Object ) { if ( odesc.configurable === false ) { return; } if ( odesc.get instanceof Function ) { prevGetter = odesc.get; } if ( odesc.set instanceof Function ) { prevSetter = odesc.set; } } Object.defineProperty(owner, prop, { configurable, //When a property is accessed (get), the custom getter function is called. get() { if ( prevGetter !== undefined ) { prevGetter(); } return handler.getter(); // cValue }, // When a property is modified (set), the custom setter function is called. set(a) { if ( prevSetter !== undefined ) { prevSetter(a); } handler.setter(a); } }); }; // trapChain is used to recursively trap properties along a chain of properties (e.g., object1.object2.property). const trapChain = function(owner, chain) { const pos = chain.indexOf('.'); if ( pos === -1 ) { trapProp(owner, chain, true, { v: undefined, init: function(v) { if ( mustAbort(v) ) { return false; } this.v = v; return true; }, getter: function() { return cValue; }, setter: function(a) { // Middleware is called when a property is set, allowing additional processing or validation of the new value. if (middleware instanceof Function) { cValue = a; middleware(a); } else { if ( mustAbort(a) === false ) { return; } cValue = a; } } }); return; } const prop = chain.slice(0, pos); const v = owner[prop]; chain = chain.slice(pos + 1); if ( v instanceof Object || typeof v === 'object' && v !== null ) { trapChain(v, chain); return; } trapProp(owner, prop, true, { v: undefined, init: function(v) { this.v = v; return true; }, getter: function() { return this.v; }, setter: function(a) { this.v = a; if ( a instanceof Object ) { trapChain(a, chain); } } }); }; trapChain(window, chain); }
  • Firefox 115 can silently remotely disable my extension on any site
    1 project | /r/browsers | 7 Jul 2023
  • Why do my settings keep getting reverted?
    1 project | /r/uBlockOrigin | 6 Jul 2023
    Maybe https://github.com/uBlockOrigin/uBlock-issues/issues/2725 ?

What are some alternatives?

When comparing construct-stylesheets and uBlock-issues you can also consider the following projects:

interop - web-platform-tests Interop project

SponsorBlock - Skip YouTube video sponsors (browser extension)

file-system-access - Expose the file system on the user’s device, so Web apps can interoperate with the user’s native applications.

brave-core - Core engine for the Brave browser for mobile and desktop. For issues https://github.com/brave/brave-browser/issues

fs - File System Standard

ClearUrls

absurd-sql - sqlite3 in ur indexeddb (hopefully a better backend soon)

ClearURLs-Addon - ClearURLs is an add-on based on the new WebExtensions technology and will automatically remove tracking elements from URLs to help protect your privacy.

OSX-KVM - Run macOS on QEMU/KVM. With OpenCore + Monterey + Ventura + Sonoma support now! Only commercial (paid) support is available now to avoid spammy issues. No Mac system is required.

uBlock - uBlock Origin - An efficient blocker for Chromium and Firefox. Fast and lean.

topics - The Topics API

bypass-paywalls-chrome-clean-magnolia1234 - Bypass Paywalls Clean for Chrome (no Google Analytics, lot of updates/bug-fixes and custom sites)