| // Copyright 2016 Google Inc. All Rights Reserved. |
| // |
| // Licensed under the Apache License, Version 2.0 (the "License"); |
| // you may not use this file except in compliance with the License. |
| // You may obtain a copy of the License at |
| // |
| // http://www.apache.org/licenses/LICENSE-2.0 |
| // |
| // Unless required by applicable law or agreed to in writing, software |
| // distributed under the License is distributed on an "AS IS" BASIS, |
| // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| // See the License for the specific language governing permissions and |
| // limitations under the License. |
| #ifndef COBALT_DEBUG_DOM_COMPONENT_H_ |
| #define COBALT_DEBUG_DOM_COMPONENT_H_ |
| |
| #include <string> |
| |
| #include "base/memory/scoped_ptr.h" |
| #include "base/memory/weak_ptr.h" |
| #include "cobalt/debug/component_connector.h" |
| #include "cobalt/debug/json_object.h" |
| #include "cobalt/debug/render_layer.h" |
| #include "cobalt/dom/dom_rect.h" |
| |
| namespace cobalt { |
| namespace debug { |
| |
| class DOMComponent { |
| public: |
| DOMComponent(ComponentConnector* connector, |
| scoped_ptr<RenderLayer> render_layer); |
| |
| private: |
| JSONObject Enable(const JSONObject& params); |
| JSONObject Disable(const JSONObject& params); |
| |
| // Gets a JSON representation of the document object, including its children |
| // to a few levels deep (subsequent levels will be returned via an event |
| // when the client calls |RequestChildNodes|). |
| JSONObject GetDocument(const JSONObject& params); |
| |
| // Requests that the children of a specified node should be returned via |
| // an event. |
| JSONObject RequestChildNodes(const JSONObject& params); |
| |
| // Gets the nodeId corresponding to a remote objectId. Also sends all nodes |
| // on the path between the requested node object and the root (document) as |
| // a series of DOM.setChildNodes events. |
| JSONObject RequestNode(const JSONObject& params); |
| |
| // Creates a Runtime.RemoteObject corresponding to a node. |
| JSONObject ResolveNode(const JSONObject& params); |
| |
| // Highlights a specified node according to highlight parameters. |
| JSONObject HighlightNode(const JSONObject& params); |
| |
| // Hides the node highlighting. |
| JSONObject HideHighlight(const JSONObject& params); |
| |
| // Renders a highlight to the overlay. |
| void RenderHighlight(const scoped_refptr<dom::DOMRect>& bounding_rect, |
| const base::DictionaryValue* highlight_config_value); |
| |
| // Helper object to connect to the debug server, etc. |
| ComponentConnector* connector_; |
| |
| // Render layer owned by this object. |
| scoped_ptr<RenderLayer> render_layer_; |
| }; |
| |
| } // namespace debug |
| } // namespace cobalt |
| |
| #endif // COBALT_DEBUG_DOM_COMPONENT_H_ |