Chrome が余計な変更をしたので data: から始まる URL はユーザが直接入力しない限りトップフレームで開けません
かと言って URL.createObjectURL を使って あとからメモリ解放もするというのはあまりしたくないです

トップフレームじゃなければ開けるので全画面で iframe を使うようにすると見た目上はほぼ同じにできます
実際にトップフレームで開く用の HTML を用意します

<!doctype html>

<iframe></iframe>

<style>
body {
margin: 0;
}
iframe {
border: 0;
padding: 0;
margin: 0;
width: 100vw;
height: 100vh;
display: block;
}
</style>

<script>
const url = new URL(location).searchParams.get("url")
if (url) document.querySelector("iframe").src = url
</script>

このページのクエリパラメータで 「?url=data:~」 を指定します
単純に URL を iframe で開くので iframe で開くことを禁止してるページでなければ https の URL でも使えます

DataURI は長くなりがちなので URL の長さの限界を超えたいなら window.open した返り値の window オブジェクトを保持して

const subwin = window.open("/preview.html")
subwin.contentDocument.querySelector("iframe").src = url