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

Side by Side Diff: Source/core/html/canvas/CanvasRenderingContext2D.cpp

Issue 232913004: Use StrictTypeChecking for methods on CRC2D that accepts Path2D (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Update some more expectations. Created 6 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 | Annotate | Revision Log
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 Apple Inc. All rights reserved. 2 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 Apple Inc. All rights reserved.
3 * Copyright (C) 2008, 2010 Nokia Corporation and/or its subsidiary(-ies) 3 * Copyright (C) 2008, 2010 Nokia Corporation and/or its subsidiary(-ies)
4 * Copyright (C) 2007 Alp Toker <alp@atoker.com> 4 * Copyright (C) 2007 Alp Toker <alp@atoker.com>
5 * Copyright (C) 2008 Eric Seidel <eric@webkit.org> 5 * Copyright (C) 2008 Eric Seidel <eric@webkit.org>
6 * Copyright (C) 2008 Dirk Schulze <krit@webkit.org> 6 * Copyright (C) 2008 Dirk Schulze <krit@webkit.org>
7 * Copyright (C) 2010 Torch Mobile (Beijing) Co. Ltd. All rights reserved. 7 * Copyright (C) 2010 Torch Mobile (Beijing) Co. Ltd. All rights reserved.
8 * Copyright (C) 2012, 2013 Intel Corporation. All rights reserved. 8 * Copyright (C) 2012, 2013 Intel Corporation. All rights reserved.
9 * Copyright (C) 2013 Adobe Systems Incorporated. All rights reserved. 9 * Copyright (C) 2013 Adobe Systems Incorporated. All rights reserved.
10 * 10 *
(...skipping 1011 matching lines...) Expand 10 before | Expand all | Expand 10 after
1022 } 1022 }
1023 1023
1024 c->setFillRule(windRule); 1024 c->setFillRule(windRule);
1025 } 1025 }
1026 1026
1027 void CanvasRenderingContext2D::fill(const String& windingRuleString) 1027 void CanvasRenderingContext2D::fill(const String& windingRuleString)
1028 { 1028 {
1029 fillInternal(m_path, windingRuleString); 1029 fillInternal(m_path, windingRuleString);
1030 } 1030 }
1031 1031
1032 void CanvasRenderingContext2D::fill(Path2D* domPath, ExceptionState& exceptionSt ate) 1032 void CanvasRenderingContext2D::fill(Path2D* domPath)
1033 { 1033 {
1034 fill(domPath, "nonzero", exceptionState); 1034 fill(domPath, "nonzero");
1035 } 1035 }
1036 1036
1037 void CanvasRenderingContext2D::fill(Path2D* domPath, const String& windingRuleSt ring, ExceptionState& exceptionState) 1037 void CanvasRenderingContext2D::fill(Path2D* domPath, const String& windingRuleSt ring)
1038 { 1038 {
1039 if (!domPath) {
1040 exceptionState.throwTypeError(ExceptionMessages::argumentNullOrIncorrect Type(1, "Path"));
1041 return;
1042 }
1043
1044 fillInternal(domPath->path(), windingRuleString); 1039 fillInternal(domPath->path(), windingRuleString);
1045 } 1040 }
1046 1041
1047 void CanvasRenderingContext2D::strokeInternal(const Path& path) 1042 void CanvasRenderingContext2D::strokeInternal(const Path& path)
1048 { 1043 {
1049 if (path.isEmpty()) { 1044 if (path.isEmpty()) {
1050 return; 1045 return;
1051 } 1046 }
1052 GraphicsContext* c = drawingContext(); 1047 GraphicsContext* c = drawingContext();
1053 if (!c) { 1048 if (!c) {
(...skipping 16 matching lines...) Expand all
1070 c->strokePath(path); 1065 c->strokePath(path);
1071 didDraw(dirtyRect); 1066 didDraw(dirtyRect);
1072 } 1067 }
1073 } 1068 }
1074 1069
1075 void CanvasRenderingContext2D::stroke() 1070 void CanvasRenderingContext2D::stroke()
1076 { 1071 {
1077 strokeInternal(m_path); 1072 strokeInternal(m_path);
1078 } 1073 }
1079 1074
1080 void CanvasRenderingContext2D::stroke(Path2D* domPath, ExceptionState& exception State) 1075 void CanvasRenderingContext2D::stroke(Path2D* domPath)
1081 { 1076 {
1082 if (!domPath) {
1083 exceptionState.throwTypeError(ExceptionMessages::argumentNullOrIncorrect Type(1, "Path"));
1084 return;
1085 }
1086
1087 strokeInternal(domPath->path()); 1077 strokeInternal(domPath->path());
1088 } 1078 }
1089 1079
1090 void CanvasRenderingContext2D::clipInternal(const Path& path, const String& wind ingRuleString) 1080 void CanvasRenderingContext2D::clipInternal(const Path& path, const String& wind ingRuleString)
1091 { 1081 {
1092 GraphicsContext* c = drawingContext(); 1082 GraphicsContext* c = drawingContext();
1093 if (!c) { 1083 if (!c) {
1094 return; 1084 return;
1095 } 1085 }
1096 if (!state().m_invertibleCTM) { 1086 if (!state().m_invertibleCTM) {
1097 return; 1087 return;
1098 } 1088 }
1099 1089
1100 WindRule newWindRule = RULE_NONZERO; 1090 WindRule newWindRule = RULE_NONZERO;
1101 if (!parseWinding(windingRuleString, newWindRule)) { 1091 if (!parseWinding(windingRuleString, newWindRule)) {
1102 return; 1092 return;
1103 } 1093 }
1104 1094
1105 realizeSaves(); 1095 realizeSaves();
1106 c->canvasClip(path, newWindRule); 1096 c->canvasClip(path, newWindRule);
1107 } 1097 }
1108 1098
1109 void CanvasRenderingContext2D::clip(const String& windingRuleString) 1099 void CanvasRenderingContext2D::clip(const String& windingRuleString)
1110 { 1100 {
1111 clipInternal(m_path, windingRuleString); 1101 clipInternal(m_path, windingRuleString);
1112 } 1102 }
1113 1103
1114 void CanvasRenderingContext2D::clip(Path2D* domPath, ExceptionState& exceptionSt ate) 1104 void CanvasRenderingContext2D::clip(Path2D* domPath)
1115 { 1105 {
1116 clip(domPath, "nonzero", exceptionState); 1106 clip(domPath, "nonzero");
1117 } 1107 }
1118 1108
1119 void CanvasRenderingContext2D::clip(Path2D* domPath, const String& windingRuleSt ring, ExceptionState& exceptionState) 1109 void CanvasRenderingContext2D::clip(Path2D* domPath, const String& windingRuleSt ring)
1120 { 1110 {
1121 if (!domPath) {
1122 exceptionState.throwTypeError(ExceptionMessages::argumentNullOrIncorrect Type(1, "Path"));
1123 return;
1124 }
1125
1126 clipInternal(domPath->path(), windingRuleString); 1111 clipInternal(domPath->path(), windingRuleString);
1127 } 1112 }
1128 1113
1129 bool CanvasRenderingContext2D::isPointInPath(const float x, const float y, const String& windingRuleString) 1114 bool CanvasRenderingContext2D::isPointInPath(const float x, const float y, const String& windingRuleString)
1130 { 1115 {
1131 return isPointInPathInternal(m_path, x, y, windingRuleString); 1116 return isPointInPathInternal(m_path, x, y, windingRuleString);
1132 } 1117 }
1133 1118
1134 bool CanvasRenderingContext2D::isPointInPath(Path2D* domPath, const float x, con st float y, ExceptionState& exceptionState) 1119 bool CanvasRenderingContext2D::isPointInPath(Path2D* domPath, const float x, con st float y)
1135 { 1120 {
1136 return isPointInPath(domPath, x, y, "nonzero", exceptionState); 1121 return isPointInPath(domPath, x, y, "nonzero");
1137 } 1122 }
1138 1123
1139 bool CanvasRenderingContext2D::isPointInPath(Path2D* domPath, const float x, con st float y, const String& windingRuleString, ExceptionState& exceptionState) 1124 bool CanvasRenderingContext2D::isPointInPath(Path2D* domPath, const float x, con st float y, const String& windingRuleString)
1140 { 1125 {
1141 if (!domPath) {
1142 exceptionState.throwTypeError(ExceptionMessages::argumentNullOrIncorrect Type(1, "Path"));
1143 return false;
1144 }
1145
1146 return isPointInPathInternal(domPath->path(), x, y, windingRuleString); 1126 return isPointInPathInternal(domPath->path(), x, y, windingRuleString);
1147 } 1127 }
1148 1128
1149 bool CanvasRenderingContext2D::isPointInPathInternal(const Path& path, const flo at x, const float y, const String& windingRuleString) 1129 bool CanvasRenderingContext2D::isPointInPathInternal(const Path& path, const flo at x, const float y, const String& windingRuleString)
1150 { 1130 {
1151 GraphicsContext* c = drawingContext(); 1131 GraphicsContext* c = drawingContext();
1152 if (!c) 1132 if (!c)
1153 return false; 1133 return false;
1154 if (!state().m_invertibleCTM) 1134 if (!state().m_invertibleCTM)
1155 return false; 1135 return false;
1156 1136
1157 FloatPoint point(x, y); 1137 FloatPoint point(x, y);
1158 AffineTransform ctm = state().m_transform; 1138 AffineTransform ctm = state().m_transform;
1159 FloatPoint transformedPoint = ctm.inverse().mapPoint(point); 1139 FloatPoint transformedPoint = ctm.inverse().mapPoint(point);
1160 if (!std::isfinite(transformedPoint.x()) || !std::isfinite(transformedPoint. y())) 1140 if (!std::isfinite(transformedPoint.x()) || !std::isfinite(transformedPoint. y()))
1161 return false; 1141 return false;
1162 1142
1163 WindRule windRule = RULE_NONZERO; 1143 WindRule windRule = RULE_NONZERO;
1164 if (!parseWinding(windingRuleString, windRule)) 1144 if (!parseWinding(windingRuleString, windRule))
1165 return false; 1145 return false;
1166 1146
1167 return path.contains(transformedPoint, windRule); 1147 return path.contains(transformedPoint, windRule);
1168 } 1148 }
1169 1149
1170 bool CanvasRenderingContext2D::isPointInStroke(const float x, const float y) 1150 bool CanvasRenderingContext2D::isPointInStroke(const float x, const float y)
1171 { 1151 {
1172 return isPointInStrokeInternal(m_path, x, y); 1152 return isPointInStrokeInternal(m_path, x, y);
1173 } 1153 }
1174 1154
1175 bool CanvasRenderingContext2D::isPointInStroke(Path2D* domPath, const float x, c onst float y, ExceptionState& exceptionState) 1155 bool CanvasRenderingContext2D::isPointInStroke(Path2D* domPath, const float x, c onst float y)
1176 { 1156 {
1177 if (!domPath) {
1178 exceptionState.throwTypeError(ExceptionMessages::argumentNullOrIncorrect Type(1, "Path"));
1179 return false;
1180 }
1181
1182 return isPointInStrokeInternal(domPath->path(), x, y); 1157 return isPointInStrokeInternal(domPath->path(), x, y);
1183 } 1158 }
1184 1159
1185 bool CanvasRenderingContext2D::isPointInStrokeInternal(const Path& path, const f loat x, const float y) 1160 bool CanvasRenderingContext2D::isPointInStrokeInternal(const Path& path, const f loat x, const float y)
1186 { 1161 {
1187 GraphicsContext* c = drawingContext(); 1162 GraphicsContext* c = drawingContext();
1188 if (!c) 1163 if (!c)
1189 return false; 1164 return false;
1190 if (!state().m_invertibleCTM) 1165 if (!state().m_invertibleCTM)
1191 return false; 1166 return false;
(...skipping 11 matching lines...) Expand all
1203 strokeData.setMiterLimit(miterLimit()); 1178 strokeData.setMiterLimit(miterLimit());
1204 strokeData.setLineDash(getLineDash(), lineDashOffset()); 1179 strokeData.setLineDash(getLineDash(), lineDashOffset());
1205 return path.strokeContains(transformedPoint, strokeData); 1180 return path.strokeContains(transformedPoint, strokeData);
1206 } 1181 }
1207 1182
1208 void CanvasRenderingContext2D::scrollPathIntoView() 1183 void CanvasRenderingContext2D::scrollPathIntoView()
1209 { 1184 {
1210 scrollPathIntoViewInternal(m_path); 1185 scrollPathIntoViewInternal(m_path);
1211 } 1186 }
1212 1187
1213 void CanvasRenderingContext2D::scrollPathIntoView(Path2D* path2d, ExceptionState & exceptionState) 1188 void CanvasRenderingContext2D::scrollPathIntoView(Path2D* path2d)
1214 { 1189 {
1215 if (!path2d) {
1216 exceptionState.throwTypeError(ExceptionMessages::argumentNullOrIncorrect Type(1, "Path2D"));
1217 return;
1218 }
1219
1220 scrollPathIntoViewInternal(path2d->path()); 1190 scrollPathIntoViewInternal(path2d->path());
1221 } 1191 }
1222 1192
1223 void CanvasRenderingContext2D::scrollPathIntoViewInternal(const Path& path) 1193 void CanvasRenderingContext2D::scrollPathIntoViewInternal(const Path& path)
1224 { 1194 {
1225 if (!state().m_invertibleCTM || path.isEmpty()) 1195 if (!state().m_invertibleCTM || path.isEmpty())
1226 return; 1196 return;
1227 1197
1228 canvas()->document().updateLayoutIgnorePendingStylesheets(); 1198 canvas()->document().updateLayoutIgnorePendingStylesheets();
1229 1199
(...skipping 1204 matching lines...) Expand 10 before | Expand all | Expand 10 after
2434 c->setAlphaAsFloat(1.0); 2404 c->setAlphaAsFloat(1.0);
2435 c->clearShadow(); 2405 c->clearShadow();
2436 c->setCompositeOperation(CompositeSourceOver, blink::WebBlendModeNormal); 2406 c->setCompositeOperation(CompositeSourceOver, blink::WebBlendModeNormal);
2437 c->drawFocusRing(path, focusRingWidth, focusRingOutline, focusRingColor); 2407 c->drawFocusRing(path, focusRingWidth, focusRingOutline, focusRingColor);
2438 c->restore(); 2408 c->restore();
2439 2409
2440 didDraw(dirtyRect); 2410 didDraw(dirtyRect);
2441 } 2411 }
2442 2412
2443 } // namespace WebCore 2413 } // namespace WebCore
OLDNEW
« no previous file with comments | « Source/core/html/canvas/CanvasRenderingContext2D.h ('k') | Source/core/html/canvas/CanvasRenderingContext2D.idl » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698