Somehow stuck in "File not found" when attempting to view collection activity

VERIFIED FIXED in Firefox OS v2.0

Status

Firefox OS
Gaia::System
VERIFIED FIXED
4 years ago
4 years ago

People

(Reporter: lightsofapollo, Assigned: gerard)

Tracking

unspecified
2.0 S4 (20june)
x86
Mac OS X

Firefox Tracking Flags

(blocking-b2g:2.0+, b2g-v2.0 verified, b2g-v2.1 verified)

Details

(Whiteboard: [systemsfe])

Attachments

(3 attachments, 1 obsolete attachment)

(Reporter)

Description

4 years ago
Created attachment 8440038 [details]
2014-06-13-14-15-52.png
(Reporter)

Comment 1

4 years ago
Pressing home / cancel could not escape the dialog... No STR right now.
(Reporter)

Updated

4 years ago
blocking-b2g: --- → 2.0?
Str:

 - Launch activity from homescreen (tap an existing smart collection from homescreen for example)
 - Press home button
 - Repeat the above twice in a row quickly.
(Reporter)

Comment 3

4 years ago
Created attachment 8440114 [details] [review]
https://github.com/mozilla-b2g/gaia/pull/20512

This is a terrible hack around the situation... I would ideally like to figure out why this bug happens and fix it (it seems pretty bad?) but this patch fixes the problem for me by preventing redirection away from the homescreen when the bug does happen.
Attachment #8440114 - Flags: feedback?(alive)
blocking-b2g: 2.0? → 2.0+
Comment on attachment 8440114 [details] [review]
https://github.com/mozilla-b2g/gaia/pull/20512

The gaia workaround makes sense but I would like to have gecko developer to see why the location is changed..
Gregor do you think you could find someone investigate this from gecko side since you 2.0+ it?
Attachment #8440114 - Flags: feedback?(alive) → feedback+
Flags: needinfo?(anygregor)
(Reporter)

Comment 5

4 years ago
Not going to land my hack unless we can't find a better solution for this problem in the 2.0 cycle... this is a tiny hack that is very isolated and should be safe to land if needed.
(In reply to James Lal [:lightsofapollo] from comment #5)
> Not going to land my hack unless we can't find a better solution for this
> problem in the 2.0 cycle... this is a tiny hack that is very isolated and
> should be safe to land if needed.

Agree.
James, could you print the evt.detail when you reproduce this issue in mozbrowserlocationchange handler and tell me where does gecko redirect homescreen to?
(Assignee)

Comment 7

4 years ago
I can reproduce on my Flame running master.
(Assignee)

Updated

4 years ago
Assignee: nobody → lissyx+mozillians
(Assignee)

Comment 8

4 years ago
I get this in logcat:
> E/GeckoConsole(  989): Content JS ERROR at about:neterror?e=fileNotFound&u=app%3A//collection.gaiamobile.org/view.html1402910355560&c=UTF-8&f=app&m=app%3A//verticalhome.gaiamobile.org/manifest.webapp&d=Firefox%20can%27t%20find%20the%20file%20at%20app%3A//collection.gaiamobile.org/view.html1402910355560.:1213 in initPage:

Which, according to the documentation in https://github.com/mozilla-b2g/gaia/blob/cb75627a98456cd9f05a1460b595a9c1d534394b/apps/system/js/net_error.js#L79 means the error was generated by app://collection.gaiamobile.org/view.html1402910355560.
(Assignee)

Comment 9

4 years ago
So, some findings:
 - upon start, BrowserConfigHelper is initialized with appURL=app://verticalhome.gaiamobile.org and the matching manifest, and this.brower_config.url is app://verticalhome.gaiamobile.org/index.html#root
 - upon tapping a collection, BrowserConfigHelper is initialized with appURL=app://collection.gaiamobile.org/view.html and the matching manifest, this.browser_config.url is still app://verticalhome.gaiamobile.org/index.html#root

From there, this value stays.

In apps/system/js/homescreen_window.js, HomescreenWindow.prototype.ensure() makes use of this.browser_config.url to populate this.browser.element.src. According to Alive on IRC, the present bug happens when this.browser_config.url takes the value app://collections.gaiamobile.org/view.html.

This is what happens at some points, as exposed in those logs:
> 06-16 13:16:51.911  7036  7036 E GeckoConsole: Content JS DEBUG at app://system.gaiamobile.org/js/browser_config_helper.js:41 in window.BrowserConfigHelper: window.BrowserConfigHelper: appURL=app://collection.gaiamobile.org/view.html
> 06-16 13:16:51.911  7036  7036 E GeckoConsole: Content JS DEBUG at app://system.gaiamobile.org/js/browser_config_helper.js:42 in window.BrowserConfigHelper: window.BrowserConfigHelper: manifestURL=app://collection.gaiamobile.org/manifest.webapp
> 06-16 13:16:52.391  7036  7036 E GeckoConsole: Content JS LOG at app://system.gaiamobile.org/js/app_window.js:930 in aw_debug: [Dump: HomescreenWindow][Vertical][homescreen][427.109]this.browser_config.url=app://verticalhome.gaiamobile.org/index.html#root1402917373276140291737424714029173780241402917378632140291738646614029173866391402917386852140291739192814029173921031402917392266140291739242814029173925771402917392711140291739287414029173947791402917394962140291739517714029173965151402917405286140291740547214029174055861402917411067
> 06-16 13:16:52.971  7036  7036 E GeckoConsole: Content JS DEBUG at app://system.gaiamobile.org/js/browser_config_helper.js:41 in window.BrowserConfigHelper: window.BrowserConfigHelper: appURL=app://collection.gaiamobile.org/view.html
> 06-16 13:16:52.971  7036  7036 E GeckoConsole: Content JS DEBUG at app://system.gaiamobile.org/js/browser_config_helper.js:42 in window.BrowserConfigHelper: window.BrowserConfigHelper: manifestURL=app://collection.gaiamobile.org/manifest.webapp
> 06-16 13:16:53.341  7036  7036 E GeckoConsole: Content JS LOG at app://system.gaiamobile.org/js/app_window.js:930 in aw_debug: [Dump: HomescreenWindow][Vertical][homescreen][428.067]this.browser_config.url=app://collection.gaiamobile.org/view.html
> 06-16 13:16:53.551  7036  7036 E GeckoConsole: Content JS LOG at app://system.gaiamobile.org/js/app_window.js:930 in aw_debug: [Dump: HomescreenWindow][Vertical][homescreen][428.256]this.browser_config.url=app://collection.gaiamobile.org/view.html
> 06-16 13:16:53.761  7036  7036 E GeckoConsole: Content JS LOG at app://system.gaiamobile.org/js/app_window.js:930 in aw_debug: [Dump: HomescreenWindow][Vertical][homescreen][428.490]this.browser_config.url=app://collection.gaiamobile.org/view.html1402917413502
(Assignee)

Comment 10

4 years ago
My logs shows also that there was no call to HomescreenWindow.prototype.setBrowserConfig() when the switch happens.
(Assignee)

Comment 11

4 years ago
It seems that the following log isolate the precise moment where the bug arises:

> 06-16 14:09:26.758 11844 11844 E GeckoConsole: Content JS DEBUG at app://system.gaiamobile.org/js/homescreen_launcher.js:245 in hl_getHomescreen: getHomescreen: this._currentManifestURL=app://verticalhome.gaiamobile.org/manifest.webapp
> 06-16 14:09:26.758 11844 11844 E GeckoConsole: Content JS DEBUG at app://system.gaiamobile.org/js/homescreen_launcher.js:246 in hl_getHomescreen: getHomescreen: this._instance=[object Object]
> 06-16 14:09:26.768 11844 11844 E GeckoConsole: Content JS DEBUG at app://system.gaiamobile.org/js/homescreen_launcher.js:255 in hl_getHomescreen: getHomescreen: browser_config.urlapp://verticalhome.gaiamobile.org/index.html#root1402920565999140292056623014029205664261402920566621
> 06-16 14:09:26.768 11844 11844 E GeckoConsole: Content JS DEBUG at app://system.gaiamobile.org/js/homescreen_window.js:186 in hw_ensure: this.browser_config.url=app://verticalhome.gaiamobile.org/index.html#root1402920565999140292056623014029205664261402920566621
---------------------------
> 06-16 14:09:27.938 11844 11844 E GeckoConsole: Content JS LOG at app://system.gaiamobile.org/js/child_window_factory.js:119 in ChildWindowFactory.prototype.createActivityWindow: app://verticalhome.gaiamobile.org/index.html#root app://verticalhome.gaiamobile.org/manifest.webapp
> 06-16 14:09:28.098 11844 11844 E GeckoConsole: Content JS DEBUG at app://system.gaiamobile.org/js/homescreen_launcher.js:245 in hl_getHomescreen: getHomescreen: this._currentManifestURL=app://verticalhome.gaiamobile.org/manifest.webapp
> 06-16 14:09:28.098 11844 11844 E GeckoConsole: Content JS DEBUG at app://system.gaiamobile.org/js/homescreen_launcher.js:246 in hl_getHomescreen: getHomescreen: this._instance=[object Object]
> 06-16 14:09:28.098 11844 11844 E GeckoConsole: Content JS DEBUG at app://system.gaiamobile.org/js/homescreen_launcher.js:255 in hl_getHomescreen: getHomescreen: browser_config.urlapp://verticalhome.gaiamobile.org/index.html#root14029205659991402920566230140292056642614029205666211402920566759
> 06-16 14:09:28.278 11844 11844 E GeckoConsole: Content JS DEBUG at app://system.gaiamobile.org/js/homescreen_launcher.js:245 in hl_getHomescreen: getHomescreen: this._currentManifestURL=app://verticalhome.gaiamobile.org/manifest.webapp
> 06-16 14:09:28.278 11844 11844 E GeckoConsole: Content JS DEBUG at app://system.gaiamobile.org/js/homescreen_launcher.js:246 in hl_getHomescreen: getHomescreen: this._instance=[object Object]
> 06-16 14:09:28.278 11844 11844 E GeckoConsole: Content JS DEBUG at app://system.gaiamobile.org/js/homescreen_launcher.js:255 in hl_getHomescreen: getHomescreen: browser_config.urlapp://collection.gaiamobile.org/view.html
> 06-16 14:09:28.288 11844 11844 E GeckoConsole: Content JS DEBUG at app://system.gaiamobile.org/js/homescreen_window.js:186 in hw_ensure: this.browser_config.url=app://collection.gaiamobile.org/view.html

So it looks like we end up with a getHomescreen() call that returns a homescreen (manifestURL is app://verticalhome.gaiamobile.org/manifest.webapp) but whose browser_config.url is the collection app.
(Assignee)

Comment 12

4 years ago
Created attachment 8440653 [details]
Debug code

This is the debug used to generate comment 11.
(Assignee)

Comment 13

4 years ago
> 06-16 14:46:42.144 15301 15301 E GeckoConsole: Content JS DEBUG at app://system.gaiamobile.org/js/app_window.js:852 in aw__handle_mozbrowserlocationchange: AppWindow: [app://collection.gaiamobile.org/manifest.webapp] this.config.url: app://collection.gaiamobile.org/view.html => app://collection.gaiamobile.org/view.html
> 06-16 14:46:42.144 15301 15301 E GeckoConsole: Content JS DEBUG at app://system.gaiamobile.org/js/app_window.js:852 in aw__handle_mozbrowserlocationchange: AppWindow: [app://verticalhome.gaiamobile.org/manifest.webapp] this.config.url: app://verticalhome.gaiamobile.org/index.html#root => app://collection.gaiamobile.org/view.html
> 06-16 14:46:42.614 15301 15301 E GeckoConsole: Content JS DEBUG at app://system.gaiamobile.org/js/app_window.js:852 in aw__handle_mozbrowserlocationchange: AppWindow: [app://verticalhome.gaiamobile.org/manifest.webapp] this.config.url: app://collection.gaiamobile.org/view.html => app://collection.gaiamobile.org/view.html1402922802331
> 06-16 14:46:43.524 15301 15301 E GeckoConsole: Content JS DEBUG at app://system.gaiamobile.org/js/app_window.js:852 in aw__handle_mozbrowserlocationchange: AppWindow: [app://verticalhome.gaiamobile.org/manifest.webapp] this.config.url: app://collection.gaiamobile.org/view.html1402922802331 => app://collection.gaiamobile.org/view.html14029228023311402922802682
(Assignee)

Comment 14

4 years ago
This isolates the issue: rearWindow is undefined in the Smart Collections app, while it should not.

> 06-16 14:57:14.784 18188 18188 E GeckoConsole: Content JS DEBUG at app://system.gaiamobile.org/js/app_window.js:852 in aw__handle_mozbrowserlocationchange: AppWindow: [Vertical] this.rearWindow=UNDEFINED
> 06-16 14:57:14.784 18188 18188 E GeckoConsole: Content JS DEBUG at app://system.gaiamobile.org/js/app_window.js:853 in aw__handle_mozbrowserlocationchange: AppWindow: [app://verticalhome.gaiamobile.org/manifest.webapp] this.config.url: app://verticalhome.gaiamobile.org/index.html#root140292343182814029234320051402923432166 => app://verticalhome.gaiamobile.org/index.html#root1402923431828140292343200514029234321661402923434750
> 06-16 14:57:14.824 18188 18188 E GeckoConsole: Content JS DEBUG at app://system.gaiamobile.org/js/app_window.js:852 in aw__handle_mozbrowserlocationchange: AppWindow: [Smart Collections] this.rearWindow=UNDEFINED
> 06-16 14:57:14.834 18188 18188 E GeckoConsole: Content JS DEBUG at app://system.gaiamobile.org/js/app_window.js:853 in aw__handle_mozbrowserlocationchange: AppWindow: [app://collection.gaiamobile.org/manifest.webapp] this.config.url: app://collection.gaiamobile.org/view.html => app://collection.gaiamobile.org/view.html
> 06-16 14:57:14.834 18188 18188 E GeckoConsole: Content JS DEBUG at app://system.gaiamobile.org/js/app_window.js:852 in aw__handle_mozbrowserlocationchange: AppWindow: [Vertical] this.rearWindow=UNDEFINED
> 06-16 14:57:14.844 18188 18188 E GeckoConsole: Content JS DEBUG at app://system.gaiamobile.org/js/app_window.js:853 in aw__handle_mozbrowserlocationchange: AppWindow: [app://verticalhome.gaiamobile.org/manifest.webapp] this.config.url: app://verticalhome.gaiamobile.org/index.html#root1402923431828140292343200514029234321661402923434750 => app://collection.gaiamobile.org/view.html
(Assignee)

Comment 15

4 years ago
There's a race condition with AppWindow.kill() and the events. If we check for this._killed and stopPropagation in AppWindow.handleEvent(), then everything seems to be fine.
Flags: needinfo?(anygregor) → needinfo?(alive)
(Assignee)

Comment 16

4 years ago
Created attachment 8440700 [details] [review]
Link to Github https://github.com/mozilla-b2g/gaia/pull/20572

Please find attached a link to the github pull request that fixes the issue.
Attachment #8440114 - Attachment is obsolete: true
Attachment #8440700 - Flags: review?(alive)
(Assignee)

Comment 17

4 years ago
James, Kevin, do you mind checking on your side also?
Flags: needinfo?(kgrandon)
Flags: needinfo?(jlal)
Nice find! I can't reproduce with this patch.
Flags: needinfo?(kgrandon)

Updated

4 years ago
Blocks: 1016203
Whiteboard: [systemsfe]

Updated

4 years ago
QA Whiteboard: [VH-FL-blocking-][VH-FC-blocking+]

Updated

4 years ago
Blocks: 1015336
No longer blocks: 1016203
(Assignee)

Comment 20

4 years ago
Comment on attachment 8440700 [details] [review]
Link to Github https://github.com/mozilla-b2g/gaia/pull/20572

Redirecting to Etienne who has less pending reviews :)
Attachment #8440700 - Flags: review?(alive) → review?(etienne)
Comment on attachment 8440700 [details] [review]
Link to Github https://github.com/mozilla-b2g/gaia/pull/20572

Looking good, tiny comment on github :)
Attachment #8440700 - Flags: review?(etienne) → review+
(Assignee)

Comment 22

4 years ago
(In reply to Etienne Segonzac (:etienne) from comment #21)
> Comment on attachment 8440700 [details] [review]
> Link to Github https://github.com/mozilla-b2g/gaia/pull/20572
> 
> Looking good, tiny comment on github :)

Thanks :), let's merge it.
(Assignee)

Comment 23

4 years ago
https://github.com/mozilla-b2g/gaia/commit/7e894b255031a34290d78512c3257fd28fa47bfc
Status: NEW → RESOLVED
Last Resolved: 4 years ago
Resolution: --- → FIXED
(Reporter)

Comment 24

4 years ago
clear ni
Flags: needinfo?(jlal)
v2.0: https://github.com/mozilla-b2g/gaia/commit/53113d2256e66a66d54380885db3e2371242a52f
status-b2g-v2.0: --- → fixed
status-b2g-v2.1: --- → fixed
Target Milestone: --- → 2.0 S4 (20june)
Flags: needinfo?(alive)

Comment 26

4 years ago
Verified the issue is fixed on 2.1 and 2.0 Flame

After followed steps in comment 2, didn't see the"File not found" when attempting to view collection activity, the collection always opens with results

"Flame 2.1 

Device: Flame 2.1 (319mb)(Kitkat Base)(Shallow Flash)
BuildID: 20141120001207
Gaia: f8d3bf44029e0afc0124600a4bb34dba8fc1ad21
Gecko: f70a67a7f846
Version: 34.0 (2.1)
Firmware: V188-1
User Agent: Mozilla/5.0 (Mobile; rv:34.0) Gecko/34.0 Firefox/34.0"

"Flame 2.0

Device: Flame 2.0 (319mb)(Kitkat Base)(Shallow Flash)
BuildID: 20141120000206
Gaia: 1ede2666f1e6c1b3fd3b282011caf0cbc59544b0
Gecko: 54f1b0ee07a6
Version: 32.0 (2.0)
Firmware: V188-1
User Agent: Mozilla/5.0 (Mobile; rv:32.0) Gecko/32.0 Firefox/32.0"
Status: RESOLVED → VERIFIED
QA Whiteboard: [VH-FL-blocking-][VH-FC-blocking+] → [VH-FL-blocking-][VH-FC-blocking+][QAnalyst-Triage?]
status-b2g-v2.0: fixed → verified
status-b2g-v2.1: fixed → verified
Flags: needinfo?(ktucker)
QA Whiteboard: [VH-FL-blocking-][VH-FC-blocking+][QAnalyst-Triage?] → [VH-FL-blocking-][VH-FC-blocking+][QAnalyst-Triage+]
Flags: needinfo?(ktucker)
You need to log in before you can comment on or make changes to this bug.