Is there any way to detect that the user is coming with Blink or Webkit powered Chrome engine? By the way i'm also curious about if i can check somewhere if my browser is with blink or not.
Blink is Chrome 28+.
So if you are already detecting Chrome via its useragent you could just check: version >= 28
Though not fully reliable if the user agent is spoofed, obviously.
For an additional more reliable way you can check the chrome.notifications API status which became available/stable with Blink/Chrome28+ (on ChromeOS, Windows, and Mac and then Android 4.4)
See this answer for ref, and this documentation for details.
UPDATE: That previous idea was complicated and unreliable. I removed it.
I ran into a feature that was added with Chrome 28 (namely CSS.supports) which is easier and cleaner:
if ((window.chrome || (window.Intl && Intl.v8BreakIterator)) && 'CSS' in window){
//Blink Engine
}
UPDATE 2: Added an extra check because some Blink browsers like Opera Mobile or Maxthon lack the window.chrome
object. A v8 feature check is necessary to cover all current Blink engine browsers as of Dec 2014.
And for completeness since you asked for a server side programming language too:
On the server side or even for JS eventually, just look for WebKit/537.36
. Only a Blink user agent will have that Webkit version. No official Safari version was released with that build number as far as I can tell. However, watch for the IEMobile
, Trident
or Edge
tokens since Windows IE now imitate Android and Blink.