Prechádzať zdrojové kódy

Pad error pages to 513 bytes so IE actually uses them

The iframe blanking JavaScript won't run if our error page isn't used in the first place.
RichardG867 5 rokov pred
rodič
commit
e7571d44bd
1 zmenil súbory, kde vykonal 9 pridanie a 0 odobranie
  1. 9 0
      waybackproxy.py

+ 9 - 0
waybackproxy.py

@@ -291,6 +291,15 @@ class Handler(socketserver.BaseRequestHandler):
 		errorpage += '</p><hr><i>'
 		errorpage += self.signature()
 		errorpage += '</i></body></html>'
+
+		# add padding for IE
+		if len(errorpage) <= 512:
+			padding = '\n<!-- This comment pads the HTML so Internet Explorer displays this error page instead of its own. '
+			remainder = 510 - len(errorpage) - len(padding)
+			if remainder > 0:
+				padding += ' ' * remainder
+			padding += '-->'
+			errorpage += padding
 		
 		# send error page and stop
 		self.request.sendall('{0} {1} {2}\r\nContent-Type: text/html\r\nContent-Length: {3}\r\n\r\n{4}'.format(http_version, code, reason, len(errorpage), errorpage).encode('utf8', 'ignore'))