Skip to content

Commit 83905fa

Browse files
committed
subtitle tracks with no srclang show up as " (label)" instead of just "label"
https://bugs.webkit.org/show_bug.cgi?id=290226 Reviewed by Eric Carlson. * Source/WebCore/page/CaptionUserPreferencesMediaAF.cpp: (WebCore::trackDisplayName): Only use the localized format string if both parts are valid. * Source/WebCore/page/CaptionUserPreferences.cpp: (WebCore::trackDisplayName): Strip any leading/trailing whitespace from the `label` before deciding whether to use it. * LayoutTests/media/modern-media-controls/tracks-support/sorted-by-user-preferred-languages.html: * LayoutTests/media/modern-media-controls/tracks-support/sorted-by-user-preferred-languages-expected.txt: Canonical link: https://commits.webkit.org/292577@main
1 parent 0b589ff commit 83905fa

4 files changed

Lines changed: 18 additions & 12 deletions

File tree

LayoutTests/media/modern-media-controls/tracks-support/sorted-by-user-preferred-languages-expected.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ Subtitles: [
1515
"Spanish Captions",
1616
"Spanish",
1717
"Spanish Descriptions",
18+
"no-srclang",
1819
"Chinese (China mainland)",
1920
"French Captions (label-fr)",
2021
"French (label-fr)",

LayoutTests/media/modern-media-controls/tracks-support/sorted-by-user-preferred-languages.html

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,8 @@
1616
<track src="../../lorem-ipsum.vtt" kind="subtitles" srclang="fr" label="label-fr">
1717
<track src="../../lorem-ipsum.vtt" kind="descriptions" srclang="es" label="Descriptions">
1818
<track src="../../lorem-ipsum.vtt" kind="captions" srclang="es">
19-
<track src="../../lorem-ipsum.vtt" kind="subtitles" srclang="es">
19+
<track src="../../lorem-ipsum.vtt" kind="subtitles" srclang="es" label=" ">
20+
<track src="../../lorem-ipsum.vtt" kind="subtitles" label="no-srclang">
2021
<track src="../../lorem-ipsum.vtt" kind="subtitles" srclang="zh-CN">
2122
</video>
2223
<script type="text/javascript">

Source/WebCore/page/CaptionUserPreferences.cpp

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -217,11 +217,11 @@ static String trackDisplayName(TextTrack* track)
217217
if (track == &TextTrack::captionMenuAutomaticItem())
218218
return textTrackAutomaticMenuItemText();
219219

220-
if (track->label().isEmpty() && track->validBCP47Language().isEmpty())
221-
return trackNoLabelText();
222-
if (!track->label().isEmpty())
220+
if (auto label = track->label().string().trim(isASCIIWhitespace); !label.isEmpty())
223221
return track->label();
224-
return track->validBCP47Language();
222+
if (auto languageIdentifier = track->validBCP47Language(); !languageIdentifier.isEmpty())
223+
return languageIdentifier;
224+
return trackNoLabelText();
225225
}
226226

227227
String CaptionUserPreferences::displayNameForTrack(TextTrack* track) const
@@ -286,11 +286,11 @@ Vector<RefPtr<TextTrack>> CaptionUserPreferences::sortedTrackListForMenu(TextTra
286286

287287
static String trackDisplayName(AudioTrack* track)
288288
{
289-
if (track->label().isEmpty() && track->validBCP47Language().isEmpty())
290-
return trackNoLabelText();
291-
if (!track->label().isEmpty())
289+
if (auto label = track->label().string().trim(isASCIIWhitespace); !label.isEmpty())
292290
return track->label();
293-
return track->validBCP47Language();
291+
if (auto languageIdentifier = track->validBCP47Language(); !languageIdentifier.isEmpty())
292+
return languageIdentifier;
293+
return trackNoLabelText();
294294
}
295295

296296
String CaptionUserPreferences::displayNameForTrack(AudioTrack* track) const

Source/WebCore/page/CaptionUserPreferencesMediaAF.cpp

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -735,7 +735,7 @@ static String trackDisplayName(const TrackBase& track)
735735

736736
String result;
737737

738-
String label = track.label();
738+
String label = track.label().string().trim(isASCIIWhitespace);
739739
String trackLanguageIdentifier = track.validBCP47Language();
740740

741741
auto preferredLanguages = userPreferredLanguages(ShouldMinimizeLanguages::No);
@@ -761,8 +761,12 @@ static String trackDisplayName(const TrackBase& track)
761761

762762
result = addTrackKindDisplayNameIfNeeded(track, result);
763763

764-
if (!label.isEmpty() && !result.contains(label))
765-
result = addTrackLabelAsSuffix(result, label);
764+
if (!label.isEmpty()) {
765+
if (result.isEmpty())
766+
result = label;
767+
else if (!result.contains(label))
768+
result = addTrackLabelAsSuffix(result, label);
769+
}
766770
}
767771

768772
if (result.isEmpty())

0 commit comments

Comments
 (0)