New issue
Advanced search Search tips

Issue 606341 link

Starred by 2 users

Issue metadata

Status: Fixed
Owner: ----
Closed: May 2016
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Linux , Windows , Chrome , Mac
Pri: 3
Type: Bug



Sign in to add a comment

URL fixup should only convert ; -> : after known schemes

Reported by vit...@yandex-team.ru, Apr 25 2016

Issue description

I have two keyboard layouts installed on my PC: english and russian (https://en.wikibooks.org/wiki/File:KB_Eng-Rus_QWERTY%28%D0%99%D0%A6%D0%A3%D0%9A%D0%95%D0%9D%29.svg). And when I type russian word "велотренажер" using invalid (i.e. english) layout it looks as "dtkjnhtyf;th". The Google search engine handles this input correctly (i.e. it understands that I type russian letters in fact) until I type character ";". After this character I see no search suggestion in the omnibox. Please see an attached video.

 
chrome_semicolon_breaks_omnibox.mp4
162 KB Download
Components: UI>Browser>Omnibox

Comment 2 by js...@chromium.org, Apr 25 2016

Cc: pkasting@chromium.org
Labels: OS-Chrome OS-Linux OS-Mac
It's across platforms at least in desktop Chrome. 

google_search_box_with_misselected_KBD.png
18.1 KB View Download
Cause of this behaviour are changes in https://bugs.chromium.org/p/chromium/issues/detail?id=176106.
After url fixup, the first part of input "dtkjnhtyf;th" before ';' is treated like valid url scheme and search provider does not send request for suggest for schemes other than http/https/ftp. This check is implemented in SearchProvider::IsQueryPotentionallyPrivate.

One of the possible solution would be to treat only "http;", "https;", "ftp;" as valid schemes variants in SegmentURL function in url_fixer.cc.
Other would be to change logic of search provider. Yet, from comments in search provider it looks like it does not send suggest requests with non standard schemes to prevent password/usernames leakage.
  // Next we check the scheme.  If this is UNKNOWN/URL with a scheme that isn't
  // http/https/ftp, we shouldn't send it.  Sending things like file: and data:
  // is both a waste of time and a disclosure of potentially private, local
  // data.  Other "schemes" may actually be usernames, and we don't want to send
  // passwords.  If the scheme is OK, we still need to check other cases below.

There could be other solutions as well. WDYT?
Status: Available (was: Unconfirmed)
Summary: URL fixup should only convert ; -> : after known schemes (was: Colon and semicolon break search suggestion in the omnibox. )
We definitely can't change the search provider behavior.  It needs to be as conservative as it is today.

I think changing fixup to only convert ; -> : for known schemes would be OK.
Project Member

Comment 5 by bugdroid1@chromium.org, May 3 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/3abb13a381810cba427d7175eb4fa7862ee0d2d0

commit 3abb13a381810cba427d7175eb4fa7862ee0d2d0
Author: a-v-y <a-v-y@yandex-team.ru>
Date: Tue May 03 05:36:42 2016

Change semicolon replace logic in url_fixer

This change adds additional check to url_fixer logic while trying to
fix user input. New implementation tries to change ';' to ':'in
SegmentURLInternal only for known url schemes.

BUG= 606341 
R=pkasting@chromium.org, grt@chromium.org

Review-Url: https://codereview.chromium.org/1942613002
Cr-Commit-Position: refs/heads/master@{#391172}

[modify] https://crrev.com/3abb13a381810cba427d7175eb4fa7862ee0d2d0/components/omnibox/browser/autocomplete_input_unittest.cc
[modify] https://crrev.com/3abb13a381810cba427d7175eb4fa7862ee0d2d0/components/url_formatter/url_fixer.cc
[modify] https://crrev.com/3abb13a381810cba427d7175eb4fa7862ee0d2d0/components/url_formatter/url_fixer_unittest.cc

Status: Fixed (was: Available)

Sign in to add a comment