[0] https://www.electronjs.org/docs/tutorial/context-isolation#w...
1,128 karma · joined September 28, 2013
sam at samuelmaddock dot com
@SamuelMaddock
[0] https://www.electronjs.org/docs/tutorial/context-isolation#w...
Folks can have a good experience with the app store, until they don't. There's survivorship bias in creating an app unaffected by the ever changing app review policies.
This isn't exclusive to Apple's walled garden either.
For me, it was 3D art that got me hooked. Followed by programming to make my art do something.
This is just not something you run into with WebSockets.
I'd recommend simple-peer for anyone who does choose to use WebRTC. The maintainers are usually able to smooth these issues out in a reasonable timeframe. <3
STUN, TURN, and ICE are a few technologies you need to understand to get started with WebRTC. I'd guess most folks aren't familiar when first looking into it.
The complexity is worth it if you're determined to push most bandwidth costs to clients like I am.
If you want near 100% connectivity at a lower complexity, WebSockets are almost always preferred.
I can see this replacing most use cases of WebSockets once brought to ubiquity.
Steam Workshop [1] is a platform for distributing mods for games which support it on Steam. A few years back it introduced support for paid content [2], but was soon after removed due to community backlash [3].
[0] https://www.roblox.com/developer-exchange/help
[1] https://steamcommunity.com/workshop
[2] https://steamcommunity.com/workshop/aboutpaidcontent
[3] https://steamcommunity.com/games/SteamWorkshop/announcements...
This is another case where having a large, supportive audience is one of the only ways of getting Google's attention.
Based on the usage statistics for the past month (28,711 samples), these are some commonly used media websites:
1. www.youtube.com (69%)
2. www.netflix.com (5%)
3. www.crunchyroll.com (2.5%)
4. www.hulu.com (0.8%)
5. www.funimation.com (0.3%)
6. www.disneyplus.com (0.3%)
7. other (22.1%)
The app is heavily skewed towards anime which already has a problem with piracy. That said, we can at least see that approx. 9% of traffic in my app is for DRM-enabled media.
Personally, I don't think the usage statistics of DRM media matters much. It shouldn't be a requirement to consume any content on the web to begin with.
The Windows code signing certificate I have is an OV certificate which means it builds up trust over time before the installation security warning goes away. It seemed to go away within a week of release, but was still frustrating to deal with. An EV certificate skips the trust building step and can be purchased for about 5x the cost.
A couple months ago I switched to a Progressive Web Application (PWA) which reduced costs and removed the installation requirement. There are capabilities lacking in web applications, but there are planned features such as native file system API [1]. Hopefully these also make their way into Firefox and others. No desktop PWA support in Firefox at all yet.
It seems like it would be trivial for Widevine to revoke access if there were ever abuse.
I have more details in a blog post I wrote last month. https://blog.samuelmaddock.com/posts/google-widevine-blocked...
The portability of Unreal Engine 4 places Epic Games in a unique position where they can deliver this kind of experience.
One of the main requirements I wanted was the ability to use the app with as little centralized dependencies as possible. P2P is the primary way to connect to users with the app, but even that requires a centralized signaling solution which is prone to downtime. To mitigate this, users can also directly connect to an IP address with the appropriate ports forwarded. Listening on a socket is not supported by a web extension at this time.
Additionally, some actions on the web require a "user gesture" to be performed such as fullscreening a video. I created an auto-fullscreen feature by simulating a user gestured mouse click. It also only fullscreens within the frame of the window instead of the entire screen. [1]
Other features not possible with a web extension/app include local file reading (potential future feature) and Discord Rich Presence (currently implemented).
> For Windows Electron/Chromium will not work with PlayReady at this time. I have provided your feedback to the engineering team for future planning. Currently PlayReady can be integrated in a PWA/(Windows Store HTML/JS app) and there would be no royalties on Windows.
A WebExtension could work, but has potential to run into the same gatekeeping issue of being removed by Google from their Web Store. With Google having ~70% market share, this wouldn't be a good outcome.
[1] https://github.com/castlabs/electron-releases/issues/33#issu...