The issue here is that delegating navigations to the browser behaves differently depending on whether the window has an opener or not (I'm not sure why). If a window doesn't have an opener, we get all top-level navigations. If it does have an opener, then we only get cross-domain navigations. When calling window.open() without support for creating new windows, blink sets window.opener on the top-level window (like it would for a newly created window) before calling in to content.
The issue here is that delegating navigations to the browser behaves differently depending on whether the window has an opener or not (I'm not sure why). If a window doesn't have an opener, we get all top-level navigations. If it does have an opener, then we only get cross-domain navigations. When calling window.open() without support for creating new windows, blink sets window.opener on the top-level window (like it would for a newly created window) before calling in to content.