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

Issue 654944 link

Starred by 1 user

Issue metadata

Status: Verified
Owner:
Closed: Oct 2016
Cc:
EstimatedDays: ----
NextAction: ----
OS: Chrome
Pri: 3
Type: Bug



Sign in to add a comment

Chrome Does Not Handle intent: URLs

Reported by mmur...@commonsware.com, Oct 12 2016

Issue description

Version: 55.0.2878.0 dev (64-bit)
Platform: 8861.0.0 (Official Build) dev-channel cyan
Device: Acer Chromebook C11 R738T

Steps to reproduce:
(1) Compile, install, and run the attached URLHandler sample app (note: this is the same sample app as is found in  issue #654941 )
(2) Click the "Visit Sample Page" button to bring up https://commonsware.com/sample in Chrome
(3) Click the "Link back to URLHandler via intent: URL" link

Expected result: URLHandler to return to the foreground, as the intent: URL resolves to an activity in that app.

Actual result: "External Protocol Request" dialog appears, saying that intent: URLs are not supported.

Since intent: URL values are native to Android, either they should be supported, or the lack of support should be documented (e.g., on https://developer.android.com/topic/arc/index.html).

 
URLHandler.zip
11.3 KB Download
Owner: yusukes@chromium.org
Status: Assigned (was: Untriaged)
Yusuke, I thought this was implemented already.  WDYT?
Status: Started (was: Assigned)
Taking a look.
(internal bug: b/32239556)
Update:
Chrome OS >=8913.0.0 (M56) has basic intent: URI support. The version still doesn't handle S.browser_fallback_url though (I'm implementing it right now.)

Project Member

Comment 5 by bugdroid1@chromium.org, Oct 25 2016

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

commit b7ee04cc50b5f176d9033814e5d81565c4cf4d50
Author: yusukes <yusukes@chromium.org>
Date: Tue Oct 25 17:59:38 2016

Improve intent: URI handling

This CL adds |fallback_url| field to the IntentHandlerInfo struct so
that RequestUrlHandlerList() can return such a URL when it is called
with intent:. This CL also modifies our external protocol handler to
let it handle the new field properly.

For example, if RequestUrlHandlerList() is called with
"intent://xxx/#Intent;package=com.xyz;S.browser_fallback_url=http://abc.org;end"
and the package com.xyz is not installed, the API returns
"http://abc.org", and the new external protocol handler code opens the
URL in a Chrome tab. Or, if the URL is without a browser fallback URL,
"intent://xxx/#Intent;package=com.xyz;end", and the package com.xyz
is not installed, the API returns "market://details?id=com.xyz" so the
user can open the app installation page if they want.

BUG= 654944 
TEST=try

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

[modify] https://crrev.com/b7ee04cc50b5f176d9033814e5d81565c4cf4d50/chrome/browser/chromeos/BUILD.gn
[modify] https://crrev.com/b7ee04cc50b5f176d9033814e5d81565c4cf4d50/chrome/browser/chromeos/arc/intent_helper/arc_external_protocol_dialog.cc
[modify] https://crrev.com/b7ee04cc50b5f176d9033814e5d81565c4cf4d50/chrome/browser/chromeos/arc/intent_helper/arc_external_protocol_dialog.h
[add] https://crrev.com/b7ee04cc50b5f176d9033814e5d81565c4cf4d50/chrome/browser/chromeos/arc/intent_helper/arc_external_protocol_dialog_unittest.cc
[modify] https://crrev.com/b7ee04cc50b5f176d9033814e5d81565c4cf4d50/components/arc/common/intent_helper.mojom

Status: Fixed (was: Started)
Chrome OS >=8937.0.0 (M56) will have the fix in comment #5.



Project Member

Comment 8 by bugdroid1@chromium.org, Nov 10 2016

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

commit 6081895a1251c992f0c6a7a90406076139d17a47
Author: yusukes <yusukes@chromium.org>
Date: Thu Nov 10 22:05:01 2016

Ensure that Chrome is visible in the dialog by default

Usually Chrome is not included in |handlers| because the function is
for handling external protocols, but when the URL is intent: with a
fallback URL or geo:, it can be. When Chrome is in |handlers|, and 3
or more browser apps are also in |handlers|, there is a possibility
that Chrome is not visible in the dialog by default. This CL fixes
the issue by adjusting the position of Chrome in |handlers|.

BUG= 654944 
TEST=try, manually checked on cyan too.

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

[modify] https://crrev.com/6081895a1251c992f0c6a7a90406076139d17a47/chrome/browser/chromeos/arc/intent_helper/arc_external_protocol_dialog.cc
[modify] https://crrev.com/6081895a1251c992f0c6a7a90406076139d17a47/chrome/browser/chromeos/arc/intent_helper/arc_navigation_throttle.cc
[modify] https://crrev.com/6081895a1251c992f0c6a7a90406076139d17a47/chrome/browser/chromeos/arc/intent_helper/arc_navigation_throttle.h
[modify] https://crrev.com/6081895a1251c992f0c6a7a90406076139d17a47/chrome/browser/chromeos/arc/intent_helper/arc_navigation_throttle_unittest.cc

Comment 9 by dchan@google.com, Jan 21 2017

Labels: VerifyIn-57

Comment 10 by dchan@google.com, Mar 4 2017

Labels: VerifyIn-58

Comment 11 by dchan@google.com, Apr 17 2017

Labels: VerifyIn-59
Status: Verified (was: Fixed)

Sign in to add a comment