Changeset 147566 in webkit


Ignore:
Timestamp:
Apr 3, 2013 10:30:32 AM (11 years ago)
Author:
Antoine Quint
Message:

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):

Location:
trunk/Source/WebCore
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r147565 r147566  
     12013-04-03  Antoine Quint  <graouts@apple.com>
     2
     3        Web Inspector: DOM.highlightRect() and DOM.highlightQuad() should allow for page coordinates
     4        https://bugs.webkit.org/show_bug.cgi?id=113869
     5
     6        Add a new "usePageCoordinates" parameter to DOM.highlightRect() and DOM.highlightQuad()
     7        allowing to specify that the rect or quad to highlight should be converted to page
     8        coordinates instead of using the default viewport coordinates.
     9
     10        Reviewed by Timothy Hatcher.
     11
     12        * inspector/Inspector.json:
     13        * inspector/InspectorDOMAgent.cpp:
     14        (WebCore::InspectorDOMAgent::highlightRect):
     15        (WebCore::InspectorDOMAgent::highlightQuad):
     16        (WebCore::InspectorDOMAgent::innerHighlightQuad):
     17        Store the "usePageCoordinates" parameter obtained from the protocol calls onto the
     18        highlight configuration object so that it may be used within the InspectorOverlay.
     19
     20        * inspector/InspectorDOMAgent.h:
     21        (InspectorDOMAgent):
     22        * inspector/InspectorOverlay.cpp:
     23        (WebCore::InspectorOverlay::highlightQuad):
     24        Check the highlight configuration for the "usePageCoordinates" parameter and
     25        apply the inverse of the page's scroll offset to the quad if it's true.
     26
     27        * inspector/InspectorOverlay.h:
     28        (HighlightConfig):
     29        (WebCore::Highlight::setDataFromConfig):
     30        (Highlight):
     31
    1322013-04-03  Kangil Han  <kangil.han@samsung.com>
    233
  • trunk/Source/WebCore/inspector/Inspector.json

    r147538 r147566  
    19761976                    { "name": "height", "type": "integer", "description": "Rectangle height" },
    19771977                    { "name": "color", "$ref": "RGBA", "optional": true, "description": "The highlight fill color (default: transparent)." },
    1978                     { "name": "outlineColor", "$ref": "RGBA", "optional": true, "description": "The highlight outline color (default: transparent)." }
     1978                    { "name": "outlineColor", "$ref": "RGBA", "optional": true, "description": "The highlight outline color (default: transparent)." },
     1979                    { "name": "usePageCoordinates", "type": "boolean", "optional": true, "description": "Indicates whether the provided parameters are in page coordinates or in viewport coordinates (the default)." }
    19791980                ],
    19801981                "description": "Highlights given rectangle. Coordinates are absolute with respect to the main frame viewport."
     
    19851986                    { "name": "quad", "$ref": "Quad", "description": "Quad to highlight" },
    19861987                    { "name": "color", "$ref": "RGBA", "optional": true, "description": "The highlight fill color (default: transparent)." },
    1987                     { "name": "outlineColor", "$ref": "RGBA", "optional": true, "description": "The highlight outline color (default: transparent)." }
     1988                    { "name": "outlineColor", "$ref": "RGBA", "optional": true, "description": "The highlight outline color (default: transparent)." },
     1989                    { "name": "usePageCoordinates", "type": "boolean", "optional": true, "description": "Indicates whether the provided parameters are in page coordinates or in viewport coordinates (the default)." }
    19881990                ],
    19891991                "description": "Highlights given quad. Coordinates are absolute with respect to the main frame viewport."
  • trunk/Source/WebCore/inspector/InspectorDOMAgent.cpp

    r147428 r147566  
    11561156}
    11571157
    1158 void InspectorDOMAgent::highlightRect(ErrorString*, int x, int y, int width, int height, const RefPtr<InspectorObject>* color, const RefPtr<InspectorObject>* outlineColor)
     1158void InspectorDOMAgent::highlightRect(ErrorString*, int x, int y, int width, int height, const RefPtr<InspectorObject>* color, const RefPtr<InspectorObject>* outlineColor, const bool* usePageCoordinates)
    11591159{
    11601160    OwnPtr<FloatQuad> quad = adoptPtr(new FloatQuad(FloatRect(x, y, width, height)));
    1161     innerHighlightQuad(quad.release(), color, outlineColor);
    1162 }
    1163 
    1164 void InspectorDOMAgent::highlightQuad(ErrorString* errorString, const RefPtr<InspectorArray>& quadArray, const RefPtr<InspectorObject>* color, const RefPtr<InspectorObject>* outlineColor)
     1161    innerHighlightQuad(quad.release(), color, outlineColor, usePageCoordinates);
     1162}
     1163
     1164void InspectorDOMAgent::highlightQuad(ErrorString* errorString, const RefPtr<InspectorArray>& quadArray, const RefPtr<InspectorObject>* color, const RefPtr<InspectorObject>* outlineColor, const bool* usePageCoordinates)
    11651165{
    11661166    OwnPtr<FloatQuad> quad = adoptPtr(new FloatQuad());
     
    11691169        return;
    11701170    }
    1171     innerHighlightQuad(quad.release(), color, outlineColor);
    1172 }
    1173 
    1174 void InspectorDOMAgent::innerHighlightQuad(PassOwnPtr<FloatQuad> quad, const RefPtr<InspectorObject>* color, const RefPtr<InspectorObject>* outlineColor)
     1171    innerHighlightQuad(quad.release(), color, outlineColor, usePageCoordinates);
     1172}
     1173
     1174void InspectorDOMAgent::innerHighlightQuad(PassOwnPtr<FloatQuad> quad, const RefPtr<InspectorObject>* color, const RefPtr<InspectorObject>* outlineColor, const bool* usePageCoordinates)
    11751175{
    11761176    OwnPtr<HighlightConfig> highlightConfig = adoptPtr(new HighlightConfig());
    11771177    highlightConfig->content = parseColor(color);
    11781178    highlightConfig->contentOutline = parseColor(outlineColor);
     1179    highlightConfig->usePageCoordinates = *usePageCoordinates;
    11791180    m_overlay->highlightQuad(quad, *highlightConfig);
    11801181}
  • trunk/Source/WebCore/inspector/InspectorDOMAgent.h

    r147428 r147566  
    146146    virtual void releaseBackendNodeIds(ErrorString*, const String& nodeGroup);
    147147    virtual void hideHighlight(ErrorString*);
    148     virtual void highlightRect(ErrorString*, int x, int y, int width, int height, const RefPtr<InspectorObject>* color, const RefPtr<InspectorObject>* outlineColor);
    149     virtual void highlightQuad(ErrorString*, const RefPtr<InspectorArray>& quad, const RefPtr<InspectorObject>* color, const RefPtr<InspectorObject>* outlineColor);
     148    virtual void highlightRect(ErrorString*, int x, int y, int width, int height, const RefPtr<InspectorObject>* color, const RefPtr<InspectorObject>* outlineColor, const bool* usePageCoordinates);
     149    virtual void highlightQuad(ErrorString*, const RefPtr<InspectorArray>& quad, const RefPtr<InspectorObject>* color, const RefPtr<InspectorObject>* outlineColor, const bool* usePageCoordinates);
    150150    virtual void highlightNode(ErrorString*, const RefPtr<InspectorObject>& highlightConfig, const int* nodeId, const String* objectId);
    151151    virtual void highlightFrame(ErrorString*, const String& frameId, const RefPtr<InspectorObject>* color, const RefPtr<InspectorObject>* outlineColor);
     
    242242    void discardBindings();
    243243
    244     void innerHighlightQuad(PassOwnPtr<FloatQuad>, const RefPtr<InspectorObject>* color, const RefPtr<InspectorObject>* outlineColor);
     244    void innerHighlightQuad(PassOwnPtr<FloatQuad>, const RefPtr<InspectorObject>* color, const RefPtr<InspectorObject>* outlineColor, const bool* usePageCoordinates);
    245245
    246246    InspectorPageAgent* m_pageAgent;
  • trunk/Source/WebCore/inspector/InspectorOverlay.cpp

    r147202 r147566  
    260260void InspectorOverlay::highlightQuad(PassOwnPtr<FloatQuad> quad, const HighlightConfig& highlightConfig)
    261261{
     262    if (m_quadHighlightConfig.usePageCoordinates)
     263        *quad -= m_page->mainFrame()->view()->scrollOffset();
     264
    262265    m_quadHighlightConfig = highlightConfig;
    263266    m_highlightQuad = quad;
  • trunk/Source/WebCore/inspector/InspectorOverlay.h

    r147202 r147566  
    6060    bool showInfo;
    6161    bool showRulers;
     62    bool usePageCoordinates;
    6263};
    6364
     
    8283        marginColor = highlightConfig.margin;
    8384        showRulers = highlightConfig.showRulers;
     85        usePageCoordinates = highlightConfig.usePageCoordinates;
    8486    }
    8587
     
    9597    Vector<FloatQuad> quads;
    9698    bool showRulers;
     99    bool usePageCoordinates;
    97100};
    98101
Note: See TracChangeset for help on using the changeset viewer.