Firefox doesn't allow navigating to fully IDN domains in the URL bar without including "http(s)://" because of broken uri fixup code (was: url bar issues with uris with ".გე" suffix)

VERIFIED FIXED in Firefox 58

Status

()

defect
P2
normal
VERIFIED FIXED
2 years ago
2 years ago

People

(Reporter: brunjadzem, Assigned: Gijs)

Tracking

({regression})

57 Branch
Firefox 59
x86_64
macOS
Points:
---
Dependency tree / graph
Bug Flags:
in-testsuite ?

Firefox Tracking Flags

(firefox-esr52 unaffected, firefox57 wontfix, firefox58 verified, firefox59 verified)

Details

Attachments

(1 attachment)

What did you do?
================
1. Type რეგისტრაცია.გე in address bar
2. Press Enter

What happened?
==============
Firefox made search request

What should have happened?
==========================
Perform DNS lookup and show valid web page for given domain

Is there anything else we should know?
======================================
https://features.icann.org/delegation-%E1%83%92%E1%83%94-ge-domain-representing-georgia-georgian-mkhedruli-script-information-technologies
OS: Other → Mac OS X
Product: Mozilla Developer Network → Firefox
Hardware: All → x86_64
Version: unspecified → 57 Branch
Component: General → Networking: DNS
Product: Firefox → Core
Not a DNS issue, since we can navigate the page by a hyperlink to http://რეგისტრაცია.გე

Ni? Gijs who might have some idea about it.
Component: Networking: DNS → Address Bar
Flags: needinfo?(gijskruitbosch+bugs)
Product: Core → Firefox
This is because we enter this code block:

https://searchfox.org/mozilla-central/rev/7a8c667bdd2a4a32746c9862356e199627c0896d/docshell/base/nsDefaultURIFixup.cpp#951-957

The check for  host.EqualsIgnoreCase(asciiHost.get()) is supposed to catch the IDN case here (ie we shouldn't be entering that block), and it's not, because bug 1380617 changed uri.host to *also* return punycode.

Valentin, can you take a look?
Blocks: 1380617
Status: UNCONFIRMED → NEW
Ever confirmed: true
Flags: needinfo?(gijskruitbosch+bugs) → needinfo?(valentin.gosu)
Priority: -- → P2
Whiteboard: [specification][type:bug]
Summary: Firefox doesn't resolve domains from ".გე" DNS zone → Firefox doesn't allow navigating to fully IDN domains in the URL bar without including "http(s)://" because of broken uri fixup code (was: url bar issues with uris with ".გე" suffix)
Workaround for users who use these domains lots: flip the pref browser.fixup.dns_first_for_single_words

Unfortunately this will significantly affect perceived performance of the address bar for single-word entries on Windows, so we can't really do this everywhere.
Flags: in-testsuite?
Actually, I can probably just write the short-term patch here. Though having looked at this code again, perhaps it needs a refactor... but not here/now.
Assignee: nobody → gijskruitbosch+bugs
Status: NEW → ASSIGNED
Flags: needinfo?(valentin.gosu)
Comment on attachment 8932470 [details]
Bug 1420395 - deal with IDN domains without protocols correctly in nsIURIFixup,

https://reviewboard.mozilla.org/r/203516/#review208994

::: docshell/base/nsDefaultURIFixup.cpp:927
(Diff revision 1)
>      return NS_OK;
>    }
>  
> -  nsAutoCString asciiHost;
>    nsAutoCString host;
> +  nsAutoCString displayHost;

I think it would be clearer if we called them asciiHost and displayHost. It would also make the behaviour unaffected by pref changes.
Attachment #8932470 - Flags: review?(valentin.gosu) → review+
Pushed by gijskruitbosch@gmail.com:
https://hg.mozilla.org/integration/autoland/rev/977a731c6f05
deal with IDN domains without protocols correctly in nsIURIFixup, r=valentin
https://hg.mozilla.org/mozilla-central/rev/977a731c6f05
Status: ASSIGNED → RESOLVED
Closed: 2 years ago
Resolution: --- → FIXED
Target Milestone: --- → Firefox 59
Reporter, would it be possible for you to verify this is fixed for you on our nightly (experimental) branch? You can download nightly from https://nightly.mozilla.org/, and/or verify that your nightly build is updated to a build dated 2017-11-29. macOS builds for today have already finished and are available as updates. If you want to test Linux or Windows, they should be available later today (probably in about an hour or so).

Once we verify this is fixed on nightly, we can uplift the fix for beta so it'll go out with 58. I'll see with release management if there's an opportunity to make this ride-along with any 57 dot-releases if we'll still end up doing those.
Flags: needinfo?(brunjadzem)
(In reply to :Gijs from comment #10)
> Reporter, would it be possible for you to verify this is fixed for you on
> our nightly (experimental) branch? You can download nightly from
> https://nightly.mozilla.org/, and/or verify that your nightly build is
> updated to a build dated 2017-11-29. macOS builds for today have already
> finished and are available as updates. If you want to test Linux or Windows,
> they should be available later today (probably in about an hour or so).
> 
> Once we verify this is fixed on nightly, we can uplift the fix for beta so
> it'll go out with 58. I'll see with release management if there's an
> opportunity to make this ride-along with any 57 dot-releases if we'll still
> end up doing those.

Hello, I've tested it on latest Nightly and issue seems to be solved. Thanks.
Flags: needinfo?(brunjadzem)
Comment on attachment 8932470 [details]
Bug 1420395 - deal with IDN domains without protocols correctly in nsIURIFixup,

Approval Request Comment
[Feature/Bug causing the regression]: bug 1380617
[User impact if declined]: users can't easily use typing in the url bar to navigate to IDN domains
[Is this code covered by automated tests?]: yes in general, IDN urls as part of this patch
[Has the fix been verified in Nightly?]: yes
[Needs manual test from QE? If yes, steps to reproduce]: see comment 0
[List of other uplifts needed for the feature/fix]: n/a
[Is the change risky?]: no
[Why is the change risky/not risky?]: simple swapping of 1 thing we're comparing (which used to be unicode and is now ascii) to another thing (which is now definitely unicode) which reinstates old behaviour, plus a test to verify we don't break this again.
[String changes made/needed]: no


Ritu: what's the prognosis on doing another 57 dot-release and if we did, do you want this as a ride-along? I can ask for release approval if so. I'm pretty confident in the patch, but not sure what our plans for 57 are at this point.
Flags: needinfo?(rkothari)
Attachment #8932470 - Flags: approval-mozilla-beta?
Comment on attachment 8932470 [details]
Bug 1420395 - deal with IDN domains without protocols correctly in nsIURIFixup,

Fix a broken IDN domains navigation issue. Beta58+.
Attachment #8932470 - Flags: approval-mozilla-beta? → approval-mozilla-beta+
Hi Gijs, there are no plans yet for another dot release that will include a few more ride-alongs such as this one. I will still add this to my tracking list and we can evaluate the risk-reward when the time comes. It will also be good to bake this in Nightly and Beta beforehand, glad to see that already happen.
Flags: needinfo?(rkothari)
It seems very unlikely we'll have a 57.0.3
I have reproduced this bug with Nightly 59.0a1 (2017-11-24) on Windows 10, 64 Bit!

This bug's fix is verified with latest release and latest developer edition!

Build ID  : 20180206200532
Use Agent : Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:58.0) Gecko/20100101 Firefox/58.0

Build ID  : 20180301022608
Use Agent : Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:59.0) Gecko/20100101 Firefox/59.0
QA Whiteboard: [testday-20180302]
I have reproduced this bug with Nightly 59.0a1(2017-11-24) on ubuntu 16.04, 64 Bit!

This bug's fix is verified with latest release and latest developer edition!

Build ID : 20180208175058
Use Agent : Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:58.0) Gecko/20100101 Firefox/58.0


Build ID : 20180301022608
Use Agent: Mozilla/5.0 (X11; Linux x86_64; rv:59.0) Gecko/20100101 Firefox/59.0

[testday-20180302]
Status: RESOLVED → VERIFIED
You need to log in before you can comment on or make changes to this bug.