Chromium Code Reviews| Index: Source/core/inspector/InspectorOverlayPage.html |
| diff --git a/Source/core/inspector/InspectorOverlayPage.html b/Source/core/inspector/InspectorOverlayPage.html |
| index d36839592656bb4ae242f14e3b91ca88ba86d1b4..c78c19638ebae4268b5562da720c705df4198482 100644 |
| --- a/Source/core/inspector/InspectorOverlayPage.html |
| +++ b/Source/core/inspector/InspectorOverlayPage.html |
| @@ -156,6 +156,9 @@ const lightGridColor = "rgba(0,0,0,0.2)"; |
| const darkGridColor = "rgba(0,0,0,0.7)"; |
| const transparentColor = "rgba(0, 0, 0, 0)"; |
| const gridBackgroundColor = "rgba(255, 255, 255, 0.8)"; |
| +//CSS shapes |
| +const shapeHighlightColor = "rgba(96, 82, 127, 0.8)"; |
| +const shapeMarginHighlightColor = "rgba(96, 82, 127, 0.6)"; |
| function drawPausedInDebuggerMessage(message) |
| { |
| @@ -336,6 +339,56 @@ function drawOutlinedQuadWithClip(quad, clipQuad, fillColor) |
| context.restore(); |
| } |
| +function pathCommand(context, commands, name, index, length) { |
|
pfeldman
2014/04/15 11:59:09
{ on the next line
Habib Virji
2014/04/17 15:43:47
Done.
|
| + context[name].apply(context, commands.slice(index + 1, index + length + 1)); |
|
pfeldman
2014/04/15 11:59:09
We plan on annotating this code with JSDoc, reflec
|
| + return index + length + 1; |
| +} |
| + |
| +function drawPath(context, commands, fillColor, outlineColor) |
| +{ |
| + context.save(); |
| + context.beginPath(); |
| + |
| + var commandsIndex = 0; |
| + var commandsLength = commands.length; |
| + while(commandsIndex < commandsLength) { |
| + switch(commands[commandsIndex]) { |
| + // 1 point |
| + case 'M': |
|
pfeldman
2014/04/15 11:59:09
We use double quotes for strings.
|
| + commandsIndex = pathCommand(context, commands, "moveTo", commandsIndex, 2); |
|
pfeldman
2014/04/15 11:59:09
Lets just call context.moveTo(...) and increment i
Habib Virji
2014/04/17 15:43:47
Done.
|
| + break; |
| + // 1 point |
| + case 'L': |
| + commandsIndex = pathCommand(context, commands, "lineTo", commandsIndex, 2); |
| + break; |
| + // 3 points |
| + case 'C': |
| + commandsIndex = pathCommand(context, commands, "bezierCurveTo", commandsIndex, 6); |
| + break; |
| + // 2 points |
| + case 'Q': |
| + commandsIndex = pathCommand(context, commands, "quadraticCurveTo", commandsIndex, 2); |
| + break; |
| + // 0 points |
| + case 'Z': |
| + commandsIndex = pathCommand(context, commands, "closePath", commandsIndex, 0); |
| + break; |
| + default: |
| + commandsIndex++; |
| + } |
| + } |
| + context.closePath(); |
| + context.fillStyle = fillColor; |
| + context.fill(); |
| + |
| + if (outlineColor) { |
| + context.lineWidth = 2; |
| + context.strokeStyle = outlineColor; |
| + context.stroke(); |
| + } |
| + |
| + context.restore(); |
| +} |
| function drawUnderlyingQuad(quad, fillColor) |
| { |
| context.save(); |
| @@ -544,6 +597,17 @@ function _drawRulers(highlight, rulerAtRight, rulerAtBottom) |
| context.restore(); |
| } |
| +function _drawShapeHighlight(shapeInfo) { |
|
pfeldman
2014/04/15 11:59:09
{ on the next line
Habib Virji
2014/04/17 15:43:47
Done.
|
| + if (shapeInfo.marginShape) |
| + drawPath(context, shapeInfo.marginShape, shapeMarginHighlightColor); |
| + |
| + if (shapeInfo.shape) |
| + drawPath(context, shapeInfo.shape, shapeHighlightColor); |
| + |
| + if (!(shapeInfo.shape || shapeInfo.marginShape)) |
| + drawOutlinedQuad(shapeInfo.bounds, shapeHighlightColor, shapeHighlightColor); |
| +} |
| + |
| function drawNodeHighlight(highlight) |
| { |
| { |
| @@ -615,6 +679,9 @@ function drawNodeHighlight(highlight) |
| _drawGrid(rulerAtRight, rulerAtBottom); |
| _drawRulers(highlight, rulerAtRight, rulerAtBottom); |
| } |
| + if (highlight.elementInfo && highlight.elementInfo.shapeOutsideInfo) |
| + _drawShapeHighlight(highlight.elementInfo.shapeOutsideInfo); |
| + |
| _drawElementTitle(highlight); |
| context.restore(); |