aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Api/Images/ImageService.cs
diff options
context:
space:
mode:
Diffstat (limited to 'MediaBrowser.Api/Images/ImageService.cs')
-rw-r--r--MediaBrowser.Api/Images/ImageService.cs20
1 files changed, 16 insertions, 4 deletions
diff --git a/MediaBrowser.Api/Images/ImageService.cs b/MediaBrowser.Api/Images/ImageService.cs
index 639c1f54b..b8ea62137 100644
--- a/MediaBrowser.Api/Images/ImageService.cs
+++ b/MediaBrowser.Api/Images/ImageService.cs
@@ -625,6 +625,8 @@ namespace MediaBrowser.Api.Images
var file = await _imageProcessor.ProcessImage(options).ConfigureAwait(false);
+ headers["Vary"] = "Accept";
+
return ResultFactory.GetStaticFileResult(Request, new StaticFileResultOptions
{
CacheDuration = cacheDuration,
@@ -659,8 +661,10 @@ namespace MediaBrowser.Api.Images
return ImageFormat.Png;
}
- if (string.Equals(Path.GetExtension(image.Path), ".jpg", StringComparison.OrdinalIgnoreCase) ||
- string.Equals(Path.GetExtension(image.Path), ".jpeg", StringComparison.OrdinalIgnoreCase))
+ var extension = Path.GetExtension(image.Path);
+
+ if (string.Equals(extension, ".jpg", StringComparison.OrdinalIgnoreCase) ||
+ string.Equals(extension, ".jpeg", StringComparison.OrdinalIgnoreCase))
{
return ImageFormat.Jpg;
}
@@ -671,10 +675,18 @@ namespace MediaBrowser.Api.Images
private ImageFormat[] GetClientSupportedFormats()
{
- if ((Request.AcceptTypes ?? new string[] { }).Contains("image/webp", StringComparer.OrdinalIgnoreCase))
+ var supportsWebP = (Request.AcceptTypes ?? new string[] {}).Contains("image/webp", StringComparer.OrdinalIgnoreCase);
+
+ var userAgent = Request.UserAgent ?? string.Empty;
+
+ if (userAgent.IndexOf("crosswalk", StringComparison.OrdinalIgnoreCase) != -1 &&
+ userAgent.IndexOf("android", StringComparison.OrdinalIgnoreCase) != -1)
{
- var userAgent = Request.UserAgent ?? string.Empty;
+ supportsWebP = true;
+ }
+ if (supportsWebP)
+ {
// Not displaying properly on iOS
if (userAgent.IndexOf("cfnetwork", StringComparison.OrdinalIgnoreCase) == -1)
{