It seems WebKit doesn't allow a subframe with the sandbox flag "allow-top-navigation-by-user-activation" to navigate the top frame away even with user activation. The problem seems to occur only with XHR. Async calls through setTimeout works fine. We (Chrome) have an internal client blocked by this behavior. Repro: http://mustaqahmed.github.io/web/top-nav-by-user-activation/
<rdar://problem/59620231>