Closed
Bug 896059
Opened 11 years ago
Closed 11 years ago
Installation of packaged apps is broken
Categories
(Firefox for Android Graveyard :: Web Apps (PWAs), defect, P1)
Tracking
(fennec25+)
VERIFIED
FIXED
Firefox 25
Tracking | Status | |
---|---|---|
fennec | 25+ | --- |
People
(Reporter: jsmith, Assigned: wesj)
References
Details
(Keywords: regression, reproducible, Whiteboard: [A4A])
Attachments
(1 file, 2 obsolete files)
978 bytes,
patch
|
mfinkle
:
review+
|
Details | Diff | Splinter Review |
Build: Firefox 25 Nightly Device: Samsung Galaxy Nexus OS: Android 4.2 STR 1. Go to http://mozqa.com/webapi-permissions-tests/ 2. Select Install Packaged App under Packaged App Test Case 2 Expected The packaged app should be able to be installed. Actual Installation fails and leaves behind a broken icon on the about:apps page.
Reporter | ||
Updated•11 years ago
|
Priority: -- → P1
Whiteboard: [A4A]
Comment 1•11 years ago
|
||
E/GeckoConsole(23746): [JavaScript Error: "Services.wm.getMostRecentWindow(...).navigator.getDeviceStorage is not a function" {file: "resource://gre/modules/Webapps.jsm" line: 2543}] E/GeckoConsole(23746): [JavaScript Error: "TypeError: app.manifest is undefined" {file: "http://mozqa.com/webapi-permissions-tests/apps.js" line: 31}] E/GeckoConsole(23746): [JavaScript Error: "this._manifest is undefined" {file: "resource://gre/modules/AppsUtils.jsm" line: 512}] E/GeckoConsole(23746): [JavaScript Error: "NS_ERROR_XPC_JAVASCRIPT_ERROR_WITH_DETAILS: '[JavaScript Error: "this._manifest is undefined" {file: "resource://gre/modules/AppsUtils.jsm" line: 512}]' when calling method: [nsIDOMEventListener::handleEvent]" {file: "jar:jar:file:///data/app/org.mozilla.fennec-2.apk!/assets/omni.ja!/components/Webapps.js" line: 760}]
The regression window is: 1.mozilla-central good build: 19.07.2013 bad build: 20.07.2013 -pushlog: http://hg.mozilla.org/mozilla-central/pushloghtml?fromchange=af4e3ce8c487&tochange=bf73e10f5e54 2.inbound good build:1374130488 bad build: 1374133787 -pushlog: http://hg.mozilla.org/integration/mozilla-inbound/pushloghtml?fromchange=d07610709b5d&tochange=30c1dda8e849
Keywords: regressionwindow-wanted
Updated•11 years ago
|
tracking-fennec: --- → ?
Updated•11 years ago
|
Assignee: nobody → wjohnston
tracking-fennec: ? → 25+
Comment 4•11 years ago
|
||
(In reply to Aaron Train [:aaronmt] from comment #1) > E/GeckoConsole(23746): [JavaScript Error: > "Services.wm.getMostRecentWindow(...).navigator.getDeviceStorage is not a > function" {file: "resource://gre/modules/Webapps.jsm" line: 2543}] This error will be fixed by the patches in bug 777402. > E/GeckoConsole(23746): [JavaScript Error: "TypeError: app.manifest is > undefined" {file: "http://mozqa.com/webapi-permissions-tests/apps.js" line: > 31}] This one is expected, the code in that page is expecting app.manifest to exist in request.onsuccess, but there isn't such a property for packaged apps. About the regression window, which one is it? Is the second a more detailed one?
Assignee | ||
Comment 5•11 years ago
|
||
I'm not sure about that regression window. I've managed to find two problems trying things our from: http://mozqa.com/webapi-permissions-tests/ 1.) I forgot to add button toasts to the webapp layout. Since we initialize button toast in webapps, I guess the initialization it throwing... 2.) There have been some recent dom changes that caused navigator.getDeviceStorage to be undefined (as opposed to just returning null before). bug 838146.
Attachment #781247 -
Flags: review?(mark.finkle)
Assignee | ||
Comment 6•11 years ago
|
||
Even with that, some of the apps in the test page are not installing. Some with INVALID_SECURITY_LEVEL. Others, more worrying, somehow manage to force themselves to launch on install? Which then crashes quickly...
Reporter | ||
Comment 7•11 years ago
|
||
Comment on attachment 781247 [details] [diff] [review] Patch Review of attachment 781247 [details] [diff] [review]: ----------------------------------------------------------------- ::: mobile/android/app/mobile.js @@ +778,5 @@ > pref("gfx.canvas.azure.backends", "skia"); > pref("gfx.canvas.azure.accelerated", true); > + > +// Enable device storage so that packaged apps can install > +pref("device.storage.enabled", true); Why are we solving this bug by turning on device storage? Shouldn't we make the fix in the DOM Apps API code here?
Reporter | ||
Comment 8•11 years ago
|
||
(In reply to Wesley Johnston (:wesj) from comment #6) > Even with that, some of the apps in the test page are not installing. Some > with INVALID_SECURITY_LEVEL. Others, more worrying, somehow manage to force > themselves to launch on install? Which then crashes quickly... Note - some of the test apps I have intentionally will fail installation - the comments included with the test case should indicate that information. The launch issue is bug 873701. The crash issue sounds new though. Can you include a crash report URL here? What's the stack showing?
Comment 9•11 years ago
|
||
Comment on attachment 781247 [details] [diff] [review] Patch ># HG changeset patch ># Parent a4c1961bf723dc7285f57f2cccbdf8144de187ab > >diff --git a/mobile/android/app/mobile.js b/mobile/android/app/mobile.js >--- a/mobile/android/app/mobile.js >+++ b/mobile/android/app/mobile.js >@@ -772,8 +772,11 @@ > pref("media.useAudioChannelService", false); > > // Turn on the CSP 1.0 parser for Content Security Policy headers > pref("security.csp.speccompliant", true); > > // Enable hardware-accelerated Skia canvas > pref("gfx.canvas.azure.backends", "skia"); > pref("gfx.canvas.azure.accelerated", true); >+ >+// Enable device storage so that packaged apps can install >+pref("device.storage.enabled", true); We should not need this part. The DOM code should correctly handle the null returned by getDeviceStorage. Seems like it is not returning null, which is a separate bug. Let's not flip this pref unless that is the Real Fix (tm) for this issue. >diff --git a/mobile/android/base/resources/layout/web_app.xml b/mobile/android/base/resources/layout/web_app.xml >+ <LinearLayout android:id="@+id/toast" >+ style="@style/Toast"> >+ >+ <TextView android:id="@+id/toast_message" >+ style="@style/ToastMessage" /> >+ >+ <ImageView android:id="@+id/toast_divider" >+ style="@style/ToastDivider" /> >+ >+ <Button android:id="@+id/toast_button" >+ style="@style/ToastButton" /> >+ >+ </LinearLayout> Maybe this means we should move super toast to BrowserApp? I'm ok with doing that in a followup. Holding r+ until we decide on the "device.storage.enabled" pref
Comment 10•11 years ago
|
||
Just as an aside: It seems like a lot of stuff is changing under our feet and breaking packaged app installation. What the hell is happening?
Comment 11•11 years ago
|
||
Hindsight being what it is, if we had install tests enabled, bug 838146 would not have landed without fixing the WebApps.jsm code that uses getDeviceStorage.
Reporter | ||
Comment 12•11 years ago
|
||
Reporter | ||
Comment 13•11 years ago
|
||
Comment on attachment 781708 [details] [diff] [review] DOM Apps Part - Check for getDeviceStorage Existence in Webapps.jsm before calling getDeviceStorage I haven't tested this yet, but I think this is the patch you want to fix the navigator.getDeviceStorage is not a function issue. Note - this patch only fixes the bug in the DOM Apps code. I'm spinning a try build in a second to test this manually.
Attachment #781708 -
Flags: review?(fabrice)
Comment 14•11 years ago
|
||
The above should be in a new bug.
Comment 15•11 years ago
|
||
Comment on attachment 781708 [details] [diff] [review] DOM Apps Part - Check for getDeviceStorage Existence in Webapps.jsm before calling getDeviceStorage You also need to fixup FreeSpaceWatcher http://mxr.mozilla.org/mozilla-central/source/dom/apps/src/FreeSpaceWatcher.jsm#56
Reporter | ||
Comment 16•11 years ago
|
||
Comment on attachment 781708 [details] [diff] [review] DOM Apps Part - Check for getDeviceStorage Existence in Webapps.jsm before calling getDeviceStorage Ack. And that's what I get for hacking something together quickly.
Attachment #781708 -
Flags: review?(fabrice)
Reporter | ||
Updated•11 years ago
|
Attachment #781708 -
Attachment is obsolete: true
Assignee | ||
Comment 17•11 years ago
|
||
Removed the device storage stuff.
Attachment #781247 -
Attachment is obsolete: true
Attachment #781247 -
Flags: review?(mark.finkle)
Attachment #784840 -
Flags: review?(mark.finkle)
Comment 18•11 years ago
|
||
Comment on attachment 784840 [details] [diff] [review] Patch Good for now
Attachment #784840 -
Flags: review?(mark.finkle) → review+
Assignee | ||
Comment 19•11 years ago
|
||
https://hg.mozilla.org/integration/mozilla-inbound/rev/3d1fa2987be8
Comment 20•11 years ago
|
||
https://hg.mozilla.org/mozilla-central/rev/3d1fa2987be8
Status: NEW → RESOLVED
Closed: 11 years ago
Resolution: --- → FIXED
Target Milestone: --- → Firefox 25
Comment 21•10 years ago
|
||
Build: Firefox 29 Nightly 2014-01-10 Device: Samsung Galaxy Nexus OS: Android 4.3 (In reply to Jason Smith [:jsmith] from comment #0) > STR > 1. Go to http://mozqa.com/webapi-permissions-tests/ > 2. Select Install Packaged App under Packaged App Test Case 2 Using the mentioned steps I am able to install the app and I do not get any errors. Marking this as Verified Fixed
Status: RESOLVED → VERIFIED
Updated•3 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
•