How to open an EPUB inside of a chrome extension?

I am trying to open an epub file in my chrome extension page (‘dist/epub-viewer.html’) but chrome keeps trying to download the epub instead. I am using manifest v3.

function isEpubUrl(url) {
  return url.toLowerCase().endsWith('.epub');
}

function isEpubViewerUrl(url) {
  const viewerUrl = chrome.runtime.getURL('dist/epub-viewer.html');
  return url.startsWith(viewerUrl);
}

function openEpubInViewer(tabId, epubUrl) {
  const viewerUrl = chrome.runtime.getURL('dist/epub-viewer.html') + '?file=' + encodeURIComponent(epubUrl);
  chrome.tabs.update(tabId, { url: viewerUrl });
}

chrome.tabs.onUpdated.addListener(function(tabId, changeInfo, tab) {
  if (changeInfo.url && isEpubUrl(changeInfo.url) && !isEpubViewerUrl(tab.url)) {
    openEpubInViewer(tabId, changeInfo.url);
  }
});

Is there any way to do this without having to create an additional page where the user can open their EPUB? I have similar code for PDFs which works fine, but for EPUBs chrome keeps trying to download them.