Closed
Bug 1500906
Opened 6 years ago
Closed 6 years ago
Crash in android.os.FileUriExposedException: at android.os.StrictMode.onFileUriExposed(StrictMode.java)
Categories
(Firefox for Android Graveyard :: General, defect)
Tracking
(firefox63+ verified, firefox64 verified, firefox65 verified)
VERIFIED
FIXED
Firefox 65
People
(Reporter: gsvelto, Assigned: JanH)
References
Details
(Keywords: crash, regression)
Crash Data
Attachments
(2 files)
(deleted),
text/x-phabricator-request
|
RyanVM
:
approval-mozilla-beta+
|
Details |
(deleted),
text/x-phabricator-request
|
pascalc
:
approval-mozilla-release+
|
Details |
This bug was filed from the Socorro interface and is
report bp-1215d19c-321c-49ae-91a8-da30c0181021.
=============================================================
Java stack trace:
android.os.FileUriExposedException
at android.os.StrictMode.onFileUriExposed(StrictMode.java:1796)
at android.net.Uri.checkFileUriExposed(Uri.java:2354)
at android.content.Intent.prepareToLeaveProcess(Intent.java:9026)
at android.content.Intent.prepareToLeaveProcess(Intent.java:8987)
at android.app.Instrumentation.execStartActivity(Instrumentation.java:1519)
at android.app.Activity.startActivityForResult(Activity.java:4321)
at android.support.v4.app.BaseFragmentActivityApi16.startActivityForResult(BaseFragmentActivityApi16.java:54)
at android.support.v4.app.FragmentActivity.startActivityForResult(FragmentActivity.java:67)
at android.app.Activity.startActivityForResult(Activity.java:4279)
at android.support.v4.app.FragmentActivity.startActivityForResult(FragmentActivity.java:720)
at android.app.Activity.startActivity(Activity.java:4618)
at android.app.Activity.startActivity(Activity.java:4586)
at org.mozilla.gecko.ActivityHandlerHelper.startIntentAndCatch(ActivityHandlerHelper.java:33)
at org.mozilla.gecko.IntentHelper.openUriExternal(IntentHelper.java:148)
at org.mozilla.gecko.IntentHelper.open(IntentHelper.java:439)
at org.mozilla.gecko.IntentHelper.handleMessage(IntentHelper.java:422)
at org.mozilla.gecko.EventDispatcher$3.run(EventDispatcher.java:356)
at android.os.Handler.handleCallback(Handler.java:751)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6351)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:896)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:786)
Looking at the exception message it seems that we're trying to create an Intent with a file:// URI which is not supported anymore starting with API 24. It seems that to get around this either we have to use a less restrictive VM policy or we have to only use Intents with content:// URIs.
Assignee | ||
Comment 1•6 years ago
|
||
Right, I guess this might be possibly users browsing the local file system (or having opened some file type we support in Firefox from some other app) and then attempting to open that document/image/... in some other app using our helper app system.
(In reply to Gabriele Svelto [:gsvelto] from comment #0)
> It seems that to get around this either we have to use a less
> restrictive VM policy or we have to only use Intents with content:// URIs.
We do the former, because for world-accessible files in the public storage content:// URIs aren't as great as Googles makes them out to be (just look at what we have to do in order to properly display an HTML file we receive via a content:// URI). I handled downloads, and know that normal sharing doesn't work for file:// URIs, but didn't think of the helper app system.
Assignee: nobody → jh+bugzilla
Blocks: android-n, target-android-o
status-firefox63:
--- → affected
status-firefox64:
--- → affected
tracking-firefox63:
--- → ?
Hardware: Unspecified → All
Version: unspecified → Firefox 63
Assignee | ||
Comment 2•6 years ago
|
||
Sharing tabs with file:// URIs is not possible, but users can still send them to
other apps via the helper app system in the URL bar/context menu. "Intent:Open"
and "Intent:OpenForResult" are both sent from Gecko by HelperApps.jsm.
The same reasoning as in bug 1450449 applies as to why for publicly accessible
files content:// URIs are more trouble than they're worth.
Assignee | ||
Comment 3•6 years ago
|
||
I guess this could count as a regression caused by the target API26 migration.
Keywords: regression
status-firefox65:
--- → ?
Assignee | ||
Updated•6 years ago
|
Assignee | ||
Comment 5•6 years ago
|
||
Sharing tabs with file:// URIs is not possible, but users can still send them to
other apps via the helper app system in the URL bar/context menu. "Intent:Open"
and "Intent:OpenForResult" are both sent from Gecko by HelperApps.jsm.
The same reasoning as in bug 1450449 applies as to why for publicly accessible
files content:// URIs are more trouble than they're worth.
Pushed by mozilla@buttercookie.de:
https://hg.mozilla.org/integration/autoland/rev/73cfb79f183a
Suppress FileUriExposedExceptions when launching helper apps. r=jchen
Assignee | ||
Comment 7•6 years ago
|
||
Comment on attachment 9019105 [details]
Bug 1500906 - Suppress FileUriExposedExceptions when launching helper apps. r?esawin
[Beta/Release Uplift Approval Request]
Feature/Bug causing the regression: Bug 1485151
User impact if declined: Firefox will crash on Android N and later if viewing a locally stored file and attempting to use our helper app system (context menu link or the Android icon in the URL bar) to launch that file in an external app.
Is this code covered by automated tests?: No
Has the fix been verified in Nightly?: No
Needs manual test from QE?: Yes
If yes, steps to reproduce: Open a local file in Firefox (so you get a file://-URI in the URLbar) that can also be opened in some other locally installed app - some media file is most likely to work. Using the Android icon in the URLbar to launch the current page in Firefox in an external app using a file:// URI should no longer trigger a crash.
List of other uplifts needed: None
Risk to taking this patch: Low
Why is the change risky/not risky? (and alternatives if risky): Trivial change to temporarily disable the corresponding strict mode checks when launching helper apps - we also do the same thing for downloads already.
String changes made/needed: none
Attachment #9019105 -
Flags: approval-mozilla-beta?
Assignee | ||
Comment 8•6 years ago
|
||
Comment on attachment 9019807 [details]
Bug 1500906 - Suppress FileUriExposedExceptions when launching helper apps. r?esawin
[Beta/Release Uplift Approval Request]
Feature/Bug causing the regression: Bug 1473872
User impact if declined: Firefox will crash on Android N and later if viewing a locally stored file and attempting to use our helper app system (context menu link or the Android icon in the URL bar) to launch that file in an external app.
Is this code covered by automated tests?: No
Has the fix been verified in Nightly?: No
Needs manual test from QE?: Yes
If yes, steps to reproduce: Open a local file in Firefox (so you get a file://-URI in the URL bar) that can also be opened in some other locally installed app - some media file is most likely to work. Using the Android icon in the URL bar to launch the current page in Firefox in an external app using a file:// URI should no longer trigger a crash.
List of other uplifts needed: None
Risk to taking this patch: Low
Why is the change risky/not risky? (and alternatives if risky): Trivial change to temporarily disable the corresponding strict mode checks when launching helper apps - we also do the same thing for downloads already.
String changes made/needed: none
Attachment #9019807 -
Attachment description: Bug 1500906 - Suppress FileUriExposedExceptions when launching helper apps. r?jchen → Bug 1500906 - Suppress FileUriExposedExceptions when launching helper apps. r?esawin
Attachment #9019807 -
Attachment filename: phabricator-D9697-url.txt → phabricator-D9420-url.txt
Attachment #9019807 -
Flags: approval-mozilla-beta?
Assignee | ||
Comment 9•6 years ago
|
||
Comment on attachment 9019807 [details]
Bug 1500906 - Suppress FileUriExposedExceptions when launching helper apps. r?esawin
[Beta/Release Uplift Approval Request]
Feature/Bug causing the regression: None
User impact if declined:
Is this code covered by automated tests?: Yes
Has the fix been verified in Nightly?: Yes
Needs manual test from QE?: Yes
If yes, steps to reproduce:
List of other uplifts needed: None
Risk to taking this patch: Low
Why is the change risky/not risky? (and alternatives if risky):
String changes made/needed:
Attachment #9019807 -
Flags: approval-mozilla-beta? → approval-mozilla-release?
Assignee | ||
Comment 10•6 years ago
|
||
Release requires a separate patch because bug 1485151, which allows a more concise way of temporarily disabling strict mode, is only in Firefox 64.
Comment 11•6 years ago
|
||
bugherder |
Status: NEW → RESOLVED
Closed: 6 years ago
Resolution: --- → FIXED
Target Milestone: --- → Firefox 65
Comment 12•6 years ago
|
||
Comment on attachment 9019105 [details]
Bug 1500906 - Suppress FileUriExposedExceptions when launching helper apps. r?esawin
Fixes a Fennec crash. Approved for 64.0b4 (or b5, I haven't decided yet if I'm going to spin a Fennec b4 or not yet).
Attachment #9019105 -
Flags: approval-mozilla-beta? → approval-mozilla-beta+
Comment 13•6 years ago
|
||
bugherder uplift |
Comment 14•6 years ago
|
||
Verified as fixed on Nightly build 65.0a1 and 64.0b4 with the following devices: Huawei Honor 8(Android 7.0) and Samsung Galaxy Note 8(Android 8.0.0).
Updated•6 years ago
|
Status: RESOLVED → VERIFIED
Comment 15•6 years ago
|
||
Comment on attachment 9019807 [details]
Bug 1500906 - Suppress FileUriExposedExceptions when launching helper apps. r?esawin
Patch already on Nightly 65 and uplifted to 64 with no regression reported. The last 2 betas with this patch have seen crashes reduced very significantly for this signature. Uplift approved to release for our next dot release for 63. Thanks.
Attachment #9019807 -
Flags: approval-mozilla-release? → approval-mozilla-release+
Comment 16•6 years ago
|
||
bugherder uplift |
Updated•6 years ago
|
Flags: qe-verify+
Comment 17•6 years ago
|
||
Verified as fixed on RC build 63.0.2 following the steps from comment 8.
Devices: Nokia 6(Android 7.1.1) and Samsung Galaxy Tab S3(Android 8.0).
Flags: qe-verify+
Updated•4 years ago
|
Product: Firefox for Android → Firefox for Android Graveyard
You need to log in
before you can comment on or make changes to this bug.
Description
•