Changeset 224255 in webkit
- Timestamp:
- Oct 31, 2017 3:33:27 PM (6 years ago)
- Location:
- trunk/Source/WebCore
- Files:
-
- 1 added
- 8 edited
- 1 copied
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r224254 r224255 1 2017-10-31 Dean Jackson <dino@apple.com> 2 3 Accept Settings object in ImageBitmapRenderingContext constructor and getContext 4 https://bugs.webkit.org/show_bug.cgi?id=179075 5 <rdar://problem/35279965> 6 7 Reviewed by Sam Weinig. 8 9 Allow getContext("bitmaprenderer") to take a dictionary as another argument, and 10 pass that on to the ImageBitmapRenderingContext constructor. 11 12 Unfortunately this meant having to move ImageBitmapRenderingContext::Settings out into 13 a stand-alone struct, since it needs to be defined in HTMLCanvasElement, which itself 14 needs to be defined for ImageBitmapRenderingContext. 15 16 * DerivedSources.make: Add new IDL. 17 * WebCore.xcodeproj/project.pbxproj: New files. 18 19 * html/HTMLCanvasElement.cpp: 20 (WebCore::HTMLCanvasElement::createContextBitmapRenderer): 21 (WebCore::HTMLCanvasElement::getContextBitmapRenderer): 22 23 Accept the ImageBitmapRenderingContextSettings object, and pass it on. 24 25 * html/HTMLCanvasElement.h: 26 * html/canvas/ImageBitmapRenderingContext.cpp: 27 (WebCore::ImageBitmapRenderingContext::ImageBitmapRenderingContext): 28 * html/canvas/ImageBitmapRenderingContext.h: 29 * html/canvas/ImageBitmapRenderingContext.idl: 30 * html/canvas/ImageBitmapRenderingContextSettings.h: Copied from Source/WebCore/html/canvas/ImageBitmapRenderingContext.idl. 31 * html/canvas/ImageBitmapRenderingContextSettings.idl: Added. 32 1 33 2017-10-31 Tim Horton <timothy_horton@apple.com> 2 34 -
trunk/Source/WebCore/DerivedSources.make
r224186 r224255 644 644 $(WebCore)/html/canvas/EXTsRGB.idl \ 645 645 $(WebCore)/html/canvas/ImageBitmapRenderingContext.idl \ 646 $(WebCore)/html/canvas/ImageBitmapRenderingContextSettings.idl \ 646 647 $(WebCore)/html/canvas/ImageSmoothingQuality.idl \ 647 648 $(WebCore)/html/canvas/OESElementIndexUint.idl \ -
trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj
r224244 r224255 871 871 31815A311F9A6C8F00FCBF89 /* ImageBitmap.h in Headers */ = {isa = PBXBuildFile; fileRef = 31D26BBF1F86D189008FF255 /* ImageBitmap.h */; settings = {ATTRIBUTES = (Private, ); }; }; 872 872 318891611AB7EEA100EA627B /* missingImage@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = CDF419991AB0DA14004E64E1 /* missingImage@3x.png */; }; 873 318EAD4D1FA91380008CEF86 /* ImageBitmapRenderingContextSettings.h in Headers */ = {isa = PBXBuildFile; fileRef = 318EAD4A1FA91157008CEF86 /* ImageBitmapRenderingContextSettings.h */; settings = {ATTRIBUTES = (Private, ); }; }; 873 874 31955A88160D199200858025 /* RenderSnapshottedPlugIn.h in Headers */ = {isa = PBXBuildFile; fileRef = 31E8D8BB160BC94C004CE8F5 /* RenderSnapshottedPlugIn.h */; settings = {ATTRIBUTES = (Private, ); }; }; 874 875 319848011A1D817B00A13318 /* AnimationEvent.h in Headers */ = {isa = PBXBuildFile; fileRef = 319847FF1A1D816700A13318 /* AnimationEvent.h */; }; … … 6595 6596 31741AAB16635E45008A5B7E /* SimulatedClickOptions.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SimulatedClickOptions.h; sourceTree = "<group>"; }; 6596 6597 3189E6DB16B2103500386EA3 /* plugIns.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = plugIns.css; sourceTree = "<group>"; }; 6598 318EAD4A1FA91157008CEF86 /* ImageBitmapRenderingContextSettings.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ImageBitmapRenderingContextSettings.h; sourceTree = "<group>"; }; 6599 318EAD4C1FA91352008CEF86 /* ImageBitmapRenderingContextSettings.idl */ = {isa = PBXFileReference; lastKnownFileType = text; path = ImageBitmapRenderingContextSettings.idl; sourceTree = "<group>"; }; 6597 6600 319847FE1A1D816700A13318 /* AnimationEvent.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AnimationEvent.cpp; sourceTree = "<group>"; }; 6598 6601 319847FF1A1D816700A13318 /* AnimationEvent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AnimationEvent.h; sourceTree = "<group>"; }; … … 16587 16590 7C7903B01F86F95C00463A70 /* ImageBitmapRenderingContext.h */, 16588 16591 7C7903B21F86F95C00463A70 /* ImageBitmapRenderingContext.idl */, 16592 318EAD4A1FA91157008CEF86 /* ImageBitmapRenderingContextSettings.h */, 16593 318EAD4C1FA91352008CEF86 /* ImageBitmapRenderingContextSettings.idl */, 16589 16594 7C193BAF1F5E0EB40088F3E6 /* ImageSmoothingQuality.h */, 16590 16595 7C193BA81F5E0EAF0088F3E6 /* ImageSmoothingQuality.idl */, … … 27057 27062 31815A311F9A6C8F00FCBF89 /* ImageBitmap.h in Headers */, 27058 27063 7C7903B31F86F95C00463A70 /* ImageBitmapRenderingContext.h in Headers */, 27064 318EAD4D1FA91380008CEF86 /* ImageBitmapRenderingContextSettings.h in Headers */, 27059 27065 B2A10B920B3818BD00099AA4 /* ImageBuffer.h in Headers */, 27060 27066 22BD9F7F1353625C009BD102 /* ImageBufferData.h in Headers */, -
trunk/Source/WebCore/html/HTMLCanvasElement.cpp
r224195 r224255 505 505 } 506 506 507 // FIXME: Needs to accept ImageBitmapRenderingContext::Settings. 508 ImageBitmapRenderingContext* HTMLCanvasElement::createContextBitmapRenderer(const String& type) 507 ImageBitmapRenderingContext* HTMLCanvasElement::createContextBitmapRenderer(const String& type, ImageBitmapRenderingContextSettings&& settings) 509 508 { 510 509 ASSERT_UNUSED(type, HTMLCanvasElement::isBitmapRendererType(type)); 511 510 ASSERT(!m_context); 512 511 513 m_context = std::make_unique<ImageBitmapRenderingContext>(*this );512 m_context = std::make_unique<ImageBitmapRenderingContext>(*this, WTFMove(settings)); 514 513 515 514 #if USE(IOSURFACE_CANVAS_BACKING_STORE) || ENABLE(ACCELERATED_2D_CANVAS) … … 521 520 } 522 521 523 ImageBitmapRenderingContext* HTMLCanvasElement::getContextBitmapRenderer(const String& type )522 ImageBitmapRenderingContext* HTMLCanvasElement::getContextBitmapRenderer(const String& type, ImageBitmapRenderingContextSettings&& settings) 524 523 { 525 524 ASSERT_UNUSED(type, HTMLCanvasElement::isBitmapRendererType(type)); 526 525 if (!m_context) 527 return createContextBitmapRenderer(type );526 return createContextBitmapRenderer(type, WTFMove(settings)); 528 527 return static_cast<ImageBitmapRenderingContext*>(m_context.get()); 529 528 } -
trunk/Source/WebCore/html/HTMLCanvasElement.h
r224195 r224255 30 30 #include "FloatRect.h" 31 31 #include "HTMLElement.h" 32 #include "ImageBitmapRenderingContextSettings.h" 32 33 #include "IntSize.h" 33 34 #include <memory> … … 120 121 121 122 static bool isBitmapRendererType(const String&); 122 ImageBitmapRenderingContext* createContextBitmapRenderer(const String& );123 ImageBitmapRenderingContext* getContextBitmapRenderer(const String& );123 ImageBitmapRenderingContext* createContextBitmapRenderer(const String&, ImageBitmapRenderingContextSettings&& = { }); 124 ImageBitmapRenderingContext* getContextBitmapRenderer(const String&, ImageBitmapRenderingContextSettings&& = { }); 124 125 125 126 WEBCORE_EXPORT ExceptionOr<UncachedString> toDataURL(const String& mimeType, JSC::JSValue quality); -
trunk/Source/WebCore/html/canvas/ImageBitmapRenderingContext.cpp
r224195 r224255 38 38 #endif 39 39 40 ImageBitmapRenderingContext::ImageBitmapRenderingContext(HTMLCanvasElement& canvas )40 ImageBitmapRenderingContext::ImageBitmapRenderingContext(HTMLCanvasElement& canvas, ImageBitmapRenderingContextSettings&& settings) 41 41 : CanvasRenderingContext(canvas) 42 , m_settings(WTFMove(settings)) 42 43 { 43 44 setOutputBitmap(nullptr); -
trunk/Source/WebCore/html/canvas/ImageBitmapRenderingContext.h
r224195 r224255 29 29 30 30 #include "ExceptionOr.h" 31 #include "ImageBitmapRenderingContextSettings.h" 31 32 #include "ImageBufferData.h" 32 33 #include <wtf/RefPtr.h> … … 39 40 class ImageBitmapRenderingContext final : public CanvasRenderingContext { 40 41 public: 41 struct Settings {42 bool alpha = true;43 };44 42 45 43 enum class BitmapMode { … … 48 46 }; 49 47 50 ImageBitmapRenderingContext(HTMLCanvasElement& );48 ImageBitmapRenderingContext(HTMLCanvasElement&, ImageBitmapRenderingContextSettings&&); 51 49 ~ImageBitmapRenderingContext(); 52 50 … … 63 61 64 62 BitmapMode m_bitmapMode { BitmapMode::Blank }; 65 Settings m_settings;63 ImageBitmapRenderingContextSettings m_settings; 66 64 }; 67 65 -
trunk/Source/WebCore/html/canvas/ImageBitmapRenderingContext.idl
r224195 r224255 32 32 }; 33 33 34 dictionary ImageBitmapRenderingContextSettings {35 boolean alpha = true;36 }; -
trunk/Source/WebCore/html/canvas/ImageBitmapRenderingContextSettings.h
r224254 r224255 24 24 */ 25 25 26 [ 27 Exposed=Window 28 ] interface ImageBitmapRenderingContext { 29 readonly attribute HTMLCanvasElement canvas; 26 #pragma once 30 27 31 [MayThrowException] void transferFromImageBitmap(ImageBitmap? bitmap); 28 namespace WebCore { 29 30 struct ImageBitmapRenderingContextSettings { 31 bool alpha = true; 32 32 }; 33 33 34 dictionary ImageBitmapRenderingContextSettings { 35 boolean alpha = true; 36 }; 34 }
Note: See TracChangeset
for help on using the changeset viewer.