fune/toolkit/content/aboutNetError.xhtml
Andrew Creskey 902da73f87 Bug 1806412 - Add a custom about:neterror page for the DNS native fallback warning r=necko-reviewers,fluent-reviewers,flod,valentin,pbz
Similar to Bug 1596845 - Implement new error page for DNS errors when DoH is enabled - this changes about:neterror to show an error page specific to DNS failures that would have previously been resolved by fallback to native resolution.

With the preference, network.trr.display_fallback_warning set (defaults to off), DNS resolution will now fail when the user is in trr mode 2 (trr first) and either of these occur:
- the TRR cannot be confirmed
- the canary network heuristic is tripped

The new custom error page will be shown for failures resulting from these conditions.

This offers the user more information about the failure, and the option to bypass this warning going forward.

As with Bug 1596845, this is experimental and will be further improved over time.

To see the error page, the user must first set the network.trr.display_fallback_warning preference.
They must then encounter one of the conditions (unable to confirm TRR or tripping the canary heuristic).
Preventing TRR confirmation can be done by modifying their local hosts file to map their regional TRR domain's to an invalid address.

Project plan: https://docs.google.com/document/d/12IGABt1eXI276qHduXXbVZqRFrhLN7Ad3gKEgxz81sE
Copy deck: https://docs.google.com/document/d/130UTox8bQbybjYIwvltR4qBg2hWjsGhuNUHypLwUAEQ

Depends on D165557

Differential Revision: https://phabricator.services.mozilla.com/D165558
2023-01-16 13:12:04 +00:00

126 lines
6.4 KiB
HTML

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<!-- This Source Code Form is subject to the terms of the Mozilla Public
- License, v. 2.0. If a copy of the MPL was not distributed with this
- file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
<html xmlns="http://www.w3.org/1999/xhtml" data-l10n-sync="true">
<head>
<meta http-equiv="Content-Security-Policy" content="default-src chrome:; object-src 'none'" />
<meta name="color-scheme" content="light dark" />
<title data-l10n-id="neterror-page-title"></title>
<link rel="stylesheet" href="chrome://global/skin/aboutNetError.css" type="text/css" media="all" />
<link rel="icon" id="favicon"/>
<link rel="localization" href="branding/brand.ftl"/>
<link rel="localization" href="toolkit/neterror/certError.ftl" />
<link rel="localization" href="toolkit/neterror/netError.ftl"/>
</head>
<body>
<!-- PAGE CONTAINER (for styling purposes only) -->
<div class="container">
<div id="text-container">
<!-- Error Title -->
<div class="title">
<h1 class="title-text"></h1>
</div>
<!-- Short Description -->
<p id="errorShortDesc"></p>
<p id="errorShortDesc2"></p>
<div id="errorWhatToDo" hidden="">
<p id="errorWhatToDoTitle" data-l10n-id="certerror-what-can-you-do-about-it-title"></p>
<p id="badStsCertExplanation" hidden=""></p>
<p id="errorWhatToDoText"></p>
</div>
<!-- Long Description -->
<div id="errorLongDesc"></div>
<p id="trrOnlyContainer" hidden="">
<p id="trrOnlyMessage"></p>
<div class="trr-message-container">
<span id="trrOnlyDescription"></span>
<p id="trrLearnMoreContainer" hidden="">
<a id="trrOnlylearnMoreLink" target="_blank" rel="noopener noreferrer" data-l10n-id="neterror-learn-more-link"></a>
</p>
</div>
<p data-l10n-id="neterror-dns-not-found-trr-only-attackers"> </p>
</p>
<p id="nativeFallbackContainer" hidden="">
<p id="nativeFallbackMessage"></p>
<div class="native-fallback-message-container">
<span id="nativeFallbackDescription"></span>
<p id="nativeFallbackLearnMoreContainer" hidden="">
<a id="nativeFallbackLearnMoreLink" target="_blank" rel="noopener noreferrer" data-l10n-id="neterror-learn-more-link"></a>
</p>
</div>
<p data-l10n-id="neterror-dns-not-found-native-fallback-attackers"> </p>
</p>
<p id="tlsVersionNotice" hidden=""></p>
<p id="learnMoreContainer" hidden="">
<a id="learnMoreLink" target="_blank" rel="noopener noreferrer" data-telemetry-id="learn_more_link" data-l10n-id="neterror-learn-more-link"></a>
</p>
<div id="openInNewWindowContainer" class="button-container" hidden="">
<p><a id="openInNewWindowButton" target="_blank" rel="noopener noreferrer">
<button class="primary" data-l10n-id="open-in-new-window-for-csp-or-xfo-error"></button></a></p>
</div>
<!-- UI for option to report certificate errors to Mozilla. Removed on
init for other error types .-->
<div id="prefChangeContainer" class="button-container" hidden="">
<p data-l10n-id="neterror-pref-reset"></p>
<button id="prefResetButton" class="primary" data-l10n-id="neterror-pref-reset-button"></button>
</div>
<div id="certErrorAndCaptivePortalButtonContainer" class="button-container" hidden="">
<button id="returnButton" class="primary" data-telemetry-id="return_button_top" data-l10n-id="neterror-return-to-previous-page-recommended-button"></button>
<button id="openPortalLoginPageButton" class="primary" data-l10n-id="neterror-open-portal-login-page-button" hidden=""></button>
<button id="certErrorTryAgainButton" class="primary try-again" data-l10n-id="neterror-try-again-button" hidden=""></button>
<button id="advancedButton" data-telemetry-id="advanced_button" data-l10n-id="neterror-advanced-button"></button>
</div>
</div>
<div id="netErrorButtonContainer" class="button-container" hidden="">
<button class="primary try-again" data-l10n-id="neterror-try-again-button"></button>
<button id="trrExceptionButton" data-l10n-id="neterror-add-exception-button" hidden=""></button>
<button id="trrSettingsButton" data-l10n-id="neterror-settings-button" hidden=""></button>
<button id="nativeFallbackIgnoreButton" data-l10n-id="neterror-disable-native-feedback-warning" hidden=""></button>
</div>
<div class="advanced-panel-container">
<div id="badCertAdvancedPanel" class="advanced-panel" hidden="">
<p id="badCertTechnicalInfo"></p>
<a id="viewCertificate" href="javascript:void(0)" data-l10n-id="neterror-view-certificate-link"></a>
<div id="advancedPanelButtonContainer" class="button-container">
<button id="advancedPanelReturnButton" class="primary" data-telemetry-id="return_button_adv" data-l10n-id="neterror-return-to-previous-page-recommended-button"></button>
<button id="advancedPanelTryAgainButton" class="primary try-again" data-l10n-id="neterror-try-again-button" hidden=""></button>
<button id="exceptionDialogButton" data-telemetry-id="exception_button" data-l10n-id="neterror-override-exception-button"></button>
</div>
</div>
<div id="blockingErrorReporting" class="advanced-panel" hidden="">
<p class="toggle-container-with-text">
<input type="checkbox" id="automaticallyReportBlockingInFuture" role="checkbox"/>
<label for="automaticallyReportBlockingInFuture" data-l10n-id="neterror-error-reporting-automatic"></label>
</p>
</div>
<div id="certificateErrorDebugInformation" class="advanced-panel" hidden="">
<button id="copyToClipboardTop" data-telemetry-id="clipboard_button_top" data-l10n-id="neterror-copy-to-clipboard-button"></button>
<div id="certificateErrorText"></div>
<button id="copyToClipboardBottom" data-telemetry-id="clipboard_button_bot" data-l10n-id="neterror-copy-to-clipboard-button"></button>
</div>
</div>
</div>
</body>
<script src="chrome://global/content/neterror/aboutNetErrorCodes.js"></script>
<script type="module" src="chrome://global/content/aboutNetError.mjs"></script>
</html>