Closed Bug 956938 Opened 10 years ago Closed 10 years ago

[B2G] [Contacts] Unable to add multiple contacts in the message

Categories

(Firefox OS Graveyard :: Gaia::System::Window Mgmt, defect)

ARM
Gonk (Firefox OS)
defect
Not set
normal

Tracking

(blocking-b2g:1.3+, b2g-v1.3 fixed)

RESOLVED FIXED
1.3 C3/1.4 S3(31jan)
blocking-b2g 1.3+
Tracking Status
b2g-v1.3 --- fixed

People

(Reporter: selkabule, Assigned: alive)

References

Details

(Keywords: regression, Whiteboard: dogfood1.3)

Attachments

(2 files)

Attached file Contacts log.txt
Description:
Unable to add multiple contacts into the "TO" field either from the contacts application or the message application. The application will return to the contact profile, instead of adding a new contact to the "TO" field 

Prerequisites:
Multiple contact saved in the "Contacts" application that has a name, number, email, photo.

Repro Steps:
1) Updated Buri1.3 
2) Open The contact application
3) Select the contact 
4) Select the "text" icon from the contact profile to send an SMS 
5) When the name of the contact is added to the "TO" field in the message application add another contact over and over 

Actual:
The user is cut of the message application and returned to the user profile. Unable to add the same contact multiple times

Expected:
The user can add more then one contact in to the "TO" field

Environmental Variables
Device: buri1.3 Moz Ril
Build ID: 20140106004001
Gecko: http://hg.mozilla.org/releases/mozilla-aurora/rev/a43cb4b322d3
Gaia: 35a60b82f8cf2d759939a350e2dadbb9d8b2f5dc
Platform Version: 28.0a2


Notes:
Repro frequency: 100%, 
See attached: video clip(http://www.youtube.com/watch?v=0hH_WtIx_Eg&edit=vd), logcat
blocking-b2g: --- → 1.3?
Component: Gaia::Contacts → Gaia::SMS
QA Contact: mvaughan
This issue looks to have started reproducing on the 10/16/13 1.3 build. 

- Works -
Environmental Variables:
Device: Buri v1.3 MOZ RIL
BuildID: 20131015040202
Gaia: 17e871ae1f82699793e3cd28acda805ba724a8b6
Gecko: febfe3c7732b
Version: 27.0a1
Firmware Version: V1.2_US_20131115

- Broken -
Environmental Variables:
Device: Buri v1.3 MOZ RIL
BuildID: 20131016040202
Gaia: 3d4f1107e6e91e5f5649edc0f2565ac837111d7d
Gecko: 9f63bbc00527
Version: 27.0a1
Firmware Version: V1.2_US_20131115
triage: 1.3+ regression
blocking-b2g: 1.3? → 1.3+
ni? Borja to check further
Flags: needinfo?(borja.bugzilla)
Not a regression but a change request from UX.
(In reply to Julien Wajsberg [:julienw] from comment #4)
> Not a regression but a change request from UX.

Um. I would call inability to add multiple contacts when it worked before a regression. This is a legitimate basic use case for any type of SMS app.
Jason, please read better the comment 0: the user is unable to add the _same_ contact several times. Adding several different contacts is supposed to work (and if _that_ doesn't work, this is rightly a bug).

Borja will test both cases and report.
(In reply to Julien Wajsberg [:julienw] from comment #6)
> Jason, please read better the comment 0: the user is unable to add the
> _same_ contact several times. Adding several different contacts is supposed
> to work (and if _that_ doesn't work, this is rightly a bug).
> 
> Borja will test both cases and report.

No. That's not what the bug is talking about. The video clarifies this clearly that they are talking about *different* contacts, not the same contact. That's why this was marked as a regression in first place with a range included.
Look closer, in the video the user is actually trying to attach the same contact (the second time). When he attaches another contact (the first time) it just works.

But I think the video shows another bug, but in the Contacts app (or System app maybe): the second time the user taps the "+" and triggers the activity, the Contacts app is not in "activity" mode.
(In reply to Julien Wajsberg [:julienw] from comment #8)
> Look closer, in the video the user is actually trying to attach the same
> contact (the second time). When he attaches another contact (the first time)
> it just works.

Watching the video again, I'm seeing both cases being tested here. Same & different contact.

> 
> But I think the video shows another bug, but in the Contacts app (or System
> app maybe): the second time the user taps the "+" and triggers the activity,
> the Contacts app is not in "activity" mode.

The second paragraph here is actually what is likely the bug here.
After taking a look I think this could be related with Contacts, due to here we are launching an Activity (Contacts picker) from an Activity (SMS) opened by Contacts... :S! Tomorrow I'll check with Francisco the implications here.
Flags: needinfo?(borja.bugzilla) → needinfo?(francisco.jordano)
Assignee: nobody → francisco.jordano
Flags: needinfo?(francisco.jordano)
Pretty funny bug this one.

Let me share with you my findings, below you can see a sequence diagram of the STK with the things that I discovered:



         +--------------------+       +-------------------+    +-------------------------+
         | Contacts App       |       | SMS App           |    | Contacts App            |
         | (App PIDx)         |       | (Activity PIDy)   |    | (Activity PIDx)         |
         +---------+----------+       +----------+--------+    +-------------+-----------+
                   |                             |                           |
                   |  launch activity            |                           |
                   +---------------------------->|                           |
                   |                             |     launch activity       |
                   |                             +-------------------------->|
                   |                             |                           |
                   |                             |    postResult (contact)   |
                   |                             |<-------------------------+|
                   |                             |   [1]                     |
                   |                             |                           |
                   |                             |    launch activity        |
                   |                             +-------------------------->|
                   |                             |                           |
                   |                             |                           |
                   |                             |   postResult (contact)    |
                   |                             |<-------------------------+|
                   |                             |   [2]                     |
                   |                             |                           |
                   |                             |                           |
                   |                             |                           |
                   |                             |                           |
                   +                             +                           +

- We start in the detail view of a contact and press the icon to send a text.
- A new sms web activity lauches with that user's in the recipients (new pid).
- We press on add contacts, a new contact web activity is launched (same pid than original app).
- We select a contact, and we send a post result, coming back to the sms activity now with two recipients, we DO appreciate the following error [1]:
E/GeckoConsole( 2820): Content JS WARN at app://system.gaiamobile.org/js/activity_window.js:233 in onClose: unknown window type of activity caller.
E/GeckoConsole( 4286): [JavaScript Error: "NS_ERROR_ILLEGAL_VALUE: Component returned failure code: 0x80070057 (NS_ERROR_ILLEGAL_VALUE) [nsIMessageSender.sendAsyncMessage]" {file: "chrome://global/content/BrowserElementChildPreload.js" line: 41}]
- We press on add contacts again, a new contact web activity is launched
- We select a contact, we go through the correct postResult, and then error [2] happens:
E/GeckoConsole( 2820): [JavaScript Error: "NS_ERROR_NOT_INITIALIZED: Component returned failure code: 0xc1f30001 (NS_ERROR_NOT_INITIALIZED) [nsIMessageSender.sendAsyncMessage]" {file: "resource://gre/modules/ActivitiesService.jsm" line: 303}]
E/GeckoConsole( 4286): [JavaScript Error: "[Exception... "Component returned failure code: 0x80070057 (NS_ERROR_ILLEGAL_VALUE) [nsIContentFrameMessageManager.docShell]"  nsresult: "0x80070057 (NS_ERROR_ILLEGAL_VALUE)"  location: "JS frame :: chrome://global/content/BrowserElementChildPreload.js :: BrowserElementChild.prototype.observe :: line 282"  data: no]" {file: "chrome://global/content/BrowserElementChildPreload.js" line: 282}]
E/GeckoConsole( 2820): Content JS WARN at app://system.gaiamobile.org/js/activity_window.js:233 in onClose: unknown window type of activity caller.
E/GeckoConsole( 2820): [JavaScript Error: "NS_ERROR_NOT_INITIALIZED: Component returned failure code: 0xc1f30001 (NS_ERROR_NOT_INITIALIZED) [nsIMessageSender.sendAsyncMessage]" {file: "resource://gre/modules/ActivitiesService.jsm" line: 307}]
E/GeckoConsole( 4286): [JavaScript Error: "NS_ERROR_ILLEGAL_VALUE: Component returned failure code: 0x80070057 (NS_ERROR_ILLEGAL_VALUE) [nsIMessageSender.sendAsyncMessage]" {file: "chrome://global/content/BrowserElementChildPreload.js" line: 41}]

The result is that the contacts web activity finishs, the sms web activity is killed, and we return back to the original contacts app.

Fabrice is this behavior familiar to you? So far, in the last web activity we are doing a correct postResult, and the sms activity is being killed (we can see as well how it disappear from the system app DOM).

Thanks
Flags: needinfo?(fabrice)
Component: Gaia::SMS → Gaia::Contacts
NI alive as well.
Flags: needinfo?(alive)
Contact->SMS(inline)->Contact(inline)

Because of activity chain of process priority is not fine-tuned, the inline activity of sms should be always foreground to avoid to be killed at this case.

If it's killed, ActivityWindow in system should closes the inline contact ASAP.

E/GeckoConsole( 2820): Content JS WARN at app://system.gaiamobile.org/js/activity_window.js:233 in onClose: unknown window type of activity caller.

I think this line is the problem so if you need me to fix it please let me know.
Flags: needinfo?(alive)
since 1.3+ is the highest priority now, set target milestone, please make the change if it doesn't work. thanks
Target Milestone: --- → 1.3 C3/1.4 S3(31jan)
:alive should I assign this task to you?

Thanks!
Flags: needinfo?(alive)
Assignee: francisco.jordano → alive
Flags: needinfo?(alive)
Component: Gaia::Contacts → Gaia::System::Window Mgmt
The root cause is we have trouble to find out current active frame to know who is the activity caller.

The proposed change to v1.3 might be: when activity is terminated, assume it's caller is next active activity.
Attached file master patch
Fix logic to find activity caller.
Proper fix would be in bug 964715.
Attachment #8366577 - Flags: review?(timdream)
Attachment #8366577 - Flags: review?(timdream) → review+
Making v1.3 patch now.
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: