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

Side by Side Diff: third_party/WebKit/Source/core/html/canvas/CanvasAsyncBlobCreator.h

Issue 1882563003: Remove unnecessary CanvasAsyncBlobCreator keep alive protection. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 8 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
« no previous file with comments | « no previous file | third_party/WebKit/Source/core/html/canvas/CanvasAsyncBlobCreator.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 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 #include "core/CoreExport.h" 5 #include "core/CoreExport.h"
6 #include "core/dom/DOMTypedArray.h" 6 #include "core/dom/DOMTypedArray.h"
7 #include "core/fileapi/BlobCallback.h" 7 #include "core/fileapi/BlobCallback.h"
8 #include "platform/geometry/IntSize.h" 8 #include "platform/geometry/IntSize.h"
9 #include "platform/heap/Handle.h" 9 #include "platform/heap/Handle.h"
10 #include "wtf/OwnPtr.h" 10 #include "wtf/OwnPtr.h"
11 #include "wtf/PassOwnPtr.h"
12 #include "wtf/Vector.h" 11 #include "wtf/Vector.h"
13 #include "wtf/text/WTFString.h" 12 #include "wtf/text/WTFString.h"
14 13
15 namespace blink { 14 namespace blink {
16 15
17 class PNGImageEncoderState; 16 class PNGImageEncoderState;
18 class JPEGImageEncoderState; 17 class JPEGImageEncoderState;
19 18
20 class CORE_EXPORT CanvasAsyncBlobCreator : public GarbageCollectedFinalized<Canv asAsyncBlobCreator> { 19 class CORE_EXPORT CanvasAsyncBlobCreator : public GarbageCollectedFinalized<Canv asAsyncBlobCreator> {
21 public: 20 public:
22 static CanvasAsyncBlobCreator* create(DOMUint8ClampedArray* unpremultipliedR GBAImageData, const String& mimeType, const IntSize&, BlobCallback*); 21 static CanvasAsyncBlobCreator* create(DOMUint8ClampedArray* unpremultipliedR GBAImageData, const String& mimeType, const IntSize&, BlobCallback*);
23 void scheduleAsyncBlobCreation(bool canUseIdlePeriodScheduling, double quali ty = 0.0); 22 void scheduleAsyncBlobCreation(bool canUseIdlePeriodScheduling, double quali ty = 0.0);
24 virtual ~CanvasAsyncBlobCreator(); 23 virtual ~CanvasAsyncBlobCreator();
25 24
26 DEFINE_INLINE_VIRTUAL_TRACE() 25 DEFINE_INLINE_VIRTUAL_TRACE()
27 { 26 {
28 visitor->trace(m_data); 27 visitor->trace(m_data);
29 } 28 }
30 29
31 private: 30 private:
32 CanvasAsyncBlobCreator(DOMUint8ClampedArray* data, const String& mimeType, c onst IntSize&, BlobCallback*); 31 CanvasAsyncBlobCreator(DOMUint8ClampedArray* data, const String& mimeType, c onst IntSize&, BlobCallback*);
33 void scheduleCreateBlobAndCallOnMainThread();
34 void scheduleCreateNullptrAndCallOnMainThread();
35 32
36 OwnPtr<PNGImageEncoderState> m_pngEncoderState; 33 OwnPtr<PNGImageEncoderState> m_pngEncoderState;
37 OwnPtr<JPEGImageEncoderState> m_jpegEncoderState; 34 OwnPtr<JPEGImageEncoderState> m_jpegEncoderState;
38 Member<DOMUint8ClampedArray> m_data; 35 Member<DOMUint8ClampedArray> m_data;
39 OwnPtr<Vector<unsigned char>> m_encodedImage; 36 OwnPtr<Vector<unsigned char>> m_encodedImage;
40 int m_numRowsCompleted; 37 int m_numRowsCompleted;
41 38
42 const IntSize m_size; 39 const IntSize m_size;
43 size_t m_pixelRowStride; 40 size_t m_pixelRowStride;
44 const String m_mimeType; 41 const String m_mimeType;
45 CrossThreadPersistent<BlobCallback> m_callback; 42 CrossThreadPersistent<BlobCallback> m_callback;
46 43
47 SelfKeepAlive<CanvasAsyncBlobCreator> m_keepAlive;
48 void clearSelfReference();
49
50 void initiatePngEncoding(double deadlineSeconds); 44 void initiatePngEncoding(double deadlineSeconds);
51 void scheduleIdleEncodeRowsPng(); 45 void scheduleIdleEncodeRowsPng();
52 void idleEncodeRowsPng(double deadlineSeconds); 46 void idleEncodeRowsPng(double deadlineSeconds);
53 47
54 void initiateJpegEncoding(const double& quality); 48 void initiateJpegEncoding(const double& quality);
55 49
56 void createBlobAndCall(); 50 void createBlobAndCall();
57 51
58 void encodeImageOnEncoderThread(double quality); 52 void encodeImageOnEncoderThread(double quality);
59 }; 53 };
60 54
61 } // namespace blink 55 } // namespace blink
OLDNEW
« no previous file with comments | « no previous file | third_party/WebKit/Source/core/html/canvas/CanvasAsyncBlobCreator.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698