If anyone reached here - the answers are out-of-date. Chromium (on next release) now supports headless mode. no need to work hard.
You can read more here:
Here is an example from the command line
--headless \ # Runs Chrome in headless mode.
--disable-gpu \ # Temporarily needed for now.
https://www.chromestatus.com # URL to open. Defaults to about:blank.
And you'll simply trigger protractor with capabilities for chrome:
Here is the configuration I am using
Update - new versions of chrome does not need binary property
In my IDE I found I can remove the binary property as a new edition of chrome is offered on stable branches
My protractor configuration is
args: [ '--headless', '--disable-gpu', '--no-sandbox', '--window-size=1920x1200' ]
And it works smoothly for weeks now. highly recommended.
Update - how to do this in karma is super easy
Using headless chrome in karma is super easy:
it ought to work with the chrome loader and everything. more info