protected Map<String, Object> parse() {
AuraContext context = Aura.getContextService().getCurrentContext();
Map<String, Object> m = Maps.newHashMapWithExpectedSize(32);
String ua = context != null ? context.getClient().getUserAgent() : null;
BrowserInfo b = new BrowserInfo(ua);
m.put(IS_TABLET, b.isTablet());
m.put(IS_PHONE, b.isPhone());
m.put(IS_ANDROID, b.isAndroid());
m.put(FORM_FACTOR, b.getFormFactor());
m.put(IS_IPHONE, b.isIPhone());
m.put(IS_IPAD, b.isIPad());
m.put(IS_IOS, b.isIOS());
m.put(IS_IE6, b.isIE6());
m.put(IS_IE7, b.isIE7());
m.put(IS_IE8, b.isIE8());
m.put(IS_IE9, b.isIE9());
m.put(IS_IE10, b.isIE10());
m.put(IS_IE11, b.isIE11());
m.put(IS_WEBKIT, b.isWebkit());
m.put(IS_FIREFOX, b.isFirefox());
m.put(IS_WINDOWS_PHONE, b.isWindowsPhone());
return m;
}