Skip to content

Commit 71c9755

Browse files
committed
Fix PWA and add Full PWA Support
1 parent e2c86a9 commit 71c9755

7 files changed

Lines changed: 184 additions & 11 deletions

File tree

404.html

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><link rel="icon" href="favicon.ico" type="image/x-icon"><link rel="icon" type="image/png" sizes="16x16" href="icons/16.png"><link rel="icon" type="image/png" sizes="32x32" href="icons/32.png"><link rel="icon" type="image/png" sizes="48x48" href="icons/48.png"><link rel="icon" type="image/png" sizes="64x64" href="icons/64.png"><title>404 - Page Not Found</title><link href="https://fonts.googleapis.com/css2?family=Roboto:wght@300;400;500;700&display=swap" rel="stylesheet"><style>:root{ --primary: #f44234; --on-primary: #ffffff; --background: #140c0b; --on-background: #f1dfdd; --surface: #1c1110; --surface-container: #2d1f1e; --surface-container-high: #382928; --outline: #a08c8a; --outline-variant: #534341; --radius-large: 16px; --radius-xl: 28px; --shadow: 0 2px 6px 2px rgba(0, 0, 0, .15), 0 1px 2px 0 rgba(0, 0, 0, .3);} *{ margin: 0; padding: 0; box-sizing: border-box; font-family: 'Roboto', sans-serif;} body{ min-height: 100vh; background: var(--background); color: var(--on-background); display: flex; flex-direction: column;} .topbar{ height: 64px; background: var(--surface); border-bottom: 1px solid var(--outline-variant); display: flex; align-items: center; padding: 0 24px;} .brand{ display: flex; align-items: center; gap: 12px;} .brand-icon{ font-size: 28px; color: var(--primary);} .brand-title{ font-size: 20px; font-weight: 500;} .main{ flex: 1; display: flex; justify-content: center; align-items: center; padding: 24px;} .card{ width: 100%; max-width: 650px; background: var(--surface-container); border-radius: var(--radius-xl); box-shadow: var(--shadow); overflow: hidden;} .card-top{ text-align: center; padding: 40px 32px; background: var(--surface-container-high); border-bottom: 1px solid var(--outline-variant);} .error-code{ font-size: 110px; font-weight: 700; color: var(--primary); line-height: 1;} .title{ font-size: 30px; font-weight: 500; margin-top: 12px;} .content{ padding: 32px; text-align: center;} .description{ color: var(--outline); line-height: 1.7; margin-bottom: 24px;} .url-box{ background: var(--surface-container-high); border: 1px solid var(--outline-variant); border-radius: var(--radius-large); padding: 16px; margin-bottom: 28px;} .url-label{ font-size: 13px; color: var(--outline); margin-bottom: 6px;} .url-value{ color: var(--primary); font-weight: 500; word-break: break-word;} .actions{ display: flex; gap: 12px; justify-content: center; flex-wrap: wrap;} .btn{ border: none; cursor: pointer; height: 48px; padding: 0 24px; border-radius: 999px; font-weight: 500; font-size: 14px; transition: .2s;} .btn-primary{ background: var(--primary); color: var(--on-primary);} .btn-primary:hover{ opacity: .92;} .btn-secondary{ background: transparent; color: var(--primary); border: 1px solid var(--outline);} .btn-secondary:hover{ background: rgba(244, 66, 52, .08);} .footer{ text-align: center; padding: 20px; color: var(--outline); font-size: 13px;} @media(max-width:600px){ .error-code{ font-size: 82px;} .title{ font-size: 24px;} .card-top, .content{ padding: 24px;} .actions{ flex-direction: column;} .btn{ width: 100%;}} </style></head><body><header class="topbar"><div class="brand"><img class="brand-icon" src="icons/48.png"/><div class="brand-title">Extract CRX</div></div></header><main class="main"><section class="card"><div class="card-top"><div class="error-code">404</div><h1 class="title">Page Not Found</h1></div><div class="content"><p class="description">The page you're looking for doesn't exist, may have been moved, renamed, or is temporarily unavailable. </p><div class="url-box"><div class="url-label">Requested Resource</div><div class="url-value" id="current-url"></div></div><div class="actions"><button class="btn btn-primary" onclick="window.location.href='./'">Go Home </button><button class="btn btn-secondary" onclick="history.back()">Go Back </button></div></div></section></main><footer class="footer">Error 404 • Resource Not Found </footer><script>document.getElementById('current-url').textContent=window.location.pathname || "/"; </script></body></html>

index.html

Lines changed: 58 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,19 +5,74 @@
55
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
66
<meta name="viewport" content="width=device-width, initial-scale=1.0">
77
<meta name="description" content="Extract CRX - Download and inspect source code for browser extensions. Supports Chrome, Firefox, Opera, and Edge.">
8+
9+
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
10+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
11+
12+
<meta name="title" content="Extract CRX">
13+
<meta name="description" content="Extract CRX - Download and inspect source code for browser extensions. Supports Chrome, Firefox, Opera, and Edge.">
814
<meta name="keywords" content="download CRX, download XPI, crx extractor, xpi extractor, unpack crx, crx to zip, xpi to zip, view extension code">
15+
<meta name="author" content="Pro Bandey">
16+
<meta name="robots" content="index, follow">
17+
<meta name="language" content="English">
18+
<meta name="theme-color" content="#f44234">
19+
20+
<meta property="og:type" content="website">
21+
<meta property="og:url" content="https://MainRoute-Core.github.io/Extract-CRX/">
22+
<meta property="og:title" content="Extract CRX">
23+
<meta property="og:description" content="Extract CRX - Download and inspect source code for browser extensions. Supports Chrome, Firefox, Opera, and Edge.">
24+
<meta property="og:image" content="./icons/social-1.png">
25+
<meta property="og:site_name" content="Extract CRX">
26+
27+
<meta name="twitter:card" content="summary_large_image">
28+
<meta name="twitter:url" content="https://MainRoute-Core.github.io/Extract-CRX/">
29+
<meta name="twitter:title" content="Extract CRX">
30+
<meta name="twitter:description" content="Extract CRX - Download and inspect source code for browser extensions. Supports Chrome, Firefox, Opera, and Edge.">
31+
<meta name="twitter:image" content="./icons/social-1.png">
32+
33+
<meta name="application-name" content="Extract CRX">
34+
<meta name="apple-mobile-web-app-title" content="Extract CRX">
35+
<meta name="apple-mobile-web-app-capable" content="yes">
36+
<meta name="apple-mobile-web-app-status-bar-style" content="default">
37+
38+
39+
<script type="application/ld+json">
40+
{
41+
"@context": "https://schema.org",
42+
"@type": "SoftwareApplication",
43+
"applicationCategory": "WebApplication",
44+
"operatingSystem": "Web Browser",
45+
"name": "Extract CRX",
46+
"url": "https://MainRoute-Core.github.io/Extract-CRX/",
47+
"description": "Extract CRX - Download and inspect source code for browser extensions. Supports Chrome, Firefox, Opera, and Edge..",
48+
"author": {
49+
"@type": "Person",
50+
"name": "Pro Bandey"
51+
},
52+
"publisher": {
53+
"@type": "Person",
54+
"name": "PulisherName"
55+
}
56+
}
57+
</script>
958

1059
<script>
11-
if ('serviceWorker' in navigator) {
12-
window.addEventListener('load', () => { navigator.serviceWorker.register('sw.js').catch(() => {}); });
60+
if ('serviceWorker' in navigator) {
61+
window.addEventListener('load', () => {
62+
navigator.serviceWorker.register('./sw.js').then(reg => { console.log('Core Service Worker Active. Scope:', reg.scope); }).catch(err => { console.error('× Service Worker Registration Failed:', err); });
63+
});
1364
}
1465
</script>
1566
<link rel="manifest" href="manifest.webmanifest">
16-
<link rel="canonical" href="https://mainroute-core.github.io/Extract-CRX">
67+
<link rel="canonical" href="https://MainRoute-Core.github.io/Extract-CRX/">
1768
<link rel="shortcut icon" type="image/x-icon" sizes="any" href="favicon.ico">
1869
<link rel="icon" type="image/png" sizes="16x16" href="icons/16.png">
1970
<link rel="icon" type="image/png" sizes="32x32" href="icons/32.png">
71+
<link rel="icon" type="image/png" sizes="48x48" href="icons/48.png">
72+
<link rel="icon" type="image/png" sizes="64x64" href="icons/64.png">
73+
<link rel="icon" type="image/png" sizes="144x144" href="icons/144.png">
2074
<link rel="icon" type="image/png" sizes="192x192" href="icons/192.png">
75+
<link rel="icon" type="image/png" sizes="512x512" href="icons/512.png">
2176
<link rel="apple-touch-icon" type="image/png" sizes="180x180" href="icons/apple-touch-icon.png">
2277

2378
<title>Extract CRX - Extension Downloader & Inspector</title>

manifest.webmanifest

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -90,14 +90,14 @@
9090

9191
"screenshots": [
9292
{
93-
"src": "./src/social.png",
93+
"src": "./src/social-.png",
9494
"form_factor": "wide",
9595
"sizes": "1440x810",
9696
"type": "image/png",
9797
"description": "ScreenShot Of Site's Upper Part."
9898
},
9999
{
100-
"src": "./src/social_2.png",
100+
"src": "./src/social_.png",
101101
"sizes": "720x1480",
102102
"type": "image/png",
103103
"description": "ScreenShot Of Site's Upper Part."

offline.html

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><link rel="shortcut icon" href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAACXBIWXMAABuvAAAbrwFeGpEcAAAFCUlEQVRo3u2YX2iVdRjHP+c4tS1aja21WMJgy6B4dSKS6OS9SFjeJE2XUCGRYoFRiTCyqLGyGQPbasHSauEqCSsXXa2LLn505U0U5ypKSNd0f/yzrePmttzp5nvi4fU9x52zswvhfWBs+/3e53m+z+/P83yfH0QSSSSRRBLJbSyxfBUTvr8SqAZSwLDn3HSO+sVAlTAMec7N5IMjnif4EmAHcAL4DNiV8P14DvpxYJd0TwA7ZDNnKcoD/ApgO9AKrNYOlAPfAskFmikBDgCedqASSCV8/zvPudkl24GE7y8H9gLvC3yhZLVs7pGPwgegM78NeB24T8MpYBDoAaZy8DslnUHZQDbfALbJV+EuccL3i4BG4F1grZkaAzqATz3nxgM6MSANZMZzLhWYv0e72QLca6Z+UyA/es79u+gdSPj+MqAZ6ALWmJW/ArwGdIeALwZ2A2f0s1tj/4t0uoFDspUOcI18Nct3/gFo5X2gDag1OzYKfAB8lSH9VQHP6ZJ6+rsq+JF0v5StUXMqauXTF4bcA1D0m4HDQJ0BPw4cB3qy5O4SoEI6Mf0dmiZlo0c2x00QdfK9OdtOxLPk6UatzEYDPimjHZ5zY4VKQbLVIdtJE8RGYWjMVGfiGcCvB94xeRpgAvgEOOY5l6TAIpvH5GPCBOEJy/qwIOIhmWOdVqLezCeBPuDoUoAPBHFUvpIGY70wrRPGmwPQxBZlhq1mbkrb2Oo5N7TU5Ew+WuVzyuDcKmxbbBBFBvxDinKDAX8N+Bro9Jy7moVapAvbyK2owEK+95y7mvD9TuB+caY7hWmDMO5L+P7vnnOpNNAy4CCwyfCjGaAfOOI5d/kWvOhz/TRlq6KaazLfb5eNsJ24DLQLw4xZ8E3CWmbJXLnOvk1XF4FvgPNZFnQV8DLQoP/XimK7QJWPAcXASyp+FRpfCfwCnM1g/7xIYgNQo7FlwloOXIkbSvAzMGeUq8UYG4IXx8g8MGuqaIWoQbMAp6VYYy0GfEq68xl2KybgrwpLWuaEdcxe4gmxwQHghsaWy0AH8HCGIIaBU8CIGasEXgg4rdZYpRkbke5wBvCPyHeDsCBsA8I6cROZS/h+tdjms0CpmfpVBOunYPXVGX4S6DQdVjZJCfQBoD94iXVPHhNxrDdTk6Id7TYbBgvDBUXday4OKiZtorqxwGWbBU4DR4Bz5jhlAn9O354OAR8TZW+TT0xC6RW2C1nptIxU6uOngDvM9v0JPA+c8Zy7EdC7Wwz0kNJfmFwU+D7PuYkQ7vWogNaZhHJdR60FGA3S8liWlFehbd5nLh7AH8BbwA+ec1MhHVuTilClsZ8S23xFKz8X0mM/AbwNPGimLoledHnOXcqJjUrhQ+AjwL441AJvAjuDLFHA+pW/091Wumtr15mfC1n5nbJZa6am5bs7E/gFdWTqnFqBPcBdJn0OKq8PBDsnHaenNY+AnAw5NkXA45pfZRb0H71YtAWbpXxbylIdpWBOHlJpP+k5Nxlyl9L353pIS1kKPKPsFrTZBRwP2lzUw1bC98uUXg+bFJsC/gLeU188n8O70F5V5RqDY1JH6YtM3CvvVwkZ7FURsZ1TDbA/U8eVpWPbHwA/Ltu9CwWf87uQ59w1pdeDWfhLPnJWNjty7TdyfpnznJtO+P4p8ZgX9bsvj3ehTtWNFcDHwPe5vq8W4nH3AWWkxTzuxoG/833cjSSSSCKJJJLbWv4D8fThDf5hgy4AAAAASUVORK5CYII=" type="image/x-icon"><title>503 - Service Unavailable</title><link href="https://fonts.googleapis.com/css2?family=Roboto:wght@300;400;500;700&display=swap" rel="stylesheet"><style>:root{ --md-sys-color-primary:#f44234; --md-sys-color-on-primary:#ffffff; --md-sys-color-background:#140c0b; --md-sys-color-on-background:#f1dfdd; --md-sys-color-surface:#1c1110; --md-sys-color-surface-container:#2d1f1e; --md-sys-color-surface-container-high:#382928; --md-sys-color-on-surface:#ede0df; --md-sys-color-outline:#a08c8a; --md-sys-color-outline-variant:#534341; --md-shape-corner-small:8px; --md-shape-corner-large:16px; --md-shape-corner-extra-large:28px; --md-elevation-1: 0 1px 3px 1px rgba(0,0,0,.15), 0 1px 2px 0 rgba(0,0,0,.3); --md-elevation-2: 0 2px 6px 2px rgba(0,0,0,.15), 0 1px 2px 0 rgba(0,0,0,.3);} *{ margin:0; padding:0; box-sizing:border-box; font-family:'Roboto',sans-serif;} body{ min-height:100vh; background:var(--md-sys-color-background); color:var(--md-sys-color-on-background); display:flex; flex-direction:column;} .topbar{ height:64px; background:var(--md-sys-color-surface); border-bottom:1px solid var(--md-sys-color-outline-variant); display:flex; align-items:center; padding:0 24px;} .brand{ display:flex; align-items:center; gap:12px;} .brand-icon{ color:var(--md-sys-color-primary); font-size:28px;} .brand-title{ font-size:20px; font-weight:500;} .main{ flex:1; display:flex; justify-content:center; align-items:center; padding:24px;} .error-card{ width:100%; max-width:620px; background:var(--md-sys-color-surface-container); border-radius:var(--md-shape-corner-extra-large); box-shadow:var(--md-elevation-2); overflow:hidden;} .card-header{ padding:32px; text-align:center; background:var(--md-sys-color-surface-container-high); border-bottom:1px solid var(--md-sys-color-outline-variant);} .error-code{ font-size:92px; font-weight:700; line-height:1; color:var(--md-sys-color-primary);} .error-title{ margin-top:12px; font-size:28px; font-weight:500;} .card-body{ padding:32px; text-align:center;} .description{ color:var(--md-sys-color-outline); line-height:1.6; font-size:15px; margin-bottom:28px;} .status-box{ background:var(--md-sys-color-surface-container-high); border:1px solid var(--md-sys-color-outline-variant); border-radius:16px; padding:16px; margin-bottom:28px;} .status-label{ font-size:13px; color:var(--md-sys-color-outline); margin-bottom:6px;} .status-value{ color:var(--md-sys-color-primary); font-weight:600;} .btn{ border:none; outline:none; height:48px; min-width:180px; border-radius:999px; background:var(--md-sys-color-primary); color:var(--md-sys-color-on-primary); font-size:14px; font-weight:500; cursor:pointer; box-shadow:var(--md-elevation-1); transition:.2s;} .btn:hover{ transform:translateY(-1px); opacity:.95;} .footer{ text-align:center; padding:20px; color:var(--md-sys-color-outline); font-size:13px;} @media(max-width:600px){ .error-code{ font-size:72px;} .error-title{ font-size:24px;} .card-header, .card-body{ padding:24px;}}
2+
</style></head><body><header class="topbar"><div class="brand"><img class="brand-icon" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAACXBIWXMAABuvAAAbrwFeGpEcAAAFCUlEQVRo3u2YX2iVdRjHP+c4tS1aja21WMJgy6B4dSKS6OS9SFjeJE2XUCGRYoFRiTCyqLGyGQPbasHSauEqCSsXXa2LLn505U0U5ypKSNd0f/yzrePmttzp5nvi4fU9x52zswvhfWBs+/3e53m+z+/P83yfH0QSSSSRRBLJbSyxfBUTvr8SqAZSwLDn3HSO+sVAlTAMec7N5IMjnif4EmAHcAL4DNiV8P14DvpxYJd0TwA7ZDNnKcoD/ApgO9AKrNYOlAPfAskFmikBDgCedqASSCV8/zvPudkl24GE7y8H9gLvC3yhZLVs7pGPwgegM78NeB24T8MpYBDoAaZy8DslnUHZQDbfALbJV+EuccL3i4BG4F1grZkaAzqATz3nxgM6MSANZMZzLhWYv0e72QLca6Z+UyA/es79u+gdSPj+MqAZ6ALWmJW/ArwGdIeALwZ2A2f0s1tj/4t0uoFDspUOcI18Nct3/gFo5X2gDag1OzYKfAB8lSH9VQHP6ZJ6+rsq+JF0v5StUXMqauXTF4bcA1D0m4HDQJ0BPw4cB3qy5O4SoEI6Mf0dmiZlo0c2x00QdfK9OdtOxLPk6UatzEYDPimjHZ5zY4VKQbLVIdtJE8RGYWjMVGfiGcCvB94xeRpgAvgEOOY5l6TAIpvH5GPCBOEJy/qwIOIhmWOdVqLezCeBPuDoUoAPBHFUvpIGY70wrRPGmwPQxBZlhq1mbkrb2Oo5N7TU5Ew+WuVzyuDcKmxbbBBFBvxDinKDAX8N+Bro9Jy7moVapAvbyK2owEK+95y7mvD9TuB+caY7hWmDMO5L+P7vnnOpNNAy4CCwyfCjGaAfOOI5d/kWvOhz/TRlq6KaazLfb5eNsJ24DLQLw4xZ8E3CWmbJXLnOvk1XF4FvgPNZFnQV8DLQoP/XimK7QJWPAcXASyp+FRpfCfwCnM1g/7xIYgNQo7FlwloOXIkbSvAzMGeUq8UYG4IXx8g8MGuqaIWoQbMAp6VYYy0GfEq68xl2KybgrwpLWuaEdcxe4gmxwQHghsaWy0AH8HCGIIaBU8CIGasEXgg4rdZYpRkbke5wBvCPyHeDsCBsA8I6cROZS/h+tdjms0CpmfpVBOunYPXVGX4S6DQdVjZJCfQBoD94iXVPHhNxrDdTk6Id7TYbBgvDBUXday4OKiZtorqxwGWbBU4DR4Bz5jhlAn9O354OAR8TZW+TT0xC6RW2C1nptIxU6uOngDvM9v0JPA+c8Zy7EdC7Wwz0kNJfmFwU+D7PuYkQ7vWogNaZhHJdR60FGA3S8liWlFehbd5nLh7AH8BbwA+ec1MhHVuTilClsZ8S23xFKz8X0mM/AbwNPGimLoledHnOXcqJjUrhQ+AjwL441AJvAjuDLFHA+pW/091Wumtr15mfC1n5nbJZa6am5bs7E/gFdWTqnFqBPcBdJn0OKq8PBDsnHaenNY+AnAw5NkXA45pfZRb0H71YtAWbpXxbylIdpWBOHlJpP+k5Nxlyl9L353pIS1kKPKPsFrTZBRwP2lzUw1bC98uUXg+bFJsC/gLeU188n8O70F5V5RqDY1JH6YtM3CvvVwkZ7FURsZ1TDbA/U8eVpWPbHwA/Ltu9CwWf87uQ59w1pdeDWfhLPnJWNjty7TdyfpnznJtO+P4p8ZgX9bsvj3ehTtWNFcDHwPe5vq8W4nH3AWWkxTzuxoG/833cjSSSSCKJJJLbWv4D8fThDf5hgy4AAAAASUVORK5CYII="/><div class="brand-title">Extract CRX</div></div></header><main class="main"><div class="error-card"><div class="card-header"><div class="error-code">503</div><div class="error-title">Service Unavailable</div></div><div class="card-body"><p class="description">The server is temporarily unavailable due to maintenance or high traffic. Please try again in a few moments. </p><div class="status-box"><div class="status-label">Current Status</div><div class="status-value">Temporary Outage</div></div><button class="btn" onclick="location.reload()">Retry Connection </button></div></div></main><footer class="footer">Error 503 • Service Unavailable
3+
</footer></body></html>
File renamed without changes.
File renamed without changes.

0 commit comments

Comments
 (0)