Use PSL to do a search for foo.barrr URL bar entries which aren't known domains/TLDs, with the same infobar as for single-word searches
Categories
(Firefox :: Address Bar, defect, P2)
Tracking
()
Tracking | Status | |
---|---|---|
firefox77 | --- | verified |
People
(Reporter: tim, Assigned: mak)
References
Details
(Whiteboard: [fxsearch])
Attachments
(1 file)
(deleted),
text/x-phabricator-request
|
Details |
Updated•10 years ago
|
Comment 1•10 years ago
|
||
Comment 2•10 years ago
|
||
Comment 3•10 years ago
|
||
Comment 4•10 years ago
|
||
Comment 5•10 years ago
|
||
Comment 6•10 years ago
|
||
Comment 7•10 years ago
|
||
Comment 8•10 years ago
|
||
Comment 9•10 years ago
|
||
Comment 10•10 years ago
|
||
Comment 11•10 years ago
|
||
Comment 12•10 years ago
|
||
Comment 13•10 years ago
|
||
Comment 14•10 years ago
|
||
Comment 15•10 years ago
|
||
Comment 16•10 years ago
|
||
Comment 17•10 years ago
|
||
Comment 18•10 years ago
|
||
Comment 19•10 years ago
|
||
Comment 20•10 years ago
|
||
Comment 23•9 years ago
|
||
Assignee | ||
Updated•9 years ago
|
Comment 26•9 years ago
|
||
Assignee | ||
Comment 27•9 years ago
|
||
Comment 28•9 years ago
|
||
Assignee | ||
Comment 29•9 years ago
|
||
Comment 30•9 years ago
|
||
Assignee | ||
Comment 31•9 years ago
|
||
Comment 32•9 years ago
|
||
Assignee | ||
Comment 33•9 years ago
|
||
Comment 34•9 years ago
|
||
Comment 36•8 years ago
|
||
Comment 38•8 years ago
|
||
Comment 39•8 years ago
|
||
Comment 40•8 years ago
|
||
Assignee | ||
Updated•8 years ago
|
Comment 43•8 years ago
|
||
Comment 45•7 years ago
|
||
Comment 46•7 years ago
|
||
Comment 47•7 years ago
|
||
Comment 48•7 years ago
|
||
Comment 49•7 years ago
|
||
Comment 58•6 years ago
|
||
Comment 59•6 years ago
|
||
I just learned that the Public Suffix List is actually a Mozilla project!
Tangential remark: We know that Chrome isn't the most privacy-conscious browser, but it's also a fact that the Chrome team takes security very seriously and has put their money where their mouth is in that regard. It's not sufficient to blindly follow their lead on all things, but it is definitely a useful signal to consider and weighs in favor of adopting the PSL approach.
An observation: currently for someone intending to search for browserconfig.xml
(with the separate search bar hidden), the process of typing in browserconfig.xml
in the address bar and quickly hitting enter (yay muscle memory!) without considering that it is going to NXDOMAIN, having to then go back to the search bar, type in browserconfig.xml
again and then go through the chore of identifying which drop-down autocomplete entry should be used to invoke a search rather than a navigation is considerably longer than the time it takes to perform either a search or a DNS query in the background. The point being, it's not a good idea to simultaneously perform both a DNS lookup and initiate a search (for privacy reasons) and sequentially performing these tasks one after the other in case of a failure of the first does not result in a user unfriendly UX due to the delay/lack of parallelization.
Comment 60•6 years ago
|
||
Looks like Chrome bakes the list in, see e.g. https://bugs.chromium.org/p/chromium/issues/detail?id=610495 , without out-of-band updates.
We now (as of bug 1459891) do this, too, but fortunately our updates are mostly automatic (they are automatically created by a bot based on the authoritative list, and reviewed by a human).
I think that's probably sufficient to move forward with this bug, even if out-of-band updates would be a nice bonus. There should probably be an about:config pref to turn search-for-non-psl-domains off.
Marco, could this be part of the quantumbar improvements?
Assignee | ||
Comment 61•6 years ago
|
||
The current scope is to provide an experience identical to the old bar, to limit the confusion for users and QA, but it could surely be one of the things we want to do sooner than later.
Should we use it through nsIEffectiveTLDService? I just tried to use getPublicSuffixFromHost, but it doesn't seem to do any kind of verification, it doesn't seem to have a strict option, so I assume we'd have to add a new method to check a given host.
Assignee | ||
Comment 63•5 years ago
|
||
I would prefer it we'd have a meta bug tracking the PSL work, for now I guess bug 1563246 will do.
Updated•5 years ago
|
Assignee | ||
Comment 65•5 years ago
|
||
Mathieu, what's the status of the underlying networking feature? It looks like the product side is done and we're just waiting for bug 1563225? Unfortunately there is still no meta bug tracking this feature we can depend upon.
Comment 66•5 years ago
|
||
Mathieu, what's the status of the underlying networking feature?
As you could figure, the feature on the product side is done. I created this meta bug https://bugzilla.mozilla.org/show_bug.cgi?id=1579856 , I hope that helps!
The remaining bits should be done in the following days.
Comment hidden (advocacy) |
Assignee | ||
Comment 71•5 years ago
|
||
When a developer will be able to schedule some time for it, Firefox is a huge project, resources are limited. It's on our radar anyway, now that the platform fix is complete.
Assignee | ||
Comment 72•5 years ago
|
||
I'm taking this as a side project to the main backlog, I'm also working on other improvements in this area so it seems to make sense. May take a while anyway, because there's a lot of other work ongoing.
Comment 73•5 years ago
|
||
Does this issue include checking highlighted text against a cached Publix Suffix List? Meaning that a right click on hightlighted text "foobar.this" will recognize the hightlighted text as not being a hyperlink and therefore the context menu will not offer link-actions?
I wonder because technically it might fall under the same scope of URL detection. If not I will create another bug.
Assignee | ||
Comment 74•5 years ago
|
||
(In reply to neubland from comment #73)
Does this issue include checking highlighted text against a cached Publix Suffix List? Meaning that a right click on hightlighted text "foobar.this" will recognize the hightlighted text as not being a hyperlink and therefore the context menu will not offer link-actions?
That would require a separate bug, this is only about the urlbar.
Comment 75•5 years ago
|
||
(In reply to neubland from comment #73)
a right click on hightlighted text "foobar.this" will recognize the hightlighted text as not being a hyperlink
That's bug 529085.
Comment 77•5 years ago
|
||
Hey, I filed Bug 1610130 which has been resolved as a duplicate.
Figuring out valid alphanumeric tlds seems to be non-trivial, but it shouln't it be easier for things like subprocess.run()
or this.rn!'{}+()n
which contain non-alphanumeric characters in the tld part and are therefore invalid?
Especially the first example is really annoying if you are searching for code-related stuff. I see that detecting if subprocess.run
is a valid domain can be quite difficult but that shouldn't apply for subprocess.run()
or am I mistaken there?
Assignee | ||
Updated•5 years ago
|
Assignee | ||
Updated•5 years ago
|
Assignee | ||
Comment 78•5 years ago
|
||
Assignee | ||
Updated•5 years ago
|
Updated•5 years ago
|
Assignee | ||
Updated•5 years ago
|
Comment 79•5 years ago
|
||
Comment 80•5 years ago
|
||
bugherder |
Comment 81•5 years ago
|
||
I am so happy about this. Thank you Marco for your heroic efforts! (And also everyone else involved!)
Comment 82•5 years ago
|
||
I managed to reproduce the issue using an older version of Nightly on Windows 10 x64.
I verified the fix using latest Nightly 77.0a1 on Windows 10 x64, Ubuntu 18.04 x64 and Mac OS 10.11. The issue is not reproducing anymore.
Updated•5 years ago
|
Updated•5 years ago
|
Comment 83•5 years ago
|
||
I specifically changed the summary from foo.bar to foo.barrr because 'bar' appears in the PSL.
Comment 84•5 years ago
|
||
I want to provide some feedback about this change and see if this can be fixed:
For general usage, this change is good and better than redirecting users to unexisting websites when they want to search.
However, there are some TLDs that aren't present in the Public Suffix List, which means that users who want to visit such domains will instead be redirected to search. Example of such domains are local/reserved TLDs (like .local
or .test
) which are commonly used for local development/testing, as well as non-IANA-managed TLDs, like OpenNIC (.oss,
.libre
...) and others, mostly by some decentralized projects (.eth
, .bit
...).
All of them now just trigger a search. To access them, you now need to manually type http://
or https://
before the domain. Are there any other better solutions? Could Firefox try to resolve such domains to see if they contain existing website (for local/reserved TLDs and OpenNIC which are commonly resolved with custom /etc/hosts
file or custom DNS server) and provide some API to extensions so that extensions will be able to tell it that TLDs are valid (for .eth
, .bit
... which are commonly resolved through extensions).
Assignee | ||
Comment 85•5 years ago
|
||
(In reply to Filip Š from comment #84)
However, there are some TLDs that aren't present in the Public Suffix List, which means that users who want to visit such domains will instead be redirected to search. Example of such domains are local/reserved TLDs (like
.local
or.test
) which are commonly used for local development/testing, as well as non-IANA-managed TLDs, like OpenNIC (.oss,
.libre
...) and others, mostly by some decentralized projects (.eth
,.bit
...).
just add domains to the whitelist, create a bool pref like browser.fixup.domainwhitelist.yourdomain.yoursuffix and set it to true.
Assignee | ||
Comment 86•5 years ago
|
||
you can also use browser.fixup.dns_first_for_single_words to force a dns lookup before searching.
Comment 87•5 years ago
|
||
(In reply to Marco Bonardo [:mak] from comment #86)
you can also use browser.fixup.dns_first_for_single_words to force a dns lookup before searching.
Would it be possible to have something like this (additional pref), but only for searches that contain (at least one) dot? This would be useful because most commonly, searches without dots are not used as domains (except localhost
which is handled separately), while searches containing dots could be commonly used as domains.
Also, I don't know if it's just for me, but Firefox takes longer to "resolve" (try resolving but then fail and search instead) domains without dots (for example
test, which takes few seconds before redirecting to search) that domains with dots (for example
test.aaaaa`, which is redirected to search almost immediately).
(In reply to Marco Bonardo [:mak] from comment #85)
just add domains to the whitelist, create a bool pref like browser.fixup.domainwhitelist.yourdomain.yoursuffix and set it to true.
What about whitelisting whole TLDs/suffixes? And along with this, API that allows extensions to modify the list of whitelisted TLDs would be quite useful, for example for extensions that provide support for domains like .eth
or .bit
.
Assignee | ||
Comment 88•5 years ago
|
||
(In reply to Filip Š from comment #87)
Would it be possible to have something like this (additional pref), but only for searches that contain (at least one) dot? This would be useful because most commonly, searches without dots are not used as domains (except
localhost
which is handled separately), while searches containing dots could be commonly used as domains.
I don't see why, searches without dots are also used a lot in enterprise. I gave you two solutions that cover your use case pretty well depending on the needs, there are also ways to always force a visit (type the protocol) or always force a search (prepend ?). I don't think we should make the code even more complex for every edge case.
Also, I don't know if it's just for me, but Firefox takes longer to "resolve" (try resolving but then fail and search instead) domains without dots (
for example
test, which takes few seconds before redirecting to search) that domains with dots (for example
test.aaaaa`, which is redirected to search almost immediately).
I'm still working on bug 1398567 that may help there.
What about whitelisting whole TLDs/suffixes? And along with this, API that allows extensions to modify the list of whitelisted TLDs would be quite useful, for example for extensions that provide support for domains like
.eth
or.bit
.
I don't think extensions should be necessary, you can file an enhancement bug for whitelisting suffixes and we can eval that.
Comment 89•5 years ago
|
||
(In reply to Marco Bonardo [:mak] from comment #88)
I don't see why, searches without dots are also used a lot in enterprise. I gave you two solutions that cover your use case pretty well depending on the needs, there are also ways to always force a visit (type the protocol) or always force a search (prepend ?). I don't think we should make the code even more complex for every edge case.
The reason why I requested this was long resolving time for searches without dots, but if this is going to be fixed, separate pref is not needed.
I don't think extensions should be necessary, you can file an enhancement bug for whitelisting suffixes and we can eval that.
I created bug 1634650.
Comment 90•5 years ago
|
||
(In reply to Marco Bonardo [:mak] from comment #85)
(In reply to Filip Š from comment #84)
However, there are some TLDs that aren't present in the Public Suffix List, which means that users who want to visit such domains will instead be redirected to search. Example of such domains are local/reserved TLDs (like
.local
or.test
) which are commonly used for local development/testing, as well as non-IANA-managed TLDs, like OpenNIC (.oss,
.libre
...) and others, mostly by some decentralized projects (.eth
,.bit
...).just add domains to the whitelist, create a bool pref like browser.fixup.domainwhitelist.yourdomain.yoursuffix and set it to true.
My use case is helping family members troubleshot their Internet problems, and that often involve a phone call to them to debug it live over voice (especially these days during self-isolation). Currently, I can ask them to connect to the LAN-only portal hosted on their ISP box to see if the issue is between their computer and that box, or between the box and the rest of the world. Those boxes often make available their settings over unfortunate non-existing TLDs such as ".ip", and now I also have to tell them to go edit scary settings through about:config and whatnot, that seems really unfortunate and user-hostile.
Assignee | ||
Comment 91•5 years ago
|
||
(In reply to Anthony Ramine [:nox] from comment #90)
My use case is helping family members troubleshot their Internet problems
You can use an autoconfig file with specific prefs set to whitelist domains. We'll provide a suffixes whitelist in bug 1634650 to simplify managing that. I'll check also if there's something we can/should do about group policies.
This fix has been done for the many (so many!) user reports we got complaining about the original behavior, so I hope you understand the intent is the opposite of user-hostile (the whole papercuts bugs are supposed to solve common users complains). Of course, it's hard to satisfy every single case, but we'll do whatever possible to support your use-case.
Comment 94•4 years ago
|
||
(In reply to Marco Bonardo [:mak] from comment #91)
(In reply to Anthony Ramine [:nox] from comment #90)
My use case is helping family members troubleshot their Internet problems
You can use an autoconfig file with specific prefs set to whitelist domains. We'll provide a suffixes whitelist in bug 1634650 to simplify managing that. I'll check also if there's something we can/should do about group policies.
I cannot use an autoconfig file, I would need to deploy one somewhere on the Internet and explain over the phone to my family members how to install it.
Assignee | ||
Comment 95•4 years ago
|
||
with bug 1636583 fixed, you can also tell them the address with an ending slash, that will force a visit.
Description
•