Closed Bug 928804 Opened 6 years ago Closed 6 years ago

Youtube Flash videos are displayed upside down

Categories

(Firefox for Android Graveyard :: Plugins, defect, major)

27 Branch
All
Android
defect
Not set
major

Tracking

(firefox26 unaffected, firefox27+ verified, firefox28 verified, relnote-firefox -, fennec27+)

VERIFIED FIXED
Firefox 28
Tracking Status
firefox26 --- unaffected
firefox27 + verified
firefox28 --- verified
relnote-firefox --- -
fennec 27+ ---

People

(Reporter: u421692, Assigned: snorp)

References

Details

(Keywords: regression, reproducible)

Attachments

(2 files)

Attached image upside_down.png
Environment:
Device: LG Nexus 4 (Android 4.2.2) / Asus Transformer TF101 (Android 4.0.3)
Build: Firefox Nightly 27.0a1 (2013-10-20)

Steps to reproduce:
1. Open Youtube Desktop Site or a site that contains Youtube embedded video (e.g. http://www.intel.com/museumofme/mobile/index.htm)
2. Play video.

Expected result:
Video is played without any issues.

Actual result:
The video is upside down, though the Youtube player controls are oriented correctly.
Flags: needinfo?(mihai.g.pop)
tracking-fennec: --- → ?
Nightly 27.0a1 (2013-10-11)                                - BAD
Nightly 27.0a1 (2013-10-04) to Nightly 27.0a1 (2013-10-10) - CRASH
Nightly 27.0a1 (2013-10-03)                                - GOOD

I can only think that the patches on Bug 923917 created this regression.
Flags: needinfo?(mihai.g.pop)
Blocks: 923917
Passing this onto :nical to help with investigation here as this is a fallout from 923917.
Assignee: nobody → nical.bugzilla
Severity: normal → major
Status: NEW → ASSIGNED
Keywords: reproducible
Reproduced on my LG Nexus 4 (Android 4.3) running the latest available version of the Flash APK.
Interestingly, zooming in puts the video back in the correct orientation at same time the tiles (in the rest of the page) are repainted (so typically when some layout as been triggered). This looks like something outside of layers is not giving the correct information to its layer. I'll put some breakpoints and see.
Worth an Aurora relnote.
relnote-firefox: --- → ?
I am having issues debugging on my 4.3 devices. I also have a 2.3 device (on which jimdb works well) but it doesn't reproduce there (it wouldn't be fun).
Still looking.
tracking-fennec: ? → 27+
I have been probing every bit of TextureClient/Host code in search for a place where we switch from y-inverted and non-y-inverted textures, or any mismatch between what is passed to the client and what the host does, and in fact it appears that this stuff is working perfectly fine. The created texture clients and host are all Y-inverted, and the compositor is always drawing Y-inverted quads for the plugin.

It is the content GL texture that the plugin gives us that is, at first not inverted (but nsPluginInstanceOwner still asks the layer to invert it), and as soon as we cause a reflow, becomes inverted (which then corresponds to what the layer is asked to do). Weird.
snorp, your name appears in the mercurial history of the code around mInverted in nsPluginInstanceOwner.cpp, do you know what's the logic around y-inverting plugin frames on fennec? I am a bit lost right now.
Flags: needinfo?(snorp)
(In reply to Nicolas Silva [:nical] from comment #8)
> snorp, your name appears in the mercurial history of the code around
> mInverted in nsPluginInstanceOwner.cpp, do you know what's the logic around
> y-inverting plugin frames on fennec? I am a bit lost right now.

It's only a problem for video, right? So most likely something is (unsurprisingly) going wrong here: http://mxr.mozilla.org/mozilla-central/source/dom/plugins/base/nsPluginInstanceOwner.cpp#1696

If all the layers machinery is working, I can just take this bug from you if you'd like.
Flags: needinfo?(snorp)
Sweet, I am assigned to a lot of bugs so I hereby gladly accept your offer :)
Assignee: nical.bugzilla → snorp
I would really like to kill the SharedTexture stuff and just add some sort of native support for SurfaceTexture/ANativeWindow in TextureHost. This stuff sucks.
Attachment #8333932 - Flags: review?(nical.bugzilla) → review+
(In reply to James Willcox (:snorp) (jwillcox@mozilla.com) from comment #12)
> I would really like to kill the SharedTexture stuff and just add some sort
> of native support for SurfaceTexture/ANativeWindow in TextureHost. This
> stuff sucks.

SharedTexture is also used on mac iirc, and SurfaceTexture is a higher level concept than TextureHost. We should add support for ANativeWindow at the compositable level directly and not use TextureHost in the cases where a plugin talks to us through ANativeWindow.
Keywords: verifyme
https://hg.mozilla.org/mozilla-central/rev/ad311f0dd591
Status: ASSIGNED → RESOLVED
Closed: 6 years ago
Resolution: --- → FIXED
Target Milestone: --- → Firefox 28
(In reply to James Willcox (:snorp) (jwillcox@mozilla.com) from comment #14)
> https://hg.mozilla.org/integration/mozilla-inbound/rev/ad311f0dd591

Ready for aurora uplift here or are we waiting on QA verification ?
Verified fixed on:
Build: Firefox for Android 28.0a1 (2013-11-24)
Device: LG Nexus 4
OS: Android 4.2.2
Comment on attachment 8333932 [details] [diff] [review]
Always use an up-to-date texture transform when compositing SharedTextureSourceOGL

[Approval Request Comment]
Bug caused by (feature/regressing bug #): new textures on android (bug ?)
User impact if declined: Upside down content/video with Flash
Testing completed (on m-c, etc.): a week or so on m-c, verified fixed
Risk to taking this patch (and alternatives if risky): Low
String or IDL/UUID changes made by this patch: None
Attachment #8333932 - Flags: approval-mozilla-aurora?
Status: RESOLVED → VERIFIED
Attachment #8333932 - Flags: approval-mozilla-aurora? → approval-mozilla-aurora+
Verified fixed on:
Build: Firefox for Android 27.0a2 (2013-12-01)
Device: LG Nexus 4
OS: Android 4.2.2
Product: Firefox for Android → Firefox for Android Graveyard
You need to log in before you can comment on or make changes to this bug.