Running Firefox on Selenium requires the Geckodriver, since the Gecko Engine isn't really compatible with the JSON Wire Protocol. So the Geckodriver is running a HTTP-Server by serving all the commands between Selenium and the browser by translating with Marionette. Can a Website actually tell, that the current Browser is controlled by Marionette? I've seen that you can access a "Marionette Page" by using localhost and the Marionette Port in config, when Firefox is automated. Also Firefox shows that robot, that tells the user, the current Browser is automated. So some kind of automation detection is build in, but can it be accessed?
Edit: Yeah it's true, that different Browsers expose different things, but the javascript detection doesn't work anymore. It was able detect Selenium RC, because to work it had to inject some Javascript Code into the Browser. Since Selenium 2.0, the Webdriver communicates directly with the Browser, so simple Javascript-Variable-Detection won't work. Also i found and explained some of those exposes, but can a website actually access them somehow? As another difference of exposing: Chrome sets the navigator.webdriver attribute to true, but firefox doesn't.