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;
}
示例#2
0
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;
}