Diff
Modified: trunk/Source/WebCore/ChangeLog (147565 => 147566)
--- trunk/Source/WebCore/ChangeLog 2013-04-03 16:43:32 UTC (rev 147565)
+++ trunk/Source/WebCore/ChangeLog 2013-04-03 17:30:32 UTC (rev 147566)
@@ -1,3 +1,34 @@
+2013-04-03 Antoine Quint <grao...@apple.com>
+
+ Web Inspector: DOM.highlightRect() and DOM.highlightQuad() should allow for page coordinates
+ https://bugs.webkit.org/show_bug.cgi?id=113869
+
+ Add a new "usePageCoordinates" parameter to DOM.highlightRect() and DOM.highlightQuad()
+ allowing to specify that the rect or quad to highlight should be converted to page
+ coordinates instead of using the default viewport coordinates.
+
+ Reviewed by Timothy Hatcher.
+
+ * inspector/Inspector.json:
+ * inspector/InspectorDOMAgent.cpp:
+ (WebCore::InspectorDOMAgent::highlightRect):
+ (WebCore::InspectorDOMAgent::highlightQuad):
+ (WebCore::InspectorDOMAgent::innerHighlightQuad):
+ Store the "usePageCoordinates" parameter obtained from the protocol calls onto the
+ highlight configuration object so that it may be used within the InspectorOverlay.
+
+ * inspector/InspectorDOMAgent.h:
+ (InspectorDOMAgent):
+ * inspector/InspectorOverlay.cpp:
+ (WebCore::InspectorOverlay::highlightQuad):
+ Check the highlight configuration for the "usePageCoordinates" parameter and
+ apply the inverse of the page's scroll offset to the quad if it's true.
+
+ * inspector/InspectorOverlay.h:
+ (HighlightConfig):
+ (WebCore::Highlight::setDataFromConfig):
+ (Highlight):
+
2013-04-03 Kangil Han <kangil....@samsung.com>
Add omitted reference operator of VisiblePosition in AccessibilityObject
Modified: trunk/Source/WebCore/inspector/Inspector.json (147565 => 147566)
--- trunk/Source/WebCore/inspector/Inspector.json 2013-04-03 16:43:32 UTC (rev 147565)
+++ trunk/Source/WebCore/inspector/Inspector.json 2013-04-03 17:30:32 UTC (rev 147566)
@@ -1975,7 +1975,8 @@
{ "name": "width", "type": "integer", "description": "Rectangle width" },
{ "name": "height", "type": "integer", "description": "Rectangle height" },
{ "name": "color", "$ref": "RGBA", "optional": true, "description": "The highlight fill color (default: transparent)." },
- { "name": "outlineColor", "$ref": "RGBA", "optional": true, "description": "The highlight outline color (default: transparent)." }
+ { "name": "outlineColor", "$ref": "RGBA", "optional": true, "description": "The highlight outline color (default: transparent)." },
+ { "name": "usePageCoordinates", "type": "boolean", "optional": true, "description": "Indicates whether the provided parameters are in page coordinates or in viewport coordinates (the default)." }
],
"description": "Highlights given rectangle. Coordinates are absolute with respect to the main frame viewport."
},
@@ -1984,7 +1985,8 @@
"parameters": [
{ "name": "quad", "$ref": "Quad", "description": "Quad to highlight" },
{ "name": "color", "$ref": "RGBA", "optional": true, "description": "The highlight fill color (default: transparent)." },
- { "name": "outlineColor", "$ref": "RGBA", "optional": true, "description": "The highlight outline color (default: transparent)." }
+ { "name": "outlineColor", "$ref": "RGBA", "optional": true, "description": "The highlight outline color (default: transparent)." },
+ { "name": "usePageCoordinates", "type": "boolean", "optional": true, "description": "Indicates whether the provided parameters are in page coordinates or in viewport coordinates (the default)." }
],
"description": "Highlights given quad. Coordinates are absolute with respect to the main frame viewport."
},
Modified: trunk/Source/WebCore/inspector/InspectorDOMAgent.cpp (147565 => 147566)
--- trunk/Source/WebCore/inspector/InspectorDOMAgent.cpp 2013-04-03 16:43:32 UTC (rev 147565)
+++ trunk/Source/WebCore/inspector/InspectorDOMAgent.cpp 2013-04-03 17:30:32 UTC (rev 147566)
@@ -1155,27 +1155,28 @@
setSearchingForNode(errorString, enabled, highlightConfig ? highlightConfig->get() : 0);
}
-void InspectorDOMAgent::highlightRect(ErrorString*, int x, int y, int width, int height, const RefPtr<InspectorObject>* color, const RefPtr<InspectorObject>* outlineColor)
+void InspectorDOMAgent::highlightRect(ErrorString*, int x, int y, int width, int height, const RefPtr<InspectorObject>* color, const RefPtr<InspectorObject>* outlineColor, const bool* usePageCoordinates)
{
OwnPtr<FloatQuad> quad = adoptPtr(new FloatQuad(FloatRect(x, y, width, height)));
- innerHighlightQuad(quad.release(), color, outlineColor);
+ innerHighlightQuad(quad.release(), color, outlineColor, usePageCoordinates);
}
-void InspectorDOMAgent::highlightQuad(ErrorString* errorString, const RefPtr<InspectorArray>& quadArray, const RefPtr<InspectorObject>* color, const RefPtr<InspectorObject>* outlineColor)
+void InspectorDOMAgent::highlightQuad(ErrorString* errorString, const RefPtr<InspectorArray>& quadArray, const RefPtr<InspectorObject>* color, const RefPtr<InspectorObject>* outlineColor, const bool* usePageCoordinates)
{
OwnPtr<FloatQuad> quad = adoptPtr(new FloatQuad());
if (!parseQuad(quadArray, quad.get())) {
*errorString = "Invalid Quad format";
return;
}
- innerHighlightQuad(quad.release(), color, outlineColor);
+ innerHighlightQuad(quad.release(), color, outlineColor, usePageCoordinates);
}
-void InspectorDOMAgent::innerHighlightQuad(PassOwnPtr<FloatQuad> quad, const RefPtr<InspectorObject>* color, const RefPtr<InspectorObject>* outlineColor)
+void InspectorDOMAgent::innerHighlightQuad(PassOwnPtr<FloatQuad> quad, const RefPtr<InspectorObject>* color, const RefPtr<InspectorObject>* outlineColor, const bool* usePageCoordinates)
{
OwnPtr<HighlightConfig> highlightConfig = adoptPtr(new HighlightConfig());
highlightConfig->content = parseColor(color);
highlightConfig->contentOutline = parseColor(outlineColor);
+ highlightConfig->usePageCoordinates = *usePageCoordinates;
m_overlay->highlightQuad(quad, *highlightConfig);
}
Modified: trunk/Source/WebCore/inspector/InspectorDOMAgent.h (147565 => 147566)
--- trunk/Source/WebCore/inspector/InspectorDOMAgent.h 2013-04-03 16:43:32 UTC (rev 147565)
+++ trunk/Source/WebCore/inspector/InspectorDOMAgent.h 2013-04-03 17:30:32 UTC (rev 147566)
@@ -145,8 +145,8 @@
virtual void pushNodeByBackendIdToFrontend(ErrorString*, BackendNodeId, int* nodeId);
virtual void releaseBackendNodeIds(ErrorString*, const String& nodeGroup);
virtual void hideHighlight(ErrorString*);
- virtual void highlightRect(ErrorString*, int x, int y, int width, int height, const RefPtr<InspectorObject>* color, const RefPtr<InspectorObject>* outlineColor);
- virtual void highlightQuad(ErrorString*, const RefPtr<InspectorArray>& quad, const RefPtr<InspectorObject>* color, const RefPtr<InspectorObject>* outlineColor);
+ virtual void highlightRect(ErrorString*, int x, int y, int width, int height, const RefPtr<InspectorObject>* color, const RefPtr<InspectorObject>* outlineColor, const bool* usePageCoordinates);
+ virtual void highlightQuad(ErrorString*, const RefPtr<InspectorArray>& quad, const RefPtr<InspectorObject>* color, const RefPtr<InspectorObject>* outlineColor, const bool* usePageCoordinates);
virtual void highlightNode(ErrorString*, const RefPtr<InspectorObject>& highlightConfig, const int* nodeId, const String* objectId);
virtual void highlightFrame(ErrorString*, const String& frameId, const RefPtr<InspectorObject>* color, const RefPtr<InspectorObject>* outlineColor);
@@ -241,7 +241,7 @@
void discardBindings();
- void innerHighlightQuad(PassOwnPtr<FloatQuad>, const RefPtr<InspectorObject>* color, const RefPtr<InspectorObject>* outlineColor);
+ void innerHighlightQuad(PassOwnPtr<FloatQuad>, const RefPtr<InspectorObject>* color, const RefPtr<InspectorObject>* outlineColor, const bool* usePageCoordinates);
InspectorPageAgent* m_pageAgent;
InjectedScriptManager* m_injectedScriptManager;
Modified: trunk/Source/WebCore/inspector/InspectorOverlay.cpp (147565 => 147566)
--- trunk/Source/WebCore/inspector/InspectorOverlay.cpp 2013-04-03 16:43:32 UTC (rev 147565)
+++ trunk/Source/WebCore/inspector/InspectorOverlay.cpp 2013-04-03 17:30:32 UTC (rev 147566)
@@ -259,6 +259,9 @@
void InspectorOverlay::highlightQuad(PassOwnPtr<FloatQuad> quad, const HighlightConfig& highlightConfig)
{
+ if (m_quadHighlightConfig.usePageCoordinates)
+ *quad -= m_page->mainFrame()->view()->scrollOffset();
+
m_quadHighlightConfig = highlightConfig;
m_highlightQuad = quad;
update();
Modified: trunk/Source/WebCore/inspector/InspectorOverlay.h (147565 => 147566)
--- trunk/Source/WebCore/inspector/InspectorOverlay.h 2013-04-03 16:43:32 UTC (rev 147565)
+++ trunk/Source/WebCore/inspector/InspectorOverlay.h 2013-04-03 17:30:32 UTC (rev 147566)
@@ -59,6 +59,7 @@
Color margin;
bool showInfo;
bool showRulers;
+ bool usePageCoordinates;
};
enum HighlightType {
@@ -81,6 +82,7 @@
borderColor = highlightConfig.border;
marginColor = highlightConfig.margin;
showRulers = highlightConfig.showRulers;
+ usePageCoordinates = highlightConfig.usePageCoordinates;
}
Color contentColor;
@@ -94,6 +96,7 @@
HighlightType type;
Vector<FloatQuad> quads;
bool showRulers;
+ bool usePageCoordinates;
};
class InspectorOverlay {