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

Side by Side Diff: Source/modules/imagebitmap/ImageBitmapFactories.h

Issue 178663004: Oilpan: move WorkerGlobalScope to oilpan's heap. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Make heap supplements actually be heap allocated Created 6 years, 10 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 /* 1 /*
2 * Copyright (c) 2013, Google Inc. All rights reserved. 2 * Copyright (c) 2013, Google Inc. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions are 5 * modification, are permitted provided that the following conditions are
6 * met: 6 * met:
7 * 7 *
8 * * Redistributions of source code must retain the above copyright 8 * * Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer. 9 * notice, this list of conditions and the following disclaimer.
10 * * Redistributions in binary form must reproduce the above 10 * * Redistributions in binary form must reproduce the above
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
48 class CanvasRenderingContext2D; 48 class CanvasRenderingContext2D;
49 class EventTarget; 49 class EventTarget;
50 class ExceptionState; 50 class ExceptionState;
51 class HTMLCanvasElement; 51 class HTMLCanvasElement;
52 class HTMLImageElement; 52 class HTMLImageElement;
53 class HTMLVideoElement; 53 class HTMLVideoElement;
54 class ImageBitmap; 54 class ImageBitmap;
55 class ImageData; 55 class ImageData;
56 class ExecutionContext; 56 class ExecutionContext;
57 57
58 class ImageBitmapFactories FINAL : public Supplement<DOMWindow>, public WorkerSu pplement { 58 class ImageBitmapFactories : public Supplement<DOMWindow> {
59 59
60 class ImageBitmapLoader; 60 class ImageBitmapLoader;
61 61
62 public: 62 public:
63 static ScriptPromise createImageBitmap(EventTarget&, HTMLImageElement*, Exce ptionState&); 63 static ScriptPromise createImageBitmap(EventTarget&, HTMLImageElement*, Exce ptionState&);
64 static ScriptPromise createImageBitmap(EventTarget&, HTMLImageElement*, int sx, int sy, int sw, int sh, ExceptionState&); 64 static ScriptPromise createImageBitmap(EventTarget&, HTMLImageElement*, int sx, int sy, int sw, int sh, ExceptionState&);
65 static ScriptPromise createImageBitmap(EventTarget&, HTMLVideoElement*, Exce ptionState&); 65 static ScriptPromise createImageBitmap(EventTarget&, HTMLVideoElement*, Exce ptionState&);
66 static ScriptPromise createImageBitmap(EventTarget&, HTMLVideoElement*, int sx, int sy, int sw, int sh, ExceptionState&); 66 static ScriptPromise createImageBitmap(EventTarget&, HTMLVideoElement*, int sx, int sy, int sw, int sh, ExceptionState&);
67 static ScriptPromise createImageBitmap(EventTarget&, CanvasRenderingContext2 D*, ExceptionState&); 67 static ScriptPromise createImageBitmap(EventTarget&, CanvasRenderingContext2 D*, ExceptionState&);
68 static ScriptPromise createImageBitmap(EventTarget&, CanvasRenderingContext2 D*, int sx, int sy, int sw, int sh, ExceptionState&); 68 static ScriptPromise createImageBitmap(EventTarget&, CanvasRenderingContext2 D*, int sx, int sy, int sw, int sh, ExceptionState&);
69 static ScriptPromise createImageBitmap(EventTarget&, HTMLCanvasElement*, Exc eptionState&); 69 static ScriptPromise createImageBitmap(EventTarget&, HTMLCanvasElement*, Exc eptionState&);
70 static ScriptPromise createImageBitmap(EventTarget&, HTMLCanvasElement*, int sx, int sy, int sw, int sh, ExceptionState&); 70 static ScriptPromise createImageBitmap(EventTarget&, HTMLCanvasElement*, int sx, int sy, int sw, int sh, ExceptionState&);
71 static ScriptPromise createImageBitmap(EventTarget&, Blob*, ExceptionState&) ; 71 static ScriptPromise createImageBitmap(EventTarget&, Blob*, ExceptionState&) ;
72 static ScriptPromise createImageBitmap(EventTarget&, Blob*, int sx, int sy, int sw, int sh, ExceptionState&); 72 static ScriptPromise createImageBitmap(EventTarget&, Blob*, int sx, int sy, int sw, int sh, ExceptionState&);
73 static ScriptPromise createImageBitmap(EventTarget&, ImageData*, ExceptionSt ate&); 73 static ScriptPromise createImageBitmap(EventTarget&, ImageData*, ExceptionSt ate&);
74 static ScriptPromise createImageBitmap(EventTarget&, ImageData*, int sx, int sy, int sw, int sh, ExceptionState&); 74 static ScriptPromise createImageBitmap(EventTarget&, ImageData*, int sx, int sy, int sw, int sh, ExceptionState&);
75 static ScriptPromise createImageBitmap(EventTarget&, ImageBitmap*, Exception State&); 75 static ScriptPromise createImageBitmap(EventTarget&, ImageBitmap*, Exception State&);
76 static ScriptPromise createImageBitmap(EventTarget&, ImageBitmap*, int sx, i nt sy, int sw, int sh, ExceptionState&); 76 static ScriptPromise createImageBitmap(EventTarget&, ImageBitmap*, int sx, i nt sy, int sw, int sh, ExceptionState&);
77 77
78 void didFinishLoading(ImageBitmapLoader*); 78 void didFinishLoading(ImageBitmapLoader*);
79 79
80 virtual ~ImageBitmapFactories() { } 80 virtual ~ImageBitmapFactories() { }
81 81
82 protected:
83 static const char* supplementName();
84
82 private: 85 private:
83 class ImageBitmapLoader FINAL : public RefCounted<ImageBitmapLoader>, public FileReaderLoaderClient { 86 class ImageBitmapLoader FINAL : public RefCounted<ImageBitmapLoader>, public FileReaderLoaderClient {
84 public: 87 public:
85 static PassRefPtr<ImageBitmapLoader> create(ImageBitmapFactories& factor y, PassRefPtr<ScriptPromiseResolver> resolver, const IntRect& cropRect) 88 static PassRefPtr<ImageBitmapLoader> create(ImageBitmapFactories& factor y, PassRefPtr<ScriptPromiseResolver> resolver, const IntRect& cropRect)
86 { 89 {
87 return adoptRef(new ImageBitmapLoader(factory, resolver, cropRect)); 90 return adoptRef(new ImageBitmapLoader(factory, resolver, cropRect));
88 } 91 }
89 92
90 void loadBlobAsync(ExecutionContext*, Blob*); 93 void loadBlobAsync(ExecutionContext*, Blob*);
91 94
(...skipping 10 matching lines...) Expand all
102 virtual void didFinishLoading() OVERRIDE; 105 virtual void didFinishLoading() OVERRIDE;
103 virtual void didFail(FileError::ErrorCode) OVERRIDE; 106 virtual void didFail(FileError::ErrorCode) OVERRIDE;
104 107
105 ScriptState* m_scriptState; 108 ScriptState* m_scriptState;
106 FileReaderLoader m_loader; 109 FileReaderLoader m_loader;
107 ImageBitmapFactories* m_factory; 110 ImageBitmapFactories* m_factory;
108 RefPtr<ScriptPromiseResolver> m_resolver; 111 RefPtr<ScriptPromiseResolver> m_resolver;
109 IntRect m_cropRect; 112 IntRect m_cropRect;
110 }; 113 };
111 114
112 static const char* supplementName();
113 static ImageBitmapFactories& from(EventTarget&); 115 static ImageBitmapFactories& from(EventTarget&);
114 116
115 template <class T> 117 static ImageBitmapFactories& fromInternal(DOMWindow&);
116 static ImageBitmapFactories& fromInternal(T&);
117 118
118 void addLoader(PassRefPtr<ImageBitmapLoader>); 119 void addLoader(PassRefPtr<ImageBitmapLoader>);
119 120
120 HashSet<RefPtr<ImageBitmapLoader> > m_pendingLoaders; 121 HashSet<RefPtr<ImageBitmapLoader> > m_pendingLoaders;
121 }; 122 };
122 123
124 class WorkerGlobalScopeImageBitmapFactories FINAL : public ImageBitmapFactories, public NoBaseWillBeGarbageCollectedFinalized<WorkerGlobalScopeImageBitmapFactor ies>, public WorkerSupplement {
Mads Ager (chromium) 2014/02/26 13:09:08 Please make the garbage collected base class the l
sof 2014/02/26 14:36:25 Done. I think we just have to accept the quirky fo
125 public:
126 virtual ~WorkerGlobalScopeImageBitmapFactories() { }
127
128 virtual void trace(Visitor*);
129
130 private:
131 friend class ImageBitmapFactories;
132 static ImageBitmapFactories& fromInternal(WorkerGlobalScope&);
133 };
134
123 } // namespace WebCore 135 } // namespace WebCore
124 136
125 #endif // ImageBitmapFactories_h 137 #endif // ImageBitmapFactories_h
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698