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

Unified Diff: third_party/WebKit/Source/core/inspector/InspectorDOMAgent.cpp

Issue 1702673002: DevTools: migrate remote debugging protocol generators to jinja2. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 10 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 side-by-side diff with in-line comments
Download patch
Index: third_party/WebKit/Source/core/inspector/InspectorDOMAgent.cpp
diff --git a/third_party/WebKit/Source/core/inspector/InspectorDOMAgent.cpp b/third_party/WebKit/Source/core/inspector/InspectorDOMAgent.cpp
index 6daf03ca9882992ef9ab8dc2195382b207123818..f00cad0c5f97f3c2a676bab76c7c54715832d780 100644
--- a/third_party/WebKit/Source/core/inspector/InspectorDOMAgent.cpp
+++ b/third_party/WebKit/Source/core/inspector/InspectorDOMAgent.cpp
@@ -97,25 +97,21 @@ namespace {
const size_t maxTextSize = 10000;
const UChar ellipsisUChar[] = { 0x2026, 0 };
-Color parseColor(const RefPtr<JSONObject>* colorObject)
+Color parseColor(PassOwnPtr<protocol::DOM::RGBA> rgba)
{
- if (!colorObject || !(*colorObject))
+ if (!rgba)
return Color::transparent;
- int r;
- int g;
- int b;
- bool success = (*colorObject)->getNumber("r", &r);
- success |= (*colorObject)->getNumber("g", &g);
- success |= (*colorObject)->getNumber("b", &b);
- if (!success)
+ if (!rgba->hasR() && !rgba->hasG() && !rgba->hasB())
return Color::transparent;
- double a;
- success = (*colorObject)->getNumber("a", &a);
- if (!success)
+ int r = rgba->getR();
+ int g = rgba->getG();
+ int b = rgba->getB();
+ if (!rgba->hasA())
return Color(r, g, b);
+ double a = rgba->getA(1);
// Clamp alpha to the [0..1] range.
if (a < 0)
a = 0;
@@ -125,29 +121,15 @@ Color parseColor(const RefPtr<JSONObject>* colorObject)
return Color(r, g, b, static_cast<int>(a * 255));
}
-Color parseConfigColor(const String& fieldName, JSONObject* configObject)
+bool parseQuad(PassOwnPtr<protocol::Array<double>> quadArray, FloatQuad* quad)
{
- const RefPtr<JSONObject> colorObject = configObject->getObject(fieldName);
- return parseColor(&colorObject);
-}
-
-bool parseQuad(const RefPtr<JSONArray>& quadArray, FloatQuad* quad)
-{
- if (!quadArray)
- return false;
const size_t coordinatesInQuad = 8;
- double coordinates[coordinatesInQuad];
- if (quadArray->length() != coordinatesInQuad)
+ if (!quadArray || quadArray->length() != coordinatesInQuad)
return false;
- for (size_t i = 0; i < coordinatesInQuad; ++i) {
- if (!quadArray->get(i)->asNumber(coordinates + i))
- return false;
- }
- quad->setP1(FloatPoint(coordinates[0], coordinates[1]));
- quad->setP2(FloatPoint(coordinates[2], coordinates[3]));
- quad->setP3(FloatPoint(coordinates[4], coordinates[5]));
- quad->setP4(FloatPoint(coordinates[6], coordinates[7]));
-
+ quad->setP1(FloatPoint(quadArray->get(0), quadArray->get(1)));
+ quad->setP2(FloatPoint(quadArray->get(2), quadArray->get(3)));
+ quad->setP3(FloatPoint(quadArray->get(4), quadArray->get(5)));
+ quad->setP4(FloatPoint(quadArray->get(6), quadArray->get(7)));
return true;
}
@@ -215,53 +197,53 @@ String InspectorDOMAgent::toErrorString(ExceptionState& exceptionState)
return "";
}
-bool InspectorDOMAgent::getPseudoElementType(PseudoId pseudoId, protocol::TypeBuilder::DOM::PseudoType::Enum* type)
+bool InspectorDOMAgent::getPseudoElementType(PseudoId pseudoId, protocol::DOM::PseudoType* type)
{
switch (pseudoId) {
case FIRST_LINE:
- *type = protocol::TypeBuilder::DOM::PseudoType::First_line;
+ *type = protocol::DOM::PseudoTypeEnum::FirstLine;
return true;
case FIRST_LETTER:
- *type = protocol::TypeBuilder::DOM::PseudoType::First_letter;
+ *type = protocol::DOM::PseudoTypeEnum::FirstLetter;
return true;
case BEFORE:
- *type = protocol::TypeBuilder::DOM::PseudoType::Before;
+ *type = protocol::DOM::PseudoTypeEnum::Before;
return true;
case AFTER:
- *type = protocol::TypeBuilder::DOM::PseudoType::After;
+ *type = protocol::DOM::PseudoTypeEnum::After;
return true;
case BACKDROP:
- *type = protocol::TypeBuilder::DOM::PseudoType::Backdrop;
+ *type = protocol::DOM::PseudoTypeEnum::Backdrop;
return true;
case SELECTION:
- *type = protocol::TypeBuilder::DOM::PseudoType::Selection;
+ *type = protocol::DOM::PseudoTypeEnum::Selection;
return true;
case FIRST_LINE_INHERITED:
- *type = protocol::TypeBuilder::DOM::PseudoType::First_line_inherited;
+ *type = protocol::DOM::PseudoTypeEnum::FirstLineInherited;
return true;
case SCROLLBAR:
- *type = protocol::TypeBuilder::DOM::PseudoType::Scrollbar;
+ *type = protocol::DOM::PseudoTypeEnum::Scrollbar;
return true;
case SCROLLBAR_THUMB:
- *type = protocol::TypeBuilder::DOM::PseudoType::Scrollbar_thumb;
+ *type = protocol::DOM::PseudoTypeEnum::ScrollbarThumb;
return true;
case SCROLLBAR_BUTTON:
- *type = protocol::TypeBuilder::DOM::PseudoType::Scrollbar_button;
+ *type = protocol::DOM::PseudoTypeEnum::ScrollbarButton;
return true;
case SCROLLBAR_TRACK:
- *type = protocol::TypeBuilder::DOM::PseudoType::Scrollbar_track;
+ *type = protocol::DOM::PseudoTypeEnum::ScrollbarTrack;
return true;
case SCROLLBAR_TRACK_PIECE:
- *type = protocol::TypeBuilder::DOM::PseudoType::Scrollbar_track_piece;
+ *type = protocol::DOM::PseudoTypeEnum::ScrollbarTrackPiece;
return true;
case SCROLLBAR_CORNER:
- *type = protocol::TypeBuilder::DOM::PseudoType::Scrollbar_corner;
+ *type = protocol::DOM::PseudoTypeEnum::ScrollbarCorner;
return true;
case RESIZER:
- *type = protocol::TypeBuilder::DOM::PseudoType::Resizer;
+ *type = protocol::DOM::PseudoTypeEnum::Resizer;
return true;
case INPUT_LIST_BUTTON:
- *type = protocol::TypeBuilder::DOM::PseudoType::Input_list_button;
+ *type = protocol::DOM::PseudoTypeEnum::InputListButton;
return true;
default:
return false;
@@ -544,7 +526,7 @@ void InspectorDOMAgent::disable(ErrorString* errorString)
setDocument(nullptr);
}
-void InspectorDOMAgent::getDocument(ErrorString* errorString, RefPtr<protocol::TypeBuilder::DOM::Node>& root)
+void InspectorDOMAgent::getDocument(ErrorString* errorString, OwnPtr<protocol::DOM::Node>* root)
{
// Backward compatibility. Mark agent as enabled when it requests document.
if (!enabled())
@@ -557,7 +539,7 @@ void InspectorDOMAgent::getDocument(ErrorString* errorString, RefPtr<protocol::T
discardFrontendBindings();
- root = buildObjectForNode(m_document.get(), 2, m_documentNodeToIdMap.get());
+ *root = buildObjectForNode(m_document.get(), 2, m_documentNodeToIdMap.get());
}
void InspectorDOMAgent::pushChildNodesToFrontend(int nodeId, int depth)
@@ -583,7 +565,7 @@ void InspectorDOMAgent::pushChildNodesToFrontend(int nodeId, int depth)
return;
}
- RefPtr<protocol::TypeBuilder::Array<protocol::TypeBuilder::DOM::Node>> children = buildArrayForContainerChildren(node, depth, nodeMap);
+ OwnPtr<protocol::Array<protocol::DOM::Node>> children = buildArrayForContainerChildren(node, depth, nodeMap);
frontend()->setChildNodes(nodeId, children.release());
}
@@ -613,20 +595,15 @@ Node* InspectorDOMAgent::nodeForId(int id)
return nullptr;
}
-void InspectorDOMAgent::requestChildNodes(ErrorString* errorString, int nodeId, const int* depth)
+void InspectorDOMAgent::requestChildNodes(ErrorString* errorString, int nodeId, const OptionalValue<int>& depth)
{
- int sanitizedDepth;
-
- if (!depth)
- sanitizedDepth = 1;
- else if (*depth == -1)
- sanitizedDepth = INT_MAX;
- else if (*depth > 0)
- sanitizedDepth = *depth;
- else {
+ int sanitizedDepth = depth.get(1);
+ if (sanitizedDepth == 0 || sanitizedDepth < -1) {
*errorString = "Please provide a positive integer as a depth or -1 for entire subtree";
return;
}
+ if (sanitizedDepth == -1)
+ sanitizedDepth = INT_MAX;
pushChildNodesToFrontend(nodeId, sanitizedDepth);
}
@@ -649,7 +626,7 @@ void InspectorDOMAgent::querySelector(ErrorString* errorString, int nodeId, cons
*elementId = pushNodePathToFrontend(element.get());
}
-void InspectorDOMAgent::querySelectorAll(ErrorString* errorString, int nodeId, const String& selectors, RefPtr<protocol::TypeBuilder::Array<int>>& result)
+void InspectorDOMAgent::querySelectorAll(ErrorString* errorString, int nodeId, const String& selectors, OwnPtr<protocol::Array<int>>* result)
{
Node* node = assertNode(errorString, nodeId);
if (!node || !node->isContainerNode())
@@ -662,10 +639,10 @@ void InspectorDOMAgent::querySelectorAll(ErrorString* errorString, int nodeId, c
return;
}
- result = protocol::TypeBuilder::Array<int>::create();
+ *result = protocol::Array<int>::create();
for (unsigned i = 0; i < elements->length(); ++i)
- result->addItem(pushNodePathToFrontend(elements->item(i)));
+ (*result)->addItem(pushNodePathToFrontend(elements->item(i)));
}
int InspectorDOMAgent::pushNodePathToFrontend(Node* nodeToPush, NodeToIdMap* nodeMap)
@@ -720,9 +697,9 @@ int InspectorDOMAgent::pushNodePathToFrontend(Node* nodeToPush)
OwnPtrWillBeRawPtr<NodeToIdMap> newMap = adoptPtrWillBeNoop(new NodeToIdMap);
NodeToIdMap* danglingMap = newMap.get();
m_danglingNodeToIdMaps.append(newMap.release());
- RefPtr<protocol::TypeBuilder::Array<protocol::TypeBuilder::DOM::Node>> children = protocol::TypeBuilder::Array<protocol::TypeBuilder::DOM::Node>::create();
+ OwnPtr<protocol::Array<protocol::DOM::Node>> children = protocol::Array<protocol::DOM::Node>::create();
children->addItem(buildObjectForNode(node, 0, danglingMap));
- frontend()->setChildNodes(0, children);
+ frontend()->setChildNodes(0, children.release());
return pushNodePathToFrontend(nodeToPush, danglingMap);
}
@@ -741,7 +718,7 @@ void InspectorDOMAgent::setAttributeValue(ErrorString* errorString, int elementI
m_domEditor->setAttribute(element, name, value, errorString);
}
-void InspectorDOMAgent::setAttributesAsText(ErrorString* errorString, int elementId, const String& text, const String* const name)
+void InspectorDOMAgent::setAttributesAsText(ErrorString* errorString, int elementId, const String& text, const OptionalValue<String>& name)
{
Element* element = assertEditableElement(errorString, elementId);
if (!element)
@@ -763,10 +740,10 @@ void InspectorDOMAgent::setAttributesAsText(ErrorString* errorString, int elemen
return;
}
- String caseAdjustedName = name ? (shouldIgnoreCase ? name->lower() : *name) : String();
+ String caseAdjustedName = shouldIgnoreCase ? name.get("").lower() : name.get("");
AttributeCollection attributes = parsedElement->attributes();
- if (attributes.isEmpty() && name) {
+ if (attributes.isEmpty() && name.hasValue()) {
m_domEditor->removeAttribute(element, caseAdjustedName, errorString);
return;
}
@@ -777,12 +754,12 @@ void InspectorDOMAgent::setAttributesAsText(ErrorString* errorString, int elemen
String attributeName = attribute.name().toString();
if (shouldIgnoreCase)
attributeName = attributeName.lower();
- foundOriginalAttribute |= name && attributeName == caseAdjustedName;
+ foundOriginalAttribute |= name.hasValue() && attributeName == caseAdjustedName;
if (!m_domEditor->setAttribute(element, attributeName, attribute.value(), errorString))
return;
}
- if (!foundOriginalAttribute && name && !name->stripWhiteSpace().isEmpty())
+ if (!foundOriginalAttribute && name.hasValue() && !name.get().stripWhiteSpace().isEmpty())
m_domEditor->removeAttribute(element, caseAdjustedName, errorString);
}
@@ -939,14 +916,14 @@ static Node* nextNodeWithShadowDOMInMind(const Node& current, const Node* stayWi
return nullptr;
}
-void InspectorDOMAgent::performSearch(ErrorString*, const String& whitespaceTrimmedQuery, const bool* optionalIncludeUserAgentShadowDOM, String* searchId, int* resultCount)
+void InspectorDOMAgent::performSearch(ErrorString*, const String& whitespaceTrimmedQuery, const OptionalValue<bool>& optionalIncludeUserAgentShadowDOM, String* searchId, int* resultCount)
{
// FIXME: Few things are missing here:
// 1) Search works with node granularity - number of matches within node is not calculated.
// 2) There is no need to push all search results to the front-end at a time, pushing next / previous result
// is sufficient.
- bool includeUserAgentShadowDOM = optionalIncludeUserAgentShadowDOM ? *optionalIncludeUserAgentShadowDOM : false;
+ bool includeUserAgentShadowDOM = optionalIncludeUserAgentShadowDOM.get(false);
unsigned queryLength = whitespaceTrimmedQuery.length();
bool startTagFound = !whitespaceTrimmedQuery.find('<');
@@ -1060,7 +1037,7 @@ void InspectorDOMAgent::performSearch(ErrorString*, const String& whitespaceTrim
*resultCount = resultsIt->size();
}
-void InspectorDOMAgent::getSearchResults(ErrorString* errorString, const String& searchId, int fromIndex, int toIndex, RefPtr<protocol::TypeBuilder::Array<int>>& nodeIds)
+void InspectorDOMAgent::getSearchResults(ErrorString* errorString, const String& searchId, int fromIndex, int toIndex, OwnPtr<protocol::Array<int>>* nodeIds)
{
SearchResults::iterator it = m_searchResults.find(searchId);
if (it == m_searchResults.end()) {
@@ -1074,9 +1051,9 @@ void InspectorDOMAgent::getSearchResults(ErrorString* errorString, const String&
return;
}
- nodeIds = protocol::TypeBuilder::Array<int>::create();
+ *nodeIds = protocol::Array<int>::create();
for (int i = fromIndex; i < toIndex; ++i)
- nodeIds->addItem(pushNodePathToFrontend((it->value)[i].get()));
+ (*nodeIds)->addItem(pushNodePathToFrontend((it->value)[i].get()));
}
void InspectorDOMAgent::discardSearchResults(ErrorString*, const String& searchId)
@@ -1119,13 +1096,13 @@ void InspectorDOMAgent::nodeHighlightedInOverlay(Node* node)
frontend()->nodeHighlightRequested(nodeId);
}
-void InspectorDOMAgent::setSearchingForNode(ErrorString* errorString, SearchMode searchMode, JSONObject* highlightInspectorObject)
+void InspectorDOMAgent::setSearchingForNode(ErrorString* errorString, SearchMode searchMode, PassOwnPtr<protocol::DOM::HighlightConfig> highlightInspectorObject)
{
if (m_client)
m_client->setInspectMode(searchMode, searchMode != NotSearching ? highlightConfigFromInspectorObject(errorString, highlightInspectorObject) : nullptr);
}
-PassOwnPtr<InspectorHighlightConfig> InspectorDOMAgent::highlightConfigFromInspectorObject(ErrorString* errorString, JSONObject* highlightInspectorObject)
+PassOwnPtr<InspectorHighlightConfig> InspectorDOMAgent::highlightConfigFromInspectorObject(ErrorString* errorString, PassOwnPtr<protocol::DOM::HighlightConfig> highlightInspectorObject)
{
if (!highlightInspectorObject) {
*errorString = "Internal error: highlight configuration parameter is missing";
@@ -1133,43 +1110,32 @@ PassOwnPtr<InspectorHighlightConfig> InspectorDOMAgent::highlightConfigFromInspe
}
OwnPtr<InspectorHighlightConfig> highlightConfig = adoptPtr(new InspectorHighlightConfig());
- bool showInfo = false; // Default: false (do not show a tooltip).
- highlightInspectorObject->getBoolean("showInfo", &showInfo);
- highlightConfig->showInfo = showInfo;
- bool showRulers = false; // Default: false (do not show rulers).
- highlightInspectorObject->getBoolean("showRulers", &showRulers);
- highlightConfig->showRulers = showRulers;
- bool showExtensionLines = false; // Default: false (do not show extension lines).
- highlightInspectorObject->getBoolean("showExtensionLines", &showExtensionLines);
- highlightConfig->showExtensionLines = showExtensionLines;
- bool displayAsMaterial = false;
- highlightInspectorObject->getBoolean("displayAsMaterial", &displayAsMaterial);
- highlightConfig->displayAsMaterial = displayAsMaterial;
- highlightConfig->content = parseConfigColor("contentColor", highlightInspectorObject);
- highlightConfig->contentOutline = parseConfigColor("contentOutlineColor", highlightInspectorObject);
- highlightConfig->padding = parseConfigColor("paddingColor", highlightInspectorObject);
- highlightConfig->border = parseConfigColor("borderColor", highlightInspectorObject);
- highlightConfig->margin = parseConfigColor("marginColor", highlightInspectorObject);
- highlightConfig->eventTarget = parseConfigColor("eventTargetColor", highlightInspectorObject);
- highlightConfig->shape = parseConfigColor("shapeColor", highlightInspectorObject);
- highlightConfig->shapeMargin = parseConfigColor("shapeMarginColor", highlightInspectorObject);
- String selectorList;
- highlightInspectorObject->getString("selectorList", &selectorList);
- highlightConfig->selectorList = selectorList;
+ highlightConfig->showInfo = highlightInspectorObject->getShowInfo(false);
+ highlightConfig->showRulers = highlightInspectorObject->getShowRulers(false);
+ highlightConfig->showExtensionLines = highlightInspectorObject->getShowExtensionLines(false);
+ highlightConfig->displayAsMaterial = highlightInspectorObject->getDisplayAsMaterial(false);
+ highlightConfig->content = parseColor(highlightInspectorObject->getContentColor(nullptr));
+ highlightConfig->padding = parseColor(highlightInspectorObject->getPaddingColor(nullptr));
+ highlightConfig->border = parseColor(highlightInspectorObject->getBorderColor(nullptr));
+ highlightConfig->margin = parseColor(highlightInspectorObject->getMarginColor(nullptr));
+ highlightConfig->eventTarget = parseColor(highlightInspectorObject->getEventTargetColor(nullptr));
+ highlightConfig->shape = parseColor(highlightInspectorObject->getShapeColor(nullptr));
+ highlightConfig->shapeMargin = parseColor(highlightInspectorObject->getShapeMarginColor(nullptr));
+ highlightConfig->selectorList = highlightInspectorObject->getSelectorList("");
return highlightConfig.release();
}
-void InspectorDOMAgent::setInspectMode(ErrorString* errorString, const String& mode, const RefPtr<JSONObject>* highlightConfig)
+void InspectorDOMAgent::setInspectMode(ErrorString* errorString, const String& mode, PassOwnPtr<protocol::DOM::HighlightConfig> highlightConfig)
{
SearchMode searchMode;
- if (mode == protocol::TypeBuilder::getEnumConstantValue(protocol::TypeBuilder::DOM::InspectMode::SearchForNode)) {
+ if (mode == protocol::DOM::InspectModeEnum::SearchForNode) {
searchMode = SearchingForNormal;
- } else if (mode == protocol::TypeBuilder::getEnumConstantValue(protocol::TypeBuilder::DOM::InspectMode::SearchForUAShadowDOM)) {
+ } else if (mode == protocol::DOM::InspectModeEnum::SearchForUAShadowDOM) {
searchMode = SearchingForUAShadow;
- } else if (mode == protocol::TypeBuilder::getEnumConstantValue(protocol::TypeBuilder::DOM::InspectMode::None)) {
+ } else if (mode == protocol::DOM::InspectModeEnum::None) {
searchMode = NotSearching;
- } else if (mode == protocol::TypeBuilder::getEnumConstantValue(protocol::TypeBuilder::DOM::InspectMode::ShowLayoutEditor)) {
+ } else if (mode == protocol::DOM::InspectModeEnum::ShowLayoutEditor) {
searchMode = ShowLayoutEditor;
} else {
*errorString = "Unknown mode \"" + mode + "\" was provided.";
@@ -1179,16 +1145,16 @@ void InspectorDOMAgent::setInspectMode(ErrorString* errorString, const String& m
if (searchMode != NotSearching && !pushDocumentUponHandlelessOperation(errorString))
return;
- setSearchingForNode(errorString, searchMode, highlightConfig ? highlightConfig->get() : nullptr);
+ setSearchingForNode(errorString, searchMode, highlightConfig);
}
-void InspectorDOMAgent::highlightRect(ErrorString*, int x, int y, int width, int height, const RefPtr<JSONObject>* color, const RefPtr<JSONObject>* outlineColor)
+void InspectorDOMAgent::highlightRect(ErrorString*, int x, int y, int width, int height, PassOwnPtr<protocol::DOM::RGBA> color, PassOwnPtr<protocol::DOM::RGBA> outlineColor)
{
OwnPtr<FloatQuad> quad = adoptPtr(new FloatQuad(FloatRect(x, y, width, height)));
innerHighlightQuad(quad.release(), color, outlineColor);
}
-void InspectorDOMAgent::highlightQuad(ErrorString* errorString, const RefPtr<JSONArray>& quadArray, const RefPtr<JSONObject>* color, const RefPtr<JSONObject>* outlineColor)
+void InspectorDOMAgent::highlightQuad(ErrorString* errorString, PassOwnPtr<protocol::Array<double>> quadArray, PassOwnPtr<protocol::DOM::RGBA> color, PassOwnPtr<protocol::DOM::RGBA> outlineColor)
{
OwnPtr<FloatQuad> quad = adoptPtr(new FloatQuad());
if (!parseQuad(quadArray, quad.get())) {
@@ -1198,7 +1164,7 @@ void InspectorDOMAgent::highlightQuad(ErrorString* errorString, const RefPtr<JSO
innerHighlightQuad(quad.release(), color, outlineColor);
}
-void InspectorDOMAgent::innerHighlightQuad(PassOwnPtr<FloatQuad> quad, const RefPtr<JSONObject>* color, const RefPtr<JSONObject>* outlineColor)
+void InspectorDOMAgent::innerHighlightQuad(PassOwnPtr<FloatQuad> quad, PassOwnPtr<protocol::DOM::RGBA> color, PassOwnPtr<protocol::DOM::RGBA> outlineColor)
{
OwnPtr<InspectorHighlightConfig> highlightConfig = adoptPtr(new InspectorHighlightConfig());
highlightConfig->content = parseColor(color);
@@ -1225,22 +1191,22 @@ Node* InspectorDOMAgent::nodeForRemoteId(ErrorString* errorString, const String&
return node;
}
-void InspectorDOMAgent::highlightNode(ErrorString* errorString, const RefPtr<JSONObject>& highlightInspectorObject, const int* nodeId, const int* backendNodeId, const String* objectId)
+void InspectorDOMAgent::highlightNode(ErrorString* errorString, PassOwnPtr<protocol::DOM::HighlightConfig> highlightInspectorObject, const OptionalValue<int>& nodeId, const OptionalValue<int>& backendNodeId, const OptionalValue<String>& objectId)
{
Node* node = nullptr;
- if (nodeId) {
- node = assertNode(errorString, *nodeId);
- } else if (backendNodeId) {
- node = DOMNodeIds::nodeForId(*backendNodeId);
- } else if (objectId) {
- node = nodeForRemoteId(errorString, *objectId);
+ if (nodeId.hasValue()) {
+ node = assertNode(errorString, nodeId.get());
+ } else if (backendNodeId.hasValue()) {
+ node = DOMNodeIds::nodeForId(backendNodeId.get());
+ } else if (objectId.hasValue()) {
+ node = nodeForRemoteId(errorString, objectId.get());
} else
*errorString = "Either nodeId or objectId must be specified";
if (!node)
return;
- OwnPtr<InspectorHighlightConfig> highlightConfig = highlightConfigFromInspectorObject(errorString, highlightInspectorObject.get());
+ OwnPtr<InspectorHighlightConfig> highlightConfig = highlightConfigFromInspectorObject(errorString, highlightInspectorObject);
if (!highlightConfig)
return;
@@ -1251,8 +1217,8 @@ void InspectorDOMAgent::highlightNode(ErrorString* errorString, const RefPtr<JSO
void InspectorDOMAgent::highlightFrame(
ErrorString*,
const String& frameId,
- const RefPtr<JSONObject>* color,
- const RefPtr<JSONObject>* outlineColor)
+ PassOwnPtr<protocol::DOM::RGBA> color,
+ PassOwnPtr<protocol::DOM::RGBA> outlineColor)
{
LocalFrame* frame = IdentifiersFactory::frameById(m_inspectedFrames, frameId);
// FIXME: Inspector doesn't currently work cross process.
@@ -1272,7 +1238,7 @@ void InspectorDOMAgent::hideHighlight(ErrorString*)
m_client->hideHighlight();
}
-void InspectorDOMAgent::copyTo(ErrorString* errorString, int nodeId, int targetElementId, const int* const anchorNodeId, int* newNodeId)
+void InspectorDOMAgent::copyTo(ErrorString* errorString, int nodeId, int targetElementId, const OptionalValue<int>& anchorNodeId, int* newNodeId)
{
Node* node = assertEditableNode(errorString, nodeId);
if (!node)
@@ -1283,8 +1249,8 @@ void InspectorDOMAgent::copyTo(ErrorString* errorString, int nodeId, int targetE
return;
Node* anchorNode = nullptr;
- if (anchorNodeId && *anchorNodeId) {
- anchorNode = assertEditableChildNode(errorString, targetElement, *anchorNodeId);
+ if (anchorNodeId.hasValue() && anchorNodeId.get()) {
+ anchorNode = assertEditableChildNode(errorString, targetElement, anchorNodeId.get());
if (!anchorNode)
return;
}
@@ -1301,7 +1267,7 @@ void InspectorDOMAgent::copyTo(ErrorString* errorString, int nodeId, int targetE
*newNodeId = pushNodePathToFrontend(clonedNode.get());
}
-void InspectorDOMAgent::moveTo(ErrorString* errorString, int nodeId, int targetElementId, const int* const anchorNodeId, int* newNodeId)
+void InspectorDOMAgent::moveTo(ErrorString* errorString, int nodeId, int targetElementId, const OptionalValue<int>& anchorNodeId, int* newNodeId)
{
Node* node = assertEditableNode(errorString, nodeId);
if (!node)
@@ -1321,8 +1287,8 @@ void InspectorDOMAgent::moveTo(ErrorString* errorString, int nodeId, int targetE
}
Node* anchorNode = nullptr;
- if (anchorNodeId && *anchorNodeId) {
- anchorNode = assertEditableChildNode(errorString, targetElement, *anchorNodeId);
+ if (anchorNodeId.hasValue() && anchorNodeId.get()) {
+ anchorNode = assertEditableChildNode(errorString, targetElement, anchorNodeId.get());
if (!anchorNode)
return;
}
@@ -1366,7 +1332,7 @@ void InspectorDOMAgent::focus(ErrorString* errorString, int nodeId)
element->focus();
}
-void InspectorDOMAgent::setFileInputFiles(ErrorString* errorString, int nodeId, const RefPtr<JSONArray>& files)
+void InspectorDOMAgent::setFileInputFiles(ErrorString* errorString, int nodeId, PassOwnPtr<protocol::Array<String>> files)
{
Node* node = assertNode(errorString, nodeId);
if (!node)
@@ -1377,18 +1343,12 @@ void InspectorDOMAgent::setFileInputFiles(ErrorString* errorString, int nodeId,
}
FileList* fileList = FileList::create();
- for (const auto& file : *files) {
- String path;
- if (!(file)->asString(&path)) {
- *errorString = "Files must be strings";
- return;
- }
- fileList->append(File::create(path));
- }
+ for (size_t index = 0; index < files->length(); ++index)
+ fileList->append(File::create(files->get(index)));
toHTMLInputElement(node)->setFiles(fileList);
}
-void InspectorDOMAgent::getBoxModel(ErrorString* errorString, int nodeId, RefPtr<protocol::TypeBuilder::DOM::BoxModel>& model)
+void InspectorDOMAgent::getBoxModel(ErrorString* errorString, int nodeId, OwnPtr<protocol::DOM::BoxModel>* model)
{
Node* node = assertNode(errorString, nodeId);
if (!node)
@@ -1416,29 +1376,26 @@ void InspectorDOMAgent::getNodeForLocation(ErrorString* errorString, int x, int
*nodeId = pushNodePathToFrontend(node);
}
-void InspectorDOMAgent::resolveNode(ErrorString* errorString, int nodeId, const String* const objectGroup, RefPtr<protocol::TypeBuilder::Runtime::RemoteObject>& result)
+void InspectorDOMAgent::resolveNode(ErrorString* errorString, int nodeId, const OptionalValue<String>& objectGroup, OwnPtr<protocol::Runtime::RemoteObject>* result)
{
- String objectGroupName = objectGroup ? *objectGroup : "";
+ String objectGroupName = objectGroup.get("");
Node* node = nodeForId(nodeId);
if (!node) {
*errorString = "No node with given id found";
return;
}
- RefPtr<protocol::TypeBuilder::Runtime::RemoteObject> object = resolveNode(node, objectGroupName);
- if (!object) {
+ *result = resolveNode(node, objectGroupName);
+ if (!*result)
*errorString = "Node with given id does not belong to the document";
- return;
- }
- result = object;
}
-void InspectorDOMAgent::getAttributes(ErrorString* errorString, int nodeId, RefPtr<protocol::TypeBuilder::Array<String>>& result)
+void InspectorDOMAgent::getAttributes(ErrorString* errorString, int nodeId, OwnPtr<protocol::Array<String>>* result)
{
Element* element = assertElement(errorString, nodeId);
if (!element)
return;
- result = buildArrayForElementAttributes(element);
+ *result = buildArrayForElementAttributes(element);
}
void InspectorDOMAgent::requestNode(ErrorString* errorString, const String& objectId, int* nodeId)
@@ -1463,22 +1420,22 @@ static String documentBaseURLString(Document* document)
return document->baseURLForOverride(document->baseURL()).string();
}
-static protocol::TypeBuilder::DOM::ShadowRootType::Enum shadowRootType(ShadowRoot* shadowRoot)
+static protocol::DOM::ShadowRootType shadowRootType(ShadowRoot* shadowRoot)
{
switch (shadowRoot->type()) {
case ShadowRootType::UserAgent:
- return protocol::TypeBuilder::DOM::ShadowRootType::User_agent;
+ return protocol::DOM::ShadowRootTypeEnum::UserAgent;
case ShadowRootType::V0:
case ShadowRootType::Open:
- return protocol::TypeBuilder::DOM::ShadowRootType::Open;
+ return protocol::DOM::ShadowRootTypeEnum::Open;
case ShadowRootType::Closed:
- return protocol::TypeBuilder::DOM::ShadowRootType::Closed;
+ return protocol::DOM::ShadowRootTypeEnum::Closed;
}
ASSERT_NOT_REACHED();
- return protocol::TypeBuilder::DOM::ShadowRootType::User_agent;
+ return protocol::DOM::ShadowRootTypeEnum::UserAgent;
}
-PassRefPtr<protocol::TypeBuilder::DOM::Node> InspectorDOMAgent::buildObjectForNode(Node* node, int depth, NodeToIdMap* nodesMap)
+PassOwnPtr<protocol::DOM::Node> InspectorDOMAgent::buildObjectForNode(Node* node, int depth, NodeToIdMap* nodesMap)
{
int id = bind(node, nodesMap);
String localName;
@@ -1502,12 +1459,12 @@ PassRefPtr<protocol::TypeBuilder::DOM::Node> InspectorDOMAgent::buildObjectForNo
break;
}
- RefPtr<protocol::TypeBuilder::DOM::Node> value = protocol::TypeBuilder::DOM::Node::create()
+ OwnPtr<protocol::DOM::Node> value = protocol::DOM::Node::create()
.setNodeId(id)
.setNodeType(static_cast<int>(node->nodeType()))
.setNodeName(node->nodeName())
.setLocalName(localName)
- .setNodeValue(nodeValue);
+ .setNodeValue(nodeValue).build();
bool forcePushChildren = false;
if (node->isElementNode()) {
@@ -1524,10 +1481,10 @@ PassRefPtr<protocol::TypeBuilder::DOM::Node> InspectorDOMAgent::buildObjectForNo
ElementShadow* shadow = element->shadow();
if (shadow) {
- RefPtr<protocol::TypeBuilder::Array<protocol::TypeBuilder::DOM::Node>> shadowRoots = protocol::TypeBuilder::Array<protocol::TypeBuilder::DOM::Node>::create();
+ OwnPtr<protocol::Array<protocol::DOM::Node>> shadowRoots = protocol::Array<protocol::DOM::Node>::create();
for (ShadowRoot* root = &shadow->youngestShadowRoot(); root; root = root->olderShadowRoot())
shadowRoots->addItem(buildObjectForNode(root, 0, nodesMap));
- value->setShadowRoots(shadowRoots);
+ value->setShadowRoots(shadowRoots.release());
forcePushChildren = true;
}
@@ -1544,11 +1501,11 @@ PassRefPtr<protocol::TypeBuilder::DOM::Node> InspectorDOMAgent::buildObjectForNo
}
if (element->pseudoId()) {
- protocol::TypeBuilder::DOM::PseudoType::Enum pseudoType;
+ protocol::DOM::PseudoType pseudoType;
if (InspectorDOMAgent::getPseudoElementType(element->pseudoId(), &pseudoType))
value->setPseudoType(pseudoType);
} else {
- RefPtr<protocol::TypeBuilder::Array<protocol::TypeBuilder::DOM::Node>> pseudoElements = buildArrayForPseudoElements(element, nodesMap);
+ OwnPtr<protocol::Array<protocol::DOM::Node>> pseudoElements = buildArrayForPseudoElements(element, nodesMap);
if (pseudoElements) {
value->setPseudoElements(pseudoElements.release());
forcePushChildren = true;
@@ -1585,7 +1542,7 @@ PassRefPtr<protocol::TypeBuilder::DOM::Node> InspectorDOMAgent::buildObjectForNo
m_cachedChildCount.set(id, nodeCount);
if (forcePushChildren && !depth)
depth = 1;
- RefPtr<protocol::TypeBuilder::Array<protocol::TypeBuilder::DOM::Node>> children = buildArrayForContainerChildren(node, depth, nodesMap);
+ OwnPtr<protocol::Array<protocol::DOM::Node>> children = buildArrayForContainerChildren(node, depth, nodesMap);
if (children->length() > 0 || depth) // Push children along with shadow in any case.
value->setChildren(children.release());
}
@@ -1593,9 +1550,9 @@ PassRefPtr<protocol::TypeBuilder::DOM::Node> InspectorDOMAgent::buildObjectForNo
return value.release();
}
-PassRefPtr<protocol::TypeBuilder::Array<String>> InspectorDOMAgent::buildArrayForElementAttributes(Element* element)
+PassOwnPtr<protocol::Array<String>> InspectorDOMAgent::buildArrayForElementAttributes(Element* element)
{
- RefPtr<protocol::TypeBuilder::Array<String>> attributesValue = protocol::TypeBuilder::Array<String>::create();
+ OwnPtr<protocol::Array<String>> attributesValue = protocol::Array<String>::create();
// Go through all attributes and serialize them.
AttributeCollection attributes = element->attributes();
for (auto& attribute : attributes) {
@@ -1606,9 +1563,9 @@ PassRefPtr<protocol::TypeBuilder::Array<String>> InspectorDOMAgent::buildArrayFo
return attributesValue.release();
}
-PassRefPtr<protocol::TypeBuilder::Array<protocol::TypeBuilder::DOM::Node>> InspectorDOMAgent::buildArrayForContainerChildren(Node* container, int depth, NodeToIdMap* nodesMap)
+PassOwnPtr<protocol::Array<protocol::DOM::Node>> InspectorDOMAgent::buildArrayForContainerChildren(Node* container, int depth, NodeToIdMap* nodesMap)
{
- RefPtr<protocol::TypeBuilder::Array<protocol::TypeBuilder::DOM::Node>> children = protocol::TypeBuilder::Array<protocol::TypeBuilder::DOM::Node>::create();
+ OwnPtr<protocol::Array<protocol::DOM::Node>> children = protocol::Array<protocol::DOM::Node>::create();
if (depth == 0) {
// Special-case the only text child - pretend that container's children have been requested.
Node* firstChild = container->firstChild();
@@ -1630,12 +1587,12 @@ PassRefPtr<protocol::TypeBuilder::Array<protocol::TypeBuilder::DOM::Node>> Inspe
return children.release();
}
-PassRefPtr<protocol::TypeBuilder::Array<protocol::TypeBuilder::DOM::Node>> InspectorDOMAgent::buildArrayForPseudoElements(Element* element, NodeToIdMap* nodesMap)
+PassOwnPtr<protocol::Array<protocol::DOM::Node>> InspectorDOMAgent::buildArrayForPseudoElements(Element* element, NodeToIdMap* nodesMap)
{
if (!element->pseudoElement(BEFORE) && !element->pseudoElement(AFTER))
return nullptr;
- RefPtr<protocol::TypeBuilder::Array<protocol::TypeBuilder::DOM::Node>> pseudoElements = protocol::TypeBuilder::Array<protocol::TypeBuilder::DOM::Node>::create();
+ OwnPtr<protocol::Array<protocol::DOM::Node>> pseudoElements = protocol::Array<protocol::DOM::Node>::create();
if (element->pseudoElement(BEFORE))
pseudoElements->addItem(buildObjectForNode(element->pseudoElement(BEFORE), 0, nodesMap));
if (element->pseudoElement(AFTER))
@@ -1643,18 +1600,18 @@ PassRefPtr<protocol::TypeBuilder::Array<protocol::TypeBuilder::DOM::Node>> Inspe
return pseudoElements.release();
}
-PassRefPtr<protocol::TypeBuilder::Array<protocol::TypeBuilder::DOM::BackendNode>> InspectorDOMAgent::buildArrayForDistributedNodes(InsertionPoint* insertionPoint)
+PassOwnPtr<protocol::Array<protocol::DOM::BackendNode>> InspectorDOMAgent::buildArrayForDistributedNodes(InsertionPoint* insertionPoint)
{
- RefPtr<protocol::TypeBuilder::Array<protocol::TypeBuilder::DOM::BackendNode>> distributedNodes = protocol::TypeBuilder::Array<protocol::TypeBuilder::DOM::BackendNode>::create();
+ OwnPtr<protocol::Array<protocol::DOM::BackendNode>> distributedNodes = protocol::Array<protocol::DOM::BackendNode>::create();
for (size_t i = 0; i < insertionPoint->distributedNodesSize(); ++i) {
Node* distributedNode = insertionPoint->distributedNodeAt(i);
if (isWhitespace(distributedNode))
continue;
- RefPtr<protocol::TypeBuilder::DOM::BackendNode> backendNode = protocol::TypeBuilder::DOM::BackendNode::create()
+ OwnPtr<protocol::DOM::BackendNode> backendNode = protocol::DOM::BackendNode::create()
.setNodeType(distributedNode->nodeType())
.setNodeName(distributedNode->nodeName())
- .setBackendNodeId(DOMNodeIds::idForNode(distributedNode));
+ .setBackendNodeId(DOMNodeIds::idForNode(distributedNode)).build();
distributedNodes->addItem(backendNode.release());
}
return distributedNodes.release();
@@ -1738,7 +1695,7 @@ void InspectorDOMAgent::invalidateFrameOwnerElement(LocalFrame* frame)
frontend()->childNodeRemoved(parentId, frameOwnerId);
unbind(frameOwner, m_documentNodeToIdMap.get());
- RefPtr<protocol::TypeBuilder::DOM::Node> value = buildObjectForNode(frameOwner, 0, m_documentNodeToIdMap.get());
+ OwnPtr<protocol::DOM::Node> value = buildObjectForNode(frameOwner, 0, m_documentNodeToIdMap.get());
Node* previousSibling = innerPreviousSibling(frameOwner);
int prevId = previousSibling ? m_documentNodeToIdMap->get(previousSibling) : 0;
frontend()->childNodeInserted(parentId, prevId, value.release());
@@ -1780,7 +1737,7 @@ void InspectorDOMAgent::didInsertDOMNode(Node* node)
// Children have been requested -> return value of a new child.
Node* prevSibling = innerPreviousSibling(node);
int prevId = prevSibling ? m_documentNodeToIdMap->get(prevSibling) : 0;
- RefPtr<protocol::TypeBuilder::DOM::Node> value = buildObjectForNode(node, 0, m_documentNodeToIdMap.get());
+ OwnPtr<protocol::DOM::Node> value = buildObjectForNode(node, 0, m_documentNodeToIdMap.get());
frontend()->childNodeInserted(parentId, prevId, value.release());
}
}
@@ -1847,7 +1804,7 @@ void InspectorDOMAgent::didRemoveDOMAttr(Element* element, const QualifiedName&
void InspectorDOMAgent::styleAttributeInvalidated(const WillBeHeapVector<RawPtrWillBeMember<Element>>& elements)
{
- RefPtr<protocol::TypeBuilder::Array<int>> nodeIds = protocol::TypeBuilder::Array<int>::create();
+ OwnPtr<protocol::Array<int>> nodeIds = protocol::Array<int>::create();
for (unsigned i = 0, size = elements.size(); i < size; ++i) {
Element* element = elements.at(i);
int id = boundNodeId(element);
@@ -2031,22 +1988,15 @@ void InspectorDOMAgent::pushNodeByPathToFrontend(ErrorString* errorString, const
*errorString = "No node with given path found";
}
-void InspectorDOMAgent::pushNodesByBackendIdsToFrontend(ErrorString* errorString, const RefPtr<JSONArray>& backendNodeIds, RefPtr<protocol::TypeBuilder::Array<int>>& result)
+void InspectorDOMAgent::pushNodesByBackendIdsToFrontend(ErrorString* errorString, PassOwnPtr<protocol::Array<int>> backendNodeIds, OwnPtr<protocol::Array<int>>* result)
{
- result = protocol::TypeBuilder::Array<int>::create();
- for (const auto& backendNode : *backendNodeIds) {
- int backendNodeId;
-
- if (!(backendNode)->asNumber(&backendNodeId)) {
- *errorString = "Invalid argument type";
- return;
- }
-
- Node* node = DOMNodeIds::nodeForId(backendNodeId);
+ *result = protocol::Array<int>::create();
+ for (size_t index = 0; index < backendNodeIds->length(); ++index) {
+ Node* node = DOMNodeIds::nodeForId(backendNodeIds->get(index));
if (node && node->document().frame() && m_inspectedFrames->contains(node->document().frame()))
- result->addItem(pushNodePathToFrontend(node));
+ (*result)->addItem(pushNodePathToFrontend(node));
else
- result->addItem(0);
+ (*result)->addItem(0);
}
}
@@ -2088,16 +2038,16 @@ void InspectorDOMAgent::getRelayoutBoundary(ErrorString* errorString, int nodeId
*relayoutBoundaryNodeId = pushNodePathToFrontend(resultNode);
}
-void InspectorDOMAgent::getHighlightObjectForTest(ErrorString* errorString, int nodeId, RefPtr<JSONObject>& result)
+void InspectorDOMAgent::getHighlightObjectForTest(ErrorString* errorString, int nodeId, RefPtr<JSONObject>* result)
{
Node* node = assertNode(errorString, nodeId);
if (!node)
return;
InspectorHighlight highlight(node, InspectorHighlight::defaultConfig(), true);
- result = highlight.asJSONObject();
+ *result = highlight.asJSONObject();
}
-PassRefPtr<protocol::TypeBuilder::Runtime::RemoteObject> InspectorDOMAgent::resolveNode(Node* node, const String& objectGroup)
+PassOwnPtr<protocol::Runtime::RemoteObject> InspectorDOMAgent::resolveNode(Node* node, const String& objectGroup)
{
Document* document = node->isDocumentNode() ? &node->document() : node->ownerDocument();
LocalFrame* frame = document ? document->frame() : nullptr;
@@ -2115,8 +2065,8 @@ PassRefPtr<protocol::TypeBuilder::Runtime::RemoteObject> InspectorDOMAgent::reso
bool InspectorDOMAgent::pushDocumentUponHandlelessOperation(ErrorString* errorString)
{
if (!m_documentNodeToIdMap->contains(m_document)) {
- RefPtr<protocol::TypeBuilder::DOM::Node> root;
- getDocument(errorString, root);
+ OwnPtr<protocol::DOM::Node> root;
+ getDocument(errorString, &root);
return errorString->isEmpty();
}
return true;

Powered by Google App Engine
This is Rietveld 408576698