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

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

Issue 2296323002: DevTools: Add features to collect classnames from Stylesheets and DOM (Closed)
Patch Set: DevTools: Add features to collect classnames from Stylesheets and DOM Created 4 years, 3 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 7ed5a9c0565280f5f17062fd8b95b99a931f7895..e07333fab515cdb56d0adad72b49069f3848dad1 100644
--- a/third_party/WebKit/Source/core/inspector/InspectorDOMAgent.cpp
+++ b/third_party/WebKit/Source/core/inspector/InspectorDOMAgent.cpp
@@ -581,6 +581,30 @@ Node* InspectorDOMAgent::nodeForId(int id)
return nullptr;
}
+void InspectorDOMAgent::collectClassNamesFromSubtree(ErrorString* errorString, int nodeId, std::unique_ptr<protocol::Array<String>>* classNames)
+{
+ HashSet<String> uniqueNames;
+ *classNames = protocol::Array<String>::create();
+ Node* parentNode = nodeForId(nodeId);
+ if (!parentNode || (!parentNode->isElementNode() && !parentNode->isDocumentNode() && !parentNode->isDocumentFragment())) {
+ *errorString = "No suitable node with given id found";
+ return;
+ }
+
+ for (Node* node = parentNode; node; node = FlatTreeTraversal::next(*node, parentNode)) {
+ if (node->isElementNode()) {
+ const Element& element = toElement(*node);
+ if (!element.hasClass())
+ continue;
+ const SpaceSplitString& classNameList = element.classNames();
+ for (unsigned i = 0; i < classNameList.size(); ++i)
+ uniqueNames.add(classNameList[i]);
+ }
+ }
+ for (const String& className : uniqueNames)
+ (*classNames)->addItem(className);
+}
+
void InspectorDOMAgent::requestChildNodes(ErrorString* errorString, int nodeId, const Maybe<int>& depth)
{
int sanitizedDepth = depth.fromMaybe(1);

Powered by Google App Engine
This is Rietveld 408576698