Newer Jupyter versions use Tornado 6 and the old code wasn't compatible to that Tornado version.
Newer Chrome versions (and potentially other browser) check the content type of HTTP responses and the server extension would respond with two (potentially conflicting) Content-Type headers which might lead to resources not being loaded properly.
This fixes two problems: