Closed
Bug 840160
Opened 12 years ago
Closed 12 years ago
Selecting to enter edit mode on an app that is downloading will disable the ability to launch any app until the phone is restarted or upon entering edit mode on a non-downloading app
Categories
(Firefox OS Graveyard :: Gaia::Homescreen, defect)
Tracking
(blocking-b2g:tef+, b2g18+ verified, b2g18-v1.0.1 verified)
VERIFIED
FIXED
blocking-b2g | tef+ |
People
(Reporter: jsmith, Assigned: julienw)
References
Details
(Keywords: regression)
Attachments
(1 file, 1 obsolete file)
62.05 KB,
patch
|
julienw
:
review+
|
Details | Diff | Splinter Review |
Build: B2G 18 2/11/2013
Device: Unagi
Steps:
1. Start installing a large packaged app
2. Hold one of the icons down to enter edit mode
Expected:
The icons should shake, allowing you to move around icons that are not actively being downloaded. An app that is currently not being downloaded should be able to be uninstalled.
Actual:
The icons do not shake. Additionally, any app that is currently not being downloaded can't be uninstalled.
Reporter | ||
Comment 1•12 years ago
|
||
This seems like a recent regression, potentially from a patch that recently landed for app install.
Reporter | ||
Comment 2•12 years ago
|
||
Narrowed this down - actually looks like this happens if you try to enter edit mode on an app that is downloading. When this happens, every single app can no longer be launched, including after the app finishes installing.
No longer blocks: app-install
tracking-b2g18:
? → ---
Summary: Edit Mode - Cannot move icons around or delete apps when an app is being downloaded during installation → Selecting to enter edit mode on an app that is downloading will disable the ability to launch any app until the phone is restarted
Reporter | ||
Updated•12 years ago
|
blocking-b2g: --- → tef?
Reporter | ||
Comment 3•12 years ago
|
||
Actually, looks like a workaround does exist here - you enter edit mode on an app that isn't downloading. Still quite a bad UX, but probably won't block given that it requires a well-targeted usage scenario.
blocking-b2g: tef? → ---
tracking-b2g18:
--- → ?
Summary: Selecting to enter edit mode on an app that is downloading will disable the ability to launch any app until the phone is restarted → Selecting to enter edit mode on an app that is downloading will disable the ability to launch any app until the phone is restarted or upon entering edit mode on a non-downloading app
Assignee | ||
Comment 4•12 years ago
|
||
I entered edit mode on an app that isn't downloading but then I tried moving the downloading app. It kind of worked (but was jerky) but then the homescreen was broken: I couldn't swype the panel anymore.
Assignee | ||
Comment 5•12 years ago
|
||
error is :
E/GeckoConsole( 4013): [JavaScript Error: "NS_ERROR_INVALID_POINTER: Component returned failure code: 0x80004003 (NS_ERROR_INVALID_POINTER) [nsIDOMMozURLProperty.createObjectURL]" {file: "app://homescreen.gaiamobile.org/js/page.js" line: 289}]
E/GeckoConsole( 4013): [JavaScript Error: "TypeError: draggableElem.querySelector(...) is null" {file: "app://homescreen.gaiamobile.org/js/page.js" line: 476}]
I don't know why we are in a state where createObjectURL fails (this is in the middle of a quite complicated code) but maybe we should try∕catch each call to createObjectURL to recover sanely.
Assignee | ||
Comment 6•12 years ago
|
||
We're calling "displayRenderedIcon" during "onDragStart". I believe that the icon for a downloading app has no descriptor.renderedIcon and that triggers the bug. I still don't know why we don't have this.
Jason, do you have the possibility to test if the bug is here without my fix to Bug 834117 ? Otherwise I'll test this tomorrow.
Assignee | ||
Updated•12 years ago
|
blocking-b2g: --- → leo?
Assignee | ||
Updated•12 years ago
|
Component: Gaia::System → Gaia::Homescreen
Assignee | ||
Comment 7•12 years ago
|
||
The result of this bug is quite dramatic because the user has to reboot the phone. I'd love to fix that and uplift this too, that's why I nominate for leo.
Assignee | ||
Updated•12 years ago
|
Assignee: nobody → felash
Assignee | ||
Comment 8•12 years ago
|
||
WIP :
https://github.com/julienw/gaia/tree/840160-fix-drag-drop-downloading-icon
Added some tests, make the "home" button always fix panning (which at least enables the user to escape the strange state), and I have a failing test to fix the initial bug \o/.
Assignee | ||
Updated•12 years ago
|
blocking-b2g: leo? → tef?
Comment 10•12 years ago
|
||
We definitely want this for v1.1, leaving the tef? for Mvines to decide on potential uplift to v1.0.1
status-b2g18:
--- → affected
Assignee | ||
Comment 11•12 years ago
|
||
(see also PR https://github.com/mozilla-b2g/gaia/pull/8477)
* optimize png sizes
* add basic tests for grid
* always enable panning when the user presses the home button
* don t spin the icon while drag&dropping
* always create a renderedIcon, even in the downloading state
* don't hide the icon if it's already rendered-ready
* add the img as late as possible to the DOM
* change GridManager from const to var to be able to mock and test it
---
apps/homescreen/js/dragdrop.js | 3 +
apps/homescreen/js/grid.js | 59 +++++---
apps/homescreen/js/homescreen.js | 5 +-
apps/homescreen/js/page.js | 22 ++-
apps/homescreen/style/grid.css | 7 +
apps/homescreen/style/images/app_downloading.png | Bin 3518 -> 2514 bytes
apps/homescreen/style/images/app_paused.png | Bin 3709 -> 2546 bytes
apps/homescreen/style/images/default.png | Bin 1552 -> 1443 bytes
.../homescreen/style/images/default_background.png | Bin 2777 -> 2642 bytes
apps/homescreen/style/images/loading_spinner.png | Bin 3400 -> 3071 bytes
apps/homescreen/test/unit/grid_test.js | 114 ++++++++++++++
apps/homescreen/test/unit/mock_apps_mgmt.js | 64 ++++++++
apps/homescreen/test/unit/mock_configurator.js | 5 +
apps/homescreen/test/unit/mock_dock_manager.js | 9 ++
apps/homescreen/test/unit/mock_grid_manager.js | 1 +
apps/homescreen/test/unit/mock_home_state.js | 11 ++
apps/homescreen/test/unit/mock_page.js | 23 +++
apps/homescreen/test/unit/mock_pagination_bar.js | 6 +
apps/homescreen/test/unit/mock_xmlhttprequest.js | 27 +++-
apps/homescreen/test/unit/mocks_helper.js | 24 ++-
apps/homescreen/test/unit/page_test.js | 155 ++++++++++++--------
apps/homescreen/test/unit/setup.js | 5 +
22 files changed, 436 insertions(+), 104 deletions(-)
create mode 100644 apps/homescreen/test/unit/grid_test.js
create mode 100644 apps/homescreen/test/unit/mock_apps_mgmt.js
create mode 100644 apps/homescreen/test/unit/mock_configurator.js
create mode 100644 apps/homescreen/test/unit/mock_dock_manager.js
create mode 100644 apps/homescreen/test/unit/mock_home_state.js
create mode 100644 apps/homescreen/test/unit/mock_page.js
create mode 100644 apps/homescreen/test/unit/mock_pagination_bar.js
create mode 100644 apps/homescreen/test/unit/setup.js
Attachment #721359 -
Flags: review?(crdlc)
Assignee | ||
Comment 12•12 years ago
|
||
Comment on attachment 721359 [details] [diff] [review]
patch v1
Some console.log statements were left in my patch, sorry, I'll remove them tomorrow.
Comment 14•12 years ago
|
||
Comment on attachment 721359 [details] [diff] [review]
patch v1
All is ok but please squash commits. Thanks for your work!
Attachment #721359 -
Flags: review?(crdlc) → review+
Assignee | ||
Comment 15•12 years ago
|
||
Status: ASSIGNED → NEW
Assignee | ||
Updated•12 years ago
|
Status: NEW → RESOLVED
Closed: 12 years ago
Resolution: --- → FIXED
Assignee | ||
Comment 16•12 years ago
|
||
carrying r=crdlc
This is the patch that landed.
Attachment #721359 -
Attachment is obsolete: true
Attachment #721708 -
Flags: review+
Assignee | ||
Comment 17•12 years ago
|
||
One of the tests I added here fails very occasionally, I'll have a look and see if I can fix that easily.
Updated•12 years ago
|
blocking-b2g: tef? → tef+
Comment 18•12 years ago
|
||
I was not able to uplift this bug to v1-train and v1.0.1. If this bug has dependencies which are not marked in this bug, please comment on this bug. If this bug depends on patches that aren't approved for v1-train and v1.0.1, we need to re-evaluate the approval. Otherwise, if this is just a merge conflict, you might be able to resolve it with:
git checkout v1-train
git cherry-pick -x 871aba5cbdb50dc48b352dbb0be5474f44e4a09c
<RESOLVE MERGE CONFLICTS>
git commit
git checkout v1.0.1
git cherry-pick -x $(git log -n1 v1-train)
Updated•12 years ago
|
status-b2g18-v1.0.1:
--- → affected
Assignee | ||
Comment 19•12 years ago
|
||
v1-train: b2fd277706a9d55efd3b30e1619240bbce19a425
Assignee | ||
Comment 20•12 years ago
|
||
v1.0.1: c6bc877a8dc495a3ec4650e5cb9fd50964b2d361
Assignee | ||
Updated•12 years ago
|
Comment 22•12 years ago
|
||
While a large app is being downloaded/installed it is possible to edit the app and move/delete other (installed) apps.
Kernel Date: Dec 5
Gecko: http://hg.mozilla.org/releases/mozilla-b2g18_v1_0_1/rev/ccec751a468e
Gaia: ee0bef61c0a25c806dd1eec5a4e047bc418a5f73
Also verified on OTA V1 build
Kernel Date: Dec 5
Gecko: http://hg.mozilla.org/releases/mozilla-b2g18/rev/d467369d1b0c
Gaia: 06e0e5ce42bdfb62bdbe38271de6b5b2d9e40e75
You need to log in
before you can comment on or make changes to this bug.
Description
•