Live data from Hacker News

I tried creating a web browser, and Google blocked me

blog.samuelmaddock.com

621–630 of 632 posts

Re: I tried creating a web browser, and Google blocked me

#621

Earlier quoted context omitted.

Well, actually, there is in the steam settings. And to be fair, not every game on Steam comes with DRM attached to it. I have many games I can play without launching Steam itself.

I'm surprised to hear that there are non-DRMed games on Steam. Do you have an example? I thought it was standard that every game released on Steam that doesn't have some awful third-party DRM like Uplay has the Steam launcher code patched into the executable. Valve has some tooling for doing this even to existing legacy exes that can't be rebuilt from source.

Kerbal Space Program on Steam is not DRM-ed. I can launch it without Steam running, and it doesn't automatically launch Steam client or anything, the game just starts up.

Re: I tried creating a web browser, and Google blocked me

#622
post #504

Boy howdy, this is one subject where I loathe saying "I told you so", but... I sure told you so.[1] HTML DRM is antithetical to the Open Web itself. It was built on a sham of "plugin-free" media playback, but all we did was change Flash and Silverlight for a whole range of closed black boxes, which in turn are effectively all controlled by Big Media ( to make it crystal clear: EME was built with third-party decryptio…

The saddest part is it doesn't even seem to accomplish anything. What would-be pirates are actually being foiled by this? Netflix, Hulu, and Amazon Prime use EME, but all their exclusive content is still readily available on torrent sites. Does it raise the difficulty bar? It's hard to imagine anyone who knows how to rip video from their browser doesn't know how to torrent something.

It accomplished building a market around drm. Which the drm market is happy about.

Re: I tried creating a web browser, and Google blocked me

#623

Earlier quoted context omitted.

[flagged]

why was this flagged? I'm no fan of communism, but it appears to be a valid response to the parent.

I have no idea - I'm not usually one to espouse political ideas unless wholly relevant to a topic at hand. It seems that a band of HN users are politically adverse - which is sad, since capital rules our lives and society, and merely ignoring its flaws does nothing to abate them.

Re: I tried creating a web browser, and Google blocked me

#624
post #253

I also find the title to be rather sensational.. "I tried creating a web browser" ^ "Google blocked me" implies that Google blocked them from creating a web browser.. which is not the case.

If a single company can effectively decide whether a bunch of 3rd party sites that they don't control work on your browser, how is that any different? Google is effectively deciding that anyone other than pre-approved browsers can't play Netflix content. If an ISP fully embraced the Net Neutrality repeal and started blocking video content, and someone posted on HN that ISPs were "blocking them from building a streami…

> If a single company can effectively decide whether a bunch of 3rd party sites that they don't control work on your browser, how is that any different?

That's just a sensationalistic as the headline. There isn't a single company controlling and selling these modules. There is a several of them, in open competition. The OP chose Widevine because they are easiest, but with sufficient perseverance he could probably use any of them, or at least any that distribute x86 binaries. It's damned near impossible to prevent someone from running a binary if they really want to.

I also found the original article difficult to swallow. It gave very little detail - so little we have no idea what Widevine said no to. For example, was it "could you provide Widevine and loan me an engineer to help me integrate it with my browser - but I can't pay you because it's all open source". Or was it "I've got it all going, I'm willing to pay you commercial rates per licence - how can I buy licences?" It if is the former hats off to Widevine for replying at all.

As it is, we only get a small part of his side of the story, no insight at all into why Widevine reacted they way they did, and a headline that's guaranteed to get clicks.

Call me paranoid, but I get the feeling I'm being manipulated.

Re: I tried creating a web browser, and Google blocked me

#625

Earlier quoted context omitted.

If a single company can effectively decide whether a bunch of 3rd party sites that they don't control work on your browser, how is that any different? Google is effectively deciding that anyone other than pre-approved browsers can't play Netflix content. If an ISP fully embraced the Net Neutrality repeal and started blocking video content, and someone posted on HN that ISPs were "blocking them from building a streami…

> If a single company can effectively decide whether a bunch of 3rd party sites that they don't control work on your browser, how is that any different? That's just a sensationalistic as the headline. There isn't a single company controlling and selling these modules. There is a several of them, in open competition. The OP chose Widevine because they are easiest, but with sufficient perseverance he could probably use…

I've updated the article to include the email exchange, check the edit at the bottom.

Re: I tried creating a web browser, and Google blocked me

#626
post #533

Earlier quoted context omitted.

There are some features which make a desktop application more appealing to me. One feature required changing browser behavior [1] which wouldn't otherwise be possible. 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/electron/electron/pull/17…

This is sort of a ridiculous hack, but you could probably override Element.prototype.webkitRequestFullscreen, and manually resize the element to take up the whole browseer window rather than entering fullscreen.

At one point I did try this, but it ends up being a much more complex solution. It turns out it's fairly difficult to ensure the element appears above every other element. I was using 'position: fixed' with the maximum z-index value.

Re: I tried creating a web browser, and Google blocked me

#627

Regarding browser extensions, the Firefox "webextensions" API is (mostly) compatible with Chromium's, so with relatively little effort you could target both the Firefox and Chromium families of browsers. Firefox compatibility is valuable because Firefox extensions don't have to be distributed through the Mozilla add-on store (they do need to be signed by AMO, but provided your extension isn't doing anything illegal,…

Sorry for the late reply. Building Metastream as a web browser instead of a web extension was a complexity burden created solely by myself.

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).

[1] https://github.com/electron/electron/pull/17203

Re: I tried creating a web browser, and Google blocked me

#628
post #277

Let's add the US Congress and the EU to the long list of parties to blame for the DRM situation. "Reverse engineering" software for the purposes of "circumventing" copyright is illegal. "Circumventing" is much more broadly defined than it should be. It's not just illegal to redistribute copyrighted material. That's the point of copyright and has been the case for a long time. It's also illegal to watch/consume conten…

The above is most probably for US based clients. E.g. in Poland it is perfectly legal to watch copyrighted material as long as you don't redistribute it. It is also legal to do a reverse engineering of software to allow it to run on your system, software, hardware (so I think a browser also applies). (I'm not a lawyer, just reading some of the more technical law articles)

I also read many articles claiming that it is legal to watch copyrighted material, as long as it is not redistributed. However I'm not sure that's actually true.

As per https://en.wikisource.org/wiki/Polish_Copyright_Law

Article 23, paragraph 1:

> It shall be permitted to use free of charge the work, which has been already disseminated for purposes of private use without the permission of the author.

Article 6, point 3:

> the disseminated work shall mean a work which, with a permission of its author, has been made available to the public by any means whatsoever

So, it is legal to access the work without permission, if author gave prior permission to make it available to the public. However I'm not sure if selling a book in a store or showing a movie in a cinema would automatically mean that such work can be downloaded freely from the Internet - technically the work is available to the public, but I'm sure the author did not give permission for the work to be available on the Internet.

Re: I tried creating a web browser, and Google blocked me

#629

Earlier quoted context omitted.

Well, actually, there is in the steam settings. And to be fair, not every game on Steam comes with DRM attached to it. I have many games I can play without launching Steam itself.

I'm surprised to hear that there are non-DRMed games on Steam. Do you have an example? I thought it was standard that every game released on Steam that doesn't have some awful third-party DRM like Uplay has the Steam launcher code patched into the executable. Valve has some tooling for doing this even to existing legacy exes that can't be rebuilt from source.

Valve has their DRM solution ([1], "CEG"), but the DRM is fully optional, as it needs to be applied by the game developer to their executable before they upload their game.

I don't have good examples in mind right now, and I would need to double check, but I am pretty sure I was able to launch Supreme Commander 2 trough wine directly with the game executable, without launching Steam some time ago. I also recall "Tyranny" doing a free week-end, after which I could still launch the game trough the executable (although steam refused to launch it). That was a Linux game, though, and could be slightly different.

I would roughly estimate that more than 20% of my Steam library does not have DRM attached to it. There are a couple lists out there that help find DRM-free games on Steam [2][3][4], etc.

Some game developers advertise this as a feature of their game on Steam. For others, it could be an oversight. I find it pretty convenient in any case (example: copy FTL on a USB stick for playing on the go, even without internet connection on an underpowered computer). It also helps with wine.

[1]: https://partner.steamgames.com/doc/features/drm

[2]: https://steam.fandom.com/wiki/List_of_DRM-free_games

[3]: https://pcgamingwiki.com/wiki/The_Big_List_of_DRM-Free_Games...

[4]: https://store.steampowered.com/curator/7540156-DRM-Free-Game...

Re: I tried creating a web browser, and Google blocked me

#630

Regarding browser extensions, the Firefox "webextensions" API is (mostly) compatible with Chromium's, so with relatively little effort you could target both the Firefox and Chromium families of browsers. Firefox compatibility is valuable because Firefox extensions don't have to be distributed through the Mozilla add-on store (they do need to be signed by AMO, but provided your extension isn't doing anything illegal,…

Sorry for the late reply. Building Metastream as a web browser instead of a web extension was a complexity burden created solely by myself. 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,…

Thanks for the reply!

That makes sense and it's interesting to see the limitations of the "web extension" framework.

The following isn't meant to try to convince you to use any particular solution (I don't have any skin in the game), just some ideas in case you get fed up even more by the problems with implementing DRM in your own browser.

Listening to a socket and reading local files is possible with "Native messaging"[1]. In brief you have a small application running in the background, outside the browser, which can listen to sockets or read local files, and your browser extension communicates with it. This does bring added complexity and might (haven't tested) bring additional latency, possibly making it unacceptable.

[1] https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/Web...

Post reply on HN