Files

84 lines
3.5 KiB
HTML

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Local Site — Home</title>
<link rel="stylesheet" href="assets/site.css">
<link rel="icon" href="assets/favicon.svg">
</head>
<body>
<header>
<h1>Local Site — Home</h1>
<nav>
<a href="index.html">Home</a>
<a href="about.html">About</a>
<a href="contact.html">Contact</a>
<a href="gallery.html">Gallery</a>
<a href="data.html">Data</a>
<a href="subdir/page.html">Subdir Page</a>
<a href="subdir/deep/deeper/deepest.html">Deep Link</a>
<a href="404.html">Missing Page</a>
</nav>
</header>
<main>
<p>This is a multipage website loaded directly from the local filesystem
(no web server). It is designed to exercise edge cases for local-file
browsing in sovereign_browser.</p>
<h2>Edge cases covered</h2>
<ul>
<li>Relative links between pages in the same directory.</li>
<li>Links into subdirectories and back out with <code>../</code>.</li>
<li>Deeply nested paths (3 levels deep).</li>
<li>External stylesheets and images loaded via relative paths.</li>
<li>An SVG favicon.</li>
<li>A page that fetches a local JSON file via <code>fetch()</code>.</li>
<li>A page that uses <code>XMLHttpRequest</code> for a local file.</li>
<li>A page with an inline iframe loading another local page.</li>
<li>A page with a form that POSTs to another local page.</li>
<li>A page that uses <code>window.open()</code> to open another local page.</li>
<li>A page with a hash fragment link and <code>history.pushState</code>.</li>
<li>A page that reads a local file via an external script tag.</li>
<li>A page with a video and audio source.</li>
<li>A page that uses <code>localStorage</code> and <code>sessionStorage</code>.</li>
<li>A page with a <code>data:</code> URI and a <code>blob:</code> URI.</li>
<li>A link to a missing page (404 / load-failure handling).</li>
<li>A link with a query string (<code>?foo=bar</code>) on a local file.</li>
<li>A link with a URL-encoded space in the filename.</li>
</ul>
<h2>Quick links</h2>
<ul>
<li><a href="data.html">Data page (fetch + XHR + JSON)</a></li>
<li><a href="media.html">Media page (video/audio/image)</a></li>
<li><a href="iframe.html">Iframe page</a></li>
<li><a href="form.html">Form page (GET + POST)</a></li>
<li><a href="storage.html">Storage page (localStorage/sessionStorage)</a></li>
<li><a href="popup.html">Popup page (window.open)</a></li>
<li><a href="history.html">History page (pushState/replaceState)</a></li>
<li><a href="encoded%20name.html">URL-encoded filename page</a></li>
<li><a href="query.html?foo=bar&baz=qux">Query-string page</a></li>
<li><a href="hash.html#section-2">Hash-fragment page</a></li>
<li><a href="scripts/external.html">External script page</a></li>
<li><a href="advanced.html">Advanced JS page (ES Modules, Workers, WASM, cross-origin fetch)</a></li>
<li><a href="storage-test.html">Automated storage test (all types)</a></li>
</ul>
<h2>Inline image test</h2>
<p>An image loaded from a relative path:</p>
<img src="assets/logo.svg" alt="logo" width="120">
<h2>Inline script test</h2>
<p id="inline-script-out">Inline script did not run.</p>
<script src="assets/home.js"></script>
</main>
<footer>
<p><small>Loaded from: <span id="location"></span></small></p>
</footer>
<script>document.getElementById('location').textContent = window.location.href;</script>
</body>
</html>