Closed Bug 1596845 Opened 5 years ago Closed 2 years ago

Implement new error page for DNS errors when DoH is enabled

Categories

(Firefox :: General, enhancement, P1)

enhancement

Tracking

()

RESOLVED FIXED
110 Branch
Tracking Status
firefox70 --- wontfix
firefox71 --- wontfix
firefox72 --- wontfix
firefox110 --- fixed

People

(Reporter: nhnt11, Assigned: valentin)

References

(Blocks 4 open bugs)

Details

Attachments

(9 files)

Currently the spec calls for 2 error pages: one when the TRR provider is unavailable and one when the provider tried and couldn't resolve the hostname. The former would offer a button that temporarily completely disables DoH, and the latter would offer a button to whitelist that domain.

This is currently not possible to implement since we don't have any way to distinguish between the two scenarios. Pending necko enhancements to support this, here are a few ideas that Bryan and I are considering for a single error page:

  1. Offer both buttons on the same error page.
  2. Offer a button to reload the page with DoH disabled.
  3. Option 2, but also, offer a button to temporarily completely disable DoH after this happens N times.
Priority: -- → P3

Bugbug thinks this bug should belong to this component, but please revert this change in case of error.

Component: General → Networking: DNS
Product: Firefox → Core

The product::component has been changed since the backlog priority was decided, so we're resetting it.
For more information, please visit auto_nag documentation.

Priority: P3 → --

No, this is not a necko bug, this belongs in Firefox. Maybe I'll request a DoH component for tracking frontend bugs and then we can move it over from General.

Component: Networking: DNS → General
Priority: -- → P1
Product: Core → Firefox
Severity: normal → S3
Assignee: nobody → valentin.gosu

Depends on D164347

Blocks: 1805372
Attachment #9307567 - Attachment description: WIP: Bug 1596845 - WIP: Pass TRR skip reason to child channel → Bug 1596845 - Pass TRR skip reason to child channel r=#necko

Previosuly we'd only pass the TRRService::ProviderKey() into the content
process. But not we need the full domain for the error page in the content
process, so we now pass the full domain. The ChildDNSService now holds on
to the full domain, but calls into TRRService to update the key for
telemetry and returns that when necessary.

Depends on D164348

Attachment #9307566 - Attachment description: WIP: Bug 1596845 - WIP: Make custom about:neterror page for TRR mode3 DNS failures → Bug 1596845 - Make custom about:neterror page for TRR mode3 DNS failures r=pbz

This allows us to use a consistent size for the dnsFlags field.
across different files (previously some would use uint16_t and some uint32_t).
It also improves type safety - making sure we don't pass in the wrong value
to DNSFlags.

Depends on D164856

Blocks: 1806257
Blocks: 1806258
Blocks: 1806317
Blocks: 1806412

We encountered data races in unit tests.

Depends on D164346

Attachment #9309592 - Attachment description: Bug 1596845 - Make effectiveTRRMode atomic r=#necko → Bug 1596845 - Make effectiveTRRMode, skipReason atomic r=#necko
Pushed by acreskey@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/b14a4910d73b Pass effectiveTRRMode to HTTP child channel r=necko-reviewers,kershaw https://hg.mozilla.org/integration/autoland/rev/80e5048d1f35 Pass TRR skip reason to child channel r=necko-reviewers,kershaw https://hg.mozilla.org/integration/autoland/rev/8e1fe024b680 Pass full trr domain into content process r=acreskey,necko-reviewers,kershaw https://hg.mozilla.org/integration/autoland/rev/ab300239fd69 Make custom about:neterror page for TRR mode3 DNS failures r=pbz,fluent-reviewers,settings-reviewers,flod https://hg.mozilla.org/integration/autoland/rev/950c66dd6133 Make DNSServices available as `Services.dns` r=necko-reviewers,webdriver-reviewers,kershaw https://hg.mozilla.org/integration/autoland/rev/a383f2bbcaae Turn nsIDNSService dns flags into a cenum r=necko-reviewers,geckoview-reviewers,kershaw,m_kato https://hg.mozilla.org/integration/autoland/rev/f1447dd8df04 Pass new DNS record to OnLookupComplete to be able to get effectiveTRRMode and skip reason r=necko-reviewers,kershaw https://hg.mozilla.org/integration/autoland/rev/af6d41439c60 Make effectiveTRRMode, skipReason atomic r=necko-reviewers,kershaw https://hg.mozilla.org/integration/autoland/rev/eb1e34c3041f Initialize DNS service earlier, r=acreskey

Backed out for causing mochitest failures in browser/base/content/test/about/browser_aboutCertError_telemetry.js

Backout link: https://hg.mozilla.org/integration/autoland/rev/a5e4362f37d6b2acbe72a62518855e80370444b1

Push with failures

Failure log

INFO - Buffered messages finished
[task 2022-12-22T22:14:34.613Z] 22:14:34     INFO - TEST-UNEXPECTED-FAIL | browser/base/content/test/about/browser_aboutCertError_telemetry.js | Uncaught exception in test - at chrome://global/content/elements/browser-custom-element.js:708 - TypeError: can't access property "userTyped", this.urlbarChangeTracker is undefined
[task 2022-12-22T22:14:34.613Z] 22:14:34     INFO - Stack trace:
Flags: needinfo?(kershaw)
Backout by smolnar@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/16f71c909bb3 Backed out 9 changesets for causing mochitest failures in browser/base/content/test/about/browser_aboutCertError_telemetry.js

Fix incoming, small change.

Pushed by acreskey@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/b171f7ac0b40 Pass effectiveTRRMode to HTTP child channel r=necko-reviewers,kershaw https://hg.mozilla.org/integration/autoland/rev/f4adb3e7b8e1 Pass TRR skip reason to child channel r=necko-reviewers,kershaw https://hg.mozilla.org/integration/autoland/rev/88919aaff89b Pass full trr domain into content process r=acreskey,necko-reviewers,kershaw https://hg.mozilla.org/integration/autoland/rev/b78bc0049605 Make custom about:neterror page for TRR mode3 DNS failures r=pbz,fluent-reviewers,settings-reviewers,flod,edgul https://hg.mozilla.org/integration/autoland/rev/98d583f1d19e Make DNSServices available as `Services.dns` r=necko-reviewers,webdriver-reviewers,kershaw https://hg.mozilla.org/integration/autoland/rev/5cd033c9ef7c Turn nsIDNSService dns flags into a cenum r=necko-reviewers,geckoview-reviewers,kershaw,m_kato https://hg.mozilla.org/integration/autoland/rev/b0449eec2671 Pass new DNS record to OnLookupComplete to be able to get effectiveTRRMode and skip reason r=necko-reviewers,kershaw https://hg.mozilla.org/integration/autoland/rev/7d02dad4d720 Make effectiveTRRMode, skipReason atomic r=necko-reviewers,kershaw https://hg.mozilla.org/integration/autoland/rev/231acfc052bb Initialize DNS service earlier, r=acreskey
Regressions: 1807184
Regressions: 1807185

Backed out 9 changesets (Bug 1596845) for causing xpcshell failures on test_trr_enterprise_policy.js.
Backout link
Push with failures
Failure Log

Flags: needinfo?(acreskey)

(In reply to Marian-Vasile Laza from comment #18)

Backed out 9 changesets (Bug 1596845) for causing xpcshell failures on test_trr_enterprise_policy.js.
Backout link
Push with failures
Failure Log

Not sure why this test still failed with socket process. However, we can disable this test for socket process for now and fix it later.

Flags: needinfo?(kershaw)
Flags: needinfo?(acreskey)
Regressions: 1807208
Pushed by kjang@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/726e877bdd46 Pass effectiveTRRMode to HTTP child channel r=necko-reviewers,kershaw https://hg.mozilla.org/integration/autoland/rev/13d383bde6cf Pass TRR skip reason to child channel r=necko-reviewers,kershaw https://hg.mozilla.org/integration/autoland/rev/0c74e206883c Pass full trr domain into content process r=acreskey,necko-reviewers,kershaw https://hg.mozilla.org/integration/autoland/rev/30f730eba0c4 Make custom about:neterror page for TRR mode3 DNS failures r=pbz,fluent-reviewers,settings-reviewers,flod,edgul https://hg.mozilla.org/integration/autoland/rev/c4400bef7b19 Make DNSServices available as `Services.dns` r=necko-reviewers,webdriver-reviewers,kershaw https://hg.mozilla.org/integration/autoland/rev/ac391762ae01 Turn nsIDNSService dns flags into a cenum r=necko-reviewers,geckoview-reviewers,kershaw,m_kato https://hg.mozilla.org/integration/autoland/rev/236b2bde7397 Pass new DNS record to OnLookupComplete to be able to get effectiveTRRMode and skip reason r=necko-reviewers,kershaw https://hg.mozilla.org/integration/autoland/rev/c1d4e09eca69 Make effectiveTRRMode, skipReason atomic r=necko-reviewers,kershaw https://hg.mozilla.org/integration/autoland/rev/c9c9844f1f2f Initialize DNS service earlier, r=acreskey
No longer regressions: 1807208
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: