Last Comment Bug 659071 - Ctrl + scrollwheel doesn't zoom when hovering a <video> element
: Ctrl + scrollwheel doesn't zoom when hovering a <video> element
Status: RESOLVED FIXED
:
Product: Core
Classification: Components
Component: Event Handling (show other bugs)
: Trunk
: All All
: -- normal (vote)
: mozilla17
Assigned To: Masayuki Nakano [:masayuki] (Mozilla Japan) (working slowly due to injured)
:
Mentors:
http://tinyvid.tv/show/q31g9htvwjdh
Depends on: 719320
Blocks:
  Show dependency treegraph
 
Reported: 2011-05-23 11:58 PDT by Daniel Holbert [:dholbert]
Modified: 2012-08-14 06:02 PDT (History)
4 users (show)
See Also:
Crash Signature:
(edit)
QA Whiteboard:
Iteration: ---
Points: ---
Has Regression Range: ---
Has STR: ---


Attachments
Patch (4.70 KB, patch)
2012-08-13 05:14 PDT, Masayuki Nakano [:masayuki] (Mozilla Japan) (working slowly due to injured)
bugs: review+
Details | Diff | Review

Description Daniel Holbert [:dholbert] 2011-05-23 11:58:10 PDT
STR:
 1. Load video w/ embedded <video>, e.g. http://tinyvid.tv/show/q31g9htvwjdh
 2. Position cursor over page background.
 3. Ctrl-Scrollwheel
     --> Page zooms in/out
 4. Position cursor over <video> element
 4. Ctrl-Scrollwheel
     --> Page DOES NOT ZOOM
 5. Ctrl-+
     --> Page zooms in/out

ACTUAL RESULTS: Scrollwheel zoom is broken when cursor is above a <video>.


NOTE: Flash videos don't have this problem -- e.g. Ctrl-scrollwheel zooms just fine when I hover the video at http://www.youtube.com/watch?v=7FOydLkHQmw (without experimental-html5-video-opt-in)
Comment 1 Daniel Holbert [:dholbert] 2011-05-23 11:59:19 PDT
Version info:
Mozilla/5.0 (X11; Linux x86_64; rv:6.0a1) Gecko/20110522 Firefox/6.0a1

This bug also reproduces when you're viewing a video directly, too -- e.g. I can repro it here:   http://media.tinyvid.tv/q31g9htvwjdh.ogg
Comment 2 Chris DeCairos (:cade) 2012-02-12 15:44:10 PST
The problem is here:

http://mxr.mozilla.org/mozilla-central/source/content/events/src/nsEventStateManager.cpp#2514

if (content &&
    !content->IsNodeOfType(nsINode::eHTML_FORM_CONTROL) &&
    !content->IsXUL())
  {

!content->IsXUL() returns false when content is a <audio> or <video> element
Comment 3 Chris DeCairos (:cade) 2012-02-12 19:01:38 PST
So it looks like the problem is the controls of the audio and video element. When they are visible and you try to zoom in using the scroll wheel over one of the elements, the controls become the "content" parameter I mentioned in comment 2. 

Not sure wht the best solution is. we could add a special condition to the if statement up there for media elements, or we could somehow get the event to ignore the controls and get the video frame as content
Comment 4 Masayuki Nakano [:masayuki] (Mozilla Japan) (working slowly due to injured) 2012-07-17 20:44:55 PDT
Shouldn't we check whether the document is XUL?
Comment 5 Olli Pettay [:smaug] 2012-07-18 00:38:07 PDT
Yeah. I think that shouldn't be !content->IsXUL() but
!content->OwnerDoc()->IsXUL()
Comment 6 Masayuki Nakano [:masayuki] (Mozilla Japan) (working slowly due to injured) 2012-07-18 01:03:20 PDT
Thanks, I'll fix this after bug 719320.
Comment 7 Masayuki Nakano [:masayuki] (Mozilla Japan) (working slowly due to injured) 2012-08-13 05:14:50 PDT
Created attachment 651330 [details] [diff] [review]
Patch

If the test is performed in the iframe of the harness, some tests after it will fail :-(
Comment 8 Masayuki Nakano [:masayuki] (Mozilla Japan) (working slowly due to injured) 2012-08-13 07:21:08 PDT
https://hg.mozilla.org/integration/mozilla-inbound/rev/823ee7ad3411
Comment 9 Ed Morley [:emorley] 2012-08-14 06:02:38 PDT
https://hg.mozilla.org/mozilla-central/rev/823ee7ad3411

Note You need to log in before you can comment on or make changes to this bug.