Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(22)

Side by Side Diff: third_party/WebKit/Source/core/html/shadow/MediaControlElements.cpp

Issue 2456993003: Improve caption button behavior for video player. (Closed)
Patch Set: Created 4 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2008, 2009, 2010, 2011 Apple Inc. All rights reserved. 2 * Copyright (C) 2008, 2009, 2010, 2011 Apple Inc. All rights reserved.
3 * Copyright (C) 2012 Google Inc. All rights reserved. 3 * Copyright (C) 2012 Google Inc. All rights reserved.
4 * 4 *
5 * Redistribution and use in source and binary forms, with or without 5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions 6 * modification, are permitted provided that the following conditions
7 * are met: 7 * are met:
8 * 8 *
9 * 1. Redistributions of source code must retain the above copyright 9 * 1. Redistributions of source code must retain the above copyright
10 * notice, this list of conditions and the following disclaimer. 10 * notice, this list of conditions and the following disclaimer.
(...skipping 453 matching lines...) Expand 10 before | Expand all | Expand 10 after
464 showTextTrackAtIndex(trackIndex); 464 showTextTrackAtIndex(trackIndex);
465 mediaElement().disableAutomaticTextTrackSelection(); 465 mediaElement().disableAutomaticTextTrackSelection();
466 } 466 }
467 467
468 event->setDefaultHandled(); 468 event->setDefaultHandled();
469 } 469 }
470 MediaControlDivElement::defaultEventHandler(event); 470 MediaControlDivElement::defaultEventHandler(event);
471 } 471 }
472 472
473 void MediaControlTextTrackListElement::setVisible(bool visible) { 473 void MediaControlTextTrackListElement::setVisible(bool visible) {
474 if (mediaElement().textTracks()->length() == 1) {
475 if (mediaElement().textTracks()->hasShowingTracks()) {
476 TextTrack* track = mediaElement().textTracks()->anonymousIndexedGetter(0);
477 track->setMode(TextTrack::hiddenKeyword());
478 } else {
479 showTextTrackAtIndex(0);
480 }
481 return;
482 }
mlamouri (slow - plz ping) 2016/10/28 13:02:37 Maybe this logic could be moved to the ClosedCapti
Finnur 2016/10/28 14:12:22 Yeah, I like that idea. Done.
483
474 if (visible) { 484 if (visible) {
475 setIsWanted(true); 485 setIsWanted(true);
476 refreshTextTrackListMenu(); 486 refreshTextTrackListMenu();
477 } else { 487 } else {
478 setIsWanted(false); 488 setIsWanted(false);
479 } 489 }
480 } 490 }
481 491
482 void MediaControlTextTrackListElement::showTextTrackAtIndex( 492 void MediaControlTextTrackListElement::showTextTrackAtIndex(
483 unsigned indexToEnable) { 493 unsigned indexToEnable) {
484 TextTrackList* trackList = mediaElement().textTracks(); 494 TextTrackList* trackList = mediaElement().textTracks();
485 if (indexToEnable >= trackList->length()) 495 if (indexToEnable >= trackList->length())
486 return; 496 return;
487 TextTrack* track = trackList->anonymousIndexedGetter(indexToEnable); 497 TextTrack* track = trackList->anonymousIndexedGetter(indexToEnable);
488 if (track && track->canBeRendered()) 498 if (track && track->canBeRendered())
489 track->setMode(TextTrack::showingKeyword()); 499 track->setMode(TextTrack::showingKeyword());
490 } 500 }
491 501
492 void MediaControlTextTrackListElement::disableShowingTextTracks() { 502 void MediaControlTextTrackListElement::disableShowingTextTracks() {
493 TextTrackList* trackList = mediaElement().textTracks(); 503 TextTrackList* trackList = mediaElement().textTracks();
494 for (unsigned i = 0; i < trackList->length(); ++i) { 504 for (unsigned i = 0; i < trackList->length(); ++i) {
495 TextTrack* track = trackList->anonymousIndexedGetter(i); 505 TextTrack* track = trackList->anonymousIndexedGetter(i);
496 if (track->mode() == TextTrack::showingKeyword()) 506 if (track->mode() == TextTrack::showingKeyword())
497 track->setMode(TextTrack::disabledKeyword()); 507 track->setMode(TextTrack::disabledKeyword());
498 } 508 }
499 } 509 }
500 510
501 String MediaControlTextTrackListElement::getTextTrackLabel(TextTrack* track) { 511 String MediaControlTextTrackListElement::getTextTrackLabel(TextTrack* track) {
502 if (!track) 512 if (!track) {
503 return mediaElement().locale().queryString( 513 return mediaElement().locale().queryString(
504 WebLocalizedString::TextTracksOff); 514 WebLocalizedString::TextTracksOff);
515 }
505 516
506 String trackLabel = track->label(); 517 String trackLabel = track->label();
507 518
508 if (trackLabel.isEmpty()) 519 if (trackLabel.isEmpty())
520 trackLabel = track->language();
521
522 if (trackLabel.isEmpty()) {
509 trackLabel = String(mediaElement().locale().queryString( 523 trackLabel = String(mediaElement().locale().queryString(
510 WebLocalizedString::TextTracksNoLabel)); 524 WebLocalizedString::TextTracksNoLabel,
525 String::number(track->trackIndex() + 1)));
526 }
511 527
512 return trackLabel; 528 return trackLabel;
513 } 529 }
514 530
515 // TextTrack parameter when passed in as a nullptr, creates the "Off" list item 531 // TextTrack parameter when passed in as a nullptr, creates the "Off" list item
516 // in the track list. 532 // in the track list.
517 Element* MediaControlTextTrackListElement::createTextTrackListItem( 533 Element* MediaControlTextTrackListElement::createTextTrackListItem(
518 TextTrack* track) { 534 TextTrack* track) {
519 int trackIndex = track ? track->trackIndex() : trackIndexOffValue; 535 int trackIndex = track ? track->trackIndex() : trackIndexOffValue;
520 HTMLLabelElement* trackItem = HTMLLabelElement::create(document()); 536 HTMLLabelElement* trackItem = HTMLLabelElement::create(document());
(...skipping 504 matching lines...) Expand 10 before | Expand all | Expand 10 after
1025 MediaControlCurrentTimeDisplayElement* 1041 MediaControlCurrentTimeDisplayElement*
1026 MediaControlCurrentTimeDisplayElement::create(MediaControls& mediaControls) { 1042 MediaControlCurrentTimeDisplayElement::create(MediaControls& mediaControls) {
1027 MediaControlCurrentTimeDisplayElement* element = 1043 MediaControlCurrentTimeDisplayElement* element =
1028 new MediaControlCurrentTimeDisplayElement(mediaControls); 1044 new MediaControlCurrentTimeDisplayElement(mediaControls);
1029 element->setShadowPseudoId( 1045 element->setShadowPseudoId(
1030 AtomicString("-webkit-media-controls-current-time-display")); 1046 AtomicString("-webkit-media-controls-current-time-display"));
1031 return element; 1047 return element;
1032 } 1048 }
1033 1049
1034 } // namespace blink 1050 } // namespace blink
OLDNEW
« content/app/strings/content_strings.grd ('K') | « content/app/strings/content_strings.grd ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698