Closed Bug 1186572 Opened 9 years ago Closed 9 years ago

[FTU] Skipping through initial screen of tutorial will cause tutorial animated images to stop loading

Categories

(Core :: Audio/Video, defect)

ARM
Gonk (Firefox OS)
defect
Not set
normal

Tracking

()

RESOLVED DUPLICATE of bug 1192748
blocking-b2g 2.5+
Tracking Status
b2g-v2.2 --- unaffected
b2g-master --- affected

People

(Reporter: onelson, Assigned: alwu)

References

()

Details

(Keywords: regression, Whiteboard: [2.5-Daily-Testing], [Spark])

Attachments

(1 file, 2 obsolete files)

Attached file logcat_20150722_1229.txt (obsolete) —
Description:
If the user is performing the FTU on a newly reset/flashed device, they will observe an animated tutorial of slides present at the end of setting up device information. If the user skips past the initial screen of the animated screens before it has time to load, they will break the loading of all the animated images they could display in the FTU.

Repro Steps:
1) Update a Aries to 20150722124026
2) Progress through FTU through to screen before tutorial.
3) Hit 'Next' to enter tutorial and quickly skip the first page before animated image loads.
4) Advance to next page and return to previous through tutorial observing images

Actual:
Images don't load after skipping the first image

Expected:
Images load on subsequent pages if a load is skipped


Environmental Variables:
-----------------------------

Device: Aries 2.5
Build ID: 20150722124026
Gaia: b57aef5b7f52c40f88ee4c069ff722404e8e8521
Gecko: 954706e7611c
Gonk: 2916e2368074b5383c80bf5a0fba3fc83ba310bd
Version: 42.0a1 (2.5)
Firmware Version: D5803_23.1.A.1.28_NCB.ftf
User Agent: Mozilla/5.0 (Mobile; rv:42.0) Gecko/42.0 Firefox/42.0

Device: Flame 2.5
BuildID: 20150722010204
Gaia: 84c3bf622e211046d905803b34de5d331761f22d
Gecko: 8e5c888d0d89
Gonk: 41d3e221039d1c4486fc13ff26793a7a39226423
Version: 42.0a1 (2.5) 
Firmware Version: v18D
User Agent: Mozilla/5.0 (Mobile; rv:42.0) Gecko/42.0 Firefox/42.0
***************************

Issue DOES NOT REPRODUCE on 2.2 for flame devices
Results: Images load on subsequent pages if a load is skipped

Device: Flame 2.2
BuildID: 20150721162504
Gaia: e1e6317f17a840b19af9dbb25f5a771d8d9fa161
Gecko: a73051740290
Gonk: bd9cb3af2a0354577a6903917bc826489050b40d
Version: 37.0 (2.2) 
Firmware Version: v18D
User Agent: Mozilla/5.0 (Mobile; rv:37.0) Gecko/37.0 Firefox/37.0
-----------------------------


Repro frequency: 5/5
See attached: 
video- https://youtu.be/dYE2zFrHFKQ
logcat
QA Whiteboard: [QAnalyst-Triage?]
Flags: needinfo?(pbylenga)
I wonder if this is fallout from bug 1017314, or bug 548523 (the platform bug that necessitated it), could we get window for this one - as you point out, this definitely used to work.
QA Contact: pcheng
[Blocking Requested - why for this release]:
Visible regression of FTU tutorials.
blocking-b2g: --- → 2.5?
QA Whiteboard: [QAnalyst-Triage?]
Flags: needinfo?(pbylenga)
blocking-b2g: 2.5? → 2.5+
See Also: → 1186677
mozilla-inbound regression window:

Last Working
Device: Flame
BuildID: 20150710163851
Gaia: e4b63559eba364892867eb381c3002d6518e5d6a
Gecko: 07bcf36f5ab2
Gonk: 41d3e221039d1c4486fc13ff26793a7a39226423
Version: 42.0a1 (2.5 Master) 
Firmware Version: v18D
User Agent: Mozilla/5.0 (Mobile; rv:42.0) Gecko/42.0 Firefox/42.0

First Broken
Device: Flame
BuildID: 20150710170452
Gaia: e4b63559eba364892867eb381c3002d6518e5d6a
Gecko: 675ea719b91c
Gonk: 41d3e221039d1c4486fc13ff26793a7a39226423
Version: 42.0a1 (2.5 Master) 
Firmware Version: v18D
User Agent: Mozilla/5.0 (Mobile; rv:42.0) Gecko/42.0 Firefox/42.0

Gaia is the same so it's a Gecko issue.

Gecko pushlog:
http://hg.mozilla.org/integration/mozilla-inbound/pushloghtml?fromchange=07bcf36f5ab2&tochange=675ea719b91c

Caused by changes made in Bug 1113086.
Blocks: 1113086
QA Whiteboard: [QAnalyst-Triage?]
Flags: needinfo?(ktucker)
Andrea, can you take a look at this please? This looks to have been caused by the landing for bug 1113086.
QA Whiteboard: [QAnalyst-Triage?] → [QAnalyst-Triage+]
Flags: needinfo?(ktucker) → needinfo?(amarchesini)
It seems a system app issue.
Flags: needinfo?(amarchesini) → needinfo?(alwu)
Hi, Oliver,
I can't reproduce this issue in Flame with latest version Gecko/Gaia. 
Besides, in recent period (after landing Bug1113086), I have seen the FTU lots of times, and I have not seen this situation.
Could you check it again? 
Thanks!

---

Here is my testing environment.
Gaia-Rev        aa1698251e86c820c50c045b0a3ff65fd6b0eee7
Gecko-Rev       254151:2ddec2dedced
Build-ID        20150723151847
Version         42.0a1
Device-Name     flame
FW-Release      4.4.2
FW-Incremental  eng.alastor.20150318.121016
FW-Date         三  3月 18 12:10:32 CST 2015
Bootloader      L1TC00011880
Flags: needinfo?(alwu) → needinfo?(onelson)
QA-Wanted to address the NI
Keywords: qawanted
This issue is still reproducing on latest nightly. The trick in reproducing this issue is to double-tap or triple-tap on the "Start Tour" button. Or you can look at the provided video carefully showing how to reproduce it.

https://www.youtube.com/watch?v=dYE2zFrHFKQ

Device: Flame (KK, 319MB, full flashed)
BuildID: 20150724010206
Gaia: ec2199b324304d3678b6a98a08a31bdc13c9e984
Gecko: cb8bdb8ffaef
Gonk: 41d3e221039d1c4486fc13ff26793a7a39226423
Version: 42.0a1 (2.5 Master) 
Firmware Version: v18D
User Agent: Mozilla/5.0 (Mobile; rv:42.0) Gecko/42.0 Firefox/42.0
QA Whiteboard: [QAnalyst-Triage+] → [QAnalyst-Triage?]
Flags: needinfo?(onelson)
Flags: needinfo?(ktucker)
Flags: needinfo?(alwu)
Keywords: qawanted
QA Whiteboard: [QAnalyst-Triage?] → [QAnalyst-Triage+]
Flags: needinfo?(ktucker)
Component: Gaia::First Time Experience → Audio/Video
Product: Firefox OS → Core
this can be reproduced as steps in comment 8. Once reproduced, FTU could not play video during introduction. 

Alastor, please help to track this per regression windows in comment 3.

----

Build ID               20150730150205
Gaia Revision          7e7e92fbeea90cad8bf6f494b1a73712f79178e8
Gaia Date              2015-07-30 17:03:31
Gecko Revision         https://hg.mozilla.org/mozilla-central/rev/23e525e2ba35
Gecko Version          42.0a1
Device Name            flame
Firmware(Release)      4.4.2
Firmware(Incremental)  eng.cltbld.20150712.193621
Firmware Date          Sun Jul 12 19:36:34 EDT 2015
Bootloader             L1TC000118D0
Assignee: nobody → alwu
Attached file Log : can't play video (obsolete) —
Preliminary analysis, it seems that the system app turn off the tutorial video.
I'll continue to debug for more details.
Attachment #8637397 - Attachment is obsolete: true
Flags: needinfo?(alwu)
Hi, Evan,
Could you help me check this issue?
From the log, it seem that the system app would mute the tutorial video.
Thanks!
Flags: needinfo?(evan)
Hi Alastor,

It is a gecko bug.

If you follow the STR in comment 8(double-tap or triple-tap), the `audiochannelstatechanged` event from gecko is just triggered twice. For the first time, the state is active. And the second time is inactive.

You can see the below log with adding the gaia patch[1] and following the STR.
```
I/GeckoConsole( 7251): Content JS LOG: bug-1186572:audiochannelstatechanged: AppWindow_6_normal: true 
I/GeckoConsole( 7251): Content JS LOG: bug-1186572:audiochannelstatechanged: AppWindow_6_normal: false
```
As you see, the audio channel service will do `setMuted(false)` and `setMuted(true)`. Then you will get the result in comment 10.

[1]: https://github.com/evanxd/gaia/commit/5125fd8403c4c6b1ab7cc999523aa9e7c7eb0426
Flags: needinfo?(evan)
Blocks: 1130350
The root cause is that we forgot to reset the mMuted when we want to abort the exist load. 

In FTU, every time we press the button ("Start/next/prev"), the FTU would reload the video. If we press the button more than once, that the old video would be discard and then reload the new one. 

In this step, the FTU use the same MediaElement, but replace the src link. Therefore, if we don't reset the mMuted in HTMLMediaElement::AbortExistingLoads(), we would get the wrong status of the media element even if we start the new load.

---

Try-server result.
https://treeherder.mozilla.org/#/jobs?repo=try&revision=4aea9d1677ef
Attachment #8641625 - Attachment is obsolete: true
(In reply to Alastor Wu [:alwu] from comment #13)
> In FTU, every time we press the button ("Start/next/prev"), the FTU would
> reload the video. If we press the button more than once, that the old video
> would be discard and then reload the new one. 
> 
> In this step, the FTU use the same MediaElement, but replace the src link.
> Therefore, if we don't reset the mMuted in
> HTMLMediaElement::AbortExistingLoads(), we would get the wrong status of the
> media element even if we start the new load.

This is great news to get to the bottom of this. We've had occassional, hard to pin down problems like this since the tutorial videos landed, I'm optimistic this might have been the root cause. Is there anything I should change in the FTU to safeguard against these issues and to represent best practice for loading and displaying a series of videos like this?
Hi, Sam,
Do you think could we only load tutorial video once even if the user press the next button multiple times?
If the FTU could change this behavior and with my patch landing, I think that would be a good thing :)
Comment on attachment 8644850 [details] [diff] [review]
Reset mMuted when we abort the exist load

Hi, Robert,
Sorry to bother you,
Could you help me review this patch?

The root cause is that we forgot to reset the mMuted when we abort the exist load, that would cause the resource being suspended. (after the decoder setup, the NotifyOwnerDocumentActivityChangedInternal() would check the mMute to decide whether need to be suspended)

Because of that, we can't load the new src successfully, and the element can't have the enough data. Furthermore, the FTU only play the video after it finish loading, that is why we can't play the tutorial video.

Very appreciate :)
Attachment #8644850 - Flags: review?(roc)
See Also: → 1192978
(In reply to Alastor Wu [:alwu] from comment #15)
> Hi, Sam,
> Do you think could we only load tutorial video once even if the user press
> the next button multiple times?
> If the FTU could change this behavior and with my patch landing, I think
> that would be a good thing :)

I filed bug 1192978. Looking at the code in the FTU app, it looks like bad things could happen if users tap rapidly on the start/next buttons.
Thanks, Sam :)
Comment on attachment 8644850 [details] [diff] [review]
Reset mMuted when we abort the exist load

Cancel review, this method would result in other issue.
Attachment #8644850 - Flags: review?(roc)
The patch of the bug1192748 would solve this issue, and it is a better solution.
Status: NEW → RESOLVED
Closed: 9 years ago
Resolution: --- → DUPLICATE
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: