Bug 111934

Summary: Caption menu does not include in-band captions
Product: WebKit Reporter: Chris Petersen <c.petersen87>
Component: MediaAssignee: Eric Carlson <eric.carlson>
Status: CLOSED FIXED    
Severity: Normal CC: benjamin, cmarcelo, commit-queue, dino, eric.carlson, esprehn+autocc, glenn, jer.noble, simon.fraser, webkit-ews
Priority: P2 Keywords: InRadar
Version: 528+ (Nightly build)   
Hardware: Unspecified   
OS: Unspecified   
URL: http://www.apple.com/ipad-mini/overview/
Attachments:
Description Flags
screen shot of full screen video mode
none
Proposed patch
webkit-ews: commit-queue-
Updated patch
none
Updated patch none

Chris Petersen
Reported 2013-03-09 21:35:21 PST
In Full screen video mode, balloon icon appears on toolbar but is non functional. I'm noticing this icon on toolbar with NB r145321. Perhaps this is work in progress but just noticed it. 1) Launch NB r145321 2) Go to http://www.apple.com/ipad-mini/overview/. Click on Watch This Video 3) After movie starts to play, click on full screen icon to enter full screen video mode 4) After entering full screen mode, notice the "balloon" icon appearing on toolbar ( to the left of full screen icon ) 5) Clicking this balloon icon on the toolbar doesn't appears to do anything ( at least to me )
Attachments
screen shot of full screen video mode (1.69 MB, image/png)
2013-03-09 21:37 PST, Chris Petersen
no flags
Proposed patch (51.40 KB, patch)
2013-05-02 07:05 PDT, Eric Carlson
webkit-ews: commit-queue-
Updated patch (51.40 KB, patch)
2013-05-02 08:45 PDT, Eric Carlson
no flags
Updated patch (53.41 KB, patch)
2013-05-02 11:02 PDT, Eric Carlson
no flags
Chris Petersen
Comment 1 2013-03-09 21:37:20 PST
Created attachment 192369 [details] screen shot of full screen video mode
Eric Carlson
Comment 2 2013-05-02 07:05:40 PDT
Created attachment 200313 [details] Proposed patch
Eric Carlson
Comment 3 2013-05-02 07:06:48 PDT
Early Warning System Bot
Comment 4 2013-05-02 07:15:39 PDT
Early Warning System Bot
Comment 5 2013-05-02 07:18:46 PDT
Comment on attachment 200313 [details] Proposed patch Attachment 200313 [details] did not pass qt-wk2-ews (qt-wk2): Output: http://webkit-queues.appspot.com/results/376314
Eric Carlson
Comment 6 2013-05-02 08:45:16 PDT
Created attachment 200318 [details] Updated patch
Jer Noble
Comment 7 2013-05-02 08:55:23 PDT
Comment on attachment 200318 [details] Updated patch View in context: https://bugs.webkit.org/attachment.cgi?id=200313&action=review Looks good generally, but I've got reservations about m_legacyWEbKitClosedCaptionsVisible. See below. > Source/WebCore/ChangeLog:9 > + No new tests (OOPS!). > + Oops. > Source/WebCore/html/HTMLMediaElement.cpp:846 > + m_pendingActionFlags &= ~LoadMediaResource; I know exactly what this does, but in the past I've gotten review comments where this construct was too confusing. We should make a CLEAR_FLAG() and SET_FLAG() macro/inline that does this. > Source/WebCore/html/HTMLMediaElement.cpp:4457 > + m_legacyWebKitClosedCaptionsVisible = visible; > setClosedCaptionsVisible(visible); > + m_legacyWebKitClosedCaptionsVisible = m_haveVisibleTextTrack; This is weird. I assume that m_haveVisibleTextTrack being set is a side effect of setClosedCaptionsVisible? > Source/WebCore/html/HTMLMediaElement.cpp:4462 > - return closedCaptionsVisible(); > + return m_legacyWebKitClosedCaptionsVisible; So you can call setWebkitClosedCaptionsVisible(TRUE) and have webkitClosedCaptionsVisible() immediately return FALSE? That's odd. > Source/WebCore/page/CaptionUserPreferencesMac.mm:622 > + bool legacyOverride = mediaElement->webkitClosedCaptionsVisible(); If webkitClosedCaptionsVisible() is real being used as a "legacyOverride" can we rename it (or add a new function) "legacyClosedCaptionsShouldOverrideVisibility()" or something? > Source/WebCore/platform/graphics/avfoundation/InbandTextTrackPrivateAVF.h:66 > + virtual bool isLegacyCCTrack() const = 0; Since there's already a isClosedCaptions(), this should be "isLegacyClosedCaptions()" or "isLegacyClosedCaptionsTrack()". > Source/WebCore/platform/graphics/avfoundation/objc/InbandTextTrackPrivateLegacyAVFObjC.h:59 > + virtual bool isLegacyCCTrack() const OVERRIDE { return true; } Ditto. > Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:179 > + void processLegacyCCTracks(); Same thing, expand CC -> ClosedCaption.
Eric Carlson
Comment 8 2013-05-02 11:02:56 PDT
Created attachment 200321 [details] Updated patch
Eric Carlson
Comment 9 2013-05-02 11:03:07 PDT
(In reply to comment #7) > (From update of attachment 200318 [details]) > View in context: https://bugs.webkit.org/attachment.cgi?id=200313&action=review > > Looks good generally, but I've got reservations about m_legacyWEbKitClosedCaptionsVisible. See below. > > > Source/WebCore/ChangeLog:9 > > + No new tests (OOPS!). > > + > > Oops. > Fixed > > Source/WebCore/html/HTMLMediaElement.cpp:846 > > + m_pendingActionFlags &= ~LoadMediaResource; > > I know exactly what this does, but in the past I've gotten review comments where this construct was too confusing. We should make a CLEAR_FLAG() and SET_FLAG() macro/inline that does this. > Fixed > > Source/WebCore/html/HTMLMediaElement.cpp:4457 > > + m_legacyWebKitClosedCaptionsVisible = visible; > > setClosedCaptionsVisible(visible); > > + m_legacyWebKitClosedCaptionsVisible = m_haveVisibleTextTrack; > > This is weird. I assume that m_haveVisibleTextTrack being set is a side effect of setClosedCaptionsVisible? > > > Source/WebCore/html/HTMLMediaElement.cpp:4462 > > - return closedCaptionsVisible(); > > + return m_legacyWebKitClosedCaptionsVisible; > > So you can call setWebkitClosedCaptionsVisible(TRUE) and have webkitClosedCaptionsVisible() immediately return FALSE? That's odd. > Yes, webkitClosedCaptionsVisible is meant to return true only if closed captions are visible, which can only be true if the file actually has a caption track. This has always been the case, media-captions.html tests this. > > Source/WebCore/page/CaptionUserPreferencesMac.mm:622 > > + bool legacyOverride = mediaElement->webkitClosedCaptionsVisible(); > > If webkitClosedCaptionsVisible() is real being used as a "legacyOverride" can we rename it (or add a new function) "legacyClosedCaptionsShouldOverrideVisibility()" or something? > "webkitClosedCaptionsVisible" is web facing so we can't really change it. > > Source/WebCore/platform/graphics/avfoundation/InbandTextTrackPrivateAVF.h:66 > > + virtual bool isLegacyCCTrack() const = 0; > > Since there's already a isClosedCaptions(), this should be "isLegacyClosedCaptions()" or "isLegacyClosedCaptionsTrack()". > Fixed. > > Source/WebCore/platform/graphics/avfoundation/objc/InbandTextTrackPrivateLegacyAVFObjC.h:59 > > + virtual bool isLegacyCCTrack() const OVERRIDE { return true; } > > Ditto. > Fixed. > > Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:179 > > + void processLegacyCCTracks(); > > Same thing, expand CC -> ClosedCaption. > Fixed.
WebKit Commit Bot
Comment 10 2013-05-02 16:05:15 PDT
Comment on attachment 200321 [details] Updated patch Clearing flags on attachment: 200321 Committed r149503: <http://trac.webkit.org/changeset/149503>
WebKit Commit Bot
Comment 11 2013-05-02 16:05:18 PDT
All reviewed patches have been landed. Closing bug.
Eric Carlson
Comment 12 2013-05-02 17:04:18 PDT
Lion build fix committed in r149510.
Chris Petersen
Comment 13 2013-05-04 09:54:19 PDT
Excellent. Verified fixed in NB r149555 under Mac OS X 10.8.3.
Eric Carlson
Comment 14 2013-05-05 13:21:16 PDT
(In reply to comment #13) > Excellent. Verified fixed in NB r149555 under Mac OS X 10.8.3. Thank you Chris!
Note You need to log in before you can comment on or make changes to this bug.