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

Side by Side Diff: third_party/WebKit/Source/platform/graphics/GraphicsLayer.cpp

Issue 2383323002: [SPv2] Introduce an option to output the GraphicsLayer tree as a flat layer list. (Closed)
Patch Set: none Created 4 years, 2 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 unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2009 Apple Inc. All rights reserved. 2 * Copyright (C) 2009 Apple Inc. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions 5 * modification, are permitted provided that the following conditions
6 * are met: 6 * are met:
7 * 1. Redistributions of source code must retain the above copyright 7 * 1. Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer. 8 * notice, this list of conditions and the following disclaimer.
9 * 2. Redistributions in binary form must reproduce the above copyright 9 * 2. Redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the 10 * notice, this list of conditions and the following disclaimer in the
(...skipping 589 matching lines...) Expand 10 before | Expand all | Expand 10 after
600 static String pointerAsString(const void* ptr) 600 static String pointerAsString(const void* ptr)
601 { 601 {
602 TextStream ts; 602 TextStream ts;
603 ts << ptr; 603 ts << ptr;
604 return ts.release(); 604 return ts.release();
605 } 605 }
606 606
607 std::unique_ptr<JSONObject> GraphicsLayer::layerTreeAsJSON(LayerTreeFlags flags) const 607 std::unique_ptr<JSONObject> GraphicsLayer::layerTreeAsJSON(LayerTreeFlags flags) const
608 { 608 {
609 RenderingContextMap renderingContextMap; 609 RenderingContextMap renderingContextMap;
610 if (flags & OutputChildrenAsLayerList) {
611 std::unique_ptr<JSONObject> json = JSONObject::create();
612 std::unique_ptr<JSONArray> layersArray = JSONArray::create();
613 for (auto& child : m_children)
614 child->layersAsJSONArray(flags, renderingContextMap, layersArray.get ());
615 json->setArray("layers", std::move(layersArray));
616 return json;
617 }
610 return layerTreeAsJSONInternal(flags, renderingContextMap); 618 return layerTreeAsJSONInternal(flags, renderingContextMap);
611 } 619 }
612 620
613 std::unique_ptr<JSONObject> GraphicsLayer::layerTreeAsJSONInternal(LayerTreeFlag s flags, RenderingContextMap& renderingContextMap) const 621 std::unique_ptr<JSONObject> GraphicsLayer::layerAsJSONInternal(LayerTreeFlags fl ags, RenderingContextMap& renderingContextMap) const
614 { 622 {
615 std::unique_ptr<JSONObject> json = JSONObject::create(); 623 std::unique_ptr<JSONObject> json = JSONObject::create();
616 624
617 if (flags & LayerTreeIncludesDebugInfo) 625 if (flags & LayerTreeIncludesDebugInfo)
618 json->setString("this", pointerAsString(this)); 626 json->setString("this", pointerAsString(this));
619 627
620 json->setString("name", debugName()); 628 json->setString("name", debugName());
621 629
622 if (m_position != FloatPoint()) 630 if (m_position != FloatPoint())
623 json->setArray("position", pointAsJSONArray(m_position)); 631 json->setArray("position", pointAsJSONArray(m_position));
(...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after
707 } 715 }
708 json->setArray("compositingReasons", std::move(compositingReasonsJSON)); 716 json->setArray("compositingReasons", std::move(compositingReasonsJSON));
709 717
710 std::unique_ptr<JSONArray> squashingDisallowedReasonsJSON = JSONArray::c reate(); 718 std::unique_ptr<JSONArray> squashingDisallowedReasonsJSON = JSONArray::c reate();
711 for (size_t i = 0; i < kNumberOfSquashingDisallowedReasons; ++i) { 719 for (size_t i = 0; i < kNumberOfSquashingDisallowedReasons; ++i) {
712 if (m_debugInfo.getSquashingDisallowedReasons() & kSquashingDisallow edReasonStringMap[i].reason) 720 if (m_debugInfo.getSquashingDisallowedReasons() & kSquashingDisallow edReasonStringMap[i].reason)
713 squashingDisallowedReasonsJSON->pushString(debug ? kSquashingDis allowedReasonStringMap[i].description : kSquashingDisallowedReasonStringMap[i].s hortName); 721 squashingDisallowedReasonsJSON->pushString(debug ? kSquashingDis allowedReasonStringMap[i].description : kSquashingDisallowedReasonStringMap[i].s hortName);
714 } 722 }
715 json->setArray("squashingDisallowedReasons", std::move(squashingDisallow edReasonsJSON)); 723 json->setArray("squashingDisallowedReasons", std::move(squashingDisallow edReasonsJSON));
716 } 724 }
725 return json;
726 }
727
728 std::unique_ptr<JSONObject> GraphicsLayer::layerTreeAsJSONInternal(LayerTreeFlag s flags, RenderingContextMap& renderingContextMap) const
729 {
730 std::unique_ptr<JSONObject> json = layerAsJSONInternal(flags, renderingConte xtMap);
717 731
718 if (m_children.size()) { 732 if (m_children.size()) {
719 std::unique_ptr<JSONArray> childrenJSON = JSONArray::create(); 733 std::unique_ptr<JSONArray> childrenJSON = JSONArray::create();
720 for (size_t i = 0; i < m_children.size(); i++) 734 for (size_t i = 0; i < m_children.size(); i++)
721 childrenJSON->pushObject(m_children[i]->layerTreeAsJSONInternal(flag s, renderingContextMap)); 735 childrenJSON->pushObject(m_children[i]->layerTreeAsJSONInternal(flag s, renderingContextMap));
722 json->setArray("children", std::move(childrenJSON)); 736 json->setArray("children", std::move(childrenJSON));
723 } 737 }
724 738
725 return json; 739 return json;
726 } 740 }
727 741
742 void GraphicsLayer::layersAsJSONArray(LayerTreeFlags flags, RenderingContextMap& renderingContextMap, JSONArray* jsonArray) const
743 {
744 jsonArray->pushObject(layerAsJSONInternal(flags, renderingContextMap));
745
746 if (m_children.size()) {
747 for (auto& child : m_children)
748 child->layersAsJSONArray(flags, renderingContextMap, jsonArray);
749 }
750 }
751
728 String GraphicsLayer::layerTreeAsText(LayerTreeFlags flags) const 752 String GraphicsLayer::layerTreeAsText(LayerTreeFlags flags) const
729 { 753 {
730 return layerTreeAsJSON(flags)->toPrettyJSONString(); 754 return layerTreeAsJSON(flags)->toPrettyJSONString();
731 } 755 }
732 756
733 static const cc::Layer* ccLayerForWebLayer(const WebLayer* webLayer) 757 static const cc::Layer* ccLayerForWebLayer(const WebLayer* webLayer)
734 { 758 {
735 return webLayer ? webLayer->ccLayer() : nullptr; 759 return webLayer ? webLayer->ccLayer() : nullptr;
736 } 760 }
737 761
(...skipping 503 matching lines...) Expand 10 before | Expand all | Expand 10 after
1241 { 1265 {
1242 if (!layer) { 1266 if (!layer) {
1243 fprintf(stderr, "Cannot showGraphicsLayerTree for (nil).\n"); 1267 fprintf(stderr, "Cannot showGraphicsLayerTree for (nil).\n");
1244 return; 1268 return;
1245 } 1269 }
1246 1270
1247 String output = layer->layerTreeAsText(blink::LayerTreeIncludesDebugInfo); 1271 String output = layer->layerTreeAsText(blink::LayerTreeIncludesDebugInfo);
1248 fprintf(stderr, "%s\n", output.utf8().data()); 1272 fprintf(stderr, "%s\n", output.utf8().data());
1249 } 1273 }
1250 #endif 1274 #endif
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698