// Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file // for details. All rights reserved. Use of this source code is governed by a // BSD-style license that can be found in the LICENSE file. part of html_common; /** * Utils for device detection. */ class Device { /** * Gets the browser's user agent. Using this function allows tests to inject * the user agent. * Returns the user agent. */ static String get userAgent => window.navigator.userAgent; /** * Determines if the current device is running Opera. */ static final bool isOpera = userAgent.contains("Opera", 0); /** * Determines if the current device is running Internet Explorer. */ static final bool isIE = !isOpera && userAgent.contains("Trident/", 0); /** * Determines if the current device is running Firefox. */ static final bool isFirefox = userAgent.contains("Firefox", 0); /** * Determines if the current device is running WebKit. */ static final bool isWebKit = !isOpera && userAgent.contains("WebKit", 0); /** * Gets the CSS property prefix for the current platform. */ static final String cssPrefix = '-${propertyPrefix}-'; /** * Prefix as used for JS property names. */ static final String propertyPrefix = isFirefox ? 'moz' : (isIE ? 'ms' : (isOpera ? 'o' : 'webkit')); /** * Checks to see if the event class is supported by the current platform. */ static bool isEventTypeSupported(String eventType) { // Browsers throw for unsupported event names. try { var e = new Event.eventType(eventType, ''); return e is Event; } catch (_) {} return false; } }