My thoughts on Slackware, life and everything

New Chromium now supports Netflix natively without Wine plugins

chromium_icon

The latest update to my Chromium package is an interesting one. It took me many nights, all of last week, to find a solution for a crash that is mentioned in various bug reports and for which I could not find a working fix anywhere. In the end, I just removed the few lines of code which trigger the crash.

Dear Google: I think it is stupid to force a crash in my package just because my build is not an “official build”. If your developers want bug reports, fine, arrange something in your development or beta source code, but do not annoy users of your your stable releases by making your product unfit for Google searches.

Anyway, Chromium 37.0.2062.94 comes with a couple of critical bug fixes:

  • [$30000][386988] Critical CVE-2014-3176, CVE-2014-3177: A special reward to lokihardt@asrt for a combination of bugs in V8, IPC, sync, and extensions that can lead to remote code execution outside of the sandbox.
  • [$2000][369860] High CVE-2014-3168: Use-after-free in SVG. Credit to cloudfuzzer.
  • [$2000][387389] High CVE-2014-3169: Use-after-free in DOM. Credit to Andrzej Dyjak.
  • [$1000][390624] High CVE-2014-3170: Extension permission dialog spoofing. Credit to Rob Wu.
  • [$4000][390928] High CVE-2014-3171: Use-after-free in bindings. Credit to cloudfuzzer.
  • [$1500][367567] Medium CVE-2014-3172: Issue related to extension debugging. Credit to Eli Grey.
  • [$2000][376951] Medium CVE-2014-3173: Uninitialized memory read in WebGL. Credit to jmuizelaar.
  • [$500][389219] Medium CVE-2014-3174: Uninitialized memory read in Web Audio. Credit to Atte Kettunen from OUSPG.

New in Chromium 37:

Two nice things happened in Chromium 37 that I want to write about.

  • A separate PDF plugin is no longer needed. This release of Chromium finally has the PDF library included which in the past would only be released with the binary Chrome builds. PDF’s are now nicely rendered in the browser window without having to install the chromium-pdf-plugin package. In fact, I removed that plugin package from my repository. If anyone still wants or needs the SlackBuild for that, let me know and I will post it somewhere.
  • I have not tried it myself (no Netflix here) but reportedly Chrome 37.0.2062.94 can play Netflix natively in Linux, without the need for Wine plugins that add support for MS SilverLight. The new HTML5 player with DRM which Netflix optionally uses now, is supported thanks to co-operation between Chrome developers and Netflix. I assume that the Chromium package would provide the same support. In any case, newer (developer) versions of Chromium reportedly do support Netflix natively, just not sure of the exact version where this started working. Try it, and tell me what you found! I will release a “chromium-dev” package later this week to allow testing in Slackware of new functionality, that may help too.

How to make Netflix work with Chrome/Chromium?

These are instructions I took from a LinuxQuestions.org thread, again I am unable to verify their value.

  • Install Chromium (Chrome would work too of course)
  • Install a User Agent switcher (apparently Netflix keeps blocking Linux browsers even though they now support them…)
  • Add new User-Agent in User-Agent-plugin with following settings:
    • New User-Agent Name = Netflix
      New User-Agent String = Mozilla/5.0 (Windows NT 6.3; Win 64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.24 Safari/537.36 (looks like 37.x.x.x version numberss do not work; use the latest Chrome (beta) version here).
      Group = Chrome
      Append = Replace
      Indicator Flag = NX (or whatever you want)
  • Add a new Permanent Spoof List
    • Domain = netflix.com
      User-Agent String = Netflix
  • Make sure your mozilla-nss package has at least version 3.16.4 (Pat Volkerding upgraded all mozilla-nss packages in recent Slackware releases for this reason)
  • In Netflix Playback-settings chose HTML5

Have fun! Eric

Note (added Fri Jan  9 12:12:23 UTC 2015):
Please also read my follow-up article because I have made the Widevnie plugin actually work with Chromium and watching Netflix is now possible in Chromium without any UserAgent spoofing.

45 Comments

  1. Jen

    Wait, they deliberately broke chromium to not work with google searches? Are they high? Somehow it doesn’t surprise me.

    It reminds me of the early days of the ‘net, where they’d block websites to Linux. Easy to get around, total BS that their mostly-text-based website wouldn’t “work.” But it’s the principle of the thing, you know?

    The dev version of chrome I was using with Netflix was: 38.0.2125.24.

  2. alienbob

    I am now compiling a chromium-dev package (Slackware-current only) that has the version 39.0.2138.3. If the 64-bit version works here I will also do the 32-bit package and upload them.
    This chromium-dev keeps its profile separate from the stable chromium – so you should be able to install both in parallel.

  3. Cwizardone

    Installed and followed the direction and signed on to Netflix.
    It started a video then choked and said,

    “Please visit chrome:/components, locate WidevineCdm component and click ‘check for update’ button.”

    Of course WidevineCdm is not installed. From what I’ve read it is not supported in Chromium.

  4. alienbob

    Hi Cwizardone

    Well, it’s a “try as you go” experience I guess. Next step: can you please try if this package brings you any further (stop and restart chromium after installing):

    http://taper.alienbase.nl/mirrors/people/alien/slackbuilds/chromium-widevine-plugin/

    Thanks for testing and your feedback.

    Eric

  5. Cwizardone

    Thank you for going to the trouble to build the plug-in.

    It did not ask that the license be accepted, which might be why it hasn’t work. I checked chrome:/plugins and it is listed and I checked the box, “always allowed,” but it is not listed when I run chrome:/components.

    The end result is the same as my previous post.

    Thanks, again, for all you hard work on this project.

  6. Jen

    Quick question: in your changelog, I saw that there was a package update for Steam, but the directory’s empty. Is it not up yet, with all the chromium problems?

  7. Thiago Silvino

    I just tried here. I was able to open the netflix site, but when I select a video to watch, I am asked to install the silverlight plugin. It looks like that it’s ignoring my preference for the html5 player. I tested the html5 player in youtube and it looks great. So it maybe an issue of netflix not recognizing the new html5 player.

  8. MDK

    I too got the problem with Widevine component (error M7354 on netflix), same after installing your widevine package (it appears on chrome://plugins, but not on chrome://components).

  9. Thiago Silvino

    I got the Widevine issue when I set the agent config to this exact string: “Mozilla/5.0 (Windows NT 6.3; Win 64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.24 Safari/537.36”. It appears on chrome://plugins, but not on chrome://components.
    I tried to sym link and/or copy the two libs to /usr/lib/chromium and edit the lines in /etc/default/chromium.orig but I still get the same error.

    When I tried with the google-chrome it works, I am able to play the videos from Netflix and the widevine doens’t show up in chrome://components.

  10. alienbob

    Hi Jen

    Indeed, for unknown reasons the new steamclient package was not added to the repository. I have fixed that omission now.

  11. alienbob

    Hi Cwizardone

    In “chrome://components” you will only see the components known to the browser from compile-time. Components are the parts of the Chrome browser that can be updated without the need for a full upgrade – a mechanism used in Windows and Mac OSX but unavailable in Chrome for Linux.

    That Netflix message about “chrome://components” is Windows-centric (remember Linux is officially not supported atm) and I think it can be ignored.
    What I read in a Arch Linux forum was that the version string in the UserAgent spoof should match the actual version of your browser (https://bbs.archlinux.org/viewtopic.php?id=185771).
    Also, that it may a couple of tries to get the HTML5 player preference to work -it seems to vary from person to person (http://www.omgubuntu.co.uk/2014/08/netflix-linux-html5-support-plugins).

  12. Francis

    Hi, i am trying netflix from Brazil, works with firefox/pipelight normal and will switch to chromium.
    The chromium-dev package is an upgrade to the stable chromium or it is a separated instalation?

  13. alienbob

    Hi Francis

    The chromium-dev package is not an update to the stable chromium. That is why the package is called “chromium-dev” so that you can install both chromium and chromium-dev and use them at the same time. The two use separate profile directories.

  14. Eduardo

    Hi Eric, thank you! With this version, I can finally write more international characters in Chromium. Great!!

  15. Jen

    Awesome, thanks! 🙂

  16. alienbob

    Bbased on what I read here: https://groups.google.com/a/chromium.org/d/msg/chromium-dev/exotX6Nf_z0/4w3r5YgkJs4J – Chromium may be missing the functionality that Chrome has to let the decryption module work with the media stream.
    Perhaps I should get a Netflix free trial month, but I hate to give them my credit card number just for that.

  17. cwizardone

    Alien Bob wrote,
    > What I read in a Arch Linux forum was that the version > string in the UserAgent spoof should match the actual
    > version of your browser…

    Tried that, but then I couldn’t get past the system requirement error message, i.e., couldn’t even begin to start a video.

    > Chromium may be missing the functionality that
    > Chrome has to let the decryption module work with the > media stream.

    Yes, that would be inline with what I’ve read and referred to earlier.

  18. slack

    Still lags in flash videos as the previous version…

  19. Jen

    Was going to install chromium (assuming it can co-exist with regular chrome), but there isn’t a 14.0 package? I can try building the source tomorrow. Probably faster than reinstalling Slackware, especially since I’m in the middle of a music project. (And would need to compile a bunch of stuff for that, if I upgrade everything.)

  20. MDK

    Testing chromium-dev here, still getting the same error with widevine (error M7354).

    Another thing I’ve noted, there is no “chromium-dev” directory on my $HOME/.config, but a strange “${PRGNAM}” that contains the user configuration files for chromium-dev

  21. alienbob

    Hi MDK

    I see where I made a mistake in my SlackBuild with regard to the config dir, will be fixed as soon as I have time.

  22. alienbob

    Hi Jen

    I compile chromium only for Slackware 14.1/current and chromium-dev only for slackware-current.

    I can give no guarantees for success with building on Slackware 14.0. I did not try that myself, however I tried with Slackware 13.37 and had to change the SlackBuild for that (see my chromium_1337.SlackBuild) and lost some functionality as a consequence.

  23. alienbob

    And yes: chrome, chromium and chromium-dev can all be installed _and_ used at the same time.

  24. Jen

    Hrm. Might be easier to just put 14.1 on my laptop. See what kind of time I’ve got this week…

  25. Julio Cesar Gutierrez

    Hello Eric.

    Post chromium-pdf-plugin slackbuid to users of 13.37, version 35.0.1916.1531.

    Excuse me. I posted earlier in “More about me” section.

    regards.

  26. alienbob

    Hi Julio

    There is no need for a separate chromium-pdf-plugin package for Slackware 13.37 (I think you meant package and not slackbuild). Just change the VERSION variable in the chromium-pdf-plugin.SlackBuild script to 35.0.1916.1531 and run the script. The pdf plugin is taken from the binary chrome release, either it works on Slackware 13.37 (and then you are lucky) or it does not work (too bad, you might want to upgrade your Slackware).

  27. Julio Cesar Gutierrez

    Yes, I proceeded thus in chromium-pepperflash-plugin slackbuild successfully.

  28. Julio Cesar Gutierrez

    Hi Eric

    Regained slackbuid the google cache and here’s the result: Incompatible with 13.37.

    ldd libpdf.so
    ./libpdf.so: /usr/lib/libstdc++.so.6: version `GLIBCXX_3.4.15′ not found (required by ./libpdf.so)
    linux-gate.so.1 => (0xffffe000)
    librt.so.1 => /lib/librt.so.1 (0xb70dc000)
    libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0xb6ff3000)
    libm.so.6 => /lib/libm.so.6 (0xb6fcd000)
    libgcc_s.so.1 => /usr/lib/libgcc_s.so.1 (0xb6fb1000)
    libpthread.so.0 => /lib/libpthread.so.0 (0xb6f97000)
    libc.so.6 => /lib/libc.so.6 (0xb6e30000)
    /lib/ld-linux.so.2 (0xb773f000)

  29. Jen

    Not having much luck building chromium, but it’s late and I’m not thinking clearly. If I’ve got time tomorrow, I”ll throw 14.1 on my laptop.

  30. Alan Aversa

    @Thiago Silvino: I get the same issue. It keeps saying I need to install Silverlight.

  31. alienbob

    I took a free month of Netflix, just to do some testing, but unfortunately it does not even work in the actual official Chrome 37.0.2062.94… with the spoofed UserAgent I still keep getting asked to install SilverLight. The streaming preferences for my account “prefer HTML5 over SilverLight”.
    Errr?

  32. Jen

    That’s the version of chrome I’m using. Try creating a new profile?

  33. cwizardone

    After giving up on getting Netflix to work with Chrome/Chromium, I tried again with Firefox, an agent changer, and the wine-pipelight/pipelight silverlight plug-in.
    It took several attempts, but finally I got it to work using Firefox 31, and User Agent Overrider 0.2.4, set to ms-windows and Firefox 29.
    The audio/video sync can sometimes be off, depending on the strength of the WiFi signal, but it usually comes into sync after a few minutes.
    I could not get it to work using the latest Firefox 32.
    However, after all that, it still works best in Xp-sp3, running in VirtualBox.

  34. Jen

    Here’s the user agent string I’m using: Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2049.0 Safari/537.36

    And I’ve got it appended, not replaced.

    I tried it with your string for the sake of testing, and it worked for me. (Chrome 37.0.2062.94.) Could it be a region thing? That is, html5 isn’t being used in all countries yet? Only difference I can think of.

  35. alienbob

    Using 38.0.2125.24 as the Chrome version in the UA string made the HTML5 player work. However the interface was suddenly missing most of the icons and bitmaps. That was fixed when I upgraded chrome to the latest beta (38.0.2125.44).

    HTML5 video stutters unfortunately. The same is true for Youtube videos – it is just unwatchable.

    Something happened in the Chrome browser a few versions back that broke HTML5 video playback. I suspect that hardware acceleration support was removed?

  36. Jen

    Huh, strange. That’s the version of the chrome beta I was using, too. I haven’t had any stuttering with playback on it or youtube. (We use netflix all the time.)

    Video card issue? (Nvidia GTX 560, 331.67 drivers from Nvidia.)

    Network issue?

    Something else change between 14 and Slackware-current? (Not currently using a low-latency kernel.)

  37. alienbob

    Julio,

    I uploaded chromium-37.0.2062.94 packages for Slackware 13.37. This version contains a PDF viewer, so there is no need for a separate “chromium-pdf-plugin” anymore.

  38. regnad kcin

    Using chromium-dev. It’s very quick. But there is no support for chinese input via SCIM. All programs work fine with
    Scim except chromium. I can cut and paste chinese but cannot enter chinese in chromium.

  39. Pedro

    I am using Chrome 37.0.2062.94 and it didn’t work 🙁

  40. alienbob

    Pedro, I had the same issue. When I used “38.0.2125.24” as the Chrome version in the spoofed UserAgent string, it started working even with the Chrome 37.0.2062.94 release, but it also had the effect that lots of icons and bitmaps were no longer displayed on the Netflix pages.
    I updated my Chrome to the latest Beta (38.0.2125.24) and that fixed the bitmaps issue for me.
    I still have stuttering audio/video (on a quadcore CPU with Nvidia graphics) and that makes it unacceptable for me to watch. I have that same stuttering in Youtube’s HTML5 player btw… so the issue is local, either with the Nvidia driver or with the fact that I have Jack Audio installed.

  41. Jen

    http://www.webpronews.com/netflix-finally-adding-linux-support-2014-09

    Hey cool. Looks like they’re throwing us a bone. (Not that a user agent is particularly onerous, but it’s one less thing in the way.)

  42. alienbob

    Netflix is specifically targeting the latest Ubuntu, not Linux in general. I surely hope they will not search the browser’s UserAgent string for “Ubuntu 14.02”. We might still have to spoof our UA on Slackware.

  43. Jen

    Hadn’t thought of that. Would be stupid of them to do so. Feh. 🙁

  44. alienbob

    Well, it’s pretty obvious that Chromium is not going to be an option for watching Netflix. Nobody is able to get the Widevine plugin to work.

    However, while trying the latest Chrome 38.0.2125.101 on my slackware-current, I discovered that it works out of the box with Netflix.
    A UserAgent spoofer is no longer needed.

    Linux support for Netflix is not limited to Ubuntu, praise “bob” 🙂

  45. Jen

    Yeah, it’s annoying when a web page or something stupid like that is restricted to one OS or one distro or another. Fortunately I haven’t seen a message telling me to use Windows instead in awhile. (And it’s usually on a page that’s nothing but text and javascript, so no reason to restrict it beyond stupidity.)

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

© 2024 Alien Pastures

Theme by Anders NorenUp ↑