Changeset 258693 in webkit
- Timestamp:
- Mar 19, 2020 5:06:49 AM (4 years ago)
- Location:
- trunk
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LayoutTests/ChangeLog
r258692 r258693 1 2020-03-19 Enrique Ocaña González <eocanha@igalia.com> 2 3 [GTK] media/track/track-automatic-subtitles.html is timing out 4 https://bugs.webkit.org/show_bug.cgi?id=116957 5 6 Reviewed by Adrian Perez de Castro. 7 8 Removed test from expectations. 9 10 * platform/gtk/TestExpectations: 11 1 12 2020-03-19 Diego Pino Garcia <dpino@igalia.com> 2 13 -
trunk/LayoutTests/platform/gtk/TestExpectations
r258692 r258693 2914 2914 webkit.org/b/108925 http/tests/media/video-play-stall.html [ Failure Timeout ] 2915 2915 2916 webkit.org/b/116957 media/track/track-automatic-subtitles.html [ Timeout ]2917 2918 2916 webkit.org/b/147518 inspector/debugger/nested-inspectors.html [ Timeout ] 2919 2917 -
trunk/Source/WebCore/ChangeLog
r258691 r258693 1 2020-03-19 Enrique Ocaña González <eocanha@igalia.com> 2 3 [GTK] media/track/track-automatic-subtitles.html is timing out 4 https://bugs.webkit.org/show_bug.cgi?id=116957 5 6 Reviewed by Adrian Perez de Castro. 7 8 Moved CaptionUserPreferencesMediaAF::textTrackSelectionScore() implementation 9 to the CaptionUserPreferencesMedia superclass. 10 11 Tested by existing test. 12 13 * page/CaptionUserPreferences.cpp: 14 (WebCore::CaptionUserPreferences::textTrackSelectionScore const): 15 * page/CaptionUserPreferencesMediaAF.cpp: 16 * page/CaptionUserPreferencesMediaAF.h: 17 1 18 2020-03-19 Philippe Normand <pnormand@igalia.com> 2 19 -
trunk/Source/WebCore/page/CaptionUserPreferences.cpp
r257997 r258693 31 31 #include "AudioTrackList.h" 32 32 #include "DOMWrapperWorld.h" 33 #include "HTMLMediaElement.h" 33 34 #include "LocalizedStrings.h" 34 35 #include "MediaSelectionOption.h" … … 286 287 } 287 288 288 int CaptionUserPreferences::textTrackSelectionScore(TextTrack* track, HTMLMediaElement*) const 289 { 290 if (track->kind() != TextTrack::Kind::Captions && track->kind() != TextTrack::Kind::Subtitles) 291 return 0; 292 293 if (!userPrefersSubtitles() && !userPrefersCaptions()) 294 return 0; 295 296 return textTrackLanguageSelectionScore(track, preferredLanguages()) + 1; 289 int CaptionUserPreferences::textTrackSelectionScore(TextTrack* track, HTMLMediaElement* mediaElement) const 290 { 291 CaptionDisplayMode displayMode = captionDisplayMode(); 292 if (displayMode == Manual) 293 return 0; 294 295 bool legacyOverride = mediaElement->webkitClosedCaptionsVisible(); 296 if (displayMode == AlwaysOn && (!userPrefersSubtitles() && !userPrefersCaptions() && !legacyOverride)) 297 return 0; 298 if (track->kind() != TextTrack::Kind::Captions && track->kind() != TextTrack::Kind::Subtitles && track->kind() != TextTrack::Kind::Forced) 299 return 0; 300 if (!track->isMainProgramContent()) 301 return 0; 302 303 bool trackHasOnlyForcedSubtitles = track->containsOnlyForcedSubtitles(); 304 if (!legacyOverride && ((trackHasOnlyForcedSubtitles && displayMode != ForcedOnly) || (!trackHasOnlyForcedSubtitles && displayMode == ForcedOnly))) 305 return 0; 306 307 Vector<String> userPreferredCaptionLanguages = preferredLanguages(); 308 309 if ((displayMode == Automatic && !legacyOverride) || trackHasOnlyForcedSubtitles) { 310 311 if (!mediaElement || !mediaElement->player()) 312 return 0; 313 314 String textTrackLanguage = track->validBCP47Language(); 315 if (textTrackLanguage.isEmpty()) 316 return 0; 317 318 Vector<String> languageList; 319 languageList.reserveCapacity(1); 320 321 String audioTrackLanguage; 322 if (testingMode()) 323 audioTrackLanguage = primaryAudioTrackLanguageOverride(); 324 else 325 audioTrackLanguage = mediaElement->player()->languageOfPrimaryAudioTrack(); 326 327 if (audioTrackLanguage.isEmpty()) 328 return 0; 329 330 bool exactMatch; 331 if (trackHasOnlyForcedSubtitles) { 332 languageList.append(audioTrackLanguage); 333 size_t offset = indexOfBestMatchingLanguageInList(textTrackLanguage, languageList, exactMatch); 334 335 // Only consider a forced-only track if it IS in the same language as the primary audio track. 336 if (offset) 337 return 0; 338 } else { 339 languageList.append(defaultLanguage()); 340 341 // Only enable a text track if the current audio track is NOT in the user's preferred language ... 342 size_t offset = indexOfBestMatchingLanguageInList(audioTrackLanguage, languageList, exactMatch); 343 if (!offset) 344 return 0; 345 346 // and the text track matches the user's preferred language. 347 offset = indexOfBestMatchingLanguageInList(textTrackLanguage, languageList, exactMatch); 348 if (offset) 349 return 0; 350 } 351 352 userPreferredCaptionLanguages = languageList; 353 } 354 355 int trackScore = 0; 356 357 if (userPrefersCaptions()) { 358 // When the user prefers accessibility tracks, rank is SDH, then CC, then subtitles. 359 if (track->kind() == TextTrack::Kind::Subtitles) 360 trackScore = 1; 361 else if (track->isClosedCaptions()) 362 trackScore = 2; 363 else 364 trackScore = 3; 365 } else { 366 // When the user prefers translation tracks, rank is subtitles, then SDH, then CC tracks. 367 if (track->kind() == TextTrack::Kind::Subtitles) 368 trackScore = 3; 369 else if (!track->isClosedCaptions()) 370 trackScore = 2; 371 else 372 trackScore = 1; 373 } 374 375 return trackScore + textTrackLanguageSelectionScore(track, userPreferredCaptionLanguages); 297 376 } 298 377 -
trunk/Source/WebCore/page/CaptionUserPreferencesMediaAF.cpp
r257997 r258693 720 720 } 721 721 722 int CaptionUserPreferencesMediaAF::textTrackSelectionScore(TextTrack* track, HTMLMediaElement* mediaElement) const723 {724 CaptionDisplayMode displayMode = captionDisplayMode();725 if (displayMode == Manual)726 return 0;727 728 bool legacyOverride = mediaElement->webkitClosedCaptionsVisible();729 if (displayMode == AlwaysOn && (!userPrefersSubtitles() && !userPrefersCaptions() && !legacyOverride))730 return 0;731 if (track->kind() != TextTrack::Kind::Captions && track->kind() != TextTrack::Kind::Subtitles && track->kind() != TextTrack::Kind::Forced)732 return 0;733 if (!track->isMainProgramContent())734 return 0;735 736 bool trackHasOnlyForcedSubtitles = track->containsOnlyForcedSubtitles();737 if (!legacyOverride && ((trackHasOnlyForcedSubtitles && displayMode != ForcedOnly) || (!trackHasOnlyForcedSubtitles && displayMode == ForcedOnly)))738 return 0;739 740 Vector<String> userPreferredCaptionLanguages = preferredLanguages();741 742 if ((displayMode == Automatic && !legacyOverride) || trackHasOnlyForcedSubtitles) {743 744 if (!mediaElement || !mediaElement->player())745 return 0;746 747 String textTrackLanguage = track->validBCP47Language();748 if (textTrackLanguage.isEmpty())749 return 0;750 751 Vector<String> languageList;752 languageList.reserveCapacity(1);753 754 String audioTrackLanguage;755 if (testingMode())756 audioTrackLanguage = primaryAudioTrackLanguageOverride();757 else758 audioTrackLanguage = mediaElement->player()->languageOfPrimaryAudioTrack();759 760 if (audioTrackLanguage.isEmpty())761 return 0;762 763 bool exactMatch;764 if (trackHasOnlyForcedSubtitles) {765 languageList.append(audioTrackLanguage);766 size_t offset = indexOfBestMatchingLanguageInList(textTrackLanguage, languageList, exactMatch);767 768 // Only consider a forced-only track if it IS in the same language as the primary audio track.769 if (offset)770 return 0;771 } else {772 languageList.append(defaultLanguage());773 774 // Only enable a text track if the current audio track is NOT in the user's preferred language ...775 size_t offset = indexOfBestMatchingLanguageInList(audioTrackLanguage, languageList, exactMatch);776 if (!offset)777 return 0;778 779 // and the text track matches the user's preferred language.780 offset = indexOfBestMatchingLanguageInList(textTrackLanguage, languageList, exactMatch);781 if (offset)782 return 0;783 }784 785 userPreferredCaptionLanguages = languageList;786 }787 788 int trackScore = 0;789 790 if (userPrefersCaptions()) {791 // When the user prefers accessibility tracks, rank is SDH, then CC, then subtitles.792 if (track->kind() == TextTrack::Kind::Subtitles)793 trackScore = 1;794 else if (track->isClosedCaptions())795 trackScore = 2;796 else797 trackScore = 3;798 } else {799 // When the user prefers translation tracks, rank is subtitles, then SDH, then CC tracks.800 if (track->kind() == TextTrack::Kind::Subtitles)801 trackScore = 3;802 else if (!track->isClosedCaptions())803 trackScore = 2;804 else805 trackScore = 1;806 }807 808 return trackScore + textTrackLanguageSelectionScore(track, userPreferredCaptionLanguages);809 }810 811 722 static bool textTrackCompare(const RefPtr<TextTrack>& a, const RefPtr<TextTrack>& b) 812 723 { -
trunk/Source/WebCore/page/CaptionUserPreferencesMediaAF.h
r214169 r258693 66 66 67 67 String captionsStyleSheetOverride() const override; 68 int textTrackSelectionScore(TextTrack*, HTMLMediaElement*) const override;69 68 Vector<RefPtr<AudioTrack>> sortedTrackListForMenu(AudioTrackList*) override; 70 69 Vector<RefPtr<TextTrack>> sortedTrackListForMenu(TextTrackList*) override;
Note: See TracChangeset
for help on using the changeset viewer.