Changeset 57787 in webkit
- Timestamp:
- Apr 17, 2010 1:43:30 PM (14 years ago)
- Location:
- trunk/WebCore
- Files:
-
- 7 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/WebCore/ChangeLog
r57784 r57787 1 2010-04-17 Yaar Schnitman <yaar@chromium.org> 2 3 Reviewed by Adam Barth. 4 5 Auto-generate V8 bindings for canvas.* overloads 6 https://bugs.webkit.org/show_bug.cgi?id=37453 7 8 * bindings/v8/custom/V8CanvasRenderingContext2DCustom.cpp: Deleted custom code that is now auto-generated. 9 * bindings/scripts/CodeGeneratorV8.pm: Not generating custom signatures for overloaded methods and accepting Object as a string input. 10 * html/canvas/CanvasRenderingContext2D.cpp: 11 (WebCore::CanvasRenderingContext2D::drawImage): Added missing 9-arguments overloads for drawImage. 12 * html/canvas/CanvasRenderingContext2D.h: 13 * html/canvas/CanvasRenderingContext2D.idl: Overloaded methods defined (V8 only). 14 1 15 2010-04-17 Yury Semikhatsky <yurys@chromium.org> 2 16 -
trunk/WebCore/bindings/scripts/CodeGeneratorV8.pm
r57653 r57787 1033 1033 1034 1034 # Only DOMString or wrapper types are checked. 1035 # For DOMString, Null or Undefined are accepted too, as these are 1036 # usually acceptable values for a DOMString argument. 1037 push(@andExpression, "(${value}.IsNull() || ${value}.IsUndefined() || ${value}.IsString())") if $codeGenerator->IsStringType($type); 1035 # For DOMString, Null, Undefined and any Object are accepted too, as 1036 # these are acceptable values for a DOMString argument (any Object can 1037 # be converted to a string via .toString). 1038 push(@andExpression, "(${value}->IsNull() || ${value}->IsUndefined() || ${value}->IsString() || ${value}->IsObject())") if $codeGenerator->IsStringType($type); 1038 1039 push(@andExpression, "V8${type}::HasInstance($value)") if IsWrapperType($type); 1039 1040 … … 1078 1079 INC_STATS(\"DOM.$implClassName.$name\"); 1079 1080 END 1081 1080 1082 foreach my $overload (@{$function->{overloads}}) { 1081 1083 my $parametersCheck = GenerateFunctionParametersCheck($overload); … … 2713 2715 $function->signature->extendedAttributes->{"V8Custom"}) { 2714 2716 return 0; 2717 } 2718 # No signature needed for overloaded function 2719 if (@{$function->{overloads}} > 1) { 2720 return 0; 2721 } 2722 2723 foreach my $parameter (@{$function->parameters}) { 2724 if ($parameter->extendedAttributes->{"Optional"}) { 2725 return 0; 2726 } 2715 2727 } 2716 2728 -
trunk/WebCore/bindings/v8/custom/V8CanvasRenderingContext2DCustom.cpp
r56166 r57787 99 99 } 100 100 101 // TODO: SetStrokeColor and SetFillColor are similar except function names,102 // consolidate them into one.103 v8::Handle<v8::Value> V8CanvasRenderingContext2D::setStrokeColorCallback(const v8::Arguments& args)104 {105 INC_STATS("DOM.CanvasRenderingContext2D.setStrokeColor()");106 CanvasRenderingContext2D* context = V8CanvasRenderingContext2D::toNative(args.Holder());107 switch (args.Length()) {108 case 1:109 if (args[0]->IsString())110 context->setStrokeColor(toWebCoreString(args[0]));111 else112 context->setStrokeColor(toFloat(args[0]));113 break;114 case 2:115 if (args[0]->IsString())116 context->setStrokeColor(toWebCoreString(args[0]), toFloat(args[1]));117 else118 context->setStrokeColor(toFloat(args[0]), toFloat(args[1]));119 break;120 case 4:121 context->setStrokeColor(toFloat(args[0]), toFloat(args[1]), toFloat(args[2]), toFloat(args[3]));122 break;123 case 5:124 context->setStrokeColor(toFloat(args[0]), toFloat(args[1]), toFloat(args[2]), toFloat(args[3]), toFloat(args[4]));125 break;126 default:127 V8Proxy::throwError(V8Proxy::SyntaxError, "setStrokeColor: Invalid number of arguments");128 break;129 }130 return v8::Undefined();131 }132 133 v8::Handle<v8::Value> V8CanvasRenderingContext2D::setFillColorCallback(const v8::Arguments& args)134 {135 INC_STATS("DOM.CanvasRenderingContext2D.setFillColor()");136 CanvasRenderingContext2D* context = V8CanvasRenderingContext2D::toNative(args.Holder());137 switch (args.Length()) {138 case 1:139 if (args[0]->IsString())140 context->setFillColor(toWebCoreString(args[0]));141 else142 context->setFillColor(toFloat(args[0]));143 break;144 case 2:145 if (args[0]->IsString())146 context->setFillColor(toWebCoreString(args[0]), toFloat(args[1]));147 else148 context->setFillColor(toFloat(args[0]), toFloat(args[1]));149 break;150 case 4:151 context->setFillColor(toFloat(args[0]), toFloat(args[1]), toFloat(args[2]), toFloat(args[3]));152 break;153 case 5:154 context->setFillColor(toFloat(args[0]), toFloat(args[1]), toFloat(args[2]), toFloat(args[3]), toFloat(args[4]));155 break;156 default:157 V8Proxy::throwError(V8Proxy::SyntaxError, "setFillColor: Invalid number of arguments");158 break;159 }160 return v8::Undefined();161 }162 163 v8::Handle<v8::Value> V8CanvasRenderingContext2D::strokeRectCallback(const v8::Arguments& args)164 {165 INC_STATS("DOM.CanvasRenderingContext2D.strokeRect()");166 CanvasRenderingContext2D* context = V8CanvasRenderingContext2D::toNative(args.Holder());167 if (args.Length() == 5)168 context->strokeRect(toFloat(args[0]), toFloat(args[1]), toFloat(args[2]), toFloat(args[3]), toFloat(args[4]));169 else if (args.Length() == 4)170 context->strokeRect(toFloat(args[0]), toFloat(args[1]), toFloat(args[2]), toFloat(args[3]));171 else {172 V8Proxy::setDOMException(INDEX_SIZE_ERR);173 return notHandledByInterceptor();174 }175 return v8::Undefined();176 }177 178 v8::Handle<v8::Value> V8CanvasRenderingContext2D::setShadowCallback(const v8::Arguments& args)179 {180 INC_STATS("DOM.CanvasRenderingContext2D.setShadow()");181 CanvasRenderingContext2D* context = V8CanvasRenderingContext2D::toNative(args.Holder());182 183 switch (args.Length()) {184 case 3:185 context->setShadow(toFloat(args[0]), toFloat(args[1]), toFloat(args[2]));186 break;187 case 4:188 if (args[3]->IsString())189 context->setShadow(toFloat(args[0]), toFloat(args[1]), toFloat(args[2]), toWebCoreString(args[3]));190 else191 context->setShadow(toFloat(args[0]), toFloat(args[1]), toFloat(args[2]), toFloat(args[3]));192 break;193 case 5:194 if (args[3]->IsString())195 context->setShadow(toFloat(args[0]), toFloat(args[1]), toFloat(args[2]), toWebCoreString(args[3]), toFloat(args[4]));196 else197 context->setShadow(toFloat(args[0]), toFloat(args[1]), toFloat(args[2]), toFloat(args[3]), toFloat(args[4]));198 break;199 case 7:200 context->setShadow(toFloat(args[0]), toFloat(args[1]), toFloat(args[2]), toFloat(args[3]), toFloat(args[4]), toFloat(args[5]), toFloat(args[6]));201 break;202 case 8:203 context->setShadow(toFloat(args[0]), toFloat(args[1]), toFloat(args[2]), toFloat(args[3]), toFloat(args[4]), toFloat(args[5]), toFloat(args[6]), toFloat(args[7]));204 break;205 default:206 V8Proxy::throwError(V8Proxy::SyntaxError, "setShadow: Invalid number of arguments");207 break;208 }209 210 return v8::Undefined();211 }212 213 v8::Handle<v8::Value> V8CanvasRenderingContext2D::drawImageCallback(const v8::Arguments& args)214 {215 INC_STATS("DOM.CanvasRenderingContext2D.drawImage()");216 CanvasRenderingContext2D* context = V8CanvasRenderingContext2D::toNative(args.Holder());217 218 v8::Handle<v8::Value> arg = args[0];219 220 if (V8HTMLImageElement::HasInstance(arg)) {221 ExceptionCode ec = 0;222 HTMLImageElement* imageElement = V8HTMLImageElement::toNative(v8::Handle<v8::Object>::Cast(arg));223 switch (args.Length()) {224 case 3:225 context->drawImage(imageElement, toFloat(args[1]), toFloat(args[2]));226 break;227 case 5:228 context->drawImage(imageElement, toFloat(args[1]), toFloat(args[2]), toFloat(args[3]), toFloat(args[4]), ec);229 if (ec != 0) {230 V8Proxy::setDOMException(ec);231 return notHandledByInterceptor();232 }233 break;234 case 9:235 context->drawImage(imageElement,236 FloatRect(toFloat(args[1]), toFloat(args[2]), toFloat(args[3]), toFloat(args[4])),237 FloatRect(toFloat(args[5]), toFloat(args[6]), toFloat(args[7]), toFloat(args[8])),238 ec);239 if (ec != 0) {240 V8Proxy::setDOMException(ec);241 return notHandledByInterceptor();242 }243 break;244 default:245 return throwError("drawImage: Invalid number of arguments", V8Proxy::SyntaxError);246 }247 return v8::Undefined();248 }249 250 // HTMLCanvasElement251 if (V8HTMLCanvasElement::HasInstance(arg)) {252 ExceptionCode ec = 0;253 HTMLCanvasElement* canvasElement = V8HTMLCanvasElement::toNative(v8::Handle<v8::Object>::Cast(arg));254 switch (args.Length()) {255 case 3:256 context->drawImage(canvasElement, toFloat(args[1]), toFloat(args[2]));257 break;258 case 5:259 context->drawImage(canvasElement, toFloat(args[1]), toFloat(args[2]), toFloat(args[3]), toFloat(args[4]), ec);260 if (ec != 0) {261 V8Proxy::setDOMException(ec);262 return notHandledByInterceptor();263 }264 break;265 case 9:266 context->drawImage(canvasElement,267 FloatRect(toFloat(args[1]), toFloat(args[2]), toFloat(args[3]), toFloat(args[4])),268 FloatRect(toFloat(args[5]), toFloat(args[6]), toFloat(args[7]), toFloat(args[8])),269 ec);270 if (ec != 0) {271 V8Proxy::setDOMException(ec);272 return notHandledByInterceptor();273 }274 break;275 default:276 return throwError("drawImage: Invalid number of arguments", V8Proxy::SyntaxError);277 }278 return v8::Undefined();279 }280 281 #if ENABLE(VIDEO)282 // HTMLVideoElement283 if (V8HTMLVideoElement::HasInstance(arg)) {284 ExceptionCode ec = 0;285 HTMLVideoElement* videoElement = V8HTMLVideoElement::toNative(v8::Handle<v8::Object>::Cast(arg));286 switch (args.Length()) {287 case 3:288 context->drawImage(videoElement, toFloat(args[1]), toFloat(args[2]));289 break;290 case 5:291 context->drawImage(videoElement, toFloat(args[1]), toFloat(args[2]), toFloat(args[3]), toFloat(args[4]), ec);292 if (ec != 0) {293 V8Proxy::setDOMException(ec);294 return notHandledByInterceptor();295 }296 break;297 case 9:298 context->drawImage(videoElement,299 FloatRect(toFloat(args[1]), toFloat(args[2]), toFloat(args[3]), toFloat(args[4])),300 FloatRect(toFloat(args[5]), toFloat(args[6]), toFloat(args[7]), toFloat(args[8])),301 ec);302 if (ec != 0) {303 V8Proxy::setDOMException(ec);304 return notHandledByInterceptor();305 }306 break;307 default:308 return throwError("drawImage: Invalid number of arguments", V8Proxy::SyntaxError);309 }310 return v8::Undefined();311 }312 #endif313 314 V8Proxy::setDOMException(TYPE_MISMATCH_ERR);315 return notHandledByInterceptor();316 }317 318 319 v8::Handle<v8::Value> V8CanvasRenderingContext2D::drawImageFromRectCallback(const v8::Arguments& args)320 {321 INC_STATS("DOM.CanvasRenderingContext2D.drawImageFromRect()");322 CanvasRenderingContext2D* context = V8CanvasRenderingContext2D::toNative(args.Holder());323 324 v8::Handle<v8::Value> arg = args[0];325 326 if (V8HTMLImageElement::HasInstance(arg)) {327 HTMLImageElement* imageElement = V8HTMLImageElement::toNative(v8::Handle<v8::Object>::Cast(arg));328 context->drawImageFromRect(imageElement, toFloat(args[1]), toFloat(args[2]), toFloat(args[3]), toFloat(args[4]), toFloat(args[5]), toFloat(args[6]), toFloat(args[7]), toFloat(args[8]), toWebCoreString(args[9]));329 } else330 V8Proxy::throwError(V8Proxy::TypeError, "drawImageFromRect: Invalid type of arguments");331 332 return v8::Undefined();333 }334 335 v8::Handle<v8::Value> V8CanvasRenderingContext2D::createPatternCallback(const v8::Arguments& args)336 {337 INC_STATS("DOM.CanvasRenderingContext2D.createPattern()");338 CanvasRenderingContext2D* context = V8CanvasRenderingContext2D::toNative(args.Holder());339 340 v8::Handle<v8::Value> arg = args[0];341 342 if (V8HTMLImageElement::HasInstance(arg)) {343 HTMLImageElement* imageElement = V8HTMLImageElement::toNative(v8::Handle<v8::Object>::Cast(arg));344 ExceptionCode ec = 0;345 RefPtr<CanvasPattern> pattern = context->createPattern(imageElement, toWebCoreStringWithNullCheck(args[1]), ec);346 if (ec != 0) {347 V8Proxy::setDOMException(ec);348 return notHandledByInterceptor();349 }350 return toV8(pattern.release());351 }352 353 if (V8HTMLCanvasElement::HasInstance(arg)) {354 HTMLCanvasElement* canvasElement = V8HTMLCanvasElement::toNative(v8::Handle<v8::Object>::Cast(arg));355 ExceptionCode ec = 0;356 RefPtr<CanvasPattern> pattern = context->createPattern(canvasElement, toWebCoreStringWithNullCheck(args[1]), ec);357 if (ec != 0) {358 V8Proxy::setDOMException(ec);359 return notHandledByInterceptor();360 }361 return toV8(pattern.release());362 }363 364 V8Proxy::setDOMException(TYPE_MISMATCH_ERR);365 return notHandledByInterceptor();366 }367 368 v8::Handle<v8::Value> V8CanvasRenderingContext2D::fillTextCallback(const v8::Arguments& args)369 {370 INC_STATS("DOM.CanvasRenderingContext2D.fillText()");371 372 CanvasRenderingContext2D* context = V8CanvasRenderingContext2D::toNative(args.Holder());373 374 // Two forms:375 // * fillText(text, x, y)376 // * fillText(text, x, y, maxWidth)377 if (args.Length() < 3 || args.Length() > 4) {378 V8Proxy::setDOMException(SYNTAX_ERR);379 return notHandledByInterceptor();380 }381 382 String text = toWebCoreString(args[0]);383 float x = toFloat(args[1]);384 float y = toFloat(args[2]);385 386 if (args.Length() == 4) {387 float maxWidth = toFloat(args[3]);388 context->fillText(text, x, y, maxWidth);389 } else390 context->fillText(text, x, y);391 392 return v8::Undefined();393 }394 395 v8::Handle<v8::Value> V8CanvasRenderingContext2D::strokeTextCallback(const v8::Arguments& args)396 {397 INC_STATS("DOM.CanvasRenderingContext2D.strokeText()");398 CanvasRenderingContext2D* context = V8CanvasRenderingContext2D::toNative(args.Holder());399 400 // Two forms:401 // * strokeText(text, x, y)402 // * strokeText(text, x, y, maxWidth)403 if (args.Length() < 3 || args.Length() > 4) {404 V8Proxy::setDOMException(SYNTAX_ERR);405 return notHandledByInterceptor();406 }407 408 String text = toWebCoreString(args[0]);409 float x = toFloat(args[1]);410 float y = toFloat(args[2]);411 412 if (args.Length() == 4) {413 float maxWidth = toFloat(args[3]);414 context->strokeText(text, x, y, maxWidth);415 } else416 context->strokeText(text, x, y);417 418 return v8::Undefined();419 }420 421 v8::Handle<v8::Value> V8CanvasRenderingContext2D::putImageDataCallback(const v8::Arguments& args)422 {423 INC_STATS("DOM.CanvasRenderingContext2D.putImageData()");424 425 // Two froms:426 // * putImageData(ImageData, x, y)427 // * putImageData(ImageData, x, y, dirtyX, dirtyY, dirtyWidth, dirtyHeight)428 if (args.Length() != 3 && args.Length() != 7) {429 V8Proxy::setDOMException(SYNTAX_ERR);430 return notHandledByInterceptor();431 }432 433 CanvasRenderingContext2D* context = V8CanvasRenderingContext2D::toNative(args.Holder());434 435 ImageData* imageData = 0;436 437 // Need to check that the argument is of the correct type, since438 // toNative() expects it to be correct. If the argument was incorrect439 // we leave it null, and putImageData() will throw the correct exception440 // (TYPE_MISMATCH_ERR).441 if (V8DOMWrapper::isWrapperOfType(args[0], &V8ImageData::info))442 imageData = V8ImageData::toNative(v8::Handle<v8::Object>::Cast(args[0]));443 444 ExceptionCode ec = 0;445 446 if (args.Length() == 7)447 context->putImageData(imageData, toFloat(args[1]), toFloat(args[2]), toFloat(args[3]), toFloat(args[4]), toFloat(args[5]), toFloat(args[6]), ec);448 else449 context->putImageData(imageData, toFloat(args[1]), toFloat(args[2]), ec);450 451 if (ec != 0) {452 V8Proxy::setDOMException(ec);453 return notHandledByInterceptor();454 }455 456 return v8::Undefined();457 }458 459 101 } // namespace WebCore -
trunk/WebCore/bindings/v8/test/V8TestObj.cpp
r57653 r57787 306 306 static v8::Handle<v8::Value> overloadedMethodCallback(const v8::Arguments& args) { 307 307 INC_STATS("DOM.TestObj.overloadedMethod"); 308 if ((args.Length() == 2 && V8TestObj::HasInstance(args[0]) && (args[1] .IsNull() || args[1].IsUndefined() || args[1].IsString()))) {308 if ((args.Length() == 2 && V8TestObj::HasInstance(args[0]) && (args[1]->IsNull() || args[1]->IsUndefined() || args[1]->IsString() || args[1]->IsObject()))) { 309 309 return overloadedMethod1Callback(args); 310 310 } else if ((args.Length() == 1 && V8TestObj::HasInstance(args[0])) || (args.Length() == 2 && V8TestObj::HasInstance(args[0]))) { 311 311 return overloadedMethod2Callback(args); 312 } else if ((args.Length() == 1 && (args[0] .IsNull() || args[0].IsUndefined() || args[0].IsString()))) {312 } else if ((args.Length() == 1 && (args[0]->IsNull() || args[0]->IsUndefined() || args[0]->IsString() || args[0]->IsObject()))) { 313 313 return overloadedMethod3Callback(args); 314 314 } else if (args.Length() == 1) { … … 434 434 {"methodWithNonOptionalArgAndOptionalArg", TestObjInternal::methodWithNonOptionalArgAndOptionalArgCallback}, 435 435 {"methodWithNonOptionalArgAndTwoOptionalArgs", TestObjInternal::methodWithNonOptionalArgAndTwoOptionalArgsCallback}, 436 {"overloadedMethod", TestObjInternal::overloadedMethodCallback}, 436 437 }; 437 438 static v8::Persistent<v8::FunctionTemplate> ConfigureV8TestObjTemplate(v8::Persistent<v8::FunctionTemplate> desc) … … 461 462 v8::Handle<v8::Signature> objMethodWithArgs_signature = v8::Signature::New(desc, objMethodWithArgs_argc, objMethodWithArgs_argv); 462 463 proto->Set(v8::String::New("objMethodWithArgs"), v8::FunctionTemplate::New(TestObjInternal::objMethodWithArgsCallback, v8::Handle<v8::Value>(), objMethodWithArgs_signature)); 463 464 // Custom Signature 'overloadedMethod'465 const int overloadedMethod_argc = 2;466 v8::Handle<v8::FunctionTemplate> overloadedMethod_argv[overloadedMethod_argc] = { V8TestObj::GetRawTemplate(), v8::Handle<v8::FunctionTemplate>() };467 v8::Handle<v8::Signature> overloadedMethod_signature = v8::Signature::New(desc, overloadedMethod_argc, overloadedMethod_argv);468 proto->Set(v8::String::New("overloadedMethod"), v8::FunctionTemplate::New(TestObjInternal::overloadedMethodCallback, v8::Handle<v8::Value>(), overloadedMethod_signature));469 464 470 465 // Custom toString template -
trunk/WebCore/html/canvas/CanvasRenderingContext2D.cpp
r57022 r57787 971 971 } 972 972 973 void CanvasRenderingContext2D::drawImage(HTMLImageElement* image, 974 float sx, float sy, float sw, float sh, 975 float dx, float dy, float dw, float dh, ExceptionCode& ec) 976 { 977 drawImage(image, FloatRect(sx, sy, sw, sh), FloatRect(dx, dy, dw, dh), ec); 978 } 979 973 980 void CanvasRenderingContext2D::drawImage(HTMLImageElement* image, const FloatRect& srcRect, const FloatRect& dstRect, 974 981 ExceptionCode& ec) … … 1021 1028 ASSERT(canvas); 1022 1029 drawImage(canvas, FloatRect(0, 0, canvas->width(), canvas->height()), FloatRect(x, y, width, height), ec); 1030 } 1031 1032 void CanvasRenderingContext2D::drawImage(HTMLCanvasElement* canvas, 1033 float sx, float sy, float sw, float sh, 1034 float dx, float dy, float dw, float dh, ExceptionCode& ec) 1035 { 1036 drawImage(canvas, FloatRect(sx, sy, sw, sh), FloatRect(dx, dy, dw, dh), ec); 1023 1037 } 1024 1038 … … 1076 1090 IntSize s = size(video); 1077 1091 drawImage(video, FloatRect(0, 0, s.width(), s.height()), FloatRect(x, y, width, height), ec); 1092 } 1093 1094 void CanvasRenderingContext2D::drawImage(HTMLVideoElement* video, 1095 float sx, float sy, float sw, float sh, 1096 float dx, float dy, float dw, float dh, ExceptionCode& ec) 1097 { 1098 drawImage(video, FloatRect(sx, sy, sw, sh), FloatRect(dx, dy, dw, dh), ec); 1078 1099 } 1079 1100 -
trunk/WebCore/html/canvas/CanvasRenderingContext2D.h
r57022 r57787 157 157 void drawImage(HTMLImageElement*, float x, float y); 158 158 void drawImage(HTMLImageElement*, float x, float y, float width, float height, ExceptionCode&); 159 void drawImage(HTMLImageElement*, float sx, float sy, float sw, float sh, float dx, float dy, float dw, float dh, ExceptionCode&); 159 160 void drawImage(HTMLImageElement*, const FloatRect& srcRect, const FloatRect& dstRect, ExceptionCode&); 160 161 void drawImage(HTMLCanvasElement*, float x, float y); 161 162 void drawImage(HTMLCanvasElement*, float x, float y, float width, float height, ExceptionCode&); 163 void drawImage(HTMLCanvasElement*, float sx, float sy, float sw, float sh, float dx, float dy, float dw, float dh, ExceptionCode&); 162 164 void drawImage(HTMLCanvasElement*, const FloatRect& srcRect, const FloatRect& dstRect, ExceptionCode&); 163 165 #if ENABLE(VIDEO) 164 166 void drawImage(HTMLVideoElement*, float x, float y); 165 167 void drawImage(HTMLVideoElement*, float x, float y, float width, float height, ExceptionCode&); 168 void drawImage(HTMLVideoElement*, float sx, float sy, float sw, float sh, float dx, float dy, float dw, float dh, ExceptionCode&); 166 169 void drawImage(HTMLVideoElement*, const FloatRect& srcRect, const FloatRect& dstRect, ExceptionCode&); 167 170 #endif -
trunk/WebCore/html/canvas/CanvasRenderingContext2D.idl
r52537 r57787 21 21 * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 22 22 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 23 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 23 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 24 24 */ 25 25 … … 83 83 attribute DOMString textAlign; 84 84 attribute DOMString textBaseline; 85 [Custom] void fillText(/* 4 */); 86 [Custom] void strokeText(/* 4 */); 85 87 86 TextMetrics measureText(in DOMString text); 88 87 … … 99 98 void clearShadow(); 100 99 100 #if defined(V8_BINDING) && V8_BINDING 101 void fillText(in DOMString text, in float x, in float y, in [Optional] float maxWidth); 102 void strokeText(in DOMString text, in float x, in float y, in [Optional] float maxWidth); 103 104 void setStrokeColor(in DOMString color, in [Optional] float alpha); 105 void setStrokeColor(in float grayLevel, in [Optional] float alpha); 106 void setStrokeColor(in float r, in float g, in float b, in float a); 107 void setStrokeColor(in float c, in float m, in float y, in float k, in float a); 108 109 void setFillColor(in DOMString color, in [Optional] float alpha); 110 void setFillColor(in float grayLevel, in [Optional] float alpha); 111 void setFillColor(in float r, in float g, in float b, in float a); 112 void setFillColor(in float c, in float m, in float y, in float k, in float a); 113 114 void strokeRect(in float x, in float y, in float width, in float height, in [Optional] float lineWidth); 115 116 void drawImage(in HTMLImageElement image, in float x, in float y); 117 void drawImage(in HTMLImageElement image, in float x, in float y, in float width, in float height) 118 raises (DOMException); 119 void drawImage(in HTMLImageElement image, in float sx, in float sy, in float sw, in float sh, in float dx, in float dy, in float dw, in float dh) 120 raises (DOMException); 121 void drawImage(in HTMLCanvasElement canvas, in float x, in float y); 122 void drawImage(in HTMLCanvasElement canvas, in float x, in float y, in float width, in float height) 123 raises (DOMException); 124 void drawImage(in HTMLCanvasElement canvas, in float sx, in float sy, in float sw, in float sh, in float dx, in float dy, in float dw, in float dh) 125 raises (DOMException); 126 #if defined(ENABLE_VIDEO) && ENABLE_VIDEO 127 void drawImage(in HTMLVideoElement video, in float x, in float y); 128 void drawImage(in HTMLVideoElement video, in float x, in float y, in float width, in float height) 129 raises (DOMException); 130 void drawImage(in HTMLVideoElement video, in float sx, in float sy, in float sw, in float sh, in float dx, in float dy, in float dw, in float dh) 131 raises (DOMException); 132 #endif 133 void drawImageFromRect(in HTMLImageElement image, 134 in float sx, in float sy, in float sw, in float sh, 135 in float dx, in float dy, in float dw, in float dh, in DOMString compositeOperation); 136 137 void setShadow(in float width, in float height, in float blur, in [Optional] DOMString color, in [Optional] float alpha); 138 void setShadow(in float width, in float height, in float blur, in float grayLevel, in [Optional] float alpha); 139 void setShadow(in float width, in float height, in float blur, in float r, in float g, in float b, in float a); 140 void setShadow(in float width, in float height, in float blur, in float c, in float m, in float y, in float k, in float a); 141 142 CanvasPattern createPattern(in HTMLCanvasElement canvas, in [ConvertNullToNullString] DOMString repetitionType) 143 raises (DOMException); 144 CanvasPattern createPattern(in HTMLImageElement image, in [ConvertNullToNullString] DOMString repetitionType) 145 raises (DOMException); 146 void putImageData(in ImageData imagedata, in float dx, in float dy, in [Optional] float dirtyX, in float dirtyY, in float dirtyWidth, in float dirtyHeight) 147 raises(DOMException); 148 #else 149 // FIXME: Remove 'else' once JSC supports overloads too. 150 [Custom] void fillText(/* 4 */); 151 [Custom] void strokeText(/* 4 */); 101 152 [Custom] void setStrokeColor(/* 1 */); 102 153 [Custom] void setFillColor(/* 1 */); … … 106 157 [Custom] void setShadow(/* 3 */); 107 158 [Custom] void createPattern(/* 2 */); 108 159 [Custom] void putImageData(/* in ImageData imagedata, in float dx, in float dy [, in float dirtyX, in float dirtyY, in float dirtyWidth, in float dirtyHeight] */); 160 #endif // defined(V8_BINDING) 161 109 162 attribute [Custom] custom strokeStyle; 110 163 attribute [Custom] custom fillStyle; 111 164 112 165 // pixel manipulation 113 166 ImageData createImageData(in float sw, in float sh) … … 115 168 ImageData getImageData(in float sx, in float sy, in float sw, in float sh) 116 169 raises(DOMException); 117 [Custom] void putImageData(/* in ImageData imagedata, in float dx, in float dy [, in float dirtyX, in float dirtyY, in float dirtyWidth, in float dirtyHeight] */);118 170 }; 119 171
Note: See TracChangeset
for help on using the changeset viewer.