Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1174)

Side by Side Diff: content/public/common/media_metadata.h

Issue 2015433003: Implement MediaMetadata artwork in content (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: addressed Mounir's comments Created 4 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef CONTENT_PUBLIC_COMMON_MEDIA_METADATA_H_ 5 #ifndef CONTENT_PUBLIC_COMMON_MEDIA_METADATA_H_
6 #define CONTENT_PUBLIC_COMMON_MEDIA_METADATA_H_ 6 #define CONTENT_PUBLIC_COMMON_MEDIA_METADATA_H_
7 7
8 #include <vector>
9
10 #include "base/optional.h"
8 #include "base/strings/string16.h" 11 #include "base/strings/string16.h"
9 #include "content/common/content_export.h" 12 #include "content/common/content_export.h"
13 #include "content/public/common/manifest.h"
10 14
11 namespace content { 15 namespace content {
12 16
13 // The MediaMetadata is a structure carrying information associated to a 17 // The MediaMetadata is a structure carrying information associated to a
14 // content::MediaSession. 18 // content::MediaSession.
15 struct CONTENT_EXPORT MediaMetadata { 19 struct CONTENT_EXPORT MediaMetadata {
20 // TODO(zqzhang): move |Manifest::Icon| to a common place. See
21 // https://crbug.com/621859.
22 using Artwork = Manifest::Icon;
23
16 MediaMetadata(); 24 MediaMetadata();
17 ~MediaMetadata(); 25 ~MediaMetadata();
18 26
19 bool operator==(const MediaMetadata& other) const; 27 bool operator==(const MediaMetadata& other) const;
20 bool operator!=(const MediaMetadata& other) const; 28 bool operator!=(const MediaMetadata& other) const;
21 29
30 // Apply validity checks and sanitize |artwork|. Returns null if
31 // |artwork| does not pass validity checks.
32 static base::Optional<Artwork> SanitizeArtwork(const Artwork& artwork);
33
22 // Title associated to the MediaSession. 34 // Title associated to the MediaSession.
23 base::string16 title; 35 base::string16 title;
24 36
25 // Artist associated to the MediaSession. 37 // Artist associated to the MediaSession.
26 base::string16 artist; 38 base::string16 artist;
27 39
28 // Album associated to the MediaSession. 40 // Album associated to the MediaSession.
29 base::string16 album; 41 base::string16 album;
30 42
43 std::vector<Artwork> artwork;
44
31 // Maximum length for all the strings inside the MediaMetadata when it is sent 45 // Maximum length for all the strings inside the MediaMetadata when it is sent
32 // over IPC. The renderer process should truncate the strings before sending 46 // over IPC. The renderer process should truncate the strings before sending
33 // the MediaMetadata and the browser process must do the same when receiving 47 // the MediaMetadata and the browser process must do the same when receiving
34 // it. 48 // it.
35 static const size_t kMaxIPCStringLength; 49 static const size_t kMaxIPCStringLength;
50
51 // Maximum size of Artwork. The renderer process should remove the sizes in
52 // artwork that are out of bound before sending the MediaMetadata and the
53 // browser process must do the same when receiving it.
54 static const int kMaxIconSize;
55
56 // Maximum type length of Artwork, which conforms to RFC 4288
57 // (https://tools.ietf.org/html/rfc4288).
58 static const size_t kMaxArtworkTypeLength;
36 }; 59 };
37 60
38 } // namespace content 61 } // namespace content
39 62
40 #endif // CONTENT_PUBLIC_COMMON_MEDIA_METADATA_H_ 63 #endif // CONTENT_PUBLIC_COMMON_MEDIA_METADATA_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698