diff --git a/chrome.manifest b/chrome.manifest index 139b079..03a5e66 100644 --- a/chrome.manifest +++ b/chrome.manifest @@ -2,7 +2,6 @@ content resurrect content/ contentaccessible=yes skin resurrect classic/1.0 skin/ overlay chrome://browser/content/browser.xul chrome://resurrect/content/resurrect-overlay.xul -override chrome://global/content/netError.xhtml chrome://resurrect/content/netError.xhtml style chrome://global/content/customizeToolbar.xul chrome://resurrect/skin/resurrect-overlay.css locale resurrect ca-AD locale/ca-AD/ diff --git a/content/netError.xhtml b/content/netError.xhtml index 8e97996..d001734 100644 --- a/content/netError.xhtml +++ b/content/netError.xhtml @@ -1,421 +1,52 @@ - - - %htmlDTD; - - %netErrorDTD; - - %globalDTD; - - - %dialogOverlayDTD; - - %resurrectDTD; -]> - - + - - &loadError.label; - - - - - - - - - - - - - -
-
-

&generic.title;

-

&dnsNotFound.title;

-

&fileNotFound.title;

-

&malformedURI.title;

-

&protocolNotFound.title;

-

&connectionFailure.title;

-

&netTimeout.title;

- -

&redirectLoop.title;

-

&unknownSocketType.title;

-

&netReset.title;

-

&netOffline.title;

-

&netInterrupt.title;

-

&deniedPortAccess.title;

-

&proxyResolveFailure.title;

-

&proxyConnectFailure.title;

-

&contentEncodingError.title;

- -

&unsafeContentType.title;

-

&nssFailure2.title;

-

&nssBadCert.title;

-

&malwareBlocked.title;

-
-
-
&generic.longDesc;
-
&dnsNotFound.longDesc;
-
&fileNotFound.longDesc;
- -
&malformedURI.longDesc;
-
&protocolNotFound.longDesc;
-
&connectionFailure.longDesc;
-
&netTimeout.longDesc;
-
&redirectLoop.longDesc;
-
&unknownSocketType.longDesc;
-
&netReset.longDesc;
-
&netOffline.longDesc;
-
&netInterrupt.longDesc;
- -
&deniedPortAccess.longDesc;
-
&proxyResolveFailure.longDesc;
-
&proxyConnectFailure.longDesc;
-
&contentEncodingError.longDesc;
-
&unsafeContentType.longDesc;
-
&nssFailure2.longDesc;
-
&nssBadCert.longDesc2;
-
&malwareBlocked.longDesc;
-
- -
- - -
- - -
-

-

- - - -
- - -
-

-

- - -
- - - -
- &securityOverride.linkText; - -
-
- - - - -
- - - - - - - &resurrect.thispage; - - - - - - - - - -
- -
- - - + +
+ + + + + + &resurrect.thispage; + + + + + + + + + +
diff --git a/content/resurrect.js b/content/resurrect.js index 5b6c721..f28ec8f 100644 --- a/content/resurrect.js +++ b/content/resurrect.js @@ -11,7 +11,7 @@ var resurrect={ .addEventListener('popupshowing', resurrect.toggleContextItems, false); window.document.getElementById('appcontent').addEventListener( - 'DOMContentLoaded', resurrect.attachClickEvent, false + 'DOMContentLoaded', resurrect.contentDomLoad, false ); }, @@ -29,11 +29,34 @@ var resurrect={ .setAttribute('hidden', !gContextMenu.onLink); }, - attachClickEvent:function(event) { + contentDomLoad:function(event) { var contentDoc=event.target; var contentWin=contentDoc.defaultView; if (contentDoc.documentURI.match(/^about:neterror/)) { + // Inject our content... + var xhr = new XMLHttpRequest(); + xhr.open('GET', 'chrome://resurrect/content/netError.xhtml', false); + xhr.send(null); + var resurrectFieldset = xhr.responseXML.getElementById('resurrect'); + var newFieldset = contentDoc.adoptNode(resurrectFieldset); + var container = contentDoc.getElementById('errorPageContainer'); + container.appendChild(newFieldset); + // ...including the CSS. + var link = contentDoc.createElement('link'); + link.setAttribute('rel', 'stylesheet'); + link.setAttribute('href', 'chrome://resurrect/skin/netError.css'); + link.setAttribute('type', 'text/css'); + link.setAttribute('media', 'all'); + contentDoc.getElementsByTagName('head')[0].appendChild(link); + + // Add the className that enables it, only when appropriate. + contentDoc.location.href = + 'javascript:if ("nssBadCert" != getErrorCode()) {' + + 'document.body.className += " resurrect";' + + '}; void(0)'; + + // Add event listener. contentDoc.getElementById('resurrect').addEventListener( 'click', resurrect.clickedHtml, false );