Add fallback for missing error.html
This commit is contained in:
parent
59b378e29a
commit
004b0dc911
@ -31,6 +31,49 @@ from qutebrowser.utils import utils, urlutils, log
|
|||||||
|
|
||||||
from PyQt5.QtCore import QUrl
|
from PyQt5.QtCore import QUrl
|
||||||
|
|
||||||
|
html_fallback = '''<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<title>{{ title }}</title>
|
||||||
|
{% if icon %}
|
||||||
|
<link rel="icon" type="image/png" href="{{ icon }}">
|
||||||
|
{% endif %}
|
||||||
|
<style type="text/css">
|
||||||
|
{% block style %}
|
||||||
|
body {
|
||||||
|
background-color: #fff;
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
{% endblock %}
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id="error-container">
|
||||||
|
<table>
|
||||||
|
<tr>
|
||||||
|
<td style="width: 10%; vertical-align: top;">
|
||||||
|
<img style="width: 100%; display: block; max-width: 256px;" src="{{ data_url("img/broken_qutebrowser_logo.png") }}" />
|
||||||
|
</td>
|
||||||
|
<td style="padding-left: 40px;">
|
||||||
|
<p><span style="font-size:120%;color:red">The error.html template could not be found!<br>Please check your qutebrowser installation</span><br>'''
|
||||||
|
html_fallback2 = '''</p>
|
||||||
|
<h1>Unable to load page</h1>
|
||||||
|
Error while opening {{ url }}: <br>
|
||||||
|
<p id="error-message-text" style="color: #a31a1a;">{{ error }}</p><br><br>
|
||||||
|
|
||||||
|
<form name="bl">
|
||||||
|
<input type="button" value="Try again" onclick="javascript:location.reload();" />
|
||||||
|
</form>
|
||||||
|
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
|
'''
|
||||||
|
|
||||||
class Loader(jinja2.BaseLoader):
|
class Loader(jinja2.BaseLoader):
|
||||||
|
|
||||||
@ -47,8 +90,8 @@ class Loader(jinja2.BaseLoader):
|
|||||||
path = os.path.join(self._subdir, template)
|
path = os.path.join(self._subdir, template)
|
||||||
try:
|
try:
|
||||||
source = utils.read_file(path)
|
source = utils.read_file(path)
|
||||||
except OSError:
|
except OSError as e:
|
||||||
raise jinja2.TemplateNotFound(template)
|
source = html_fallback + str(e) + html_fallback2;
|
||||||
# Currently we don't implement auto-reloading, so we always return True
|
# Currently we don't implement auto-reloading, so we always return True
|
||||||
# for up-to-date.
|
# for up-to-date.
|
||||||
return source, path, lambda: True
|
return source, path, lambda: True
|
||||||
|
Loading…
Reference in New Issue
Block a user