blink::mojom::blink::MediaMetadataPtr MediaMetadataSanitizer::sanitizeAndConvertToMojo(const MediaMetadata* metadata, ExecutionContext* context) { blink::mojom::blink::MediaMetadataPtr mojoMetadata; if (!metadata) return mojoMetadata; mojoMetadata = blink::mojom::blink::MediaMetadata::New(); mojoMetadata->title = metadata->title().left(kMaxStringLength); mojoMetadata->artist = metadata->artist().left(kMaxStringLength); mojoMetadata->album = metadata->album().left(kMaxStringLength); for (const auto image : metadata->artwork()) { blink::mojom::blink::MediaImagePtr mojoImage = sanitizeMediaImageAndConvertToMojo(image.get(), context); if (!mojoImage.is_null()) mojoMetadata->artwork.append(std::move(mojoImage)); if (mojoMetadata->artwork.size() == kMaxNumberOfMediaImages) { context->addConsoleMessage(ConsoleMessage::create( JSMessageSource, WarningMessageLevel, "The number of MediaImage sizes exceeds the upper limit. " "All remaining MediaImage will be ignored")); break; } } return mojoMetadata; }
blink::mojom::blink::MediaMetadataPtr MediaMetadataSanitizer::sanitizeAndConvertToMojo( const MediaMetadata* metadata) { blink::mojom::blink::MediaMetadataPtr mojoMetadata; if (!metadata) return mojoMetadata; mojoMetadata = blink::mojom::blink::MediaMetadata::New(); mojoMetadata->title = metadata->title().left(kMaxStringLength); mojoMetadata->artist = metadata->artist().left(kMaxStringLength); mojoMetadata->album = metadata->album().left(kMaxStringLength); for (const auto image : metadata->artwork()) { blink::mojom::blink::MediaImagePtr mojoImage = sanitizeMediaImageAndConvertToMojo(image.get()); if (!mojoImage.is_null()) mojoMetadata->artwork.append(std::move(mojoImage)); if (mojoMetadata->artwork.size() == kMaxNumberOfMediaImages) break; } return mojoMetadata; }