New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.
Starred by 18 users

Issue metadata

Status: Fixed
Owner:
Last visit > 30 days ago
Closed: Feb 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Android
Pri: 2
Type: Feature

Blocked on:
issue 649443
issue 656793

Blocking:
issue 650847



Sign in to add a comment
link

Issue 348360: Chrome for android doesn't allow custom search engines

Reported by hoo...@gmail.com, Mar 2 2014

Issue description

Steps to reproduce the problem:
1. Open settings
2. Go to "Search engine"
3. Cry when you see DuckDuckGo isn't an option

What is the expected behavior?
There should be an option to add a custom search engine, just like in desktop Chrome.

What went wrong?
It doesn't let you specify a custom search engine.

Did this work before? No 

Chrome version:   Channel: n/a
OS Version: 
Flash Version: 

Don't be evil.
 

Comment 1 by krav...@chromium.org, Mar 3 2014

Labels: -Type-Bug Type-Feature
Status: Untriaged
This is a feature request

Comment 2 by kamakshi@google.com, Mar 4 2014

Cc: astrange@chromium.org vinodkr@chromium.org
Labels: Cr-UI-Settings
Status: Available

Comment 3 by alivema4...@gmail.com, Nov 22 2014

This is a must have feature for Chrome, which is very sophisticated browser.

Firefox Mobile has implemented this feature.

I hope this bug is taken seriously and fixed as soon as possible.

Comment 4 by jitendra...@samsung.com, May 25 2015

Dear krav...@chromium.org,

Please let me know if i can take this.

Comment 5 by thestig@chromium.org, Aug 26 2015

 Issue 524792  has been merged into this issue.

Comment 6 by thestig@chromium.org, Aug 26 2015

Cc: -astrange@chromium.org tedc...@chromium.org
Labels: -Cr-UI

Comment 7 by dmitr...@gmail.com, Oct 8 2015

why still nothing changed?

Comment 8 by tedc...@chromium.org, Oct 8 2015

Owner: tmc...@chromium.org

Comment 9 by yuriko...@gmail.com, Nov 10 2015

Any updates on this?

Comment 10 by yuriko...@gmail.com, Nov 10 2015

Seems like part of the internal policy to monopolise Android.

Comment 11 by rbyers@chromium.org, Feb 23 2016

Blockedon: 433824
I personally strongly agree we should add some mechanism for a custom default search engine on Chrome Android.  We're discussing it internally and will follow up here.

Comment 12 by bssto...@gmail.com, Feb 23 2016

Hi, I'm a front-end engineer from DuckDuckGo. We'd obviously love to see users have the option to change their search engine. We're more than willing to work with the Chrome team on any solution to make that happen. Feel free to reach out to me or anyone at the company if there's things we can do to help.

Thanks!

Comment 13 by rolfe@chromium.org, Feb 24 2016

Cc: -vinodkr@chromium.org beckmann@chromium.org k...@chromium.org klo...@chromium.org
Owner: rolfe@chromium.org
Status: Assigned (was: Available)
Assigning to myself for possible exploration. May need to mark the bug that blocks this as a dupe or separate them for each mobile platform. Will confirm with pschaffner@.

Comment 14 by rolfe@chromium.org, Mar 10 2016

Status: Started (was: Assigned)

Comment 16 by alexjn...@gmail.com, Mar 24 2016

Why is an iOS issue blocked on an android issue?

Comment 17 by rolfe@chromium.org, Mar 25 2016

Agreed! That's why comment 15 removed the block. (The bugs were separated out for clarity.)

Comment 18 by alexjn...@gmail.com, Mar 25 2016

Ah I see, I misinterpreted the bug form

Comment 19 by rolfe@chromium.org, Apr 7 2016

Been reviewing mocks with team, iterating on feedback.

Comment 20 by rolfe@chromium.org, Apr 28 2016

Mocks sent to UI Review.

Comment 21 by rolfe@chromium.org, May 6 2016

Need to adapt feedback for Android and iOS and confirm changes.

Comment 22 by rolfe@chromium.org, Jun 7 2016

Cc: rolfe@chromium.org
Owner: tedc...@chromium.org
Status: Assigned (was: Started)
Approved by UI Review, Security (lucasgarron@) and pkasting@ from search knowledge. Uses kingston's proposal to limit search engines shown as the list can get quite unwieldy.

Tedchoc- assuming I should assign to you for prioritization among your peoples. Not tied to any milestone, just nice to have.

Mocks are here:
https://folio.googleplex.com/chrome-ux/mocks/025-query-in-omnibox-mobile/02_Keyword%20Provider/060616_ClankList#%2F01_List.png
Limit top five most recently visited pages that qualify as search engines.
Show name of engine and keyword.
Syncs to desktop.

I don't believe specs are needed as this roughly follows other sections but it would be great to work with the SWE on it once they get into settings code to see what's most helpful.

Comment 23 by yuriko...@gmail.com, Jun 11 2016

@rolfe, please share mockup to public

Comment 24 by rolfe@chromium.org, Jun 14 2016

yurikoles- Sure. Landing screen is proposed to look like the attached. Once you select an "other" it will move up in the top list the next time you open the search engine options.
01_List.png
117 KB View Download

Comment 25 by alexjn...@gmail.com, Jun 14 2016

Nice!

Comment 26 by tedc...@chromium.org, Jul 28 2016

Owner: ltian@chromium.org

Comment 27 by bugdroid1@chromium.org, Sep 19 2016

Project Member
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/aa36cbaa608461565b798d847494d9be25cd15c8

commit aa36cbaa608461565b798d847494d9be25cd15c8
Author: ltian <ltian@chromium.org>
Date: Mon Sep 19 21:42:22 2016

Implement native functions to query custom search engines for Android

1. Enable SearchEngineTabHelper on Android to auto-detect and fetch OpenSearch description document.
2. Add native function to retrieve recent visited search engines.
3. Allow recent visited search engine to be selected as default search engine.

BUG= 348360 

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

[modify] https://crrev.com/aa36cbaa608461565b798d847494d9be25cd15c8/chrome/android/java/src/org/chromium/chrome/browser/search_engines/TemplateUrlService.java
[modify] https://crrev.com/aa36cbaa608461565b798d847494d9be25cd15c8/chrome/browser/search_engines/template_url_service_android.cc
[modify] https://crrev.com/aa36cbaa608461565b798d847494d9be25cd15c8/chrome/browser/search_engines/template_url_service_android.h
[modify] https://crrev.com/aa36cbaa608461565b798d847494d9be25cd15c8/chrome/browser/ui/tab_helpers.cc

Comment 28 by ian...@chromium.org, Sep 22 2016

Blockedon: 54

Comment 29 by ltian@chromium.org, Sep 22 2016

Blockedon: -54 649443

Comment 30 by ulfer...@googlemail.com, Sep 25 2016

Just logged in to tell everyone who is responsible for this, that it's a SHAME not to allow custom search engines and shows how Google is getting more and more intrusive! I am really disappointed.

Comment 31 by rolfe@chromium.org, Sep 26 2016

ulflerini@ - this bug is about how we're building the ability to allow custom search engines in Chrome on Android. Be disappointed no more!

Comment 32 by k...@chromium.org, Sep 27 2016

Blocking: 650847

Comment 33 by ltian@chromium.org, Oct 17 2016

Blockedon: 656793

Comment 34 by bugdroid1@chromium.org, Nov 18 2016

Project Member
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/cf06dd01d2516e1509acd1e99b20ccff09b8c19a

commit cf06dd01d2516e1509acd1e99b20ccff09b8c19a
Author: ltian <ltian@chromium.org>
Date: Fri Nov 18 08:49:12 2016

Change behaivor to decide whether a search engine should be shown in the default list

1. Delete show_in_default_list field in template_url_data.
2. New rule checks whether a search engine is prepopulated or created by
policy or now selected as default to decide whether it should appears in the
default search setting list. The search engine should also support search
term replacement if it is in that list.
3. Search engines parsed from Firefox by default will not appears in the
default list.

BUG= 348360 

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

[modify] https://crrev.com/cf06dd01d2516e1509acd1e99b20ccff09b8c19a/chrome/browser/android/locale/special_locale_handler.cc
[modify] https://crrev.com/cf06dd01d2516e1509acd1e99b20ccff09b8c19a/chrome/browser/extensions/api/settings_overrides/settings_overrides_api.cc
[modify] https://crrev.com/cf06dd01d2516e1509acd1e99b20ccff09b8c19a/chrome/browser/importer/in_process_importer_bridge.cc
[modify] https://crrev.com/cf06dd01d2516e1509acd1e99b20ccff09b8c19a/chrome/browser/importer/profile_writer.cc
[modify] https://crrev.com/cf06dd01d2516e1509acd1e99b20ccff09b8c19a/chrome/browser/search_engines/template_url_parser_unittest.cc
[modify] https://crrev.com/cf06dd01d2516e1509acd1e99b20ccff09b8c19a/chrome/browser/search_engines/template_url_service_sync_unittest.cc
[modify] https://crrev.com/cf06dd01d2516e1509acd1e99b20ccff09b8c19a/chrome/browser/search_engines/template_url_service_unittest.cc
[modify] https://crrev.com/cf06dd01d2516e1509acd1e99b20ccff09b8c19a/chrome/browser/ui/search_engines/template_url_table_model.cc
[modify] https://crrev.com/cf06dd01d2516e1509acd1e99b20ccff09b8c19a/chrome/browser/ui/webui/options/browser_options_handler.cc
[modify] https://crrev.com/cf06dd01d2516e1509acd1e99b20ccff09b8c19a/components/search_engines/default_search_manager.cc
[modify] https://crrev.com/cf06dd01d2516e1509acd1e99b20ccff09b8c19a/components/search_engines/default_search_manager_unittest.cc
[modify] https://crrev.com/cf06dd01d2516e1509acd1e99b20ccff09b8c19a/components/search_engines/default_search_pref_migration.cc
[modify] https://crrev.com/cf06dd01d2516e1509acd1e99b20ccff09b8c19a/components/search_engines/keyword_table.cc
[modify] https://crrev.com/cf06dd01d2516e1509acd1e99b20ccff09b8c19a/components/search_engines/keyword_table.h
[modify] https://crrev.com/cf06dd01d2516e1509acd1e99b20ccff09b8c19a/components/search_engines/keyword_table_unittest.cc
[modify] https://crrev.com/cf06dd01d2516e1509acd1e99b20ccff09b8c19a/components/search_engines/template_url.cc
[modify] https://crrev.com/cf06dd01d2516e1509acd1e99b20ccff09b8c19a/components/search_engines/template_url.h
[modify] https://crrev.com/cf06dd01d2516e1509acd1e99b20ccff09b8c19a/components/search_engines/template_url_data.cc
[modify] https://crrev.com/cf06dd01d2516e1509acd1e99b20ccff09b8c19a/components/search_engines/template_url_data.h
[modify] https://crrev.com/cf06dd01d2516e1509acd1e99b20ccff09b8c19a/components/search_engines/template_url_fetcher.cc
[modify] https://crrev.com/cf06dd01d2516e1509acd1e99b20ccff09b8c19a/components/search_engines/template_url_parser.cc
[modify] https://crrev.com/cf06dd01d2516e1509acd1e99b20ccff09b8c19a/components/search_engines/template_url_parser.h
[modify] https://crrev.com/cf06dd01d2516e1509acd1e99b20ccff09b8c19a/components/search_engines/template_url_prepopulate_data.cc
[modify] https://crrev.com/cf06dd01d2516e1509acd1e99b20ccff09b8c19a/components/search_engines/template_url_service.cc
[modify] https://crrev.com/cf06dd01d2516e1509acd1e99b20ccff09b8c19a/components/search_engines/template_url_service.h
[modify] https://crrev.com/cf06dd01d2516e1509acd1e99b20ccff09b8c19a/components/search_engines/template_url_unittest.cc
[modify] https://crrev.com/cf06dd01d2516e1509acd1e99b20ccff09b8c19a/components/sync/protocol/proto_visitors.h
[modify] https://crrev.com/cf06dd01d2516e1509acd1e99b20ccff09b8c19a/components/sync/protocol/search_engine_specifics.proto
[add] https://crrev.com/cf06dd01d2516e1509acd1e99b20ccff09b8c19a/components/test/data/web_database/version_67.sql
[modify] https://crrev.com/cf06dd01d2516e1509acd1e99b20ccff09b8c19a/components/webdata/common/BUILD.gn
[modify] https://crrev.com/cf06dd01d2516e1509acd1e99b20ccff09b8c19a/components/webdata/common/web_database.cc
[modify] https://crrev.com/cf06dd01d2516e1509acd1e99b20ccff09b8c19a/components/webdata/common/web_database_migration_unittest.cc

Comment 35 by bugdroid1@chromium.org, Nov 30 2016

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

commit 3b5e1a345a490034e4588ce4e512bfa10de413f3
Author: ltian <ltian@chromium.org>
Date: Wed Nov 30 19:48:11 2016

[Android] Allow setting recently visited search engines as default search engine

1. Change setting page layout to display recently visited search engines.
2. Change search engine layout to display url for recently visited
engines.
3. Implement the logic to change the location of custom search engine
based on whether it is selected as default or not.

BUG= 348360 

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

[modify] https://crrev.com/3b5e1a345a490034e4588ce4e512bfa10de413f3/chrome/android/java/res/layout/search_engine.xml
[delete] https://crrev.com/6b97c29c3f9a693e053b453ad3efeaa495a49ece/chrome/android/java/res/layout/search_engine_layout.xml
[add] https://crrev.com/3b5e1a345a490034e4588ce4e512bfa10de413f3/chrome/android/java/res/layout/search_engine_recent_title.xml
[modify] https://crrev.com/3b5e1a345a490034e4588ce4e512bfa10de413f3/chrome/android/java/res/values/dimens.xml
[modify] https://crrev.com/3b5e1a345a490034e4588ce4e512bfa10de413f3/chrome/android/java/src/org/chromium/chrome/browser/preferences/PrefServiceBridge.java
[modify] https://crrev.com/3b5e1a345a490034e4588ce4e512bfa10de413f3/chrome/android/java/src/org/chromium/chrome/browser/preferences/SearchEngineAdapter.java
[modify] https://crrev.com/3b5e1a345a490034e4588ce4e512bfa10de413f3/chrome/android/java/src/org/chromium/chrome/browser/preferences/SearchEnginePreference.java
[modify] https://crrev.com/3b5e1a345a490034e4588ce4e512bfa10de413f3/chrome/android/java/src/org/chromium/chrome/browser/search_engines/TemplateUrlService.java
[modify] https://crrev.com/3b5e1a345a490034e4588ce4e512bfa10de413f3/chrome/android/java/strings/android_chrome_strings.grd
[modify] https://crrev.com/3b5e1a345a490034e4588ce4e512bfa10de413f3/chrome/android/javatests/src/org/chromium/chrome/browser/preferences/PreferencesTest.java
[modify] https://crrev.com/3b5e1a345a490034e4588ce4e512bfa10de413f3/chrome/android/javatests/src/org/chromium/chrome/browser/search_engines/TemplateUrlServiceTest.java
[modify] https://crrev.com/3b5e1a345a490034e4588ce4e512bfa10de413f3/chrome/browser/search_engines/template_url_service_android.cc
[modify] https://crrev.com/3b5e1a345a490034e4588ce4e512bfa10de413f3/chrome/browser/search_engines/template_url_service_android.h
[modify] https://crrev.com/3b5e1a345a490034e4588ce4e512bfa10de413f3/components/search_engines/template_url_service.cc
[modify] https://crrev.com/3b5e1a345a490034e4588ce4e512bfa10de413f3/components/search_engines/template_url_service.h

Comment 36 by bugdroid1@chromium.org, Dec 2 2016

Project Member
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/8b5fc83dba9f525b0f707433a9fbb91465ca9bdd

commit 8b5fc83dba9f525b0f707433a9fbb91465ca9bdd
Author: ltian <ltian@chromium.org>
Date: Fri Dec 02 23:43:35 2016

Add field to monitor last visited time for each search engine

1. Add the last_visited field in template_url_data to monitor last
visited time of each search engine.
2. The last_visited will be updated to current time each time the OpenSearch
description document is detected.
3. For now, last_visited will not be synced if the template_url is
existed.

BUG= 348360 

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

[modify] https://crrev.com/8b5fc83dba9f525b0f707433a9fbb91465ca9bdd/chrome/browser/search_engines/template_url_service_unittest.cc
[modify] https://crrev.com/8b5fc83dba9f525b0f707433a9fbb91465ca9bdd/components/search_engines/default_search_manager.cc
[modify] https://crrev.com/8b5fc83dba9f525b0f707433a9fbb91465ca9bdd/components/search_engines/default_search_manager.h
[modify] https://crrev.com/8b5fc83dba9f525b0f707433a9fbb91465ca9bdd/components/search_engines/default_search_manager_unittest.cc
[modify] https://crrev.com/8b5fc83dba9f525b0f707433a9fbb91465ca9bdd/components/search_engines/keyword_table.cc
[modify] https://crrev.com/8b5fc83dba9f525b0f707433a9fbb91465ca9bdd/components/search_engines/keyword_table.h
[modify] https://crrev.com/8b5fc83dba9f525b0f707433a9fbb91465ca9bdd/components/search_engines/keyword_table_unittest.cc
[modify] https://crrev.com/8b5fc83dba9f525b0f707433a9fbb91465ca9bdd/components/search_engines/template_url.h
[modify] https://crrev.com/8b5fc83dba9f525b0f707433a9fbb91465ca9bdd/components/search_engines/template_url_data.cc
[modify] https://crrev.com/8b5fc83dba9f525b0f707433a9fbb91465ca9bdd/components/search_engines/template_url_data.h
[modify] https://crrev.com/8b5fc83dba9f525b0f707433a9fbb91465ca9bdd/components/search_engines/template_url_data_util.cc
[modify] https://crrev.com/8b5fc83dba9f525b0f707433a9fbb91465ca9bdd/components/search_engines/template_url_service.cc
[modify] https://crrev.com/8b5fc83dba9f525b0f707433a9fbb91465ca9bdd/components/search_engines/template_url_service.h
[add] https://crrev.com/8b5fc83dba9f525b0f707433a9fbb91465ca9bdd/components/test/data/web_database/version_68.sql
[modify] https://crrev.com/8b5fc83dba9f525b0f707433a9fbb91465ca9bdd/components/webdata/common/BUILD.gn
[modify] https://crrev.com/8b5fc83dba9f525b0f707433a9fbb91465ca9bdd/components/webdata/common/web_database.cc
[modify] https://crrev.com/8b5fc83dba9f525b0f707433a9fbb91465ca9bdd/components/webdata/common/web_database_migration_unittest.cc

Comment 37 by bugdroid1@chromium.org, Dec 17 2016

Project Member
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/dffd7c39dddd7ee52ffde3b877a237b5b877a252

commit dffd7c39dddd7ee52ffde3b877a237b5b877a252
Author: ltian <ltian@chromium.org>
Date: Sat Dec 17 00:23:25 2016

[Android] Sort custom search engines based on last visited time and display only top 5 most recently visited engines

On Android, all visited custom search engines are shown in the same
order provided by TemplateULService.

New design wants to sort the custom search engines based on their
last visited times and display only top 3 most recently visited engines
within 2 days.

Add logic in LoadTemplateURLs() to sort custom search engines based on
the last_visited field and remove redundant engines if there are more
than 3 engines return false for ShowInDefaultList() and visited within
2 days.

BUG= 348360 

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

[modify] https://crrev.com/dffd7c39dddd7ee52ffde3b877a237b5b877a252/chrome/android/java/src/org/chromium/chrome/browser/search_engines/TemplateUrlService.java
[modify] https://crrev.com/dffd7c39dddd7ee52ffde3b877a237b5b877a252/chrome/android/javatests/src/org/chromium/chrome/browser/search_engines/TemplateUrlServiceTest.java
[modify] https://crrev.com/dffd7c39dddd7ee52ffde3b877a237b5b877a252/chrome/browser/search_engines/template_url_service_android.cc
[modify] https://crrev.com/dffd7c39dddd7ee52ffde3b877a237b5b877a252/chrome/browser/search_engines/template_url_service_android.h
[modify] https://crrev.com/dffd7c39dddd7ee52ffde3b877a237b5b877a252/components/search_engines/template_url_service.cc
[modify] https://crrev.com/dffd7c39dddd7ee52ffde3b877a237b5b877a252/components/search_engines/template_url_service.h

Comment 38 by time...@gmail.com, Jan 21 2017

is this now fixed in mainline chrome on Android? I went to 
https://encrypted.google.com/ and it did not appear in list of custom search engines.

Comment 39 by ltian@chromium.org, Jan 21 2017

Hi, timecop

It will be landed soon on mainline chrome on Android and now it should be available on Chrome Canary. However, if it does not appear in list of custom search engine, it might be because Chrome does not detect the Open Search Description Document (OSDD) which is the file needed for Chrome to parse for a search engine. Android uses the exact same way desktop uses for detecting a search engine, but somehow it might be harder for Android to detect a custom search engine because webpage on mobile could be different from webpage shown on desktop.

Comment 40 by ltian@chromium.org, Feb 17 2017

Status: Fixed (was: Assigned)

Comment 41 by tedc...@chromium.org, Mar 18 2017

Cc: cramya@chromium.org vinodkr@chromium.org
 Issue 308819  has been merged into this issue.

Comment 42 by rbyers@chromium.org, Mar 20 2017

Labels: M-57
Looks like this is in Chrome 57 (screenshot at https://twitter.com/RickByers/status/841037049700503552).  Thank you!

Comment 43 by kartikja...@gmail.com, Jan 3 2018

Hi,
Can someone let me know what changes i have to do in my custom search engine so that it can be listed in others list.I already have an opensearch xml file in my source code.

Comment 44 by ltian@chromium.org, Jan 3 2018

What do you mean "others" list? Do you mean have it back to the "recently visited" list? It should move back to the "recently visited" when you select another one as default.

The custom engine will be auto added to the "recently visited" list if you visited it recently. But the list only should the top 3 most recently visited ones.

Comment 45 by rolfe@chromium.org, Jan 3 2018

Cc: -rolfe@chromium.org

Comment 46 Deleted

Comment 47 by ltian@chromium.org, Jan 3 2018

Sorry not quite familiar with that part. I think Chrome should add it if it has open search document. You could test whether the website can be added on the desktop under setting -> manage search engines -> other search engines. If so, it should be fine for Android.

Comment 48 by kartikja...@gmail.com, Jan 4 2018

Its working for desktop.It is being listed in other search engine list on desktop.Same is not working for android chrome .Any ideas??

Comment 49 by tedc...@chromium.org, Jan 4 2018

The mobile vs desktop behavior of custom search engines shouldn't be any different in terms of detection.  I would compare your implementation to something like duckduckgo, which does work correctly and see what differences there are.

Comment 50 by ltian@chromium.org, Jan 4 2018

There might be something different for your implementation on desktop and mobile. For example, Amazon was detected on its homepage on desktop but not no mobile.

Comment 51 by kartikja...@gmail.com, Jan 4 2018

Yes I too think different implementation needs to be done for mobile.Can someone help me with that.What changes i need to make so that it can be detected on mobile devices as well?? I visited duck duck go they have provided support for mobile devices.

Sign in to add a comment