Exemple #1
0
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;
}