TwoSeven Browser Extension Changelog

Thank you for installing the TwoSeven browser extension. You are currently using

v2.2.0

  • Preliminary playlist support
  • Added ability to search YouTube (experimental)
  • hulu: Detects video title
  • hbo: Fixed some issues with sync

v2.1.5

  • Added workaround for embedding Netflix on TwoSeven
    • Issue caused by recent change to Netflix cookies
    • Some cookies were set to SameSite=Lax that caused them to be inaccessible when embedded
    • Added special toast messages to inform users about problems with Netflix on TwoSeven
  • Added new extension settings to bypass SameSite cookie restrictions
  • Fixed Crunchyroll’s hard-subtitles extension settings to be more reliable

v2.1.4

  • Added preliminary support for Hulu
  • Fixed bug in funimation that prevented episodes with no subtitles from loading
  • Refactored Amazon logic to be more robust
  • Fixed most instances of websites refusing to load when embedded
  • YouTube: Fixed extension setting not disabling captions properly
  • Crunchyroll now has an option in the extension settings to force hard-subtitles

v2.1.3

  • Added preliminary support for MPEG-DASH
    • Does not play DRM-protected streams
  • Added Plex support
  • Added support for vrv.co
  • Added framework for webpage-framing
    • Added support for Shudder using webpage-framing
  • Fixed Crunchyroll not working properly on Firefox

You can find more information on all of these here

v2.1.2

  • ‘Pause on website’ now properly grays out the extension icon
  • Firefox will now show video previews properly under ‘Show Media’
  • Removes certain service workers due to WebExtension limitations
  • Released source-code for certain portions of the extension

Summary

Firefox video previews

Due to differences in the way Chrome and Firefox implements their Content Security Policy, Firefox would not render video previews properly. Initially, to me, the problem seemed to be that hls.js uses blob:s to create the video and Mozilla forbids adding blob: to an extension’s CSP. Turns out that the real problem was that the blob was being created within a webworker that was instantiated by hls.js. Thankfully, hls.js allows for disabling webworkers and once we did that, previews began to work once again. Many thanks to the addons.mozilla.org (AMO) reviewers who not only helped in identifying the problem but also in fixing it.

Service worker conflict

The network requests made by a service worker seem to fall outside the purview of the WebExtension’s webRequest API. This means that any website that fetches/caches content will not have its headers overwritten by our extension’s webRequest listeners. All of this culminated in our extension being unable to embed websites that ship with X-Frame-Options: Deny which couldn’t be overwritten.

To handle this, we currently service workers that are registered from Amazon and Netflix. We will continue to do this until the APIs and interactions between WebExtensions and Service Workers are standardized. If you believe you are facing issues due to this, let us know and we’ll try and look into alternatives.

Open-sourcing (parts of) the extension

Over the years, the TwoSeven extension has grown very large. We’re working on cutting it up into pieces and open sourcing certain components. On that note, we quickly tore out two such components and put them up on github. We will work on cleaning up the code and documenting it, but feel free to check it out. Pull Requests are welcome as well. You can find the code here.

v2.1.0

  • Improved detection and handling of MP4 files from third-party websites
  • Added proper fullscreen support for HBO
  • We’re now proudly built entirely on open-source code

Summary

MP4 from third-party websites

Most movies, TV shows, or really any long videos on the internet are no longer simple MP4 files. I’m talking about websites other than Netflix, Amazon, Hulu, etc. You know, the ones where you occasionally see DMCA takedown notices. These sites use a technology called HTTP Live Streaming (HLS) which allows them to encode the same video into different qualities and allow users to pick one of these qualities. If you’ve seen options to watch a video in 360p or 720p or 1080p, then that video probably uses HLS. It turns out that, in our excitement of having our extension flawlessly detect HLS videos, we forgot to implement the same level of detection for simple MP4 videos. This update fixes that and allows watching most, if not all, MP4 files on the internet together.

HBO Fullscreen

The HBO NOW website has been…challenging to work with and deserves an entire post. For anyone familiar with CSS that might be reading this, please take a look at how HBO has implemented its website layout and let me know if you’ve ever seen anything like it. I’ve heard of the fine line that exists between genius and insane, and I think the HBO NOW website’s CSS might be one of those lines.
To summarize, it made watching videos from HBO NOW in fullscreen near impossible on TwoSeven. It took a while, but we came up with a fix for it and pushed it out in this version.

Built on open-source

As of this version, the TwoSeven extension is built fully on open-source libraries! Although the extension itself isn’t open sourced, all proprietary pieces have been.
This doesn’t really impact the end-user in any way, but it should be a lot easier for us to guarantee security. This was a pretty big change in terms of the code and as a result, we decided to bump up the version to v2.1.0

v2.0.9

  • Updated Amazon & Crunchyroll to reflect recent changes
  • Extension version now shown under menu
  • Fixed minor bugs in Netflix
  • Added support for HBO NOW
  • Now works with a larger number of third-party websites
  • Fixed bug where loading video from external website would do nothing

Summary

Amazon

Amazon has recently begun using Service Workers which doesn’t interact well with WebExtensions (issue).
In short, the TwoSeven extension could no longer embed Amazon within twoseven.xyz due to requests made by the service worker bypassing WebExtension’s WebRequest APIs. As a result, header x-frame-options: sameorigin would prevent the browser from embedding Amazon. To counteract this, the extension now removes the service worker every time you visit amazon.com. Since the extension really only runs on desktop or laptop computers, this shouldn’t negatively impact you in any way.

Crunchyroll

Crunchyroll has significantly altered their internal APIs which are used to access subtitles. The good news is that the process is now incredibly simple compared to what we had to do to fetch subtitles. All of the necessary information is contained within the episode page itself and with two simple pattern matches, we have all the information we need to allow you and your friends to watch Crunchyroll content together.

HBO NOW

TwoSeven now supports watching content from HBO NOW together! We’ve always wanted to support HBO NOW since watching Game of Thrones together was such a big reason we built this website in the first place, but this was impossible until recently as HBO was still using Flash. Yes, the very same Flash that you keep hearing about every now and then because of the security nightmare that it is. Thankfully, with Adobe stopping support for Flash, HBO decided to move to native HTML5 videos which TwoSeven can support!

v2.0.8

  • Fixed bug in loading videos from external websites

v2.0.6/7

  • Security enhancements

v2.0.5

  • Fixed Netflix keyboard controls (space to play/pause, etc)
  • Changed URL patterns

Summary

twoseven.xyz now uses history mode instead of hash mode. In other words, URLs of the form twoseven.xyz/<room> instead of twoseven.xyz/#/<room>. The extension has been updated to reflect this change.

v2.0.3

  • Added support for interactive videos (Example)
  • You can now view your friend’s webcam video even while watching videos in fullscreen

v2.0.2

  • Updated extension to work with new Netflix UI

v2.0.1

  • Fixed bug that prevented YouTube from working

v2.0.0

From this version, we will be posting a longer description of each change where applicable. The summary will still be available here but will be accompanied by a longer post describing the features and changes. A detailed description of all the changes in this version can be found here.

Summary

v1.4.1.2

  • Updated to work after Crunchyroll website changes

v1.4.1.1

  • Fixed an error while loading Netflix which would cause slowdown

v1.4.1

  • Fixed a minor URL bug
  • Fixed FAQ URL

v1.4.0

  • Enabled watching crunchyroll together
  • Added options to watch together in contextmenu entries
    for YouTube, Vimeo and Crunchyroll

v1.3.54

  • Fixed extension interfering with netflix.com

v1.3.53

  • Fixed a sporadic bug in Netflix synchronization

v1.3.52

  • Fixed race conditions and other small improvements

v1.3.51

  • Improved iframe experience on certain websites

v1.3.5

  • Fixed minor issue with chrome warning about extension

v1.3.4

  • Improved performance with significant code cleanup
  • Updated extension to match new VueJS-based layout

v1.3.3

  • Improved overall functionality and Netflix handling

v1.3.1

  • Minor bugfixes

v1.3.0

  • Greatly reduced extension latency

v1.2.91

  • Fixed packaging issues

v1.2.9

  • Updated extension to reflect recent Netflix changes
  • Restructured files in extension

v1.2.8

  • Removed JQuery dependency
  • Improved performance by optimizing some hot code paths

v1.2.7

  • Updated Netflix extension to work with latest Netflix updates
  • The extension no longer pulls files from our server. Instead, scripts are
    updated on-the-fly.

v1.2.6

  • Added logging

v1.2.5

  • Minor change fixing broken extension packaging

v1.2.4

  • Fixed Netflix seeking to random locations in the video
  • Improved new-client logic for Netflix