Closed Bug 1033487 Opened 6 years ago Closed 5 years ago

[Everything.Me] 'Social' search will not provide Facebook result if marketplace Facebook app is installed and uninstalled

Categories

(Firefox OS Graveyard :: Gaia::Everything.me, defect)

ARM
Gonk (Firefox OS)
defect
Not set

Tracking

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

VERIFIED FIXED
2.0 S6 (18july)
blocking-b2g 2.0+
Tracking Status
b2g-v1.4 --- unaffected
b2g-v2.0 --- verified
b2g-v2.1 --- verified

People

(Reporter: rkuhlman, Assigned: daleharvey)

References

Details

(Keywords: regression, Whiteboard: [2.0-daily-testing][systemsfe])

Attachments

(4 files)

Attached file EMEFacebookSearch.txt
The 'Social' Smart Search should populate with an E.Me facebook app. If the user has installed the marketplace facebook app, then the Social search will not populate with a facebook result.

If the user performs the social search BEFORE installing facebook from marketplace, the E.Me facebbook app will appear in the search. In this scenario, the Facebook app will consistently appear even after the marketplace app has been installed.

The device must be reset in order to fix the issue

Repro Steps:
1) Update a Flame to BuildID: 20140702000201
2) Launch Marketplace
3) Install Facebook app from marketplace
4) Tap on 'Social' E.Me smart search
5) Look for Facebook in search results

Actual:
Facebook does not appear in the Smart Search results. Device must be reset in order to for app to appear in search

Expected:
Facebook app appears in search results.

v2.0 Environmental Variables:
Device: Flame v2.0
BuildID: 20140702000201
Gaia: 3bfe47c58c959c42f5ffe0309b5380ea514ccd69
Gecko: f40e767ea283
Version: 32.0a2
Firmware Version: v122

Notes:

Repro frequency: 100%
See attached: logcat
adding qawanted to determine if issue occurs in 1.4 and Master(2.1)
QA Whiteboard: [QAnalyst-Triage?]
status-b2g-v1.4: --- → ?
status-b2g-v2.1: --- → ?
Flags: needinfo?(pbylenga)
Keywords: qawanted
Whiteboard: [2.0-daily-testing]
Discussed with reporter, the bug is that Social search results don't dynamically update after making an install/uninstall change for an app.

Updated STR:

1. Install Facebook from Marketplace
2. Launch Social Collection - Note Facebook isn't populated in results
3. Uninstall Facebook from Homescreen
4. Relaunch Social Collection

Actual: Facebook isn't populated in results

Another STR:

1. Launch Social Collection - Note Facebook is populated in results
2. Install Facebook from Marketplace
3. Relaunch Social Collection

Actual: Facebook is populated in results


Restarting the phone does not recover from the state.


Populating a dynamic results list dependent on local apps is a core function of Smart Collections, therefore nominating to block 2.0.
blocking-b2g: --- → 2.0?
QA Whiteboard: [QAnalyst-Triage?]
Flags: needinfo?(pbylenga)
This needs a branch check before this goes into the nom queue.
blocking-b2g: 2.0? → ---
This bug repro's on: Flame 2.1 Master, Flame 2.0

Actual Results: Once the Facebook app is uninstalled from the home screen, the facebook app does NOT appear in the Social Collection.

Environmental Variables:
Device: Flame Master
Build ID: 20140702060700
Gaia: b0ddb2122771e25cdd880359406a53b10cdc0507
Gecko: e82a9700f94b
Version: 33.0a1 (Master)
Firmware Version: v122
-----------------------------------------------
Environmental Variables:
Device: Flame 2.0
Build ID: 20140702035037
Gaia: 085cdbf16dfd5249786016ac8ceafa1a54e88497
Gecko: a6e69640a00b
Version: 32.0a2 (2.0)
Firmware Version: v122

-----------------------------------------------
-----------------------------------------------

This bug does NOT repro on: Flame 1.4, Buri 1.4

Actual Result: Facebook app is seen in Social Collection after facebook has been uninstalled from homescreen.

Environmental Variables:
Device: Flame 1.4
Build ID: 20140702073603
Gaia: e4f7bc7bc121d6351959a9578457f9d7f63d7430
Gecko: d597b94be592
Version: 30.0 (1.4)
Firmware Version: v122
---------------------------------------------
Environmental Variables:
Device: Buri Master
Build ID: 20140702100721
Gaia: b0ddb2122771e25cdd880359406a53b10cdc0507
Gecko: 36a5f54bd12b
Version: 33.0a1 (Master)
Firmware Version: v1.2device.cfg
QA Whiteboard: [QAnalyst-Triage?]
Flags: needinfo?(jmitchell)
Keywords: qawantedregression
QA Contact: croesch
Forgot OpenC.

Bug also occurs on OpenC Master 2.1

Environmental Variables:
Device: Open_C Master
Build ID: 20140702100721
Gaia: b0ddb2122771e25cdd880359406a53b10cdc0507
Gecko: 36a5f54bd12b
Version: 33.0a1 (Master)
Firmware Version: P821A10V1.0.0B06_LOG_DL
issue is a regression, re-nomming now that branch checks are done based on comment 2
blocking-b2g: --- → 2.0?
QA Whiteboard: [QAnalyst-Triage?]
Flags: needinfo?(jmitchell)
Blocks: 1015336
QA Whiteboard: [VH-FL-blocking-][VH-FC-blocking?]
Whiteboard: [2.0-daily-testing] → [2.0-daily-testing][systemsfe]
Parity issue between old & new homescreen, so blocking.
blocking-b2g: 2.0? → 2.0+
QA Whiteboard: [VH-FL-blocking-][VH-FC-blocking?] → [VH-FL-blocking-][VH-FC-blocking+]
QA Whiteboard: [VH-FL-blocking-][VH-FC-blocking+] → [VH-FL-blocking-][VH-FC-blocking+][QAnalyst-Triage+][lead-review+]
Hey - can we get a screenshot or video here of what you are seeing? Browsing the logcat I see lots of stuff for "search.gaiamobile.org", which is not what I would expect from the bug description. Thanks!
Flags: needinfo?(rkuhlman)
Keywords: qawanted
Video Link
http://youtu.be/-HmqneQAbyc

Using the updated steps in Comment 2 for the video. Facebook is already installed on home screen to cut down video length.

Updated STR:

1. Install Facebook from Marketplace
2. Launch Social Collection - Note Facebook isn't populated in results
3. Uninstall Facebook from Homescreen
4. Relaunch Social Collection

Actual: Facebook isn't populated in results
Flags: needinfo?(jmitchell)
Keywords: qawanted
Ok, thanks for the video, that's really helpful. So it appears that Facebook is not appearing in the "web results" section after an uninstall. It's highly likely that this is a problem with the client code, but could also potentially be a problem with the server code.
Summary: [B2G][Everything.Me]E.Me 'Social' search will not provide Facebook result if marketplace facebook is already installed → [Everything.Me] 'Social' search will not provide Facebook result if marketplace Facebook app is installed and uninstalled
Flags: needinfo?(jmitchell)
Flags: needinfo?(rkuhlman)
Amir, any idea whats going on here? Can you help out?
Flags: needinfo?(amirn)
Maybe Dale or Ben can help out as well.
Flags: needinfo?(dale)
Flags: needinfo?(bfrancis)
I can do, will leave the needinfo on since I have a few blockers in front of this one in case it can be picked up, but will pick it up with them finished
Assignee: nobody → dale
well I guess I just went and took it anyway, clearing needinfo
Flags: needinfo?(dale)
(In reply to Kevin Grandon :kgrandon from comment #10)
> Ok, thanks for the video, that's really helpful. So it appears that Facebook
> is not appearing in the "web results" section after an uninstall. It's
> highly likely that this is a problem with the client code, but could also
> potentially be a problem with the server code.

My guess is that the Facebook webresult is indded there, but gets deduped.
Flags: needinfo?(amirn)
(In reply to Amir Nissim (:amirn) from comment #15)
> My guess is that the Facebook webresult is indded there, but gets deduped.

Yes, but I think after uninstall, it's not coming back - and probably should. Not really how that's possible unless we're keeping a ghost record around some how.
Target Milestone: --- → 2.0 S6 (18july)
So I cant reproduce this since whether facebook is installed or not the e.me facebook app is always visible, and facebook is never shown as a pinned app in the social collections pinned apps. Investigating in the morning whats up, but needinfo in case theres a known issue
Flags: needinfo?(kgrandon)
Flags: needinfo?(amirn)
Hmm, sounds like potentially another bug then? Facebook is supposed to be auto-pinned to the social collection, and it was working as of a few days ago. I know I saw another bug that mentioned potential server problems, so I wonder if they could be related? Only way to know for sure is to do some debugging inside of NativeInfo.. I might be able to potentially pick this up tomorrow as well. It would be good to see if we can solve this by the work week.
Flags: needinfo?(kgrandon)
filed a new issue for the facebook app not showing up
Depends on: 1037338
Attached patch debug.patchSplinter Review
I have confirmed the problem is that Facebook is still somehow pinned to the collection, although not rendered in the pinned apps.

This log traces opening the Social collection after uninstalling Facebook.
Note:
[1] collection reports 5 pinned apps (one of which is Facebook)
[2] E.me server returns Facebook web result
[3] Facebook web result is deduped and not shown


E/GeckoConsole( 2178): Content JS LOG at app://collection.gaiamobile.org/shared/js/everythingme/eme.js:69 in log: evme drawBackground drawn
E/GeckoConsole( 2178): Content JS LOG at app://collection.gaiamobile.org/shared/js/everythingme/eme.js:69 in log: evme NativeInfo skipping setup
E/GeckoConsole( 2178): Content JS LOG at app://collection.gaiamobile.org/shared/js/everythingme/eme.js:69 in log: evme device init {"osVersion":"2.1.0.0-prerelease","deviceId":"fxos-73d1ebaa-4a7d-4072-bf97-8eda9469ecdf","deviceName":"flame","screen":{"width":480,"height":853.5}}
E/GeckoConsole(  301): [JavaScript Error: "listener is null" {file: "jar:file:///system/b2g/omni.ja!/components/NetworkGeolocationProvider.js" line: 475}]
E/GeckoConsole( 2178): Content JS LOG at app://collection.gaiamobile.org/shared/js/everythingme/eme.js:69 in log: evme getMozBackground success http://fxos.cdn.mozilla.net/collection/background/289@1.5x.jpg
E/GeckoConsole( 2178): Content JS LOG at app://collection.gaiamobile.org/shared/js/everythingme/eme.js:69 in log: evme drawBackground already drawn, skipping



[1]
E/GeckoConsole( 2178): Content JS LOG at app://collection.gaiamobile.org/js/objects.js:336 in render: evme collection.render this.pinned.length 5
E/GeckoConsole( 2178): Content JS LOG at app://collection.gaiamobile.org/js/objects.js:285 in eachResult: evme item.dedupeId app://communications.gaiamobile.org/manifest.webapp-dialer
E/GeckoConsole( 2178): Content JS LOG at app://collection.gaiamobile.org/js/objects.js:285 in eachResult: evme item.dedupeId app://sms.gaiamobile.org/manifest.webapp
E/GeckoConsole( 2178): Content JS LOG at app://collection.gaiamobile.org/js/objects.js:285 in eachResult: evme item.dedupeId app://communications.gaiamobile.org/manifest.webapp-contacts
E/GeckoConsole( 2178): Content JS LOG at app://collection.gaiamobile.org/js/objects.js:285 in eachResult: evme item.dedupeId app://email.gaiamobile.org/manifest.webapp
E/GeckoConsole( 2178): Content JS LOG at app://collection.gaiamobile.org/js/objects.js:285 in eachResult: evme item.dedupeId https://m.facebook.com/openwebapp/manifest.webapp
E/GeckoConsole( 2178): Content JS LOG at app://collection.gaiamobile.org/js/objects.js:288 in addToGrid: evme before dedupe: items.length 5
E/GeckoConsole( 2178): Content JS LOG at app://collection.gaiamobile.org/js/objects.js:290 in addToGrid: evme after dedupe: items.length 5
E/GeckoConsole( 2178): Content JS LOG at app://collection.gaiamobile.org/shared/js/everythingme/eme.js:69 in log: evme init: noop
E/GeckoConsole( 2178): Content JS LOG at app://collection.gaiamobile.org/shared/js/everythingme/eme.js:69 in log: evme API request: https://api.everything.me/partners/1.0/Apps/search/?limit=24&categoryId=289&iconFormat=20&apiKey=79011a035b40ef3d7baeabc8f85b862f&deviceId=fxos-73d1ebaa-4a7d-4072-bf97-8eda9469ecdf&ctx={"lc":"en-US","tz":"3","v":"2.1.0.0-prerelease","dn":"flame","cr":"Cellcom","ct":"3G","mcc":"425","mnc":"02","sr":"480x853.5"}&
E/GeckoConsole( 2178): Content JS LOG at app://collection.gaiamobile.org/shared/js/everythingme/eme.js:69 in log: evme geolocation error 3 Position acquisition timed out
E/GeckoConsole( 2178): Content JS LOG at app://collection.gaiamobile.org/shared/js/everythingme/eme.js:69 in log: evme geolocation error 3 Position acquisition timed out



[2]
E/GeckoConsole( 2178): Content JS LOG at app://collection.gaiamobile.org/js/objects.js:324 in render/<: evme Facebook
E/GeckoConsole( 2178): Content JS LOG at app://collection.gaiamobile.org/js/objects.js:324 in render/<: evme Photos for Instagram
E/GeckoConsole( 2178): Content JS LOG at app://collection.gaiamobile.org/js/objects.js:324 in render/<: evme Twitter
E/GeckoConsole( 2178): Content JS LOG at app://collection.gaiamobile.org/js/objects.js:324 in render/<: evme LinkedIn
E/GeckoConsole( 2178): Content JS LOG at app://collection.gaiamobile.org/js/objects.js:324 in render/<: evme Google+
E/GeckoConsole( 2178): Content JS LOG at app://collection.gaiamobile.org/js/objects.js:324 in render/<: evme ישראבלוג
E/GeckoConsole( 2178): Content JS LOG at app://collection.gaiamobile.org/js/objects.js:324 in render/<: evme maVeze בלוגים
E/GeckoConsole( 2178): Content JS LOG at app://collection.gaiamobile.org/js/objects.js:324 in render/<: evme Pinterest
E/GeckoConsole( 2178): Content JS LOG at app://collection.gaiamobile.org/js/objects.js:324 in render/<: evme Reddit
E/GeckoConsole( 2178): Content JS LOG at app://collection.gaiamobile.org/js/objects.js:324 in render/<: evme Imgur image sharing
E/GeckoConsole( 2178): Content JS LOG at app://collection.gaiamobile.org/js/objects.js:324 in render/<: evme Slideshare Slide Shows
E/GeckoConsole( 2178): Content JS LOG at app://collection.gaiamobile.org/js/objects.js:285 in eachResult: evme item.dedupeId http://m.facebook.com
E/GeckoConsole( 2178): Content JS LOG at app://collection.gaiamobile.org/js/objects.js:285 in eachResult: evme item.dedupeId http://photos.flyapps.me
E/GeckoConsole( 2178): Content JS LOG at app://collection.gaiamobile.org/js/objects.js:285 in eachResult: evme item.dedupeId https://mobile.twitter.com/
E/GeckoConsole( 2178): Content JS LOG at app://collection.gaiamobile.org/js/objects.js:285 in eachResult: evme item.dedupeId http://www.linkedin.com
E/GeckoConsole( 2178): Content JS LOG at app://collection.gaiamobile.org/js/objects.js:285 in eachResult: evme item.dedupeId http://plus.google.com
E/GeckoConsole( 2178): Content JS LOG at app://collection.gaiamobile.org/js/objects.js:285 in eachResult: evme item.dedupeId http://invokemobile.com/israblog/main.aspx
E/GeckoConsole( 2178): Content JS LOG at app://collection.gaiamobile.org/js/objects.js:285 in eachResult: evme item.dedupeId http://www.maveze.co.il/
E/GeckoConsole( 2178): Content JS LOG at app://collection.gaiamobile.org/js/objects.js:285 in eachResult: evme item.dedupeId http://m.pinterest.com/
E/GeckoConsole( 2178): Content JS LOG at app://collection.gaiamobile.org/js/objects.js:285 in eachResult: evme item.dedupeId http://i.reddit.com/
E/GeckoConsole( 2178): Content JS LOG at app://collection.gaiamobile.org/js/objects.js:285 in eachResult: evme item.dedupeId https://imgur.com/gallery
E/GeckoConsole( 2178): Content JS LOG at app://collection.gaiamobile.org/js/objects.js:285 in eachResult: evme item.dedupeId http://www.slideshare.net



[3]
E/GeckoConsole( 2178): Content JS LOG at app://collection.gaiamobile.org/js/objects.js:288 in addToGrid: evme before dedupe: items.length 11
E/GeckoConsole( 2178): Content JS LOG at app://collection.gaiamobile.org/js/objects.js:290 in addToGrid: evme after dedupe: items.length 10
Flags: needinfo?(amirn)
I think what happens is that the unpin process fails to save the collection:
https://github.com/mozilla-b2g/gaia/blob/master/apps/collection/js/objects.js#L204


The log shows an error similar to bug 1037338:
E/GeckoConsole( 1075): Content JS LOG at app://collection.gaiamobile.org/gaia_build_defer_synchronize.js:320 in log: evme removed pinned item https://m.facebook.com/openwebapp/manifest.webapp
E/GeckoConsole( 1075): Content JS ERROR at app://collection.gaiamobile.org/gaia_build_defer_synchronize.js:320 in error: evme ERROR NativeInfo error TypeError

hopefully Crisitian's patch for bug 1037338 might fix this issue as well :)
bug 1037338 landed which might fix this issue as well.
Can you reproduce with current master?
Whiteboard: [2.0-daily-testing][systemsfe] → [2.0-daily-testing][systemsfe][ETA=7/15]
Yup reproduced this with current master
Duplicate of this bug: 1033537
We want to add some test coverage for this, but requires new fixtures so will be following up
Attachment #8456083 - Flags: review?(kgrandon)
Comment on attachment 8456083 [details] [review]
https://github.com/mozilla-b2g/gaia/pull/21754

This is not my party but I would like to suggest that we could call to removeFromCollections in the then() like 

https://github.com/mozilla-b2g/gaia/blob/master/apps/collection/js/native_info.js#L117

You can forget my comment because I am not the reviewer :)
Comment on attachment 8456083 [details] [review]
https://github.com/mozilla-b2g/gaia/pull/21754

(In reply to Cristian Rodriguez (:crdlc) from comment #26)
> Comment on attachment 8456083 [details] [review]
> https://github.com/mozilla-b2g/gaia/pull/21754
> 
> This is not my party but I would like to suggest that we could call to
> removeFromCollections in the then() like 
> 
> https://github.com/mozilla-b2g/gaia/blob/master/apps/collection/js/
> native_info.js#L117
> 
> You can forget my comment because I am not the reviewer :)

+1 to what Cristian said. Basically if we do this, we will get a home icons object for *every* collection, which will call BookmarksDatabase.getAll - this is probably too much processing.

Please re-flag either myself or Cristian after addressing, thanks.
Attachment #8456083 - Flags: review?(kgrandon)
Do you guys agree we should drop collection.homeicons and have one global HomeIcons object which we will init() once and be done with it?
(In reply to Amir Nissim (:amirn) from comment #28)
> Do you guys agree we should drop collection.homeicons and have one global
> HomeIcons object which we will init() once and be done with it?

Yes.
Switching it to use a single homeIcons doesnt fix this for me

diff --git a/apps/collection/js/native_info.js b/apps/collection/js/native_info.js
index 00e2556..4a4bfb1 100644
--- a/apps/collection/js/native_info.js
+++ b/apps/collection/js/native_info.js
@@ -111,13 +111,14 @@

     // on app install/uninstall
     processApp: function processApp(action, id) {
+      homeIcons = new HomeIcons();
       if (action === 'install') {
         // id should be a guid (manifest or bookmark URL)
-        homeIcons = new HomeIcons();
         return homeIcons.init().then(this.getInfo.bind(this, [id]))
                .then(this.addToCollections).catch(onerror);
       } else if (action === 'uninstall') {
-        return this.removeFromCollections(id).catch(onerror);
+        return homeIcons.init()
+               .then(this.removeFromCollections.bind(this, id)).catch(onerror);
       }
     },
So talking offline with Kevin, but I am fairly sure this doesnt to any extra work

https://github.com/mozilla-b2g/gaia/blob/master/apps/collection/js/objects.js#L66 already initialises homeIcons, this avoids creating a new homeIcons object, but does wait on multiple ones.

I am guessing we just want a homeIcons singleton as opposed to a collection member
Comment on attachment 8456083 [details] [review]
https://github.com/mozilla-b2g/gaia/pull/21754

Not too happy with the current state of home icons, but I think this is good to fix for 2.0. Thanks.
Attachment #8456083 - Flags: review+
Whiteboard: [2.0-daily-testing][systemsfe][ETA=7/15] → [2.0-daily-testing][systemsfe][ETA=7/16]
Merged: https://github.com/mozilla-b2g/gaia/commit/9b03c97e8081508381bc5640d1bb55b9b3148e08
Status: NEW → RESOLVED
Closed: 5 years ago
Resolution: --- → FIXED
v2.0: https://github.com/mozilla-b2g/gaia/commit/839b6784950c7e70b35c398a9beed1ec44e34d38
Whiteboard: [2.0-daily-testing][systemsfe][ETA=7/16] → [2.0-daily-testing][systemsfe]
Flags: needinfo?(bfrancis)
This issue has been successfully verified on Flame v2.1&2.0.
See attachment: verified_v2.0.mp4.
Reproduce rate: 0/3

STR:
1. Open Social smart collection.
**Facebook appears in the Smart Search results.
2. Launch Marketplace and install Facebook app.
3. Open Social smart collection.
**Facebook is at top of the collection.
4. Long tap and delete Facebook on homescreen.
5. Open Social smart collection.
**Facebook appears in the Smart Search results.

Flame 2.1 build:
Gaia-Rev        38e17b0219cbc50a4ad6f51101898f89e513a552
Gecko-Rev       https://hg.mozilla.org/releases/mozilla-b2g34_v2_1/rev/8b92c4b8f59a
Build-ID        20141205001201
Version         34.0
Device-Name     flame
FW-Release      4.4.2
FW-Incremental  eng.cltbld.20141205.035305
FW-Date         Fri Dec  5 03:53:16 EST 2014
Bootloader      L1TC00011880

Flame 2.0 build:
Gaia-Rev        856863962362030174bae4e03d59c3ebbc182473
Gecko-Rev       https://hg.mozilla.org/releases/mozilla-b2g32_v2_0/rev/e40fe21e37f1
Build-ID        20141207000206
Version         32.0
Device-Name     flame
FW-Release      4.4.2
FW-Incremental  eng.cltbld.20141207.034341
FW-Date         Sun Dec  7 03:43:52 EST 2014
Bootloader      L1TC00011880
Status: RESOLVED → VERIFIED
QA Contact: croesch
You need to log in before you can comment on or make changes to this bug.