private void updateSiteIdentity(Tab tab, EnumSet<UpdateFlags> flags) { final SiteIdentity siteIdentity; if (tab == null) { siteIdentity = null; } else { siteIdentity = tab.getSiteIdentity(); } mSiteIdentityPopup.setSiteIdentity(siteIdentity); final SecurityMode securityMode; final MixedMode activeMixedMode; final MixedMode displayMixedMode; final TrackingMode trackingMode; if (siteIdentity == null) { securityMode = SecurityMode.UNKNOWN; activeMixedMode = MixedMode.UNKNOWN; displayMixedMode = MixedMode.UNKNOWN; trackingMode = TrackingMode.UNKNOWN; } else { securityMode = siteIdentity.getSecurityMode(); activeMixedMode = siteIdentity.getMixedModeActive(); displayMixedMode = siteIdentity.getMixedModeDisplay(); trackingMode = siteIdentity.getTrackingMode(); } // This is a bit tricky, but we have one icon and three potential indicators. // Default to the identity level int imageLevel = securityMode.ordinal(); // Check to see if any protection was overridden first if (trackingMode == TrackingMode.TRACKING_CONTENT_LOADED) { imageLevel = LEVEL_SHIELD_DISABLED; } else if (trackingMode == TrackingMode.TRACKING_CONTENT_BLOCKED) { imageLevel = LEVEL_SHIELD_ENABLED; } else if (activeMixedMode == MixedMode.MIXED_CONTENT_LOADED) { imageLevel = LEVEL_LOCK_DISABLED; } else if (displayMixedMode == MixedMode.MIXED_CONTENT_LOADED) { imageLevel = LEVEL_WARNING_MINOR; } if (mSecurityImageLevel != imageLevel) { mSecurityImageLevel = imageLevel; mSiteSecurity.setImageLevel(mSecurityImageLevel); updatePageActions(flags); } mTrackingProtectionEnabled = trackingMode == TrackingMode.TRACKING_CONTENT_BLOCKED; }