| Index: third_party/WebKit/Source/modules/mediasession/MediaMetadataSanitizer.cpp
|
| diff --git a/third_party/WebKit/Source/modules/mediasession/MediaMetadataSanitizer.cpp b/third_party/WebKit/Source/modules/mediasession/MediaMetadataSanitizer.cpp
|
| index 4c87ebc761708b60933b0be42d00c998f249bc2c..b3ab3d58566e010251a7c793c9f4cb68729a14c9 100644
|
| --- a/third_party/WebKit/Source/modules/mediasession/MediaMetadataSanitizer.cpp
|
| +++ b/third_party/WebKit/Source/modules/mediasession/MediaMetadataSanitizer.cpp
|
| @@ -4,7 +4,7 @@
|
|
|
| #include "modules/mediasession/MediaMetadataSanitizer.h"
|
|
|
| -#include "modules/mediasession/MediaArtwork.h"
|
| +#include "modules/mediasession/MediaImage.h"
|
| #include "modules/mediasession/MediaMetadata.h"
|
| #include "public/platform/WebIconSizesParser.h"
|
| #include "public/platform/WebSize.h"
|
| @@ -20,17 +20,17 @@ namespace {
|
| // Maximum length of all strings inside MediaMetadata when it is sent over mojo.
|
| const size_t kMaxStringLength = 4 * 1024;
|
|
|
| -// Maximum type length of MediaArtwork, which conforms to RFC 4288
|
| +// Maximum type length of MediaImage, which conforms to RFC 4288
|
| // (https://tools.ietf.org/html/rfc4288).
|
| -const size_t kMaxArtworkTypeLength = 2 * 127 + 1;
|
| +const size_t kMaxImageTypeLength = 2 * 127 + 1;
|
|
|
| -// Maximum number of artwork images inside the MediaMetadata.
|
| -const size_t kMaxNumberOfArtworkImages = 10;
|
| +// Maximum number of MediaImages inside the MediaMetadata.
|
| +const size_t kMaxNumberOfMediaImages = 10;
|
|
|
| -// Maximum of sizes in an artwork image.
|
| -const size_t kMaxNumberOfArtworkSizes = 10;
|
| +// Maximum of sizes in a MediaImage.
|
| +const size_t kMaxNumberOfImageSizes = 10;
|
|
|
| -bool checkArtworkSrcSanity(const KURL& src) {
|
| +bool checkMediaImageSrcSanity(const KURL& src) {
|
| if (!src.isValid())
|
| return false;
|
| if (!src.protocolIs(url::kHttpScheme) && !src.protocolIs(url::kHttpsScheme) &&
|
| @@ -43,23 +43,25 @@ bool checkArtworkSrcSanity(const KURL& src) {
|
| return true;
|
| }
|
|
|
| -blink::mojom::blink::MediaImagePtr sanitizeArtworkAndConvertToMojo(
|
| - const MediaArtwork* artwork) {
|
| - DCHECK(artwork);
|
| +// Sanitize MediaImage and do mojo serialization. Returns null when
|
| +// |image.src()| is bad.
|
| +blink::mojom::blink::MediaImagePtr sanitizeMediaImageAndConvertToMojo(
|
| + const MediaImage* image) {
|
| + DCHECK(image);
|
|
|
| blink::mojom::blink::MediaImagePtr mojoImage;
|
|
|
| - KURL url = KURL(ParsedURLString, artwork->src());
|
| - if (!checkArtworkSrcSanity(url))
|
| + KURL url = KURL(ParsedURLString, image->src());
|
| + if (!checkMediaImageSrcSanity(url))
|
| return mojoImage;
|
|
|
| mojoImage = blink::mojom::blink::MediaImage::New();
|
| mojoImage->src = url;
|
| - mojoImage->type = artwork->type().left(kMaxArtworkTypeLength);
|
| + mojoImage->type = image->type().left(kMaxImageTypeLength);
|
| for (const auto& webSize :
|
| - WebIconSizesParser::parseIconSizes(artwork->sizes())) {
|
| + WebIconSizesParser::parseIconSizes(image->sizes())) {
|
| mojoImage->sizes.append(webSize);
|
| - if (mojoImage->sizes.size() == kMaxNumberOfArtworkSizes)
|
| + if (mojoImage->sizes.size() == kMaxNumberOfImageSizes)
|
| break;
|
| }
|
| return mojoImage;
|
| @@ -80,12 +82,12 @@ MediaMetadataSanitizer::sanitizeAndConvertToMojo(
|
| mojoMetadata->artist = metadata->artist().left(kMaxStringLength);
|
| mojoMetadata->album = metadata->album().left(kMaxStringLength);
|
|
|
| - for (const auto artwork : metadata->artwork()) {
|
| + for (const auto image : metadata->artwork()) {
|
| blink::mojom::blink::MediaImagePtr mojoImage =
|
| - sanitizeArtworkAndConvertToMojo(artwork.get());
|
| + sanitizeMediaImageAndConvertToMojo(image.get());
|
| if (!mojoImage.is_null())
|
| mojoMetadata->artwork.append(std::move(mojoImage));
|
| - if (mojoMetadata->artwork.size() == kMaxNumberOfArtworkImages)
|
| + if (mojoMetadata->artwork.size() == kMaxNumberOfMediaImages)
|
| break;
|
| }
|
| return mojoMetadata;
|
|
|