Index: Source/core/html/canvas/CanvasContextCreationAttributes.idl |
diff --git a/Source/core/html/canvas/CanvasContextCreationAttributes.idl b/Source/core/html/canvas/CanvasContextCreationAttributes.idl |
new file mode 100644 |
index 0000000000000000000000000000000000000000..3d5a8f2466475b5a5f5667394cfafc3fbf1d57c7 |
--- /dev/null |
+++ b/Source/core/html/canvas/CanvasContextCreationAttributes.idl |
@@ -0,0 +1,36 @@ |
+// Copyright 2014 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+// The spec for HTMLCanvasElement.getContext() defines the context |
+// creation attributes as type "any". In order to eliminate custom |
+// bindings for getContext(), we define a dictionary that contains the |
+// union of all of the context types' attributes. Note that it is not |
+// possible to use a union type for this purpose because two dictionary |
+// types are not distinguishable. |
+// |
+// Fortunately, there aren't any context creation attributes which are |
+// defined with different default values in different context |
+// specifications. (The "alpha" value, in particular, has a default |
+// value of true for both the Canvas2D and WebGL specifications.) |
+// |
+// The PermissiveDictionaryConversion extended attribute ignores |
+// non-object types (like 'true' and 'false') passed to getContext() for |
+// the attributes instead of raising TypeError, following the behavior |
+// of the previous custom binding. |
+// |
+// N.B.: Web IDL doesn't support multiple inheritance of dictionaries. |
+ |
+[PermissiveDictionaryConversion] |
+dictionary CanvasContextCreationAttributes { |
+ // Canvas 2D attributes |
+ boolean alpha = true; // Also used for WebGL. |
+ |
+ // WebGL attributes |
+ boolean depth = true; |
+ boolean stencil = false; |
+ boolean antialias = true; |
+ boolean premultipliedAlpha = true; |
+ boolean preserveDrawingBuffer = false; |
+ boolean failIfMajorPerformanceCaveat = false; |
+}; |