Gecko (Firefox Nightly 37.0a1 (2015-01-04)) leaks shadowed elements to document.activeElement (though not through FocusEvent) and it does not implement ShadowRoot.activeElement. See Shadow DOM 6.3 Active Element

Expected values are document.activeElement = '#first-shadow-host' and firstShadowRoot.activeElement = '#second-shadow-host'.

Note: I peg this bug to be the cause for Gecko dispatching FocusEvents if the focus stayed within the same ShadowRoot and there shouldn't be a change to document.activeElement. At least I consider this a bug per Shadow DOM 5.8 Event Dispatch: If the relatedTarget and target are the same for a given node, its the event listeners must not be invoked.

In Firefox the setting dom.webcomponents.enabled needs to be set to true to enable ShadowDOM support.