Coverage Report

Created: 2018-09-25 14:53

/src/mozilla-central/image/ImageWrapper.cpp
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
#include "ImageWrapper.h"
7
#include "mozilla/gfx/2D.h"
8
#include "mozilla/RefPtr.h"
9
#include "Orientation.h"
10
11
#include "mozilla/MemoryReporting.h"
12
13
namespace mozilla {
14
15
using gfx::DataSourceSurface;
16
using gfx::IntSize;
17
using gfx::SamplingFilter;
18
using gfx::SourceSurface;
19
using layers::LayerManager;
20
using layers::ImageContainer;
21
22
namespace image {
23
24
// Inherited methods from Image.
25
26
already_AddRefed<ProgressTracker>
27
ImageWrapper::GetProgressTracker()
28
0
{
29
0
  return mInnerImage->GetProgressTracker();
30
0
}
31
32
size_t
33
ImageWrapper::SizeOfSourceWithComputedFallback(SizeOfState& aState) const
34
0
{
35
0
  return mInnerImage->SizeOfSourceWithComputedFallback(aState);
36
0
}
37
38
void
39
ImageWrapper::CollectSizeOfSurfaces(nsTArray<SurfaceMemoryCounter>& aCounters,
40
                                    MallocSizeOf aMallocSizeOf) const
41
0
{
42
0
  mInnerImage->CollectSizeOfSurfaces(aCounters, aMallocSizeOf);
43
0
}
44
45
void
46
ImageWrapper::IncrementAnimationConsumers()
47
0
{
48
0
  MOZ_ASSERT(NS_IsMainThread(), "Main thread only to encourage serialization "
49
0
                                "with DecrementAnimationConsumers");
50
0
  mInnerImage->IncrementAnimationConsumers();
51
0
}
52
53
void
54
ImageWrapper::DecrementAnimationConsumers()
55
0
{
56
0
  MOZ_ASSERT(NS_IsMainThread(), "Main thread only to encourage serialization "
57
0
                                "with IncrementAnimationConsumers");
58
0
  mInnerImage->DecrementAnimationConsumers();
59
0
}
60
61
#ifdef DEBUG
62
uint32_t
63
ImageWrapper::GetAnimationConsumers()
64
{
65
  return mInnerImage->GetAnimationConsumers();
66
}
67
#endif
68
69
nsresult
70
ImageWrapper::OnImageDataAvailable(nsIRequest* aRequest,
71
                                   nsISupports* aContext,
72
                                   nsIInputStream* aInStr,
73
                                   uint64_t aSourceOffset,
74
                                   uint32_t aCount)
75
0
{
76
0
  return mInnerImage->OnImageDataAvailable(aRequest, aContext, aInStr,
77
0
                                           aSourceOffset, aCount);
78
0
}
79
80
nsresult
81
ImageWrapper::OnImageDataComplete(nsIRequest* aRequest,
82
                                  nsISupports* aContext,
83
                                  nsresult aStatus,
84
                                  bool aLastPart)
85
0
{
86
0
  return mInnerImage->OnImageDataComplete(aRequest, aContext, aStatus,
87
0
                                          aLastPart);
88
0
}
89
90
void
91
ImageWrapper::OnSurfaceDiscarded(const SurfaceKey& aSurfaceKey)
92
0
{
93
0
  return mInnerImage->OnSurfaceDiscarded(aSurfaceKey);
94
0
}
95
96
void
97
ImageWrapper::SetInnerWindowID(uint64_t aInnerWindowId)
98
0
{
99
0
  mInnerImage->SetInnerWindowID(aInnerWindowId);
100
0
}
101
102
uint64_t
103
ImageWrapper::InnerWindowID() const
104
0
{
105
0
  return mInnerImage->InnerWindowID();
106
0
}
107
108
bool
109
ImageWrapper::HasError()
110
0
{
111
0
  return mInnerImage->HasError();
112
0
}
113
114
void
115
ImageWrapper::SetHasError()
116
0
{
117
0
  mInnerImage->SetHasError();
118
0
}
119
120
nsIURI*
121
ImageWrapper::GetURI() const
122
0
{
123
0
  return mInnerImage->GetURI();
124
0
}
125
126
// Methods inherited from XPCOM interfaces.
127
128
NS_IMPL_ISUPPORTS(ImageWrapper, imgIContainer)
129
130
NS_IMETHODIMP
131
ImageWrapper::GetWidth(int32_t* aWidth)
132
0
{
133
0
  return mInnerImage->GetWidth(aWidth);
134
0
}
135
136
NS_IMETHODIMP
137
ImageWrapper::GetHeight(int32_t* aHeight)
138
0
{
139
0
  return mInnerImage->GetHeight(aHeight);
140
0
}
141
142
nsresult
143
ImageWrapper::GetNativeSizes(nsTArray<IntSize>& aNativeSizes) const
144
0
{
145
0
  return mInnerImage->GetNativeSizes(aNativeSizes);
146
0
}
147
148
size_t
149
ImageWrapper::GetNativeSizesLength() const
150
0
{
151
0
  return mInnerImage->GetNativeSizesLength();
152
0
}
153
154
NS_IMETHODIMP
155
ImageWrapper::GetIntrinsicSize(nsSize* aSize)
156
0
{
157
0
  return mInnerImage->GetIntrinsicSize(aSize);
158
0
}
159
160
NS_IMETHODIMP
161
ImageWrapper::GetIntrinsicRatio(nsSize* aSize)
162
0
{
163
0
  return mInnerImage->GetIntrinsicRatio(aSize);
164
0
}
165
166
NS_IMETHODIMP_(Orientation)
167
ImageWrapper::GetOrientation()
168
0
{
169
0
  return mInnerImage->GetOrientation();
170
0
}
171
172
NS_IMETHODIMP
173
ImageWrapper::GetType(uint16_t* aType)
174
0
{
175
0
  return mInnerImage->GetType(aType);
176
0
}
177
178
NS_IMETHODIMP
179
ImageWrapper::GetAnimated(bool* aAnimated)
180
0
{
181
0
  return mInnerImage->GetAnimated(aAnimated);
182
0
}
183
184
NS_IMETHODIMP_(already_AddRefed<SourceSurface>)
185
ImageWrapper::GetFrame(uint32_t aWhichFrame,
186
                       uint32_t aFlags)
187
0
{
188
0
  return mInnerImage->GetFrame(aWhichFrame, aFlags);
189
0
}
190
191
NS_IMETHODIMP_(already_AddRefed<SourceSurface>)
192
ImageWrapper::GetFrameAtSize(const IntSize& aSize,
193
                             uint32_t aWhichFrame,
194
                             uint32_t aFlags)
195
0
{
196
0
  return mInnerImage->GetFrameAtSize(aSize, aWhichFrame, aFlags);
197
0
}
198
199
NS_IMETHODIMP_(bool)
200
ImageWrapper::WillDrawOpaqueNow()
201
0
{
202
0
  return mInnerImage->WillDrawOpaqueNow();
203
0
}
204
205
NS_IMETHODIMP_(bool)
206
ImageWrapper::IsImageContainerAvailable(LayerManager* aManager, uint32_t aFlags)
207
0
{
208
0
  return mInnerImage->IsImageContainerAvailable(aManager, aFlags);
209
0
}
210
211
NS_IMETHODIMP_(already_AddRefed<ImageContainer>)
212
ImageWrapper::GetImageContainer(LayerManager* aManager, uint32_t aFlags)
213
0
{
214
0
  return mInnerImage->GetImageContainer(aManager, aFlags);
215
0
}
216
217
NS_IMETHODIMP_(bool)
218
ImageWrapper::IsImageContainerAvailableAtSize(LayerManager* aManager,
219
                                              const IntSize& aSize,
220
                                              uint32_t aFlags)
221
0
{
222
0
  return mInnerImage->IsImageContainerAvailableAtSize(aManager, aSize, aFlags);
223
0
}
224
225
NS_IMETHODIMP_(ImgDrawResult)
226
ImageWrapper::GetImageContainerAtSize(layers::LayerManager* aManager,
227
                                      const gfx::IntSize& aSize,
228
                                      const Maybe<SVGImageContext>& aSVGContext,
229
                                      uint32_t aFlags,
230
                                      layers::ImageContainer** aOutContainer)
231
0
{
232
0
  return mInnerImage->GetImageContainerAtSize(aManager, aSize, aSVGContext,
233
0
                                              aFlags, aOutContainer);
234
0
}
235
236
NS_IMETHODIMP_(ImgDrawResult)
237
ImageWrapper::Draw(gfxContext* aContext,
238
                   const nsIntSize& aSize,
239
                   const ImageRegion& aRegion,
240
                   uint32_t aWhichFrame,
241
                   SamplingFilter aSamplingFilter,
242
                   const Maybe<SVGImageContext>& aSVGContext,
243
                   uint32_t aFlags,
244
                   float aOpacity)
245
0
{
246
0
  return mInnerImage->Draw(aContext, aSize, aRegion, aWhichFrame,
247
0
                           aSamplingFilter, aSVGContext, aFlags, aOpacity);
248
0
}
249
250
NS_IMETHODIMP
251
ImageWrapper::StartDecoding(uint32_t aFlags)
252
0
{
253
0
  return mInnerImage->StartDecoding(aFlags);
254
0
}
255
256
bool
257
ImageWrapper::StartDecodingWithResult(uint32_t aFlags)
258
0
{
259
0
  return mInnerImage->StartDecodingWithResult(aFlags);
260
0
}
261
262
NS_IMETHODIMP
263
ImageWrapper::RequestDecodeForSize(const nsIntSize& aSize, uint32_t aFlags)
264
0
{
265
0
  return mInnerImage->RequestDecodeForSize(aSize, aFlags);
266
0
}
267
268
NS_IMETHODIMP
269
ImageWrapper::LockImage()
270
0
{
271
0
  MOZ_ASSERT(NS_IsMainThread(),
272
0
             "Main thread to encourage serialization with UnlockImage");
273
0
  return mInnerImage->LockImage();
274
0
}
275
276
NS_IMETHODIMP
277
ImageWrapper::UnlockImage()
278
0
{
279
0
  MOZ_ASSERT(NS_IsMainThread(),
280
0
             "Main thread to encourage serialization with LockImage");
281
0
  return mInnerImage->UnlockImage();
282
0
}
283
284
NS_IMETHODIMP
285
ImageWrapper::RequestDiscard()
286
0
{
287
0
  return mInnerImage->RequestDiscard();
288
0
}
289
290
NS_IMETHODIMP_(void)
291
ImageWrapper::RequestRefresh(const TimeStamp& aTime)
292
0
{
293
0
  return mInnerImage->RequestRefresh(aTime);
294
0
}
295
296
NS_IMETHODIMP
297
ImageWrapper::GetAnimationMode(uint16_t* aAnimationMode)
298
0
{
299
0
  return mInnerImage->GetAnimationMode(aAnimationMode);
300
0
}
301
302
NS_IMETHODIMP
303
ImageWrapper::SetAnimationMode(uint16_t aAnimationMode)
304
0
{
305
0
  return mInnerImage->SetAnimationMode(aAnimationMode);
306
0
}
307
308
NS_IMETHODIMP
309
ImageWrapper::ResetAnimation()
310
0
{
311
0
  return mInnerImage->ResetAnimation();
312
0
}
313
314
NS_IMETHODIMP_(float)
315
ImageWrapper::GetFrameIndex(uint32_t aWhichFrame)
316
0
{
317
0
  return mInnerImage->GetFrameIndex(aWhichFrame);
318
0
}
319
320
NS_IMETHODIMP_(int32_t)
321
ImageWrapper::GetFirstFrameDelay()
322
0
{
323
0
  return mInnerImage->GetFirstFrameDelay();
324
0
}
325
326
NS_IMETHODIMP_(void)
327
ImageWrapper::SetAnimationStartTime(const TimeStamp& aTime)
328
0
{
329
0
  mInnerImage->SetAnimationStartTime(aTime);
330
0
}
331
332
void
333
ImageWrapper::PropagateUseCounters(nsIDocument* aParentDocument)
334
0
{
335
0
  mInnerImage->PropagateUseCounters(aParentDocument);
336
0
}
337
338
nsIntSize
339
ImageWrapper::OptimalImageSizeForDest(const gfxSize& aDest,
340
                                      uint32_t aWhichFrame,
341
                                      SamplingFilter aSamplingFilter,
342
                                      uint32_t aFlags)
343
0
{
344
0
  return mInnerImage->OptimalImageSizeForDest(aDest, aWhichFrame,
345
0
                                              aSamplingFilter, aFlags);
346
0
}
347
348
NS_IMETHODIMP_(nsIntRect)
349
ImageWrapper::GetImageSpaceInvalidationRect(const nsIntRect& aRect)
350
0
{
351
0
  return mInnerImage->GetImageSpaceInvalidationRect(aRect);
352
0
}
353
354
already_AddRefed<imgIContainer>
355
ImageWrapper::Unwrap()
356
0
{
357
0
  return mInnerImage->Unwrap();
358
0
}
359
360
} // namespace image
361
} // namespace mozilla