Repository navigation
Expand file tree
/
Copy pathindex.html
More file actions
89 lines (85 loc) · 4.5 KB
/
Copy pathindex.html
File metadata and controls
89 lines (85 loc) · 4.5 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
<!DOCTYPE html>
<html>
<head>
<script>
(function () {
try {
var nav = typeof navigator !== 'undefined' ? navigator : null;
var win = typeof window !== 'undefined' ? window : null;
var navProto = (nav && Object.getPrototypeOf(nav)) || (typeof Navigator !== 'undefined' ? Navigator.prototype : null);
var winProto = (win && Object.getPrototypeOf(win)) || (typeof Window !== 'undefined' ? Window.prototype : null);
var neutralize = function (target, prop, val) {
if (!target) return;
try {
var desc = Object.getOwnPropertyDescriptor(target, prop);
if (!desc || !desc.configurable) return;
if (val === undefined) {
delete target[prop];
if (prop in target) {
Object.defineProperty(target, prop, { value: undefined, configurable: true, writable: true, enumerable: false });
}
} else {
Object.defineProperty(target, prop, { get: function () { return val; }, configurable: true, enumerable: true });
}
} catch (e) {}
};
var quotaShim = {
queryUsageAndQuota: function (cb, errCb) {
if (nav && nav.storage && typeof nav.storage.estimate === 'function') {
nav.storage.estimate().then(function (est) { if (cb) cb(est.usage || 0, est.quota || 0); }, errCb);
} else if (cb) {
cb(0, 0);
}
},
requestQuota: function (bytes, cb, errCb) {
if (nav && nav.storage && typeof nav.storage.persist === 'function') {
nav.storage.persist().then(function () { quotaShim.queryUsageAndQuota(function (u, q) { if (cb) cb(q ? Math.min(bytes, q) : bytes); }, errCb); }, errCb);
} else if (cb) {
cb(bytes);
}
}
};
neutralize(navProto, 'webkitPersistentStorage', quotaShim);
neutralize(nav, 'webkitPersistentStorage', quotaShim);
var fledgeProps = [
'joinAdInterestGroup', 'leaveAdInterestGroup', 'updateAdInterestGroups',
'clearOriginJoinedAdInterestGroups', 'runAdAuction', 'getInterestGroupAdAuctionData',
'canLoadAdAuctionFencedFrame', 'createAuctionNonce', 'deprecatedURNToURL',
'deprecatedReplaceInURN', 'adAuctionComponents', 'protectedAudience'
];
for (var i = 0; i < fledgeProps.length; i++) {
neutralize(navProto, fledgeProps[i], undefined);
neutralize(nav, fledgeProps[i], undefined);
}
neutralize(winProto, 'sharedStorage', undefined);
neutralize(win, 'sharedStorage', undefined);
} catch (e) {}
})();
</script>
<title>%APP_TITLE%</title>
<link rel="icon" type="image/png" href="%APP_FAVICON%">
<link rel="manifest" href="manifest.webmanifest" crossorigin="use-credentials">
<meta name="theme-color" content="#000000">
<meta name="mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-status-bar-style" content="black">
<meta name="apple-mobile-web-app-title" content="%APP_SHORT_NAME%">
<link rel="apple-touch-icon" href="apple-touch-icon.png">
<meta name="viewport" content="user-scalable=no, width=device-width, initial-scale=1, maximum-scale=1, interactive-widget=resizes-content, viewport-fit=cover">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate"/>
<meta http-equiv="Pragma" content="no-cache"/>
<meta http-equiv="Expires" content="0"/>
<meta name="description" property="og:description"
content="%APP_DESCRIPTION%">
<script type="module" src="/src/entry.js"></script>
</head>
<body>
<div id="cmenuReact"></div>
<div id="TermWindow" style="display:none">
<input id="t" type="text" autocomplete="off" inputmode="none" virtualkeyboardpolicy="manual" tabindex="-1" style="box-sizing:content-box; color:transparent; background:transparent; border:none; width:1px; height:1px; position:absolute; left:0px; top:0px; z-index:13; resize:none; font-family:inherit !important; font-size:16px; caret-color:transparent; opacity:0; pointer-events:none;"/>
<div id="cursor" class="terminal_display">_</div>
</div> <!--TermWindow end-->
<div id="reactAlert"></div>
</body>
</html>