int CaptionUserPreferences::textTrackSelectionScore(TextTrack* track, HTMLMediaElement*) const { if (track->kind() != TextTrack::captionsKeyword() && track->kind() != TextTrack::subtitlesKeyword()) return 0; if (!userPrefersSubtitles() && !userPrefersCaptions()) return 0; return textTrackLanguageSelectionScore(track, preferredLanguages()) + 1; }
int CaptionUserPreferences::textTrackLanguageSelectionScore(TextTrack* track) const { if (track->language().isEmpty()) return 0; Vector<String> languages = preferredLanguages(); size_t languageMatchIndex = indexOfBestMatchingLanguageInList(track->language(), languages); if (languageMatchIndex >= languages.size()) return 0; // Matching a track language is more important than matching track type, so this multiplier must be // greater than the maximum value returned by textTrackSelectionScore. return (languages.size() - languageMatchIndex) * 10; }