Closed Bug 1303361 Opened 8 years ago Closed 7 years ago

[ADBE 4186772] 64-bit Flash audio is not playing on Tidal

Categories

(Core Graveyard :: Plug-ins, defect, P2)

x86_64
Windows 10
defect

Tracking

(platform-rel +, firefox48 unaffected, firefox49 unaffected, firefox50 unaffected, firefox51 unaffected, firefox52 unaffected, firefox55 verified)

RESOLVED WORKSFORME
Tracking Status
platform-rel --- +
firefox48 --- unaffected
firefox49 --- unaffected
firefox50 --- unaffected
firefox51 --- unaffected
firefox52 --- unaffected
firefox55 --- verified

People

(Reporter: cgeorgiu, Unassigned)

Details

(Keywords: 64bit, flashplayer, Whiteboard: sb- [platform-rel-Tidal] [ADBE 4186772])

[Affected versions]:
- latest Nightly 51.0a1
- latest Aurora 50.0a2
- 49.0-build3 (2016-09-12)
- 48.0.2 (2016-08-23)

[Affected platforms]:
- Windows 10 x64

[Steps to reproduce]:
1. Start Firefox.
2. Go to http://tidal.com/.
3. Scroll down the page to the Usher section.
4. Play any song from Usher’s album.

[Expected result]:
- Audio is start playing.

[Actual result]:
- Track is selected but no audio is playing.

[Regression range]:
- This issue is not a regression, as it is reproducible all the way back to Firefox 46 RC (2016-04-21).

[Additional notes]:
- Mac OS X 10.10.5 and Ubuntu 16.04 LTS x64 doesn't seem to be affected

      -- the issue is reproducible only with x64 builds
      -- with x86 builds the issue is not reproducible anymore
Flags: needinfo?(kinetik)
I can't reproduce this.  Installed the latest 32-bit and 64-bit Nightly builds (52.0a1, 20160921030221) on a Windows 10 AU machine, opened https://listen.tidal.com/album/64522277 in Trial mode (not logged in, 30s play limit) and clicked the album's play button.  In both 32-bit and 64-bit builds, I get playback as expected.

It's worth nothing that my Win10AU machine doesn't have Flash installed at all.  If I open https://listen.tidal.com/album/64522277 on my Linux machine (which does have Flash in click-to-play mode), I'm prompted to enable Flash.

Ciprian, does Flash show up in about:plugins in either the 32-bit or 64-bit build on the system you see this issue?
Flags: needinfo?(kinetik)
(In reply to Matthew Gregan [:kinetik] from comment #1)
> It's worth nothing that my Win10AU machine doesn't have Flash installed at
             ^^^^^^^
             noting
Flags: needinfo?(ciprian.georgiu)
If I log in to Tidal, whenever I try to play a song I'm prompted by the site to activate Flash and taken to Adobe's download page.

On my Linux machine, I can't even play the 30s previews without activating Flash.  Same in Chrome on Linux, if I disable the built-in Flash via about:plugins.

So, as far as I can tell, Tidal requires Flash for playback in Firefox and Chrome (except for HiFi mode in Chrome),

I think the question is - why aren't you seeing the "Active Flash" site popup?
(In reply to Matthew Gregan [:kinetik] from comment #1)
> I can't reproduce this.  Installed the latest 32-bit and 64-bit Nightly
> builds (52.0a1, 20160921030221) on a Windows 10 AU machine, opened
> https://listen.tidal.com/album/64522277 in Trial mode (not logged in, 30s
> play limit) and clicked the album's play button.  In both 32-bit and 64-bit
> builds, I get playback as expected.
I verified again with this link https://listen.tidal.com/album/64522277 in Trial mode, on both 32-bit and 64-bit with latest Nightly 52.0a1 (20160921030221) build (same machine). I can confirm that I get playback as expected on this link.

      --- The issue is still reproducible with this link provided is STR http://tidal.com/ (verified on 2 different W10 x64 machines). 
      --- Note: as I said in the bug I can play songs from Tidal's home page only with 32-bit builds. I am wondering why is that, I am missing something, Matthew? Any ideas or it's a site issue? 


> Ciprian, does Flash show up in about:plugins in either the 32-bit or 64-bit
> build on the system you see this issue?
Yes, the Flash is enable in about:plugins. (32-bit and 64-bit) 

(In reply to Matthew Gregan [:kinetik] from comment #3)
> I think the question is - why aren't you seeing the "Active Flash" site
> popup?
It seems that flash is enable by default on Windows 10 x64 in this links https://listen.tidal.com/album/64522277 and http://tidal.com/, and I don't get the pop up message "Active Flash". 

I also tested on another machine with Windows 8 x64, and when I enter to this site https://listen.tidal.com/album/64522277 or http://tidal.com/ I am getting the pop message "Active Flash".(note that the track is playing as expected on the machine mentioned above)
Flags: needinfo?(ciprian.georgiu)
(In reply to Ciprian Georgiu, QA [:ciprian_georgiu] from comment #4)
>       --- The issue is still reproducible with this link provided is STR
> http://tidal.com/ (verified on 2 different W10 x64 machines). 
>       --- Note: as I said in the bug I can play songs from Tidal's home page
> only with 32-bit builds. I am wondering why is that, I am missing something,
> Matthew? Any ideas or it's a site issue? 

Following your STR exactly, I get playback on the front page of tidal.com in both builds.

Guessing the behaviour is different with Flash installed, I installed the latest version, and now I see exactly what you're reporting.

I noticed that before attempting to play, the message "t-could-not-start-sound-system" appears between the album cover and the embedded player.  After clicking play, that message changes to "t-could-not-start-flash-for-sound".

There are differences in support between NPAPI plugins in 32-bit and 64-bit builds (refer to https://blog.mozilla.org/futurereleases/2015/12/15/firefox-64-bit-for-windows-available/), including a different sandbox for the 64-bit version.

I tried disabling the sandbox (assuming I set the correct prefs and env vars) but it didn't make a difference.
Component: Audio/Video: Playback → Plug-ins
Jim, here is another 64-bit Flash audio bug. This bug should probably block our 64-bit roll-out because it breaks a popular music service, tidal.com.
Keywords: 64bit, flashplayer
Summary: [x64-builds] Audio is not playing on Tidal → 64-bit Flash audio is not playing on Tidal
Whiteboard: sb?
Flags: needinfo?(davidp99)
I am unable to reproduce this behavior.  I always get sound.

Using a fresh profile, I've tried the 64-bit build mentioned in comment 4 (20160921030221) as well as a bunch of other recent builds.  Going directly to http://tidal.com/ (not logged in) and looking for any flash music player (Usher isn't there anymore), I am always able to get the audio to play.  I have the latest Flash player installed (I uninstalled and reinstalled the plugin for good measure).  I did change the default Firefox Flash behavior from "Always Activate" to "Ask To Activate" so that I know it is running Flash (as kinetik reported, it also plays fine if Flash isn't installed).  I see the same "t-could-not-start-sound-system" message mentioned in comment 5 but, when I play a song, it just plays.  No "t-could-not-start-flash-for-sound" message.

I've tried with e10s on and off -- no difference.

It's possible Tidal has updated their behavior.  Strange things seem to happen on that page.  For example, as I mentioned, I get proper playback when no Flash player is installed.  When installed (with default "Always Activate"), I get Tidal telling me to install Flash (again, it does NOT ask me this when Flash is NOT installed!).  When I changed it to "Ask to Activate", I started getting the "Activate Flash?" dialog instead of the one asking me to install Flash.

I'm at a loss.  Can one of you try this STR once more and post your about:support?
Flags: needinfo?(kinetik)
Flags: needinfo?(davidp99)
Flags: needinfo?(ciprian.georgiu)
Like David, I can play audio with 64-bit Firefox. I also see the "t-could-not-start-sound-system" message at the top of the page and, when I try start the music player at the bottom of the page ("Us Or Else"), it tells me to "Activate Flash" even though I already have Flash enabled. I don't see those errors in 32-bit Firefox.

@ David: do you know what is triggering those errors? They are trying to feature detect something, not just sniffing the UA, because I still see those errors when spoofing 32-bit Firefox's or Chrome's UA in 64-bit Firefox. Should we try to reach out to a developer at Tidal?
Flags: needinfo?(davidp99)
(In reply to Chris Peterson [:cpeterson] from comment #8)
> Like David, I can play audio with 64-bit Firefox. I also see the
> "t-could-not-start-sound-system" message at the top of the page and, when I
> try start the music player at the bottom of the page ("Us Or Else"), it
> tells me to "Activate Flash" even though I already have Flash enabled. I
> don't see those errors in 32-bit Firefox.

I'm seeing the same behaviour now.
Flags: needinfo?(kinetik)
(In reply to David Parks [:handyman] from comment #7)
> I did change the default Firefox Flash behavior
> from "Always Activate" to "Ask To Activate" so that I know it is running
> Flash (as kinetik reported, it also plays fine if Flash isn't installed).  I
> see the same "t-could-not-start-sound-system" message mentioned in comment 5
> but, when I play a song, it just plays.  No
> "t-could-not-start-flash-for-sound" message.

Tested again on Windows 10 with latest Nightly 52.0a1 (2016-10-03) 64-bit and if I set the Flash behavior to "Ask to activate" I see the exact "t-could-not-start-sound-system" message like David or Matthew and "Activate Flash" dialog, but still I get no sound. Same results with "Always activate".

If I set the Flash to "Never Activate" and refresh the Tidal's front page, (played one of "Us Or Else" track) I get sound as expected.

Here is my about:support page: http://pastebin.com/mA3XtGJF. 
Please let me know if I can help with more info.
Flags: needinfo?(ciprian.georgiu)
FWIW, I submitted a bug report for this issue to Tidal here:

http://about.wimpmusic.com/wweb/resources/misc/bugreport/
(In reply to Chris Peterson [:cpeterson] from comment #8)
> 
> @ David: do you know what is triggering those errors? They are trying to
> feature detect something, not just sniffing the UA, because I still see
> those errors when spoofing 32-bit Firefox's or Chrome's UA in 64-bit
> Firefox. Should we try to reach out to a developer at Tidal?

From a quick attempt to decipher their obfuscated js (so... this may be way off), it looks like the "t-could-not-start-flash-for-sound" message (the one I haven't seen) is based on some kind of download timeout.  I'm less clear on what causes the "t-could-not-start-sound-system" message.  But it looks like their error messages are based on heuristics or sound initializations that don't quite work right (but not basic browser meta-data like the UA).  I'm not sure that we want to get involved in that at this point but they might be able to resolve the issue themselves -- they'll know what check is failing.  I have also been unable to reproduce either error in 32-bit. 

So we have two issues now:
* These error messages.
* Ciprian's missing audio.

It looks like Ciprian is the only one left with the no-audio bug.  I'm still unable to get that to happen and I don't see much interesting in that about:support.  Ciprian, can you look about your about:plugins and post what you see?  Specifically, any Shockwave Flash entries.  I initially had two flash plugins listed (one was an old version of the debug plugin).  This didn't cause any problems for me but...
Flags: needinfo?(davidp99)
Flags: needinfo?(cpeterson)
Flags: needinfo?(ciprian.georgiu)
Whiteboard: sb? → sb-
I get audio on an album page like like https://listen.tidal.com/album/64522277, but I can't test on the home page because the "Activate Flash" problems blocks me from starting the music player.
Flags: needinfo?(cpeterson)
platform-rel: --- → ?
Whiteboard: sb- → sb- [platform-rel-Tidal]
It seems that now with latest Nightly x64 from 2016-10-05, I can play any song from Tidal's front page. Maybe because in about:plugins I can not see Shockwave Flash, even if I have the latest version installed: http://pastebin.com/iUb0BA7D. Is this normal, David?

On the other hand on latest Aurora/Beta, I can't play songs, because I am getting the "Active Flash" message like Chris said in comment 13. Also in about:plugins I can see flash installed: http://pastebin.com/V07n9qkJ.
Flags: needinfo?(ciprian.georgiu)
That is due to bug 1307501.
Got some very useful info from Tidal on the library used here.  They are using this open-source web audio device library:

http://www.schillmania.com/projects/soundmanager2/

After a lot of fun, I was able to track the failure in 64-bit Firefox to this:

https://github.com/scottschiller/SoundManager2/blob/master/script/soundmanager2.js#L1507

In 64-bit Firefox, the HTMLEmbedElement is not exposing the PercentLoaded method of the Flash element, which leads to chaos in the SoundManager2 code.  I don't know how this stuff is normally exposed to the HTML element ... but that's what I've found so far.
PercentLoaded is exposed by Flash itself, not by the specific actionscript as part of SM2.
platform-rel: ? → +
Assignee: nobody → davidp99
I work for Tidal, I think we have solved the issue with playback on http://tidal.com/ now, please retest!
Thanks, Øyvind! Tidal playback now works correctly for me with 64-bit Firefox.

@ Ciprian, can you please double-check that your steps to reproduce are working correctly, too?

@ David, do you know why changing the embedded player's height from 1% to 5px fixed the problem? Was 1% rounding down to 0px, causing Firefox or Flash to not load the player? Was there something about our 64-bit math that caused `height: 1%` to break the player more easily in 64-bit Firefox?

OLD TIDAL CSS:

  #sm2-container object,
  #sm2-container embed {
   width: 100%;
   height: 1%;
  }

NEW TIDAL CSS:

  #sm2-container object,
  #sm2-container embed {
   width: 100%;
   height: 5px;
  }

Isolated embeddable player tests:

https://embed.tidal.com/v0.8.1/index.html?type=t&id=21951863 (old failing)
https://embed.tidal.com/v0.8.5/index.html?type=t&id=21951863 (new that works for me)
Flags: needinfo?(davidp99)
Flags: needinfo?(ciprian.georgiu)
Thanks Øyvind.  This jives with what I found.  Good news about the work-around.

Chris, I'm thinking we do have a bug here -- due to window layout -- but its still possible that this is a Flash issue.

My notes:

* There is an issue with the windowless plugin mechanism's AsyncSetWindow calls.  In both 32 and 64-bit, when the embed element is generated for the plugin, layout reports a 0x0 frame.  This keeps AsyncShowPluginFrame from running in the plugin proc:

https://dxr.mozilla.org/mozilla-central/source/dom/plugins/ipc/PluginInstanceChild.cpp#3391

I'm not sure if this is a trigger or a symptom.  After this (in 32-bit), I see WM_USER+1 (0x0401) windows messages being sent to a Flash window -- Flash seems to use them for async triggers.  They do NOT get sent in the 64-bit version.  We specifically throttle those messages in code but that does not seem to be relevant to the bug (our throttling doesn't come into play until after the failure).

I should point out that the 0x0 layout doesn't last... in 32-bit.  My embed element ends up 72x72 there, once all layout has settled.  The CSS is different due to different classes on the element but the size calculation isn't one of the things that should be different.

Additionally, I don't think _we_ should be doing anything substantively different wrt the plugin if there is a 0x0 window, but I think bugs in that case are not uncommon.  I figure this might be why Tidal isn't using 0x0 in their CSS.  If nothing else, the non-zero layout eats memory with useless framebuffers.

* The plugin itself calls invalidaterect in 32-bit, which is probably why the issue above happens, as this is never done in the 64-bit run.  The plugin's invalidaterect call seems to come from the end of the stream sending the SWF -- specifically:

https://dxr.mozilla.org/mozilla-central/source/dom/plugins/ipc/BrowserStreamChild.cpp#235

I say this may be a Flash issue because the stream seems to end properly on our end in 64-bit but the BrowserStreamChild call does not spark  the invalidaterect call there.  I'd been trying to locate anything we may have done differently leading up to that but, so far, nothing.  Specifically, I'm pretty certain that both 32 and 64-bit still have 0x0 size for the DOM elements at this point.  We could ask Adobe to take a look at why the destroystream call doesn't trigger the start of the plugin.

-----

I think we are going to move this to the back burner since Tidal has found a work-around.  However, I'd be interested in hear what Adobe has to say about the failure to launch when the stream ends.  If we get a good lead, I'll take this up again.

(NI Chris just so he sees this.)
Flags: needinfo?(davidp99) → needinfo?(cpeterson)
Thanks, David. I'll follow up with Adobe.
Flags: needinfo?(cpeterson)
The Tidal site now works in 64-bit Flash, so this bug no longer blocks 64-bit Firefox roll-out. David recommends we leave this bug open until we hear from Adobe whether Tidal bug pointed to a more general 64-bit Flash problem we need to fix.
No longer blocks: support-win64
Assignee: davidp99 → nobody
(In reply to Chris Peterson [:cpeterson] from comment #19)
> 
> @ Ciprian, can you please double-check that your steps to reproduce are
> working correctly, too?
> 

Yes, it's playing now with latest Nightly 53.0a1 (2016-11-14) 64-bit on Windows 10.
Flags: needinfo?(ciprian.georgiu)
Thanks for verifying, Ciprian. David recommends we leave this bug open until we hear from Adobe whether Tidal bug pointed to a more general 64-bit Flash problem we need to fix.
Adobe is investigating the 64-bit stream issues to see if there is a bug in Flash. This is ADBE 4186772.
Summary: 64-bit Flash audio is not playing on Tidal → [ADBE 4186772] 64-bit Flash audio is not playing on Tidal
Whiteboard: sb- [platform-rel-Tidal] → sb- [platform-rel-Tidal] [ADBE 4186772]
cpeterson can I close this out?
Flags: needinfo?(cpeterson)
Priority: -- → P2
WFM in 64-bit Nightly 55
Status: NEW → RESOLVED
Closed: 7 years ago
Flags: needinfo?(cpeterson)
Resolution: --- → WORKSFORME
Product: Core → Core Graveyard
You need to log in before you can comment on or make changes to this bug.