Coverage Report

Created: 2018-09-25 14:53

/src/mozilla-central/image/DynamicImage.h
Line
Count
Source (jump to first uncovered line)
1
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
2
/* This Source Code Form is subject to the terms of the Mozilla Public
3
 * License, v. 2.0. If a copy of the MPL was not distributed with this
4
 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
5
6
#ifndef mozilla_image_DynamicImage_h
7
#define mozilla_image_DynamicImage_h
8
9
#include "mozilla/MemoryReporting.h"
10
#include "gfxDrawable.h"
11
#include "Image.h"
12
13
namespace mozilla {
14
namespace image {
15
16
/**
17
 * An Image that is dynamically created. The content of the image is provided by
18
 * a gfxDrawable. It's anticipated that most uses of DynamicImage will be
19
 * ephemeral.
20
 */
21
class DynamicImage : public Image
22
{
23
public:
24
  NS_DECL_ISUPPORTS
25
  NS_DECL_IMGICONTAINER
26
27
  explicit DynamicImage(gfxDrawable* aDrawable)
28
    : mDrawable(aDrawable)
29
0
  {
30
0
    MOZ_ASSERT(aDrawable, "Must have a gfxDrawable to wrap");
31
0
  }
32
33
  // Inherited methods from Image.
34
  nsresult GetNativeSizes(nsTArray<gfx::IntSize>& aNativeSizes) const override;
35
  size_t GetNativeSizesLength() const override;
36
  virtual already_AddRefed<ProgressTracker> GetProgressTracker() override;
37
  virtual size_t SizeOfSourceWithComputedFallback(
38
                                 SizeOfState& aState) const override;
39
  virtual void CollectSizeOfSurfaces(nsTArray<SurfaceMemoryCounter>& aCounters,
40
                                     MallocSizeOf aMallocSizeOf) const override;
41
42
  virtual void IncrementAnimationConsumers() override;
43
  virtual void DecrementAnimationConsumers() override;
44
#ifdef DEBUG
45
  virtual uint32_t GetAnimationConsumers() override;
46
#endif
47
48
  virtual nsresult OnImageDataAvailable(nsIRequest* aRequest,
49
                                        nsISupports* aContext,
50
                                        nsIInputStream* aInStr,
51
                                        uint64_t aSourceOffset,
52
                                        uint32_t aCount) override;
53
  virtual nsresult OnImageDataComplete(nsIRequest* aRequest,
54
                                       nsISupports* aContext,
55
                                       nsresult aStatus,
56
                                       bool aLastPart) override;
57
58
  virtual void OnSurfaceDiscarded(const SurfaceKey& aSurfaceKey) override;
59
60
  virtual void SetInnerWindowID(uint64_t aInnerWindowId) override;
61
  virtual uint64_t InnerWindowID() const override;
62
63
  virtual bool HasError() override;
64
  virtual void SetHasError() override;
65
66
  nsIURI* GetURI() const override;
67
68
private:
69
0
  virtual ~DynamicImage() { }
70
71
  RefPtr<gfxDrawable> mDrawable;
72
};
73
74
} // namespace image
75
} // namespace mozilla
76
77
#endif // mozilla_image_DynamicImage_h